Merge from emacs--devo--0

Patches applied:

 * emacs--devo--0  (patch 781-792)

   - Update from CVS
   - Merge from gnus--rel--5.10
   - Merge from emacs--rel--22

 * emacs--rel--22  (patch 33-41)
 * gnus--rel--5.10  (patch 226-228)

   - Update from CVS

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-219
This commit is contained in:
Miles Bader 2007-06-11 00:58:11 +00:00
commit fb9a13e3dc
121 changed files with 9991 additions and 4462 deletions

34
AUTHORS
View file

@ -333,10 +333,10 @@ Cheng Gao: changed MORE.STUFF flymake.el tips.texi url-dired.el
url-file.el url-handlers.el url-http.el url-nfs.el
Chong Yidong: changed cus-edit.el simple.el files.el custom.el
display.texi longlines.el xdisp.c files.texi info.el keyboard.c
display.texi xdisp.c longlines.el files.texi info.el keyboard.c
compile.el custom.texi text.texi xterm.c frames.texi image-mode.el
mouse.el misc.texi startup.el wid-edit.el cus-theme.el
and 296 other files
and 297 other files
Chris Hanson: changed xscheme.el scheme.el xterm.c hpux.h x11term.c
hp9000s300.h keyboard.c process.c texinfmt.el emacsclient.c sort.el
@ -652,8 +652,8 @@ Eli Tziperman: wrote rmail-spam-filter.el
Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el
and changed msdos.c Makefile.in makefile.w32-in files.el info.el fileio.c
startup.el mainmake.v2 config.bat rmail.el menu-bar.el pc-win.el
simple.el msdos.h internal.el xfaces.c emacs.c frame.c dosfns.c
faces.el frame.el and 532 other files
simple.el msdos.h internal.el xfaces.c emacs.c frame.c INSTALL dosfns.c
faces.el and 532 other files
Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el
sh-script.el text.texi
@ -1699,8 +1699,8 @@ Martin Neitzel: changed sc.el
Martin Rudalics: changed cus-edit.el wid-edit.el cus-start.el files.el
flyspell.el font-lock.el complete.el insdel.c ispell.el macmenu.c
syntax.c w32menu.c wdired.el whitespace.el window.el xdisp.c xmenu.c
backups.texi buffer.c buffer.h casefiddle.c and 36 other files
syntax.c table.el w32menu.c wdired.el whitespace.el window.el xdisp.c
xmenu.c backups.texi buffer.c buffer.h and 36 other files
Martin Stjernholm: wrote cc-bytecomp.el
and changed cc-engine.el cc-cmds.el cc-langs.el cc-defs.el cc-mode.el
@ -1877,7 +1877,7 @@ Miles Bader: wrote button.el image-file.el macroexp.el minibuf-eldef.el
and changed comint.el faces.el simple.el editfns.c xfaces.c info.el
xdisp.c minibuf.c wid-edit.el xterm.c subr.el window.el cus-edit.el
diff-mode.el dispextern.h quick-install-emacs xfns.c help.el lisp.h
textprop.c bytecomp.el and 241 other files
textprop.c bytecomp.el and 242 other files
Miyashita Hisashi: changed ccl.c coding.c coding.h mule-cmds.el
mule-conf.el mule.el pop3.el
@ -1942,7 +1942,7 @@ Niimi Satoshi: changed pp.el search.c
Niklas Morberg: changed nnweb.el gnus-art.el nnimap.el spam.el
Nikolaj Schumacher: changed compile.el
Nikolaj Schumacher: changed compile.el rx.el
Noah Friedman: wrote eldoc.el rlogin.el rsz-mini.el type-break.el
and changed comint.el emacs-buffer.gdb files.el mailabbrev.el sendmail.el
@ -2291,7 +2291,7 @@ Rune Kleveland: changed xfns.c
Russ Allbery: changed message.el
Ryan Yeske: wrote rcirc.el
and changed ffap.el rmailsum.el simple.el testcover.el
and changed ffap.el ispell.el rmailsum.el simple.el testcover.el
Ryszard Kubiak: changed ogonek.el
@ -2416,9 +2416,9 @@ Stefan Monnier: wrote bibtex.el cvs-status.el diff-mode.el log-edit.el
log-view.el pcvs-defs.el pcvs-info.el pcvs-parse.el pcvs-util.el
reveal.el smerge-mode.el
and changed vc.el font-lock.el pcvs.el newcomment.el subr.el lisp.h
keyboard.c keymap.c tex-mode.el fill.el alloc.c compile.el files.el
regex.c simple.el easy-mmode.el vc-hooks.el info.el syntax.c xdisp.c
sh-script.el and 518 other files
keyboard.c fill.el keymap.c tex-mode.el alloc.c compile.el files.el
regex.c simple.el easy-mmode.el syntax.c vc-hooks.el info.el xdisp.c
sh-script.el and 519 other files
Steinar Bang: changed imap.el
@ -2533,7 +2533,7 @@ Terrence Brannon: wrote landmark.el
Terry Jones: wrote shadow.el
Tetsurou Okazaki: changed xterm.c
Tetsurou Okazaki: changed log-edit.el xterm.c
Theodore Jump: changed w32-win.el w32faces.c
@ -2614,6 +2614,8 @@ Toru Tomabechi: wrote tibet-util.el tibetan.el
Toshiaki Nomura: changed uxpds.h
Trent Buck: changed rcirc.el
Trey Jackson: changed spam-stat.el
Triet Hoai Lai: changed vntelex.el viet-util.el vietnamese.el
@ -2636,8 +2638,8 @@ and changed calendar.texi newsticker.texi Makefile.in
Ulrich Leodolter: changed w32proc.c
Ulrich Mueller: changed gud.el Makefile.in case-table.el fortran.el
iso-acc.el sysdep.c
Ulrich Mueller: changed gud.el Makefile.in XMakeAssoc.c case-table.el
fortran.el iso-acc.el sysdep.c
Ulrik Vieth: wrote meta-mode.el
and changed files.el
@ -2734,7 +2736,7 @@ Yagi Tatsuya: changed gnus-art.el gnus-start.el
Yamamoto Mitsuharu: changed macterm.c macfns.c mac-win.el mac.c macterm.h
macmenu.c macgui.h image.c macselect.c keyboard.c xdisp.c makefile.MPW
config.h emacs.c Makefile.in macos.texi INSTALL darwin.h xfaces.c
config.h emacs.c INSTALL Makefile.in macos.texi darwin.h xfaces.c
dispnew.c alloc.c and 77 other files
Yann Dirson: changed imenu.el

View file

@ -1,3 +1,19 @@
2007-06-08 Glenn Morris <rgm@gnu.org>
* configure.in: Make gtk the default toolkit.
2007-06-07 Glenn Morris <rgm@gnu.org>
* configure.in (NON_GNU_CPP): On Solaris, set using a proper check
for a Sun C compiler.
* Makefile.in (install-arch-indep): Install only the DOC- file
specific to the build, if possible, rather than DOC-*.
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-05-25 Chong Yidong <cyd@stupidchicken.com>
* mkinstalldirs: Sync to version in automake CVS.

View file

@ -409,10 +409,8 @@ install-arch-dep: mkdir
## Note that we copy DOC* and then delete DOC
## as a workaround for a bug in tar on Ultrix 4.2.
## FIXME
## Should only install the DOC- file appropriate to this build, not DOC-*.
## http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-01/msg00417.html
## (fix available for consideration post-release).
## We install only the relevant DOC file if possible
## (ie DOC-${version}.buildnumber), otherwise DOC-${version}*.
## If people complain about the h flag in tar command, take that out.
## That flag is also used in leim/Makefile.in
@ -474,8 +472,15 @@ install-arch-indep: mkdir info
-unset CDPATH; \
if [ `(cd ./etc; /bin/pwd)` != `(cd $(DESTDIR)${docdir}; /bin/pwd)` ]; \
then \
echo "Copying etc/DOC-* to $(DESTDIR)${docdir} ..." ; \
(cd ./etc; tar -chf - DOC*) \
fullversion=`./src/emacs --version | sed -n '1 s/GNU Emacs *//p'`; \
if [ -f "./etc/DOC-$${fullversion}" ]; \
then \
docfile="DOC-$${fullversion}"; \
else \
docfile="DOC-${version}*"; \
fi; \
echo "Copying etc/$${docfile} to $(DESTDIR)${docdir} ..." ; \
(cd ./etc; tar -chf - $${docfile}) \
|(cd $(DESTDIR)${docdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
(cd $(DESTDIR)$(docdir); chown $${LOGNAME:-$$USERNAME} DOC*; chmod a+r DOC*; \
if test "`echo DOC-*`" != "DOC-*"; then rm DOC; fi); \

View file

@ -1,7 +1,15 @@
2007-06-07 Glenn Morris <rgm@gnu.org>
* admin.el (set-copyright): New function.
2007-04-25 Nick Roberts <nickrob@snap.net.nz>
* make-tarball.txt: Add note about cutting the branch.
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-02-03 Eli Zaretskii <eliz@gnu.org>
* nt/makedist.bat: Change EOL format to DOS. Don't use

View file

@ -55,7 +55,7 @@ that should be installed on the release branch after 22.1 is released.
** Changes to six pbm icons in etc/images.
Sync change from trunk 2007-05-19.
** viper and tramp should not load cl at run time.
** viper should not load cl at run time.
** yamaoka@jpl.org's patch for mail-extract-address-components problem.

View file

@ -24,6 +24,8 @@
;; add-release-logs Add ``Version X released'' change log entries.
;; set-version Change Emacs version number in source tree.
;; set-copyright Change emacs short copyright string (eg as
;; printed by --version) in source tree.
;;; Code:
@ -158,5 +160,50 @@ Root must be the root of an Emacs source tree."
(rx (and (submatch (1+ (in "a-z"))) (0+ space) ?\, (0+ space)
"/* development, alpha, beta, or final (release) */"))))))
;; Note this makes some assumptions about form of short copyright.
(defun set-copyright (root copyright)
"Set Emacs short copyright to COPYRIGHT in relevant files under ROOT.
Root must be the root of an Emacs source tree."
(interactive (list
(read-directory-name "Emacs root directory: " nil nil t)
(read-string
"Short copyright string: "
(format "Copyright (C) %s Free Software Foundation, Inc."
(format-time-string "%Y")))))
(unless (file-exists-p (expand-file-name "src/emacs.c" root))
(error "%s doesn't seem to be the root of an Emacs source tree" root))
(set-version-in-file root "lisp/version.el" copyright
(rx (and "emacs-copyright" (0+ space)
?\" (submatch (1+ (not (in ?\")))) ?\")))
(set-version-in-file root "lib-src/etags.c" copyright
(rx (and "emacs_copyright" (0+ (not (in ?\")))
?\" (submatch (1+ (not (in ?\")))) ?\")))
(set-version-in-file root "lib-src/rcs2log" copyright
(rx (and "Copyright" (0+ space) ?= (0+ space)
?\' (submatch (1+ nonl)))))
(set-version-in-file
root "mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings"
copyright (rx (and "CFBundleGetInfoString" (0+ space) ?= (0+ space) ?\"
(1+ anything)
(submatch "Copyright" (1+ (not (in ?\")))))))
;; This one is a nuisance, as it needs to be split over two lines.
(string-match "\\(.*[0-9]\\{4\\} *\\)\\(.*\\)" copyright)
(let ((csign "\\0xa9")
(cyear (match-string 1 copyright)) ; "Copyright (C) 2007 "
(owner (match-string 2 copyright))) ; "Free Software Foundation, Inc."
(set-version-in-file root "mac/src/Emacs.r"
(regexp-quote
(replace-regexp-in-string "(C)"
(regexp-quote csign) cyear))
(rx (and
(submatch "Copyright" (0+ space) (eval csign)
(0+ space) (= 4 num)
(0+ (not (in ?\")))) ?\")))
(set-version-in-file root "mac/src/Emacs.r" owner
(rx (and ?\"
(submatch (1+ (not (in ?\"))))
?\" (0+ space)
"/* Long version number */")))))
;;; arch-tag: 4ea83636-2293-408b-884e-ad64f22a3bf5
;; admin.el ends here.

View file

@ -131,7 +131,7 @@ mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings
mac/src/Emacs.r # resource 'vers'
src/emacs.c
- remember to change the latest copyright year in the --version output.
[Post-release, will automate this like set-version does for version.]
`set-copyright' in admin.el will do all the above.
<top-level>/install-sh
lispintro/install-sh

View file

@ -35,6 +35,72 @@
old binaries.
* Files in this directory
+ emacs-22.1-bin-i386.zip
Windows binaries of Emacs-22.1, with all lisp code and documentation
included.
Download this file if you want a single installation package, and
are not interested in the C source code for Emacs. After
unpacking, you can optionally run the file bin/addpm.exe to have
Emacs add icons to the Start Menu.
If you need the C source code at a later date, it will be safe to
unpack the source distribution on top of this installation.
+ emacs-22.1-barebin-i386.zip
Windows binaries of Emacs-22.1, without lisp code or documentation.
Download this file if you already have the source distribution, or
if you need to redump the emacs.exe executable.
Unpack this over the top of either the source distribution or the
bin distribution above. It contains the bin subdirectory and etc/DOC
file, plus temacs.exe and dump.bat, which are required if you want to
redump emacs without recompiling it.
+ emacs-21.3-bin-i386.tar.gz
Windows binaries of Emacs 21.3, with compiled lisp code and some
documentation included.
This is provided for users who require the older version.
+ emacs-21.3-leim.tar.gz
Compiled lisp input methods. This optional addition to Emacs-21.3
is required if you want to enter languages that are not directly
supported by your keyboard.
* Image support
Emacs 22.1 contains support for images, however for most image formats
supporting libraries are required. This distribution has been tested
with the libraries that are distributed with GTK for Windows, and the
libraries found at http://gnuwin32.sourceforge.net/. The following image
formats are supported:
PBM/PGM/PPM: Supported natively by Emacs. This format is used for
the black and white versions of the toolbar icons.
XPM: requires a Windows port of the XPM library 3.4 or later,
which will be named xpm4.dll, libxpm-nox4.dll or
libxpm.dll. This format is used for the color versions of the
toolbar icons, and other images in Emacs.
PNG: requires the PNG reference library 1.2 or later, which will
be named libpng13d.dll, libpng13.dll, libpng12d.dll, libpng12.dll
or libpng.dll. LibPNG requires zlib, which should come from the same
source as you got libpng.
JPEG: requires the Independant JPEG Group's libjpeg 6b or later,
which will be called jpeg62.dll, libjpeg.dll, jpeg-62.dll or jpeg.dll.
TIFF: requires libTIFF 3.0 or later, which will be called libtiff3.dll
or libtiff.dll.
GIF: requires libungif or giflib 4.1 or later, which will be
called giflib4.dll, libungif4.dll or libungif.dll.
* Distributions in .tar.gz and .zip format
Emacs is distributed primarily as source code in a large gzipped tar file
@ -46,23 +112,6 @@
but since there are no longer legal problems with .zip files, and the
latest versions of Windows support these natively, the Windows binaries
of Emacs are now distributed as .zip files.
Here are the combinations (i386 in the name indicates a zipfile contains
executables compiled for Intel-compatible x86 systems):
+ Primary precompiled distribution, including lisp source:
emacs-22.1-bin-i386.zip
NB: If you just want to run Emacs, get the distribution above.
+ Bare executables, useful if you want to get the complete source
release, but can't compile Emacs yourself:
emacs-22.1-barebin-i386.zip (requires ../emacs-22.1.tar.gz)
+ The complete official source for Emacs:
../emacs-22.1.tar.gz
* Distributions for non-x86 platforms
@ -108,7 +157,7 @@
You may be prompted to rename or overwrite directories when using
djtarnt: simply type return to continue (this is harmless).
The precompiled binaries can be unpacked using unzip.exe from info-zip.org
Zip files can be unpacked using unzip.exe from info-zip.org
if you do not already have other tools to do this.
% unzip some.zip
@ -170,7 +219,10 @@
http://www.gnu.org/software/emacs/windows/ntemacs.html
This document serves as an FAQ and a source for further information
about the Windows port and related software packages.
about the Windows port and related software packages. Note that as
of writing, most of the information in that FAQ was for Emacs-21.3
and earlier versions, so some information may not be relevant to
Emacs-22.1.
In addition to the FAQ, there is a mailing list for discussing issues
related to the Windows port of Emacs. For information about the

View file

@ -36,7 +36,7 @@ rem Info-ZIP zip seems to be broken on Windows.
rem It always writes to zip.zip and treats the zipfile argument as one
rem of the files to go in it.
rem zip -9 -r %2-bin-i386 emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp emacs-%1/leim -x emacs.mdp *.pdb *.opt *~ CVS
7z a -tZIP -mx=9 -xr!emacs.mdp -xr!*.pdb -xr!*.opt -xr!*~ -xr!CVS -xr!.arch-inventory %2-bin-i386.zip emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp emacs-%1/leim
7z a -tZIP -mx=9 -xr!emacs.mdp -xr!*.pdb -xr!*.opt -xr!*~ -xr!CVS -xr!.arch-inventory %2-bin-i386.zip emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp emacs-%1/leim emacs-%1/site-lisp
del emacs-%1\README.W32
if not (%4) == () goto end

141
configure vendored
View file

@ -412,10 +412,10 @@ else
fi
test \$exitcode = 0") || {
echo No shell found that supports shell functions.
echo Please tell autoconf@gnu.org about your system,
echo including any error possibly output before this
echo message
echo Please tell bug-autoconf@gnu.org about your system,
echo including any error possibly output before this message.
echo This can help us improve future autoconf versions.
echo Configuration will now proceed without shell functions.
}
@ -1901,7 +1901,7 @@ fi
# Check whether --with-x-toolkit was given.
if test "${with_x_toolkit+set}" = set; then
withval=$with_x_toolkit; case "${withval}" in
y | ye | yes ) val=athena ;;
y | ye | yes ) val=gtk ;;
n | no ) val=no ;;
l | lu | luc | luci | lucid ) val=lucid ;;
a | at | ath | athe | athen | athena ) val=athena ;;
@ -1910,10 +1910,10 @@ if test "${with_x_toolkit+set}" = set; then
* )
{ { echo "$as_me:$LINENO: error: \`--with-x-toolkit=$withval' is invalid\;
this option's value should be \`yes', \`no', \`lucid', \`athena', \`motif' or \`gtk'.
Currently, \`yes', \`athena' and \`lucid' are synonyms." >&5
Currently, \`yes' and \`gtk', and \`athena' and \`lucid' are synonyms." >&5
echo "$as_me: error: \`--with-x-toolkit=$withval' is invalid\;
this option's value should be \`yes', \`no', \`lucid', \`athena', \`motif' or \`gtk'.
Currently, \`yes', \`athena' and \`lucid' are synonyms." >&2;}
Currently, \`yes' and \`gtk', and \`athena' and \`lucid' are synonyms." >&2;}
{ (exit 1); exit 1; }; }
;;
esac
@ -3032,14 +3032,8 @@ _ACEOF
;;
*-sunos5* | *-solaris* )
opsys=sol2-6
## FIXME: make this into a proper fix that checks the compiler type,
## rather than relying on path. Or is /usr/ccs/lib/cpp a bad default now?
if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then
## -Xs prevents spurious whitespace.
NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs"
else
NON_GNU_CPP=/usr/ccs/lib/cpp
fi
emacs_check_sunpro_c=yes
NON_GNU_CPP=/usr/ccs/lib/cpp
;;
* ) opsys=bsd4-2 ;;
esac
@ -4195,6 +4189,72 @@ if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
## If not using gcc, and on Solaris, and no CPP specified, see if
## using a Sun compiler, which needs -Xs to prevent whitespace.
if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
test x"$CPP" = x; then
{ echo "$as_me:$LINENO: checking whether we are using a Sun C compiler" >&5
echo $ECHO_N "checking whether we are using a Sun C compiler... $ECHO_C" >&6; }
if test "${emacs_cv_sunpro_c+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
int
main ()
{
#ifndef __SUNPRO_C
fail;
#endif
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_link") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext &&
$as_test_x conftest$ac_exeext; then
emacs_cv_sunpro_c=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
emacs_cv_sunpro_c=no
fi
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
conftest$ac_exeext conftest.$ac_ext
fi
{ echo "$as_me:$LINENO: result: $emacs_cv_sunpro_c" >&5
echo "${ECHO_T}$emacs_cv_sunpro_c" >&6; }
if test x"$emacs_cv_sunpro_c" = xyes; then
NON_GNU_CPP="$CC -E -Xs"
fi
fi
#### Some systems specify a CPP to use unless we are using GCC.
#### Now that we know whether we are using GCC, we can decide whether
#### to use that one.
@ -4222,7 +4282,6 @@ then
CC="$CC $NON_GCC_TEST_OPTIONS"
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@ -9539,7 +9598,13 @@ case "${window_system}" in
gtk ) with_gtk=yes
USE_X_TOOLKIT=none ;;
no ) USE_X_TOOLKIT=none ;;
* ) USE_X_TOOLKIT=maybe ;;
* )
if test x"$with_gtk" = xyes; then
USE_X_TOOLKIT=none
else
USE_X_TOOLKIT=maybe
fi
;;
esac
;;
mac | none )
@ -10974,7 +11039,8 @@ HAVE_GTK=no
if test "${with_gtk}" = "yes" && test "$USE_X_TOOLKIT" = "gtk"; then
USE_X_TOOLKIT=none
fi
if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then
if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk" || \
test "$USE_X_TOOLKIT" = "maybe"; then
if test "$USE_X_TOOLKIT" != "none" && test "$USE_X_TOOLKIT" != "maybe"; then
{ { echo "$as_me:$LINENO: error: Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}" >&5
echo "$as_me: error: Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}" >&2;}
@ -11035,11 +11101,7 @@ fi
fi
if test "$PKG_CONFIG" = "no" ; then
{ { echo "$as_me:$LINENO: error:
*** The pkg-config script could not be found. Make sure it is in your path, or give the full path to pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog. Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." >&5
echo "$as_me: error:
*** The pkg-config script could not be found. Make sure it is in your path, or give the full path to pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog. Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." >&2;}
{ (exit 1); exit 1; }; }
pkg_check_gtk=no
else
PKG_CONFIG_MIN_VERSION=0.9.0
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
@ -11070,7 +11132,7 @@ echo "${ECHO_T}no" >&6; }
## If we have a custom action on failure, don't print errors, but
## do set a variable so people can do so.
GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$GTK_MODULES"`
echo $GTK_PKG_ERRORS
fi
@ -11082,12 +11144,20 @@ echo "${ECHO_T}no" >&6; }
fi
if test $succeeded = yes; then
:
pkg_check_gtk=yes
else
{ { echo "$as_me:$LINENO: error: Library requirements ($GTK_MODULES) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5
echo "$as_me: error: Library requirements ($GTK_MODULES) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;}
pkg_check_gtk=no
fi
if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
{ { echo "$as_me:$LINENO: error: $GTK_PKG_ERRORS" >&5
echo "$as_me: error: $GTK_PKG_ERRORS" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
if test x"$pkg_check_gtk" = xyes; then
@ -11190,18 +11260,25 @@ fi
done
if test "${GTK_COMPILES}" != "yes"; then
{ { echo "$as_me:$LINENO: error: Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?" >&5
if test "$USE_X_TOOLKIT" != "maybe"; then
{ { echo "$as_me:$LINENO: error: Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?" >&5
echo "$as_me: error: Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?" >&2;}
{ (exit 1); exit 1; }; };
fi
HAVE_GTK=yes
fi
else
HAVE_GTK=yes
cat >>confdefs.h <<\_ACEOF
#define HAVE_GTK 1
_ACEOF
USE_X_TOOLKIT=none
USE_X_TOOLKIT=none
fi
fi
if test "${HAVE_GTK}" = "yes"; then
if test "$with_toolkit_scroll_bars" != no; then
with_toolkit_scroll_bars=yes

View file

@ -84,7 +84,7 @@ AC_ARG_WITH(x-toolkit,
[ --with-x-toolkit=KIT use an X toolkit
(KIT = yes/lucid/athena/motif/gtk/no)],
[ case "${withval}" in
y | ye | yes ) val=athena ;;
y | ye | yes ) val=gtk ;;
n | no ) val=no ;;
l | lu | luc | luci | lucid ) val=lucid ;;
a | at | ath | athe | athen | athena ) val=athena ;;
@ -98,7 +98,7 @@ dnl AC_MSG_ERROR([the `--with-x-toolkit' option is supposed to have a value
dnl which is `yes', `no', `lucid', `athena', `motif' or `open-look'.])
AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid\;
this option's value should be `yes', `no', `lucid', `athena', `motif' or `gtk'.
Currently, `yes', `athena' and `lucid' are synonyms.])
Currently, `yes' and `gtk', and `athena' and `lucid' are synonyms.])
;;
esac
with_x_toolkit=$val
@ -1041,14 +1041,8 @@ dnl see the `changequote' comment above.
;;
*-sunos5* | *-solaris* )
opsys=sol2-6
## FIXME: make this into a proper fix that checks the compiler type,
## rather than relying on path. Or is /usr/ccs/lib/cpp a bad default now?
if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then
## -Xs prevents spurious whitespace.
NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs"
else
NON_GNU_CPP=/usr/ccs/lib/cpp
fi
emacs_check_sunpro_c=yes
NON_GNU_CPP=/usr/ccs/lib/cpp
;;
* ) opsys=bsd4-2 ;;
esac
@ -1284,6 +1278,24 @@ if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
## If not using gcc, and on Solaris, and no CPP specified, see if
## using a Sun compiler, which needs -Xs to prevent whitespace.
if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
test x"$CPP" = x; then
AC_MSG_CHECKING([whether we are using a Sun C compiler])
AC_CACHE_VAL(emacs_cv_sunpro_c,
[AC_TRY_LINK([],
[#ifndef __SUNPRO_C
fail;
#endif
], emacs_cv_sunpro_c=yes, emacs_cv_sunpro_c=no)])
AC_MSG_RESULT($emacs_cv_sunpro_c)
if test x"$emacs_cv_sunpro_c" = xyes; then
NON_GNU_CPP="$CC -E -Xs"
fi
fi
#### Some systems specify a CPP to use unless we are using GCC.
#### Now that we know whether we are using GCC, we can decide whether
#### to use that one.
@ -1877,9 +1889,15 @@ dnl Dont set this for GTK. A lot of tests below assumes Xt when
dnl USE_X_TOOLKIT is set.
USE_X_TOOLKIT=none ;;
no ) USE_X_TOOLKIT=none ;;
dnl If user did not say whether to use a toolkit,
dnl make this decision later: use the toolkit if we have X11R5 or newer.
* ) USE_X_TOOLKIT=maybe ;;
dnl If user did not say whether to use a toolkit, make this decision later:
dnl use the toolkit if we have gtk, or X11R5 or newer.
* )
if test x"$with_gtk" = xyes; then
USE_X_TOOLKIT=none
else
USE_X_TOOLKIT=maybe
fi
;;
esac
;;
mac | none )
@ -2107,7 +2125,8 @@ HAVE_GTK=no
if test "${with_gtk}" = "yes" && test "$USE_X_TOOLKIT" = "gtk"; then
USE_X_TOOLKIT=none
fi
if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then
if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk" || \
test "$USE_X_TOOLKIT" = "maybe"; then
if test "$USE_X_TOOLKIT" != "none" && test "$USE_X_TOOLKIT" != "maybe"; then
AC_MSG_ERROR([Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}]);
fi
@ -2120,7 +2139,15 @@ if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then
PKG_CONFIG="${with_pkg_config_prog}"
fi
dnl Checks for libraries.
PKG_CHECK_MODULES(GTK, $GTK_MODULES)
PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
AC_MSG_ERROR($GTK_PKG_ERRORS)
fi
fi
if test x"$pkg_check_gtk" = xyes; then
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
@ -2130,12 +2157,19 @@ if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then
GTK_COMPILES=no
AC_CHECK_FUNCS(gtk_main, GTK_COMPILES=yes)
if test "${GTK_COMPILES}" != "yes"; then
AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?]);
if test "$USE_X_TOOLKIT" != "maybe"; then
AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?]);
fi
else
HAVE_GTK=yes
AC_DEFINE(HAVE_GTK, 1, [Define to 1 if using GTK.])
USE_X_TOOLKIT=none
fi
HAVE_GTK=yes
AC_DEFINE(HAVE_GTK, 1, [Define to 1 if using GTK.])
USE_X_TOOLKIT=none
fi
if test "${HAVE_GTK}" = "yes"; then
dnl GTK scrollbars resemble toolkit scrollbars a lot, so to avoid
dnl a lot if #ifdef:s, say we have toolkit scrollbars.

View file

@ -1,3 +1,34 @@
2007-06-07 Mark H. Weaver <mhw@netris.org> (tiny change)
* NEWS (set-mark-command-repeat-pop): Fix duplicate entry.
2007-06-07 Michael Olson <mwolson@gnu.org>
* MORE.STUFF: Update eshell URL.
2007-06-06 Carsten Dominik <dominik@science.uva.nl>
* orgcard.tex: Version 4.77.
2007-06-05 Michael Albinus <michael.albinus@gmx.de>
* NEWS: Add socks.el as new package.
2007-06-02 Thien-Thi Nguyen <ttn@gnuvola.org>
* MORE.STUFF (Hideshow): Delete.
(EDB, Go in a buffer): Update urls.
Suggested by CHENG Gao <chenggao@gmail.com>.
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-06-02 CHENG Gao <chenggao@gmail.com>
* MORE.STUFF: Remove dead URL for Fortune, and update URLs for
Hideshow, Org, EDB, and Remember.
2007-05-29 Robert J. Chassell <bob@rattlesnake.com>
* NEWS: Fix instances of `allow' without object.
@ -254,7 +285,7 @@
2007-02-19 Kenichi Handa <handa@m17n.org>
* NEWS (New language environmets): Add "Esperanto".
* NEWS (New language environments): Add "Esperanto".
2007-02-16 Dale Gulledge <dsplat@rochester.rr.com>

View file

@ -63,25 +63,25 @@ You might find bug-fixes or enhancements in these places.
* ERC: IRC client:
<URL:http://www.emacswiki.org/cgi-bin/wiki?EmacsIRCClient>
* EShell: <URL:http://www.newartisans.com/johnw/emacs.html>
* EShell: <URL:http://johnwiegley.com/eshell.html>
* Etags: <URL:ftp://pot.potorti.it/pub/software/unix/etags.tar.gz>
* Expand: <URL:http://w3.teaser.fr/%7Eflepied/expand.el.gz>
* Fortune: <URL:http://www.coling.uni-freiburg.de/%7Eschauer/emacs.html>
* Gnus: <URL:http://www.gnus.org/>
* Ffap: <URL:http://www.mathcs.emory.edu/%7Emic/ftp/emacs/>
(And some addons for it.)
* Hideshow: <URL:http://www.glug.org/people/ttn/software/hideshow/>
* Hideshow: <URL:http://staff.science.uva.nl/~dominik/Tools/org/>
* Ispell: <URL:http://www.eng.utah.edu/~kstevens/ispell-page.html>
* MH-E: <URL:http://mh-e.sourceforge.net/>
* Org mode: <URL:http://staff.science.uva.nl/~dominik/Tools/org/>
* PS mode: <URL:http://odur.let.rug.nl/%7Ekleiweg/postscript/>
* PS-print: <URL:http://www.emacswiki.org/cgi-bin/wiki/PsPrintPackage>
@ -148,7 +148,7 @@ Several are for Debian GNU/Linux in particular.
* ECB: Emacs Code Browser: <URL:http://ecb.sourceforge.net/>
* EDB: database: <URL:http://www.glug.org/people/ttn/software/edb/>
* EDB: database: <URL:http://www.gnuvola.org/software/edb/>
* Ee: categorizing information manager:
<URL:http://www.jurta.org/emacs/ee/>
@ -185,7 +185,7 @@ Several are for Debian GNU/Linux in particular.
page: eiffel-mode.el.
* Go in a buffer: Go Text Protocol client:
<URL:http://www.glug.org/people/ttn/software/personal-elisp/standalone/>
<URL:http://www.gnuvola.org/software/personal-elisp/standalone/>
A modified version is also bundled with GNU Go:
<URL:http://www.gnu.org/software/gnugo/gnugo.html>
@ -228,10 +228,10 @@ Several are for Debian GNU/Linux in particular.
DTD-aware serious SGML/XML editing.
* Quack: <URL:http://www.neilvandyke.org/quack/>
Quack enhances Emacs support for Scheme
Quack enhances Emacs support for Scheme.
* Remember:
<URL:http://sacha.free.net.ph/notebook/wiki/RememberEl.php>
* Remember: <URL:https://gna.org/p/remember-el>
A Personal Information Manager (PIM) for Emacs.
* Session: <URL:http://emacs-session.sourceforge.net/>
Session Management for Emacs.

View file

@ -19,6 +19,8 @@ with a prefix argument or by typing C-u C-h C-n.
* Installation Changes in Emacs 23.1
** The default X toolkit has changed from Lucid to Gtk+.
* Startup Changes in Emacs 23.1
@ -28,9 +30,15 @@ with a prefix argument or by typing C-u C-h C-n.
* Editing Changes in Emacs 23.1
** New command kill-matching-buffers kills buffers whose name matches a regexp.
* New Modes and Packages in Emacs 23.1
** css-mode to edit Cascading Style Sheets.
** socks.el (which had been part of W3) is now part of Emacs.
* Changes in Specialized Modes and Packages in Emacs 23.1

View file

@ -33,6 +33,24 @@ Some specific packages that are known to cause problems are:
** Semantic (used by CEDET, ECB, JDEE): upgrade to latest version.
** cua.el, cua-mode.el: remove old versions.
* Installation Changes in Emacs 22.2
* Changes in Emacs 22.2
** The values of `dired-recursive-deletes' and `dired-recursive-copies'
have been changed to `top'. This means that the user is asked once,
before deleting/copying the indicated directory recursively.
** In Image mode, whenever the displayed image is wider and/or higher
than the window, the usual keys for moving the cursor cause the image
to be scrolled horizontally or vertically instead.
* New Modes and Packages in Emacs 22.2
** The new package css-mode.el provides a major mode for editing CSS files.
** The new package socks.el implements the SOCKS v5 protocol.
* Installation Changes in Emacs 22.1
@ -280,11 +298,6 @@ too. If you want to use just plain `*' as a wildcard, type `*""'; the
doublequotes make no difference in the shell, but they prevent
special treatment in `dired-do-shell-command'.
** A prefix argument is no longer required to repeat a jump to a
previous mark if you set `set-mark-command-repeat-pop' to t. I.e. C-u
C-SPC C-SPC C-SPC ... cycles through the mark ring. Use C-u C-u C-SPC
to set the mark immediately after a jump.
** The info-search bindings on C-h C-f, C-h C-k and C-h C-i
have been moved to C-h F, C-h K and C-h S.
@ -451,8 +464,9 @@ to one second. This feature is turned off by default.
** Mark command changes:
*** A prefix argument is no longer required to repeat a jump to a
previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the
mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump.
previous mark if you set `set-mark-command-repeat-pop' to t. I.e. C-u
C-SPC C-SPC C-SPC ... cycles through the mark ring. Use C-u C-u C-SPC
to set the mark immediately after a jump.
*** Marking commands extend the region when invoked multiple times.

View file

@ -19,6 +19,8 @@ In new X11 versions, xaw3dg-dev does not depend on libxaw-dev, so the
latter need not be installed. As a result, all the source files that
look for include files in X11/Xaw should look in X11/Xaw3d if we are
using Xaw3d.
http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-04/msg00396.html
http://lists.gnu.org/archive/html/emacs-devel/2006-03/msg01150.html ?
** Compute the list of active keymaps *after* reading the first event.
@ -32,8 +34,6 @@ a window doesn't select it.
but if you type M-n you should get the visited file name of the
current buffer.
** describe-face should show an example of text in the face.
** Distribute a bar cursor of width > 1 evenly between the two glyphs
on each side of the bar (what to do at the edges?).
@ -100,9 +100,6 @@ current buffer.
** make back_comment use syntax-ppss or equivalent.
** Improve configure's treatment of NON_GNU_CPP on Solaris.
(patch available for after Emacs 22)
** Consider improving src/sysdep.c's search for a fqdn.
http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00782.html
@ -179,6 +176,7 @@ specified filters, specified timers, and specified hooks.
** Remove the default toggling behavior of minor modes when called from elisp
rather than interactively. This a trivial one-liner in easy-mode.el.
** Create a category of errors called `user-error' for errors which are
typically due to pilot errors and should thus be in debug-ignored-errors.
@ -381,15 +379,6 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
** Allow unknown image types to be rendered via an external program
converting them to, say, PBM (in the same way as PostScript?).
** Display images with alpha channels, such as png, with the current
background color of whatever frame it is displayed in. Currently, we
use the default background color if specified in the png file, or, if
that is unspecified, the background color of the frame in which the
image was first created. Ideally, the image should display the
background color of whichever frame it is being displayed in. The
main complication is that this will require the loading of a new image
object for each different background color.
** Allow displaying an X window from an external program in a buffer,
e.g. to render graphics from Java applets. [gerd and/or wmperry
thought this was feasible.]

View file

@ -1,27 +1,27 @@
% Reference Card for Org Mode
\def\orgversionnumber{4.67}
\def\orgversionnumber{4.77}
\def\versionyear{2007} % latest update
\def\year{2007} % latest copyright year
%
%**start of header
\newcount\columnsperpage
\newcount\letterpaper
% This file can be printed with 1, 2, or 3 columns per page (see below).
% At the moment this card works quite nicely in 3 column format and
% currently takes 2 full pages. It is thus suited to producing one
% double-side page when printed.
% There are a couple of tweaks in the format of this card which make it work
% slightly better on A4 paper. The changes due, I think, to Stephen Eglen,
% are commented below. Revert the changes if you want letter sized paper.
% Try running something like
% tex org-mode-ref.tex; dvips -t landscape org-mode-ref.dvi
% to print the card
% Specify how many you want here.
\columnsperpage=3
% Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc
% Set letterpapaer to 0 for A4 paper, 1 for letter (US) paper. Useful
% only when columnsperpage is 2 or 3.
\letterpaper=0
% Nothing else needs to be changed below this line.
% Copyright (C) 1987, 1993, 1996, 1997, 2001, 2002, 2003, 2004,
% 2005, 2006, 2007 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
% GNU Emacs is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
@ -35,8 +35,8 @@
% You should have received a copy of the GNU General Public License
% along with GNU Emacs; see the file COPYING. If not, write to
% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
% Boston, MA 02111-1307, USA.
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
% Boston, MA 02110-1301, USA.
% This file is intended to be processed by plain TeX (TeX82).
%
@ -54,6 +54,10 @@
% For this you need a dvi device driver that can print sideways.
% Which mode to use is controlled by setting \columnsperpage above.
%
% To compile and print this document:
% tex refcard.tex
% dvips -t landscape refcard.dvi
%
% Author:
% Stephen Gildea
% Internet: gildea@stop.mail-abuse.org
@ -82,20 +86,20 @@
% can be scanned without complaint.
\def\bye{\par\vfill\supereject\end}
\newdimen\intercolumnskip %horizontal space between columns
\newbox\columna %boxes to hold columns already built
\newdimen\intercolumnskip %horizontal space between columns
\newbox\columna %boxes to hold columns already built
\newbox\columnb
\def\ncolumns{\the\columnsperpage}
\message{[\ncolumns\space
\message{[\ncolumns\space
column\if 1\ncolumns\else s\fi\space per page]}
\def\scaledmag#1{ scaled \magstep #1}
% This multi-way format was designed by Stephen Gildea October 1986.
% Note that the 1-column format is fontfamily-independent.
\if 1\ncolumns %one-column format uses normal size
\if 1\ncolumns %one-column format uses normal size
\hsize 4in
\vsize 10in
\voffset -.7in
@ -106,14 +110,14 @@
\footline{\hss\folio}
\def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}}
\else %2 or 3 columns uses prereduced size
\else %2 or 3 columns uses prereduced size
\hsize 3.2in
% FIXME - Try to make things more A4 friendly
% \vsize 7.95in
\vsize 7.65in
% \hoffset -.75in
\hoffset -.25in
\if 1\the\letterpaper
\vsize 7.95in
\else
\vsize 7.65in
\fi
\hoffset -.75in
\voffset -.745in
\font\titlefont=cmbx10 \scaledmag2
\font\headingfont=cmbx10 \scaledmag1
@ -132,13 +136,14 @@
\def\bf{\eightbf}
\def\it{\eightit}
\def\tt{\eighttt}
% FIXME - Try to make things more A4 friendly
% \normalbaselineskip=.8\normalbaselineskip
\normalbaselineskip=.7\normalbaselineskip
\if 1\the\letterpaper
\normalbaselineskip=.8\normalbaselineskip
\else
\normalbaselineskip=.7\normalbaselineskip
\fi
\normallineskip=.8\normallineskip
\normallineskiplimit=.8\normallineskiplimit
\normalbaselines\rm %make definitions take effect
\normalbaselines\rm %make definitions take effect
\if 2\ncolumns
\let\maxcolumn=b
@ -154,16 +159,16 @@
\intercolumnskip=.46in
\def\abc{a}
\output={% %see The TeXbook page 257
\output={% %see The TeXbook page 257
% This next line is useful when designing the layout.
%\immediate\write16{Column \folio\abc\space starts with \firstmark}
\if \maxcolumn\abc \multicolumnformat \global\def\abc{a}
\else\if a\abc
\global\setbox\columna\columnbox \global\def\abc{b}
\global\setbox\columna\columnbox \global\def\abc{b}
%% in case we never use \columnb (two-column mode)
\global\setbox\columnb\hbox to -\intercolumnskip{}
\else
\global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi}
\global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi}
\def\multicolumnformat{\shipout\vbox{\makeheadline
\hbox{\box\columna\hskip\intercolumnskip
\box\columnb\hskip\intercolumnskip\columnbox}
@ -173,7 +178,7 @@
\def\bye{\par\vfill\supereject
\if a\abc \else\null\vfill\eject\fi
\if a\abc \else\null\vfill\eject\fi
\end}
\end}
\fi
% we won't be using math mode much, so redefine some of the characters
@ -225,7 +230,7 @@
\def\<#1>{{\it #1\/}}
% kbd - argument is characters typed literally. Like the Texinfo command.
\def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows
\def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows
% beginexample...endexample - surrounds literal text, such a code example.
% typeset in a typewriter font with line breaks preserved
@ -316,15 +321,15 @@ \section{Structure Editing}
\section{Archiving}
\key{toggle ARCHIVE tag}{C-c C-x C-a}
\metax{mark fully done children}{C-u C-c C-x C-a}
%\metax{mark fully done children}{C-u C-c C-x C-a}
\key{force cycling of an ARCHIVEd tree}{C-TAB}
\key{move subtree to archive file}{C-c C-x C-s}
\metax{move all fully done children}{C-u C-c C-x C-s}
To set archive location for current file, add a line like$^2$:
\vskip -1mm
\beginexample%
\#+ARCHIVE: archfile::* Archived Tasks
\endexample
%\metax{move all fully done children}{C-u C-c C-x C-s}
%To set archive location for current file, add a line like$^2$:
%\vskip -1mm
%\beginexample%
%\#+ARCHIVE: archfile::* Archived Tasks
%\endexample
\section{Filtering and Sparse Trees}
@ -359,13 +364,11 @@ \section{Tables}
{\bf Row and column editing}
\key{move the current column left}{M-LEFT}
\key{move the current column right}{M-RIGHT}
\key{move the current column left}{M-LEFT/RIGHT}
\key{kill the current column}{M-S-LEFT}
\key{insert new column to left of cursor position}{M-S-RIGHT}
\key{move the current row up}{M-UP}
\key{move the current row down}{M-DOWN}
\key{move the current row up/down}{M-UP/DOWN}
\key{kill the current row or horizontal line}{M-S-UP}
\key{insert new row above the current row}{M-S-DOWN}
\key{insert hline below (\kbd{C-u} : above) current row}{C-c -}
@ -378,34 +381,6 @@ \section{Tables}
\key{paste rectangular region}{C-c C-x C-y}
\key{fill paragraph across selected cells}{C-c C-q}
{\bf Calculations} (in combination with Emacs \kbd{calc} package)
\key{set and eval column formula}{C-c =}
\key{set and eval field formula}{C-u C-c =}
\key{edit formulas in separate buffer}{C-c '}
\key{re-apply all stored equations to current line}{C-c *}
\key{re-apply all stored equations to entire table}{C-u C-c *}
\key{iterate table to stability}{C-u C-u C-c *}
%\kbd{TAB}, \kbd{RET} and \kbd{C-c C-c} trigger automatic recalculation
%in lines starting with: {\tt | \# |}.
\key{rotate calculation mark through \# * ! \^ \_ \$}{C-\#}
\key{show line, column, formula reference}{C-c ?}
\key{sum numbers in current column/rectangle}{C-c +}
\key{copy down with increment}{S-RET$^3$}
Formulas typed in field are executed by \kbd{TAB},
\kbd{RET} and \kbd{C-c C-c}. \kbd{=} introduces a column
formula, \kbd{:=} a named-field formula.
\key{Example: Add Col1 and Col2}{=\$1+\$2}
\key{... with printf format specification}{=\$1+\$2;\%.2f}
\key{... with constants from constants.el}{=\$1/\$c/\$cm}
\metax{sum from 2nd to 3rd hline}{:=vsum(@II..@III)}
\key{apply current column formula}{=}
{\bf Miscellaneous}
\key{to limit column width to \kbd{N} characters, use}{...| <N> |...}
@ -413,6 +388,7 @@ \section{Tables}
\key{make current field fully visible}{C-u TAB}
\metax{export as tab-separated file}{M-x org-table-export}
\metax{import tab-separated file}{M-x org-table-import}
\key{sum numbers in current column/rectangle}{C-c +}
{\bf Tables created with the \kbd{table.el} package}
@ -420,6 +396,42 @@ \section{Tables}
\key{recognize existing table.el table}{C-c C-c}
\key{convert table (Org-mode $\leftrightarrow$ table.el)}{C-c ~}
{\bf Spreadsheet}
Formulas typed in field are executed by \kbd{TAB},
\kbd{RET} and \kbd{C-c C-c}. \kbd{=} introduces a column
formula, \kbd{:=} a field formula.
\key{Example: Add Col1 and Col2}{|=\$1+\$2 |}
\key{... with printf format specification}{|=\$1+\$2;\%.2f|}
\key{... with constants from constants.el}{|=\$1/\$c/\$cm |}
\metax{sum from 2nd to 3rd hline}{|:=vsum(@II..@III)|}
\key{apply current column formula}{| = |}
\key{set and eval column formula}{C-c =}
\key{set and eval field formula}{C-u C-c =}
\key{re-apply all stored equations to current line}{C-c *}
\key{re-apply all stored equations to entire table}{C-u C-c *}
\key{iterate table to stability}{C-u C-u C-c *}
\key{rotate calculation mark through \# * ! \^ \_ \$}{C-\#}
\key{show line, column, formula reference}{C-c ?}
\key{toggle coordinate grid}{C-c \}}
\key{toggle formula debugger}{C-c \{}
{\it Formula Editor}
\key{edit formulas in separate buffer}{C-c '}
\key{exit and install new formulas}{C-c C-c}
\key{exit, install, and apply new formulas}{C-u C-c C-c}
\key{abort}{C-c C-q}
\key{toggle reference style}{C-c C-r}
\key{pretty-print Lisp formula}{TAB}
\key{complete Lisp symbol}{M-TAB}
\key{shift reference point}{S-cursor}
\key{shift test line for column references}{M-up/down}
\key{scroll the window showing the table}{M-S-up/down}
\key{toggle table coordinate grid}{C-c \}}
\section{Links}
\key{globally store link to the current location}{C-c l$^1$}
@ -466,24 +478,24 @@ \section{Links}
%\key{\kbd{vm://myself@some.where.org/folder\#id}}{\rm VM remote}
\section{Remember-mode Integration}
% \section{Remember-mode Integration}
See the manual for how to make remember.el use Org-mode links and
files. The note-finishing command \kbd{C-c C-c} will first prompt for
an org file. In the file, find a location with:
% See the manual for how to make remember.el use Org-mode links and
% files. The note-finishing command \kbd{C-c C-c} will first prompt for
% an org file. In the file, find a location with:
\key{rotate subtree visibility}{TAB}
\key{next heading}{DOWN}
\key{previous heading}{UP}
% \key{rotate subtree visibility}{TAB}
% \key{next heading}{DOWN}
% \key{previous heading}{UP}
Insert the note with one of the following:
% Insert the note with one of the following:
\key{as sublevel of heading at cursor}{RET}
\key{right here (cursor not on heading)}{RET}
\key{before current heading}{LEFT}
\key{after current heading}{RIGHT}
\key{shortcut to end of buffer (cursor at buf-start)}{RET}
\key{Abort}{q}
% \key{as sublevel of heading at cursor}{RET}
% \key{right here (cursor not on heading)}{RET}
% \key{before current heading}{LEFT}
% \key{after current heading}{RIGHT}
% \key{shortcut to end of buffer (cursor at buf-start)}{RET}
% \key{Abort}{q}
\section{Completion}
@ -502,16 +514,18 @@ \section{Completion}
\section{TODO Items and Checkboxes}
\key{rotate the state of the current item}{C-c C-t}
\metax{select next/previous state}{S-LEFT/RIGHT}
\metax{select next/previous set}{C-S-LEFT/RIGHT}
\key{view TODO items in a sparse tree}{C-c C-v}
\key{view 3rd TODO keyword's sparse tree}{C-3 C-c C-v}
\key{set the priority of the current item}{C-c , [ABC]}
\key{remove priority cookie from current item}{C-c , SPC}
\key{raise priority of current item}{S-UP$^3$}
\key{lower priority of current item}{S-DOWN$^3$}
\key{raise/lower priority of current item}{S-UP/DOWN$^3$}
%\key{lower priority of current item}{S-DOWN$^3$}
\key{\kbd{\#+SEQ_TODO: TODO TRY BLUFF DONE}}{\rm todo workflow}
\key{\kbd{\#+TYP_TODO: Phil home work DONE}}{\rm todo types}
%\key{\kbd{\#+SEQ_TODO: TODO TRY BLUFF DONE}}{\rm todo workflow}
%\key{\kbd{\#+TYP_TODO: Phil home work DONE}}{\rm todo types}
\key{insert new checkbox item in plain list}{M-S-RET}
\key{toggle checkbox(es) in region/entry/at point}{C-c C-x C-b}
@ -548,13 +562,11 @@ \section{Timestamps}
%\key{... forward/backward one month}{M-S-LEFT/RIGT}
\key{Toggle custom format display for dates/times}{C-c C-x C-t}
\section{Clocking Time}
{\bf Clocking time}
\key{start clock on current item}{C-c C-x C-i}
\key{stop clock on current item}{C-c C-x C-o}
\key{cancel current clock}{C-c C-x C-x}
\key{display total subtree times}{C-c C-x C-d}
\key{remove displayed times}{C-c C-c}
\key{insert/update table with clock report}{C-c C-x C-r}
@ -720,21 +732,6 @@ \section{Exporting and Publishing}
\key{toggle COMMENT keyword on entry}{C-c ;}
%\section{CUA and pc-select compatibility}%
%Configure the variable {\tt org-CUA-compatibility} to make Org-mode
%avoid the \kbd{S-<cursor>} bindings used by these modes. When set,
%Org-mode will change the following keybindings (also in the agenda
%buffer, but not during date selection). See note mark four$^3$
%throughout the reference card.
%%\vskip-mm
%\beginexample
%S-UP $\to$ M-p S-DOWN $\to$ M-n
%S-LEFT $\to$ M-- S-RIGHT $\to$ M-+
%S-RET $\to$ C-S-RET
%\endexample
\section{Dynamic Blocks}
\key{update dynamic block at point}{C-c C-x C-u}
@ -753,10 +750,8 @@ \section{Notes}
\bye
% Local variables:
% compile-command: "tex refcard"
% End:
% arch-tag: 139f6750-5cfc-49ca-92b5-237fe5795290
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:

View file

@ -1,3 +1,7 @@
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-01-30 Kenichi Handa <handa@m17n.org>
* CXTERM-DIC/CCDOSPY.tit, CXTERM-DIC/PY-b5.tit, CXTERM-DIC/SW.tit,

View file

@ -1,3 +1,8 @@
2007-06-07 Glenn Morris <rgm@gnu.org>
* etags.c (print_version): Add `emacs_copyright' string, for
easier automatic updating.
2007-05-18 Francesco Potort,Al(B <pot@gnu.org>
* etags.c: Extern definitions of some more pointer functions for
@ -10,6 +15,10 @@
* makefile.w32-in (VERSION): Increase to 22.1.50.
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-02-26 Francesco Potort,Al(B <pot@gnu.org>
* Makefile.in (etags, ctags): Define EMACS_NAME as "GNU Emacs".

View file

@ -887,8 +887,11 @@ etags --help --lang=ada.");
static void
print_version ()
{
/* Makes it easier to update automatically. */
char emacs_copyright[] = "Copyright (C) 2007 Free Software Foundation, Inc.";
printf ("%s (%s %s)\n", (CTAGS) ? "ctags" : "etags", EMACS_NAME, VERSION);
puts ("Copyright (C) 2007 Free Software Foundation, Inc.");
puts (emacs_copyright);
puts ("This program is distributed under the terms in ETAGS.README");
exit (EXIT_SUCCESS);

View file

@ -1,3 +1,267 @@
2007-06-10 Martin Rudalics <rudalics@gmx.at>
* emacs-lisp/bytecomp.el (byte-compile-find-cl-functions): Match
against file-name-nondirectory.
Fix text on user customization variables.
Reported by Johan Bockg,Ae(Brd <bojohan@dd.chalmers.se>.
2007-06-09 Alfred M. Szmidt <ams@gnu.org> (tiny change)
* mail/rmail.el (rmail-movemail-variant-in-use): Fix doc typo.
2007-06-09 Davis Herring <herring@lanl.gov>
* desktop.el (desktop-minor-mode-table): Doc fix.
2007-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
* textmodes/css-mode.el (css-navigation-syntax-table):
Use set-char-table-range so it also works in the unicode branch.
2007-06-08 Nick Roberts <nickrob@snap.net.nz>
* help-mode.el (help-xref-forward-stack)
(help-xref-stack-forward-item, help-forward-label): New variables.
(help-forward): New button type.
(help-setup-xref): Initialise help-xref-forward-stack.
(help-make-xrefs): Add forward button, if appropriate.
(help-xref-go-back): Push item on forward stack.
(help-xref-go-forward, help-go-forward): New functions.
2007-06-07 Chong Yidong <cyd@stupidchicken.com>
* dired.el (dired-mode-map): Remove spurious separator.
2007-06-07 Juanma Barranquero <lekktu@gmail.com>
* progmodes/ebrowse.el (ebrowse-draw-file-member-info): Doc fix.
* progmodes/mixal-mode.el (mixal-operation-codes-alist):
* progmodes/idlwave.el (idlwave-one-key-select): Fix typo in docstring.
2007-06-07 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el: Version number fixed.
2007-06-07 Glenn Morris <rgm@gnu.org>
* version.el (emacs-copyright): New constant.
* startup.el (fancy-splash-tail): Use emacs-copyright.
* calc/calc-help.el (calc-full-help): Use emacs-copyright.
* emacs-lisp/bytecomp.el (byte-compile-warnings): Add new option
`make-local'.
(byte-compile-warnings-safe-p): Add `make-local'.
(byte-compile-make-variable-buffer-local):
Allow byte-compile-warnings to suppress this warning.
* tutorial.el (tutorial--describe-nonstandard-key): Adjust for new
format of "menu" description.
(tutorial--find-changed-keys): Describe the specific menu a
command is in.
* dframe.el (dframe-frame-parameter, dframe-mouse-event-p):
Rewrite compatibility functions to silence byte-compiler.
2007-06-07 Alfred M. Szmidt <ams@gnu.org> (tiny change)
* mail/rmailsum.el (rmail-summary-save-buffer): New command.
(rmail-summary-mode-map): Add rmail-summary-save-buffer.
2007-06-07 Eric M. Ludlam <eric@siege-engine.com>
* emacs-lisp/checkdoc.el (checkdoc-ispell-lisp-words): Remove "iff".
2007-06-07 Juanma Barranquero <lekktu@gmail.com>
* progmodes/ebrowse.el (ebrowse-member-table):
* textmodes/org.el (org-export-ascii-bullets, org-batch-agenda)
(org-batch-agenda-csv): Fix typos in docstrings.
2007-06-06 Juanma Barranquero <lekktu@gmail.com>
* international/mule-cmds.el (toggle-enable-multibyte-characters)
(sort-coding-systems, search-unencodable-char): Doc fixes.
(coding-system-change-eol-conversion, set-default-coding-systems)
(prefer-coding-system, find-multibyte-characters, princ-list)
(leim-list-entry-regexp, set-input-method, locale-language-names)
(input-method-exit-on-first-char, exit-language-environment-hook)
(locale-charset-language-names): Fix typos in docstrings.
2007-06-06 Juanma Barranquero <lekktu@gmail.com>
* pgg.el (pgg-sign-region, pgg-sign):
* ses.el (ses-call-printer):
* calendar/icalendar.el (icalendar--diarytime-to-isotime):
* textmodes/org.el (org-cycle): Fix typos in docstrings.
2007-06-06 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el
(org-export-region-as-html, org-replace-region-by-html)
(org-number-to-letters, org-table-fedit-finish)
(org-normalize-color, org-table-fedit-ref-right)
(org-date-to-gregorian, org-table-fedit-move)
(org-table-convert-refs-to-rc, org-calendar-holiday)
(org-table-fedit-toggle-ref-type, org-write-agenda)
(org-colgroup-info-to-vline-list, org-agenda-todo-previousset)
(org-defkey, org-encode-for-stdout)
(org-indent-line-function, org-export-as-html-to-buffer)
(org-store-agenda-views, org-update-mode-line)
(org-find-if, org-delete-all)
(org-table-fedit-convert-buffer, org-emphasize)
(org-uniquify, org-table-fedit-lisp-indent)
(org-table-fedit-scroll, org-get-todo-sequence-head)
(org-table-fedit-scroll-down, org-table-fedit-line-down)
(org-table-fedit-ref-left, org-agenda-export-csv-mapper)
(org-table-fedit-toggle-coordinates, org-dvipng-color)
(org-table-fedit-line-up, org-table-fedit-ref-down)
(org-table-formula-from-user, org-mode-flyspell-verify)
(org-cycle-show-empty-lines, org-ctrl-c-ret)
(org-table-formula-to-user, org-diary-to-ical-string)
(orgtbl-export, org-table-fedit-post-command)
(org-closed-in-range, org-shiftcontrolright)
(org-table-convert-refs-to-an, org-table-hline-and-move)
(org-table-formula-less-p, org-format-table-ascii)
(org-agenda-get-sexps, org-shift-refpart)
(org-diary-sexp-entry, org-time-string-to-absolute)
(org-table-show-reference, org-letters-to-number)
(org-fix-agenda-info, org-table-fedit-ref-up)
(org-table-fedit-shift-reference, org-table-fedit-abort)
(org-closest-date, org-shiftcontrolleft)
(org-at-heading-or-item-p, org-rematch-and-replace)
(org-agenda-todo-nextset, org-export-grab-title-from-buffer):
New functions.
(org-table-edit-scroll-down, org-finish-edit-formulas)
(org-table-edit-next-field, org-abort-edit-formulas)
(org-font-lock-level, org-export-find-first-heading-line)
(org-table-edit-line-down, org-table-edit-backward-field)
(org-edit-formula-lisp-indent, org-table-edit-move)
(org-check-log-option, org-this-word)
(org-table-edit-line-up, org-table-edit-formulas-post-command)
(org-agenda-file-to-end, org-expand-file-name)
(org-fake-empty-table-line, org-table-edit-scroll)
(org-toggle-log-option, org-show-reference): Function removed.
(org-inhibit-invisibility, org-table-formula-make-cmp-string):
New defsubsts.
(org-unmodified, org-batch-store-agenda-views)
(org-batch-agenda-csv): New macro.
(org-agenda-export): New customization group.
(org-agenda-skip-deadline-if-done, org-agenda-remove-tags)
(org-highest-priority, org-agenda-exporter-settings)
(org-log-done-with-time, org-replace-disputed-keys)
(org-format-latex-header, org-export-table-header-tags)
(org-cycle-separator-lines, org-export-table-data-tags)
(org-icalendar-include-sexps)
(org-empty-line-terminates-plain-lists)
(org-log-repeat, org-special-ctrl-a)
(org-table-use-standard-references, org-disputed-keys)
(org-export-skip-text-before-1st-heading, org-agenda-with-colors)
(org-agenda-export-html-style): New option.
(org-allow-auto-repeat, org-agenda-remove-tags-when-in-prefix)
(org-CUA-compatible): Option removed.
(org-agenda-structure, org-sexp-date): New face.
(org-todo-keywords-for-agenda, org-not-done-keywords)
(org-planning-or-clock-line-re, org-agenda-name)
(org-table-colgroup-info, org-todo-sets)
(constants-unit-system, org-clock-mode-line-entry)
(org-mode-line-timer, org-table-current-begin-pos)
(org-todo-keywords-1, org-mode-line-string)
(org-table-clean-did-remove-column, org-table-fedit-map)
(org-clock-heading, org-table-buffer-is-an)
(org-agenda-info, org-done-keywords)
(org-done-keywords-for-agenda, org-todo-heads)
(org-todo-kwd-alist, org-clock-start-time): New variable.
(org-todo-kwd-priority-p, org-edit-formulas-map)
(org-repeat-re, org-todo-kwd-max-priority)
(org-version, org-done-string)
(org-table-clean-did-remove-column-1, org-disputed-keys):
Remove Variables.
(org-table-translate-regexp, org-repeat-re, org-version): New consts.
(org-ts-lengths): Constant removed.
(org-follow-gnus-link): Don't ask how many articles to read.
(org-export-find-first-export-line): Rename from
`org-export-find-first-heading'.
Use `org-export-skip-text-before-1st-heading'.
(org-table-fedit-post-command): Rename from
`org-table-edit-formulas-post-command'.
(org-table-fedit-finish): Rename from `org-finish-edit-formulas'.
(org-table-fedit-abort): Rename from `org-abort-edit-formulas'.
(org-table-fedit-lisp-indent): Rename from
`org-edit-formula-lisp-indent'.
(org-table-show-reference): Rename from `org-show-reference'.
(org-table-store-formulas): Use `org-table-formula-less-p'.
(org-table-edit-formulas): Position cursor to current field equation.
(org-update-checkbox-count, org-hide-archived-subtrees)
(org-timestamp-up-day, org-timestamp-down-day)
(org-shiftmetaleft, org-shiftmetaright, org-shiftmetaup)
(org-shiftmetadown, org-metaleft, org-metaright, org-metaup)
(org-metadown, org-shiftup, org-shiftdown, org-shiftright)
(org-shiftleft, org-ctrl-c-ctrl-c, org-context):
Let `org-on-heading-p' also check for invisible heading.
(org-read-date): Match am/pm times.
(org-eval-in-calendar): Fix default date in prompt.
2007-06-05 Chong Yidong <cyd@stupidchicken.com>
* files.el (auto-mode-alist): Separate "ChangeLog.1" and
"ChangeLog.a" entries, giving the latter lower priority.
2007-06-05 Juanma Barranquero <lekktu@gmail.com>
* faces.el (face-id): If the argument is a face alias,
return the ID of the target face.
2007-06-05 Michael Albinus <michael.albinus@gmx.de>
* net/socks.el (top): Remove unnecessary copyright line.
2007-06-04 Chong Yidong <cyd@stupidchicken.com>
* longlines.el (longlines-auto-wrap): Handle argument correctly.
2007-06-04 Michael Albinus <michael.albinus@gmx.de>
* net/socks.el: New file, taken from w3 repository.
(top): Update Copyright. Don't load cl.el.
(all): Replace `case' by `cond', `string-to-int' by
`string-to-number', and `process-kill-without-query' by
`set-process-query-on-exit-flag'.
(socks-char-int): Remove defalias and all occurencies.
2007-06-04 Juanma Barranquero <lekktu@gmail.com>
* progmodes/compile.el (compilation-find-file, compilation-handle-exit):
Fix typos in docstrings.
(compilation-search-path, compilation-buffer-name-function): Doc fixes.
(compilation-finish-function): Fix typo in obsolescence declaration.
2007-06-03 Sam Steingold <sds@gnu.org>
* progmodes/compile.el: Add TIMESTAMP to the LOC data structure, to
handle unending automatic recompilation of changed files (`omake -P').
(compilation-loop): VISITED is now 5th CDR.
(compilation-next-error-function): Set TIMESTAMP.
2007-06-03 Sam Steingold <sds@gnu.org>
* files.el (kill-buffer-ask): New function.
(kill-some-buffers): Use it.
(kill-matching-buffers): New user command.
2007-06-01 David Kastrup <dak@gnu.org>
* dired.el (dired-recursive-deletes, dired-recursive-copies):
Change default to `top'.
2007-05-31 Richard Stallman <rms@gnu.org>
* dired.el (dired-do-flagged-delete, dired-do-delete): Doc fix.
2007-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
* textmodes/css-mode.el: New file.
2007-05-30 Michael Olson <mwolson@gnu.org>
* emacs-lisp/tq.el (tq-queue-pop): Stifle error when a process has
@ -9,8 +273,8 @@
2007-05-29 Martin Rudalics <rudalics@gmx.at>
* textmodes/table.el (table--point-entered-cell-function)
(table--point-left-cell-function): Bind
`inhibit-point-motion-hooks' to t.
(table--point-left-cell-function):
Bind `inhibit-point-motion-hooks' to t.
2007-05-29 Nikolaj Schumacher <n_schumacher@web.de> (tiny change)
@ -35,18 +299,17 @@
* net/tramp.el (top): Make `set-buffer-multibyte' an alias if it
doesn't exist.
(with-parsed-tramp-file-name): Protect debug spec during
compilation.
(with-parsed-tramp-file-name): Protect debug spec during compilation.
(tramp-handle-insert-directory): Check (featurep 'ls-lisp).
(tramp-file-name-p, tramp-file-name-multi-method)
(tramp-file-name-method, tramp-file-name-user)
(tramp-file-name-host, tramp-file-name-localname): New defuns,
replacing defstruct `tramp-file-name'.
(tramp-handle-file-remote-p, tramp-completion-dissect-file-name1)
(tramp-dissect-file-name, tramp-dissect-multi-file-name): Apply
`vector' instead of `make-tramp-file-name'.
(tramp-handle-make-auto-save-file-name): Apply
`tramp-temporary-file-directory' for compatibility reasons.
(tramp-dissect-file-name, tramp-dissect-multi-file-name):
Apply `vector' instead of `make-tramp-file-name'.
(tramp-handle-make-auto-save-file-name):
Apply `tramp-temporary-file-directory' for compatibility reasons.
(tramp-completion-mode): Use `natnump' instead of `wholenump'
because of XEmacs.
(tramp-completion-mode): `last-input-event' is nil when XEmacs is
@ -170,8 +433,8 @@
2007-05-22 Katsumi Yamaoka <yamaoka@jpl.org> (tiny change)
* mail/mail-extr.el (mail-extract-address-components): Recognize
non-ASCII characters except for NBSP as words.
* mail/mail-extr.el (mail-extract-address-components):
Recognize non-ASCII characters except for NBSP as words.
2007-05-21 Trent Buck <trentbuck@gmail.com> (tiny change)
@ -182,8 +445,8 @@
2007-05-21 Chong Yidong <cyd@stupidchicken.com>
* image-mode.el (image-toggle-display): Don't clear image cache.
Only use filename in image spec if the file is readable. Call
image-refresh.
Only use filename in image spec if the file is readable.
Call image-refresh.
* image.el (image-type-from-file-name, image-type): Simplify.
(image-type-auto-detected-p): Don't scan auto-mode-alist.
@ -211,6 +474,10 @@
* files.el (auto-mode-alist): Change the regexp so that
ChangeLog.unicode and ChangeLog.multi-tty use change-log-mode.
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-05-19 Chong Yidong <cyd@stupidchicken.com>
* paren.el (show-paren-function): Undo 2007-04-19 and 2007-04-20
@ -230,7 +497,7 @@
2007-05-18 Rob Riepel <riepel@Stanford.EDU>
* emulation/tpu-edt.el (CSI-map, SS3-map): Moved from global-map to
* emulation/tpu-edt.el (CSI-map, SS3-map): Move from global-map to
tpu-global-map.
(tpu-original-global-map): Variable deleted.
(tpu-control-keys-map): New keymap variable.

View file

@ -271,7 +271,7 @@
2007-04-14 Nick Roberts <nickrob@snap.net.nz>
* tmm.el (tmm-get-keybind): Use copy-sequence to ensure that the
global map isn't modified
global map isn't modified.
2007-04-14 Glenn Morris <rgm@gnu.org>
@ -1413,7 +1413,7 @@
* progmodes/python.el (python-quote-syntax): Don't bother with
syntax-ppss-context.
(python-fill-paragraph): Make sure that fenced-string delimiters that
stand on their own line stay there
stand on their own line stay there.
2007-03-01 Lennart Borgman <lennart.borgman.073@student.lu.se>
@ -2549,7 +2549,7 @@
* type-break.el (type-break-demo-hanoi, type-break-demo-life)
(type-break-demo-boring): Call read-event instead of read-char.
2007-01-19 Daniel Pfeiffer <occitan@esperanto.org> (small change)
2007-01-19 Daniel Pfeiffer <occitan@esperanto.org> (tiny change)
* progmodes/compile.el: Add handling for makepplog.
@ -3414,7 +3414,7 @@
(wdired-search-and-rename): Simplify code.
(wdired-preprocess-files, wdired-preprocess-perms): Make
read-only property of preceding character rear-nonsticky to
avoid that it can be modified. Put old-name and old-link
avoid that it can be modified. Put old-name and old-link
properties on character preceding name and replace
put-text-property by add-text-properties.
(wdired-get-filename, wdired-get-previous-link): Get old-name
@ -3605,7 +3605,7 @@
allout-mode-map. Call it on file load, so the mode docstring
substitutions work even if allout mode has not yet been invoked.
(allout-mode): Use new allout-setup-mode-map to track any keybinding
customizations since the map was last processed. Also, refine the
customizations since the map was last processed. Also, refine the
docstring so it's ship-shape for release.
(allout-default-layout, allout-beginning-of-line-cycles)
(allout-distinctive-bullets-string, allout-use-mode-specific-leader)
@ -5281,7 +5281,7 @@
New C-c key bindings: for `cperl-find-bad-style',
`cperl-pod-spell', `cperl-here-doc-spell', `cperl-narrow-to-here-doc',
`cperl-perdoc', and `cperl-perldoc-at-point'.
CPerl Mode menu changes: "Fix style by spaces", "Imenu on Perl Info"
CPerl Mode menu changes: "Fix style by spaces", "Imenu on Perl Info"
moved, new submenu of Tools with Ispell entries and narrowing.
(cperl-after-sub-regexp): New defsubst.
(cperl-imenu--function-name-regexp-perl): Use `cperl-after-sub-regexp'.
@ -5304,7 +5304,7 @@
(cperl-calculate-indent): Try to allow '_' be non-word char
Support subs with attributes.
(cperl-where-am-i): Quiet (?) a warning.
(cperl-cached-syntax-table) New function.
(cperl-cached-syntax-table): New function.
(cperl-forward-re): Use `cperl-cached-syntax-table'.
(cperl-unwind-to-safe): Recognize `syntax-type' property
changing in a middle of line.
@ -5478,7 +5478,7 @@
(cperl-string-syntax-table): Make { and } not-grouping
(Sometimes they ARE grouping in RExen, but matching them would only
confuse in many situations when they are not)
(beginning-of-buffer): Replace two occurences with goto-char...
(beginning-of-buffer): Replace two occurrences with goto-char...
(cperl-calculate-indent): `char-after' could be nil...
(cperl-find-pods-heres): REx can start after "[" too.
Hightlight (??{}) in RExen too.
@ -5551,7 +5551,7 @@
(cperl-next-interpolated-REx): New function.
(cperl-next-interpolated-REx-0): Likewise.
(cperl-next-interpolated-REx-1): Likewise.
"\C-c\C-x", "\C-c\C-y", "\C-c\C-v": New keybinding for these functions.
"\C-c\C-x", "\C-c\C-y", "\C-c\C-v": New keybinding for these functions.
Perl/Regexp menu: 3 new entries for `cperl-next-interpolated-REx'.
(cperl-praise): Mention finded interpolated RExen.
@ -5797,7 +5797,7 @@
* wid-edit.el (widget-button-click-moves-point): New variable.
(widget-button-click): If widget-button-click-moves-point is
non-nil, set point after performing the button action
non-nil, set point after performing the button action.
* cus-edit.el (custom-mode): Set widget-button-click-moves-point.
@ -6069,8 +6069,8 @@
buffer-read-only isn't set.
(allout-annotate-hidden): Enable topic annotation during copies even
when the buffer is read-only, eg for topic copies. Ensure that the loop
advances, even when the span extends beyond the deletion region.
(allout-toggle-subtree-encryption): Use allout-structure-added-hook
advances, even when the span extends beyond the deletion region.
(allout-toggle-subtree-encryption): Use allout-structure-added-hook
rather than allout-exposure-changed-hook, as a stronger assertion.
(allout-keybindings-list): Add bindings for
allout-copy-line-as-kill and allout-copy-topic-as-kill.
@ -6121,7 +6121,7 @@
* cus-start.el (all): Rename x-gtk-show-chooser-help-text to
x-gtk-file-dialog-help-text. Rename x-use-old-gtk-file-dialog
to x-gtk-use-old-file-dialog
to x-gtk-use-old-file-dialog.
2006-09-18 Richard Stallman <rms@gnu.org>
@ -8116,7 +8116,7 @@
* tumme.el (tumme-create-thumb, tumme-thumbnail-display-external)
(tumme-display-image, tumme-rotate-thumbnail, tumme-rotate-original)
(tumme-set-exif-data, tumme-get-exif-data): Use shell-command-switch.
(tumme-set-exif-data, tumme-get-exif-data): Use shell-command-switch.
* thumbs.el (thumbs-call-convert): Use shell-command-switch.
@ -8652,7 +8652,7 @@
(viper-next-line-at-bol): If point is on a widget or a button, simulate
clicking on that widget/button.
* viper.el (viper-mode): Allow a separate cursor color in Emacs state.
* viper.el (viper-mode): Allow a separate cursor color in Emacs state.
* ediff-diff (ediff-test-patch-utility): Catch errors.
(ediff-actual-diff-options, ediff-actual-diff3-options): New variables.
@ -9203,7 +9203,7 @@
(ewoc--wrap): New func.
(ewoc-create): Take additional arg NOSEP. If nil, wrap node and
header/footer pretty-printers. Save header/footer pretty-printer.
(ewoc-set-hf): Use ewoc's header/footer pretty-printer. *
(ewoc-set-hf): Use ewoc's header/footer pretty-printer.
* pcvs.el (cvs-make-cvs-buffer): Specify NOSEP to `ewoc-create'.
@ -10152,7 +10152,7 @@
2006-05-05 Eli Zaretskii <eliz@gnu.org>
* startup.el (command-line): On MS-Windows, probe "~", not
"~USER", for warning about non-existent home directory
"~USER", for warning about non-existent home directory.
* arc-mode.el (archive-l-e): New optional argument `float' means
generate a float value.
@ -12103,7 +12103,7 @@
preserve window-start.
(speedbar-update-directory-contents): Try to preserve window-start
and window-point.
(speedbar-update-special-contents): Don't move back to start of window.
(speedbar-update-special-contents): Don't move back to start of window.
* progmodes/gdb-ui.el (gdb-speedbar-refresh): Rename from
gdb-speedbar-timer-fn. Use speedbar-refresh instead of
@ -12729,7 +12729,7 @@
(allout-mode): Explicitly specify the mode map in the docstring.
Clarify provision for various write-file hook var names.
Adjusted for invisible-text overlays instead of selective-display.
Adjusted for invisible-text overlays instead of selective-display.
(allout-depth): Really return 0 if not within any topic. This
rectifies `allout-beginning-of-level' and sequence numbering
@ -15747,10 +15747,10 @@
2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org>
* progmodes/cc-fix.el: Add definitions of the macros push and pop
(for GNU Emacs 20.4)
(for GNU Emacs 20.4).
* progmodes/cc-defs.el:
(i): Load cc-fix.elc for `push' and `pop' (for GNU Emacs 20.4)
(i): Load cc-fix.elc for `push' and `pop' (for GNU Emacs 20.4).
* progmodes/cc-cmds.el (c-show-syntactic-information): Change the
highlighting mechanism so it will work in XEmacs too.
@ -16051,7 +16051,7 @@
Introduce an "awk" style, mainly for auto-newline and clean-ups.
* progmodes/cc-align.el: New function c-snug-1line-defun-close
* progmodes/cc-align.el: New function c-snug-1line-defun-close.
* progmodes/cc-cmds.el: In c-electric-brace, add code for new
clean-up one-liner-defun.
@ -16185,7 +16185,7 @@
* progmodes/cc-awk.el: Move regexps for analysing AWK code to near the
start of the file. ^L now separate sections of the file.
(c-awk-non-eol-esc-pair-re, c-awk-blank-or-comment-line-re)
(c-awk-non-eol-esc-pair-re, c-awk-blank-or-comment-line-re)
(c-awk-one-line-possibly-open-string-re)
(c-awk-regexp-one-line-possibly-open-char-class-re)
(c-awk-one-line-possibly-open-regexp-re)
@ -17298,7 +17298,7 @@
2005-11-30 Kim F. Storm <storm@cua.dk>
* emulation/cua-rect.el (cua--rectangle-overlays): Make permanent-local.
* emulation/cua-rect.el (cua--rectangle-overlays): Make permanent-local.
(cua--rectangle-post-command): Cleanup overlays and deactivate mark
after revert-buffer (or anything else which kills all local variables).
@ -18540,7 +18540,7 @@
(pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional PASSPHRASE
argument to all these routines, so the passphrase can be managed
externally and passed in to the system.
(pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache
(pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache
function.
2005-11-04 Dan Nicolaescu <dann@ics.uci.edu>
@ -18762,7 +18762,7 @@
(pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional PASSPHRASE
argument to all these routines, so the passphrase can be managed
externally and passed in to the system.
(pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache
(pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache
function.
2005-11-04 Edward O'Connor <hober0@gmail.com> (tiny change)
@ -19664,14 +19664,14 @@
New defvar. Replaces `dired-move-to-filename-regexp' from dired.el.
* dired.el (dired-move-to-filename-regexp): Remove.
All occurences replaced by `directory-listing-before-filename-regexp'.
All occurrences replaced by `directory-listing-before-filename-regexp'.
* dired-x.el, locate.el, vc.el:
Replace `dired-move-to-filename-regexp' by
`directory-listing-before-filename-regexp'. In vc.el it is
overwritten locally; maybe this can be handled in files.el too.
* net/ange-ftp.el (ange-ftp-date-regexp): Remove. All occurences
* net/ange-ftp.el (ange-ftp-date-regexp): Remove. All occurrences
replaced by `directory-listing-before-filename-regexp'.
2005-10-23 Andreas Schwab <schwab@suse.de>
@ -19923,7 +19923,7 @@
(outlineify-sticky): Use the file vars mechanism.
(allout-inhibit-protection, allout-during-write-cue)
(allout-override-protect, allout-before-change-protect): Remove.
(allout-flag-region, allout-open-topic): Adjust read-only text.
(allout-flag-region, allout-open-topic): Adjust read-only text.
(allout-open-line-not-read-only): Add to facilitate read-only
text based protection.
(allout-kill-line): Revise to adjust read-only text, clue the
@ -20402,7 +20402,7 @@
2005-10-12 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* startup.el (command-line-x-option-alist): -nb => -nbi
* startup.el (command-line-x-option-alist): -nb => -nbi.
2005-10-12 Kim F. Storm <storm@cua.dk>
@ -20580,7 +20580,7 @@
* term/x-win.el: Remove -i, --icon-type from comment.
* startup.el (command-line-x-option-alist): Remove options -i,
-itype, --icon-type, added -nb, --no-bitmap-icon
-itype, --icon-type, added -nb, --no-bitmap-icon.
2005-10-09 Nick Roberts <nickrob@snap.net.nz>
@ -20866,7 +20866,7 @@
* textmodes/ispell.el (ispell-word, ispell-region):
Call ispell-maybe-find-aspell-dictionaries.
(ispell-accept-buffer-local-defs):
Don't call ispell-maybe-find-aspell-dictionaries
Don't call ispell-maybe-find-aspell-dictionaries.
2005-10-04 Richard M. Stallman <rms@gnu.org>
@ -22474,7 +22474,7 @@
* calendar/diary-lib.el (diary-modify-entry-list-string-function):
New hook.
(add-to-diary-list): Call `diary-modify-entry-list-string-function'
(add-to-diary-list): Call `diary-modify-entry-list-string-function'.
2005-08-24 Stefan Monnier <monnier@iro.umontreal.ca>
@ -24379,7 +24379,7 @@
* viper-init.el: Get rid of -face in face names.
* ediff-diff.el (ediff-extract-diffs, ediff-extract-diffs3):
Make it work with longlines mode
Make it work with longlines mode.
* ediff-mult.el (ediff-meta-mode-hook): New variable.
@ -27807,7 +27807,7 @@
(reftex-unhighlight): Use `reftex-delete-overlay'.
(reftex-uniq): Function removed. Use `reftex-uniquify' instead.
(reftex-access-search-path): Use `reftex-uniquify' instead of
`reftex-uniq'
`reftex-uniq'.
* textmodes/reftex-sel.el (reftex-select-unmark): Overlay
`before-string' property modification enables for Emacs as well.
@ -29286,7 +29286,7 @@
* isearch.el (isearch-edit-string): Make the search-ring available for
minibuffer history commands.
(minibuffer-local-isearch-map): Remove bindings for M-p and M-n,
(minibuffer-local-isearch-map): Remove bindings for M-p and M-n,
the default history commands now work just as well.
(isearch-ring-retreat-edit, isearch-ring-advance-edit): Remove.
@ -29446,7 +29446,7 @@
`org-insert-mode-line-in-empty-file' has been set.
(org-agenda-todo, org-agenda-priority): Modify to use
`org-agenda-change-all-lines'.
(org-warning-face): Change color on dark background
(org-warning-face): Change color on dark background.
2005-04-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
@ -29570,7 +29570,7 @@
2005-04-11 Rajesh Vaidheeswarran <rv@gnu.org>
* whitespace.el (whitespace-version): Bump to 3.5
* whitespace.el (whitespace-version): Bump to 3.5.
(whitespace-buffer-leading, whitespace-buffer-trailing):
Invert sense of the test to highlight the whitespace.
@ -29598,7 +29598,7 @@
* dired.el (dired-mode): Use dnd-* instead of x-dnd-*
(dired-dnd-handle-local-file): Call dnd-get-local-file-name.
(dired-dnd-handle-file): Call dnd-get-local-file-uri
(dired-dnd-handle-file): Call dnd-get-local-file-uri.
* cus-edit.el (dnd): New group.
@ -32014,7 +32014,7 @@
(calcFunc-sech, calcFunc-csch, calcFunc-coth, math-sec-raw)
(math-csc-raw, math-cot-raw): New functions.
* calc/calc-rules.el (calc-DistribRules, calc-NegateRules): Add rules.
* calc/calc-rules.el (calc-DistribRules, calc-NegateRules): Add rules.
* calc/calc-undo.el (calc-handle-undo): Remove prefix from
the variable name in a message.
@ -32589,7 +32589,7 @@
2005-01-21 Ren,Ai(B Kyllingstad <listmailxemacs@kyllingstad.com>
* pcomplete.el: Define pcomplete-read-event instead of read-event,
since it's not a complete read-event implementation
since it's not a complete read-event implementation.
2005-01-20 Jay Belanger <belanger@truman.edu>

View file

@ -414,7 +414,7 @@ C-w Describe how there is no warranty for Calc."
(princ (format "GNU Emacs Calculator version %s.\n"
calc-version))
(princ " By Dave Gillespie.\n")
(princ " Copyright (C) 2007 Free Software Foundation, Inc.\n\n")
(princ (format " %s\n\n" emacs-copyright))
(princ "Type `h s' for a more detailed summary.\n")
(princ "Or type `h i' to read the full Calc manual on-line.\n\n")
(princ "Basic keys:\n")

View file

@ -678,7 +678,7 @@ takes care of european-style."
nil)))
(defun icalendar--diarytime-to-isotime (timestring ampmstring)
"Convert a a time like 9:30pm to an iso-conform string like T213000.
"Convert a time like 9:30pm to an iso-conform string like T213000.
In this example the TIMESTRING would be \"9:30\" and the AMPMSTRING
would be \"pm\"."
(if timestring

View file

@ -423,7 +423,7 @@ Furthermore the major mode function must be autoloaded.")
Each entry has the form (NAME RESTORE-FUNCTION).
NAME is the name of the buffer-local variable indicating that the minor
mode is active. RESTORE-FUNCTION is the function to activate the minor mode.
called. RESTORE-FUNCTION nil means don't try to restore the minor mode.
RESTORE-FUNCTION nil means don't try to restore the minor mode.
Only minor modes for which the name of the buffer-local variable
and the name of the minor mode function are different have to be added to
this table. See also `desktop-minor-mode-handlers'."

View file

@ -152,13 +152,11 @@
;;; Compatibility functions
;;
(if (fboundp 'frame-parameter)
(defalias 'dframe-frame-parameter 'frame-parameter)
(defun dframe-frame-parameter (frame parameter)
"Return FRAME's PARAMETER value."
(cdr (assoc parameter (frame-parameters frame)))))
(defun dframe-frame-parameter (frame parameter)
"Return FRAME's PARAMETER value."
(if (fboundp 'frame-parameter)
(frame-parameter frame parameter)
(cdr (assoc parameter (frame-parameters frame))))) ; XEmacs
;;; Variables
@ -887,10 +885,10 @@ Must be bound to event E."
;;; Interactive user functions for the mouse
;;
(if dframe-xemacsp
(defalias 'dframe-mouse-event-p 'button-press-event-p)
(defun dframe-mouse-event-p (event)
"Return t if the event is a mouse related event."
(defun dframe-mouse-event-p (event)
"Return t if the event is a mouse related event."
(if (fboundp 'button-press-event-p)
(button-press-event-p event) ; XEmacs
(if (and (listp event)
(member (event-basic-type event)
'(mouse-1 mouse-2 mouse-3)))

View file

@ -1452,9 +1452,6 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
(define-key map [menu-bar operate]
(cons "Operate" (make-sparse-keymap "Operate")))
(define-key map [menu-bar operate dashes-2]
'("--"))
(define-key map
[menu-bar operate image-dired-delete-tag]
'(menu-item "Delete Image Tag..." image-dired-delete-tag
@ -2362,7 +2359,7 @@ Optional argument means return a file name relative to `default-directory'."
;; Deleting files
(defcustom dired-recursive-deletes nil ; Default only delete empty directories.
(defcustom dired-recursive-deletes 'top ; Default only delete empty directories.
"*Decide whether recursive deletes are allowed.
A value of nil means no recursive deletes.
`always' means delete recursively without asking. This is DANGEROUS!
@ -2410,7 +2407,9 @@ Anything else, ask for each sub-directory."
(defun dired-do-flagged-delete (&optional nomessage)
"In Dired, delete the files flagged for deletion.
If NOMESSAGE is non-nil, we don't display any message
if there are no flagged files."
if there are no flagged files.
`dired-recursive-deletes' controls whether
deletion of non-empty directories is allowed."
(interactive)
(let* ((dired-marker-char dired-del-marker)
(regexp (dired-marker-regexp))
@ -2426,7 +2425,9 @@ if there are no flagged files."
(message "(No deletions requested)")))))
(defun dired-do-delete (&optional arg)
"Delete all marked (or next ARG) files."
"Delete all marked (or next ARG) files.
`dired-recursive-deletes' controls whether
deletion of non-empty directories is allowed."
;; This is more consistent with the file marking feature than
;; dired-do-flagged-delete.
(interactive "P")
@ -3206,7 +3207,7 @@ To be called first in body of `dired-sort-other', etc."
;;;; Drag and drop support
(defcustom dired-recursive-copies nil
(defcustom dired-recursive-copies 'top
"*Decide whether recursive copies are allowed.
A value of nil means no recursive copies.
`always' means copy recursively without asking.

View file

@ -98,9 +98,11 @@
;; `obsolete' (obsolete variables and functions)
;; `noruntime' (calls to functions only defined
;; within `eval-when-compile')
;; `cl-warnings' (calls to CL functions)
;; `cl-functions' (calls to CL functions)
;; `interactive-only' (calls to commands that are
;; not good to call from Lisp)
;; `make-local' (dubious calls to
;; `make-variable-buffer-local')
;; byte-compile-compatibility Whether the compiler should
;; generate .elc files which can be loaded into
;; generic emacs 18.
@ -356,14 +358,16 @@ Elements of the list may be:
cl-functions calls to runtime functions from the CL package (as
distinguished from macros and aliases).
interactive-only
commands that normally shouldn't be called from Lisp code."
commands that normally shouldn't be called from Lisp code.
make-local calls to make-variable-buffer-local that may be incorrect."
:group 'bytecomp
:type `(choice (const :tag "All" t)
(set :menu-tag "Some"
(const free-vars) (const unresolved)
(const callargs) (const redefine)
(const obsolete) (const noruntime)
(const cl-functions) (const interactive-only))))
(const cl-functions) (const interactive-only)
(const make-local))))
(put 'byte-compile-warnings 'safe-local-variable 'byte-compile-warnings-safe-p)
;;;###autoload
(defun byte-compile-warnings-safe-p (x)
@ -374,7 +378,7 @@ Elements of the list may be:
(when (memq e '(free-vars unresolved
callargs redefine
obsolete noruntime
cl-functions interactive-only))
cl-functions interactive-only make-local))
e))
x)
x))))
@ -1344,7 +1348,8 @@ extra args."
(unless byte-compile-cl-functions
(dolist (elt load-history)
(when (and (stringp (car elt))
(string-match "^cl\\>" (car elt)))
(string-match
"^cl\\>" (file-name-nondirectory (car elt))))
(setq byte-compile-cl-functions
(append byte-compile-cl-functions
(cdr elt)))))
@ -3890,7 +3895,8 @@ that suppresses all warnings during execution of BODY."
;; Warn about misuses of make-variable-buffer-local.
(byte-defop-compiler-1 make-variable-buffer-local byte-compile-make-variable-buffer-local)
(defun byte-compile-make-variable-buffer-local (form)
(if (eq (car-safe (car-safe (cdr-safe form))) 'quote)
(if (and (eq (car-safe (car-safe (cdr-safe form))) 'quote)
(memq 'make-local byte-compile-warnings))
(byte-compile-warn
"`make-variable-buffer-local' should be called at toplevel"))
(byte-compile-normal-call form))

View file

@ -263,7 +263,7 @@ system. Possible values are:
(const t)))
(defvar checkdoc-ispell-lisp-words
'("alist" "emacs" "etags" "iff" "keymap" "paren" "regexp" "sexp" "xemacs")
'("alist" "emacs" "etags" "keymap" "paren" "regexp" "sexp" "xemacs")
"List of words that are correct when spell-checking Lisp documentation.")
(defcustom checkdoc-max-keyref-before-warn 10

View file

@ -1,3 +1,8 @@
2007-06-06 Juanma Barranquero <lekktu@gmail.com>
* erc.el (erc-show-channel-key-p, erc-startup-file-list):
Fix typo in docstring.
2007-04-01 Michael Olson <mwolson@gnu.org>
* erc.el (erc-version-string): Release ERC 5.2.

View file

@ -842,7 +842,7 @@ See `erc-server-flood-margin' for other flood-related parameters.")
The first existent and readable one will get executed.
If the filename ends with `.el' it is presumed to be an Emacs Lisp
script and it gets (load)ed. Otherwise is is treated as a bunch of
script and it gets (load)ed. Otherwise it is treated as a bunch of
regular IRC commands."
:group 'erc-scripts
:type '(repeat file))
@ -5756,7 +5756,7 @@ Otherwise, use the `erc-header-line' face."
(function :tag "Call a function")))
(defcustom erc-show-channel-key-p t
"Show the the channel key in the header line."
"Show the channel key in the header line."
:group 'erc-paranoia
:type 'boolean)

View file

@ -292,11 +292,12 @@ Value is FACE."
(defun face-id (face &optional frame)
"Return the internal ID of face with name FACE.
If FACE is a face-alias, return the ID of the target face.
The optional argument FRAME is ignored, since the internal face ID
of a face name is the same for all frames."
(check-face face)
(get face 'face))
(or (get face 'face)
(face-id (get face 'face-alias))))
(defun face-equal (face1 face2 &optional frame)
"Non-nil if faces FACE1 and FACE2 are equal.

View file

@ -1924,7 +1924,7 @@ since only a single case-insensitive search through the alist is made."
("\\.[sS]\\'" . asm-mode)
("\\.asm\\'" . asm-mode)
("[cC]hange\\.?[lL]og?\\'" . change-log-mode)
("[cC]hange[lL]og[-.][-0-9a-z]+\\'" . change-log-mode)
("[cC]hange[lL]og[-.][0-9]+\\'" . change-log-mode)
("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode)
("\\.scm\\.[0-9]*\\'" . scheme-mode)
("\\.[ck]?sh\\'\\|\\.shar\\'\\|/\\.z?profile\\'" . sh-mode)
@ -2012,6 +2012,9 @@ since only a single case-insensitive search through the alist is made."
("[/.]c\\(?:on\\)?f\\(?:i?g\\)?\\(?:\\.[a-zA-Z0-9._-]+\\)?\\'" . conf-mode)
("\\`/etc/\\(?:DIR_COLORS\\|ethers\\|.?fstab\\|.*hosts\\|lesskey\\|login\\.?de\\(?:fs\\|vperm\\)\\|magic\\|mtab\\|pam\\.d/.*\\|permissions\\(?:\\.d/.+\\)?\\|protocols\\|rpc\\|services\\)\\'" . conf-space-mode)
("\\`/etc/\\(?:acpid?/.+\\|aliases\\(?:\\.d/.+\\)?\\|default/.+\\|group-?\\|hosts\\..+\\|inittab\\|ksysguarddrc\\|opera6rc\\|passwd-?\\|shadow-?\\|sysconfig/.+\\)\\'" . conf-mode)
;; ChangeLog.old etc. Other change-log-mode entries are above;
;; this has lower priority to avoid matching changelog.sgml etc.
("[cC]hange[lL]og[-.][-0-9a-z]+\\'" . change-log-mode)
;; either user's dot-files or under /etc or some such
("/\\.?\\(?:gnokiirc\\|kde.*rc\\|mime\\.types\\|wgetrc\\)\\'" . conf-mode)
;; alas not all ~/.*rc files are like this
@ -4389,6 +4392,14 @@ This command is used in the special Dired buffer created by
(message "No files can be recovered from this session now")))
(kill-buffer buffer))))
(defun kill-buffer-ask (buffer)
"Kill buffer if confirmed."
(when (yes-or-no-p
(format "Buffer %s %s. Kill? " (buffer-name buffer)
(if (buffer-modified-p buffer)
"HAS BEEN EDITED" "is unmodified")))
(kill-buffer buffer)))
(defun kill-some-buffers (&optional list)
"Kill some buffers. Asks the user whether to kill each one of them.
Non-interactively, if optional argument LIST is non-nil, it
@ -4403,13 +4414,20 @@ specifies the list of buffers to kill, asking for approval for each one."
; if we killed the base buffer.
(not (string-equal name ""))
(/= (aref name 0) ?\s)
(yes-or-no-p
(format "Buffer %s %s. Kill? "
name
(if (buffer-modified-p buffer)
"HAS BEEN EDITED" "is unmodified")))
(kill-buffer buffer)))
(kill-buffer-ask buffer)))
(setq list (cdr list))))
(defun kill-matching-buffers (regexp &optional internal-too)
"Kill buffers whose name matches the specified regexp.
The optional second argument indicates whether to kill internal buffers too."
(interactive "sKill buffers matching this regular expression: \nP")
(dolist (buffer (buffer-list))
(let ((name (buffer-name buffer)))
(when (and name (not (string-equal name ""))
(or internal-too (/= (aref name 0) ?\s))
(string-match regexp name))
(kill-buffer-ask buffer)))))
(defun auto-save-mode (arg)
"Toggle auto-saving of contents of current buffer.

View file

@ -1,3 +1,34 @@
2007-06-08 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-ems.el (gnus-x-splash): Make it work.
* gnus-start.el (gnus-1): Relax restrictions that prevent gnus-x-splash
from being used.
* gnus-art.el (gnus-article-summary-command-nosave): Correct the order
of the arguments passed to pop-to-buffer.
(gnus-article-read-summary-keys): Ditto.
2007-06-07 Juanma Barranquero <lekktu@gmail.com>
* gnus-art.el (gnus-split-methods): Fix typo in docstring.
2007-06-06 Juanma Barranquero <lekktu@gmail.com>
* gnus-diary.el (gnus-diary-time-format, gnus-summary-sort-by-schedule):
* gnus-sum.el (gnus-summary-highlight):
* mail-source.el (mail-source-delete-old-incoming-confirm):
* nndiary.el (nndiary-reminders): Fix typos in docstrings.
2007-06-04 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art.el (gnus-mime-view-part-externally)
(gnus-mime-view-part-internally): Fix predicate function passed to
completing-read.
* mm-decode.el (mm-image-fit-p): Return t if argument is not an image;
return t if image size is just the same as window size.
2007-05-28 Katsumi Yamaoka <yamaoka@jpl.org>
* message.el (message-pop-to-buffer): Add switch-function argument.
@ -355,7 +386,7 @@
(message-simplify-subject): New function to remove duplicate code.
(message-reply, message-followup): Use it.
(message-simplify-subject-functions): New variable.
(message-strip-subject-encoded-words): New function
(message-strip-subject-encoded-words): New function.
2006-11-08 Wolfgang Jenkner <wjenkner@inode.at> (tiny change)
@ -1195,8 +1226,7 @@
* mm-view.el (mm-fill-flowed): New variable.
(mm-inline-text): Use it.
2006-02-21 Wolfram Fenske <wolfram.fenske@student.uni-magdeburg.de>
(tiny change)
2006-02-21 Wolfram Fenske <wolfram.fenske@student.uni-magdeburg.de> (tiny change)
* nnimap.el (nnimap-request-move-article): Change folder back to
source group before deleting.
@ -1758,7 +1788,7 @@
(pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional 'passphrase'
argument to all these routines, so the passphrase can be managed
externally and passed in to the system.
(pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache
(pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache
function.
2005-10-29 Ken Manheimer <ken.manheimer@gmail.com>
@ -3633,7 +3663,7 @@
* nnmail.el (nnmail-split-fancy-with-parent-ignore-groups)
(nnmail-cache-ignore-groups, nnmail-spool-hook)
(nnmail-split-fancy-match-partial-words)
(nnmail-split-lowercase-expanded):
(nnmail-split-lowercase-expanded): Add :version.
* nndiary.el (nndiary): Add :version.
@ -3909,7 +3939,7 @@
* gnus-int.el (gnus-request-delete-group):
Use gnus-cache-delete-group and gnus-agent-delete-group to keep the
local disk in sync with the server.
(gnus-request-rename-group):
(gnus-request-rename-group):
Use gnus-cache-rename-group and gnus-agent-rename-group to keep the
local disk in sync with the server.
@ -4036,7 +4066,7 @@
* gnus-sum.el (gnus-select-newgroup): Replace inline code with
gnus-agent-possibly-alter-active.
(gnus-adjust-marked-articles): Faster handling of simple lists
(gnus-adjust-marked-articles): Faster handling of simple lists.
2004-10-18 David Edmondson <dme@dme.org>
@ -4179,7 +4209,7 @@
* gnus-fun.el: Require gnus-ems and gnus-util.
* gnus-diary.el (gnus-diary-header-schedule): caddr -> car (cddr
* gnus-diary.el (gnus-diary-header-schedule): caddr -> car (cddr).
* gnus-art.el (gnus-article-edit-mode): Define before first reference.
@ -4262,6 +4292,7 @@
* nnmail.el (nnmail-fancy-expiry-targets)
(nnmail-mail-splitting-charset, nnmail-mail-splitting-decodes):
Add :version.
* nnimap.el (nnimap-split-download-body, nnimap-dont-close)
(nnimap-retrieve-groups-asynchronous): Add :version.
@ -4270,7 +4301,7 @@
* mml.el (mml-content-disposition-parameters)
(mml-insert-mime-headers-always): Add :version.
* mm-util.el (mm-coding-system-priorities):
* mm-util.el (mm-coding-system-priorities): Add :version.
* mm-decode.el (mm-inline-text-html-with-images)
(mm-keep-viewer-alive-types, mm-external-terminal-program)
@ -4327,7 +4358,7 @@
* gnus-srvr.el (gnus-server-browse-in-group-buffer)
(gnus-server-offline-face): Add :version.
* gnus-score.el (gnus-adaptive-word-length-limit):
* gnus-score.el (gnus-adaptive-word-length-limit): Add :version.
* gnus-msg.el (gnus-gcc-externalize-attachments)
(gnus-debug-files, gnus-debug-exclude-variables)
@ -4349,7 +4380,7 @@
* gnus-delay.el (gnus-delay-default-hour): Add :version.
* gnus-cite.el (gnus-cite-blank-line-after-header)
(gnus-article-boring-faces):
(gnus-article-boring-faces): Add :version.
* gnus-art.el (gnus-buttonized-mime-types)
(gnus-inhibit-mime-unbuttonizing)
@ -4413,10 +4444,10 @@
2004-09-10 Teodor Zlatanov <tzz@lifelogs.com>
* nnimap.el (nnimap-open-connection): Allow 'imaps' as a synonym
for the 'imap' port in netrc files
for the 'imap' port in netrc files.
* gnus-registry.el (gnus-registry-trim): Watch out for negatives
in gnus-registry-trim
in gnus-registry-trim.
2004-09-10 Simon Josefsson <jas@extundo.com>

View file

@ -651,7 +651,7 @@ value is a list of possible files to save in if the match is non-nil.
If the match is a string, it is used as a regexp match on the
article. If the match is a symbol, that symbol will be funcalled
from the buffer of the article to be saved with the newsgroup as the
parameter. If it is a list, it will be evaled in the same buffer.
parameter. If it is a list, it will be evalled in the same buffer.
If this form or function returns a string, this string will be used as
a possible file name; and if it returns a non-nil list, that list will
@ -4674,7 +4674,7 @@ specified charset."
(mm-enable-external t))
(if (not (stringp method))
(gnus-mime-view-part-as-type
nil (lambda (type) (stringp (mailcap-mime-info type))))
nil (lambda (types) (stringp (mailcap-mime-info (car types)))))
(when handle
(if (mm-handle-undisplayer handle)
(mm-remove-part handle)
@ -4695,7 +4695,7 @@ If no internal viewer is available, use an external viewer."
(inhibit-read-only t))
(if (not (mm-inlinable-p handle))
(gnus-mime-view-part-as-type
nil (lambda (type) (mm-inlinable-p handle type)))
nil (lambda (types) (mm-inlinable-p handle (car types))))
(when handle
(if (mm-handle-undisplayer handle)
(mm-remove-part handle)
@ -5607,7 +5607,7 @@ not have a face in `gnus-article-boring-faces'."
"Execute the last keystroke in the summary buffer."
(interactive)
(let (func)
(pop-to-buffer gnus-article-current-summary 'norecord)
(pop-to-buffer gnus-article-current-summary nil 'norecord)
(setq func (lookup-key (current-local-map) (this-command-keys)))
(call-interactively func)))
@ -5646,7 +5646,7 @@ not have a face in `gnus-article-boring-faces'."
(member keys nosave-in-article))
(let (func)
(save-window-excursion
(pop-to-buffer gnus-article-current-summary 'norecord)
(pop-to-buffer gnus-article-current-summary nil 'norecord)
;; We disable the pick minor mode commands.
(let (gnus-pick-mode)
(setq func (lookup-key (current-local-map) keys))))
@ -5658,14 +5658,14 @@ not have a face in `gnus-article-boring-faces'."
(call-interactively func)
(setq new-sum-point (point)))
(when (member keys nosave-but-article)
(pop-to-buffer gnus-article-buffer 'norecord)))
(pop-to-buffer gnus-article-buffer nil 'norecord)))
;; These commands should restore window configuration.
(let ((obuf (current-buffer))
(owin (current-window-configuration))
(opoint (point))
win func in-buffer selected new-sum-start new-sum-hscroll)
(cond (not-restore-window
(pop-to-buffer gnus-article-current-summary 'norecord))
(pop-to-buffer gnus-article-current-summary nil 'norecord))
((setq win (get-buffer-window gnus-article-current-summary))
(select-window win))
(t

View file

@ -59,7 +59,7 @@
:group 'gnus-summary-format)
(defcustom gnus-diary-time-format "%a, %b %e %y, %H:%M"
"*Time format to display appointements in nndiary summary buffers.
"*Time format to display appointments in nndiary summary buffers.
Please refer to `format-time-string' for information on possible values."
:type 'string
:group 'gnus-diary)
@ -224,7 +224,7 @@ There are currently two built-in format functions:
(gnus-thread-header h2)))
(defun gnus-summary-sort-by-schedule (&optional reverse)
"Sort nndiary summary buffers by schedule of appointements.
"Sort nndiary summary buffers by schedule of appointments.
Optional prefix (or REVERSE argument) means sort in reverse order."
(interactive "P")
(gnus-summary-sort 'schedule reverse))

View file

@ -172,40 +172,95 @@
(defun gnus-x-splash ()
"Show a splash screen using a pixmap in the current buffer."
(let ((dir (nnheader-find-etc-directory "gnus"))
pixmap file height beg i)
(save-excursion
(switch-to-buffer (gnus-get-buffer-create gnus-group-buffer))
(let ((buffer-read-only nil)
width height)
(erase-buffer)
(when (and dir
(file-exists-p (setq file
(expand-file-name "x-splash" dir))))
(let ((coding-system-for-read 'raw-text)
default-enable-multibyte-characters)
(with-temp-buffer
(insert-file-contents file)
(goto-char (point-min))
(ignore-errors
(setq pixmap (read (current-buffer)))))))
(when pixmap
(make-face 'gnus-splash)
(setq height (/ (car pixmap) (frame-char-height))
width (/ (cadr pixmap) (frame-char-width)))
(set-face-foreground 'gnus-splash "Brown")
(set-face-stipple 'gnus-splash pixmap)
(insert-char ?\n (* (/ (window-height) 2 height) height))
(setq i height)
(while (> i 0)
(insert-char ?\ (* (/ (window-width) 2 width) width))
(setq beg (point))
(insert-char ?\ width)
(set-text-properties beg (point) '(face gnus-splash))
(insert ?\n)
(decf i))
(goto-char (point-min))
(sit-for 0))))))
(interactive)
(unless window-system
(error "`gnus-x-splash' requires running on the window system"))
(switch-to-buffer (gnus-get-buffer-create (if (or (gnus-alive-p)
(interactive-p))
"*gnus-x-splash*"
gnus-group-buffer)))
(let ((inhibit-read-only nil)
(file (nnheader-find-etc-directory "images/gnus/x-splash" t))
pixmap fcw fch width height fringes sbars left yoffset top ls)
(erase-buffer)
(when (and file
(ignore-errors
(let ((coding-system-for-read 'raw-text)
default-enable-multibyte-characters)
(with-temp-buffer
(insert-file-contents file)
(goto-char (point-min))
(setq pixmap (read (current-buffer)))))))
(setq fcw (float (frame-char-width))
fch (float (frame-char-height))
width (/ (car pixmap) fcw)
height (/ (cadr pixmap) fch)
fringes (if (fboundp 'window-fringes)
(eval '(window-fringes))
'(10 11 nil))
sbars (frame-parameter nil 'vertical-scroll-bars))
(cond ((eq sbars 'right)
(setq sbars
(cons 0 (/ (or (frame-parameter nil 'scroll-bar-width) 14)
fcw))))
(sbars
(setq sbars
(cons (/ (or (frame-parameter nil 'scroll-bar-width) 14)
fcw)
0))))
(setq left (- (* (round (/ (1- (/ (+ (window-width)
(car sbars) (cdr sbars)
(/ (+ (or (car fringes) 0)
(or (cadr fringes) 0))
fcw))
width))
2))
width)
(car sbars)
(/ (or (car fringes) 0) fcw))
yoffset (cadr (window-edges))
top (max 0 (- (* (max (if (and tool-bar-mode
(not (featurep 'gtk))
(eq (frame-first-window)
(selected-window)))
1 0)
(round (/ (1- (/ (+ (1- (window-height))
(* 2 yoffset))
height))
2)))
height)
yoffset))
ls (/ (or line-spacing 0) fch)
height (max 0 (- height ls)))
(cond ((>= (- top ls) 1)
(insert
(propertize
" "
'display `(space :width 0 :ascent 100))
"\n"
(propertize
" "
'display `(space :width 0 :height ,(- top ls 1) :ascent 100))
"\n"))
((> (- top ls) 0)
(insert
(propertize
" "
'display `(space :width 0 :height ,(- top ls) :ascent 100))
"\n")))
(if (and (> width 0) (> left 0))
(insert (propertize
" "
'display `(space :width ,left :height ,height :ascent 0)))
(setq width (+ width left)))
(when (> width 0)
(insert (propertize
" "
'display `(space :width ,width :height ,height :ascent 0)
'face `(gnus-splash :stipple ,pixmap))))
(goto-char (if (<= (- top ls) 0) (1- (point)) (point-min)))
(redraw-frame (selected-frame))
(sit-for 0))))
;;; Image functions.

View file

@ -760,8 +760,7 @@ prompt the user for the name of an NNTP server to use."
(cond
((featurep 'xemacs)
(gnus-xmas-splash))
((and window-system
(= (frame-height) (1+ (window-height))))
(window-system
(gnus-x-splash))))
(let ((level (and (numberp arg) (> arg 0) arg))

View file

@ -973,14 +973,14 @@ automatically when it is selected."
. gnus-summary-normal-read))
"*Controls the highlighting of summary buffer lines.
A list of (FORM . FACE) pairs. When deciding how a a particular
A list of (FORM . FACE) pairs. When deciding how a particular
summary line should be displayed, each form is evaluated. The content
of the face field after the first true form is used. You can change
how those summary lines are displayed, by editing the face field.
You can use the following variables in the FORM field.
score: The article's score
score: The article's score.
default: The default article score.
default-high: The default score for high scored articles.
default-low: The default score for low scored articles.

View file

@ -284,7 +284,7 @@ files older than number of days."
(integer :tag "days")))
(defcustom mail-source-delete-old-incoming-confirm t
"*If non-nil, ask for for confirmation before deleting old incoming files.
"*If non-nil, ask for confirmation before deleting old incoming files.
This variable only applies when `mail-source-delete-incoming' is a positive
number."
:version "22.1"

View file

@ -1371,18 +1371,19 @@ be determined."
(defun mm-image-fit-p (handle)
"Say whether the image in HANDLE will fit the current window."
(let ((image (mm-get-image handle)))
(if (fboundp 'glyph-width)
;; XEmacs' glyphs can actually tell us about their width, so
;; lets be nice and smart about them.
(or mm-inline-large-images
(and (< (glyph-width image) (window-pixel-width))
(< (glyph-height image) (window-pixel-height))))
(let* ((size (image-size image))
(w (car size))
(h (cdr size)))
(or mm-inline-large-images
(and (< h (1- (window-height))) ; Don't include mode line.
(< w (window-width))))))))
(or (not image)
(if (fboundp 'glyph-width)
;; XEmacs' glyphs can actually tell us about their width, so
;; lets be nice and smart about them.
(or mm-inline-large-images
(and (<= (glyph-width image) (window-pixel-width))
(<= (glyph-height image) (window-pixel-height))))
(let* ((size (image-size image))
(w (car size))
(h (cdr size)))
(or mm-inline-large-images
(and (<= h (1- (window-height))) ; Don't include mode line.
(<= w (window-width)))))))))
(defun mm-valid-image-format-p (format)
"Say whether FORMAT can be displayed natively by Emacs."

View file

@ -131,7 +131,7 @@ non-nil."
(defcustom nndiary-reminders '((0 . day))
"*Different times when you want to be reminded of your appointements.
"*Different times when you want to be reminded of your appointments.
Diary articles will appear again, as if they'd been just received.
Entries look like (3 . day) which means something like \"Please
@ -145,7 +145,7 @@ not 'century, sorry).
NOTE: the units of measure actually express dates, not durations: if you
use 'week, messages will pop up on Sundays at 00:00 (or Mondays if
`nndiary-week-starts-on-monday' is non-nil) and *not* 7 days before the
appointement, if you use 'month, messages will pop up on the first day of
appointment, if you use 'month, messages will pop up on the first day of
each months, at 00:00 and so on.
If you really want to specify a duration (like 24 hours exactly), you can
@ -155,15 +155,15 @@ scheme might appear somewhat weird at a first glance, it is very powerful.
In order to make this clear, here are some examples:
- '(0 . day): this is the default value of `nndiary-reminders'. It means
pop up the appointements of the day each morning at 00:00.
pop up the appointments of the day each morning at 00:00.
- '(1 . day): this means pop up the appointements the day before, at 00:00.
- '(1 . day): this means pop up the appointments the day before, at 00:00.
- '(6 . hour): for an appointement at 18:30, this would pop up the
appointement message at 12:00.
- '(6 . hour): for an appointment at 18:30, this would pop up the
appointment message at 12:00.
- '(360 . minute): for an appointement at 18:30 and 15 seconds, this would
pop up the appointement message at 12:30."
- '(360 . minute): for an appointment at 18:30 and 15 seconds, this would
pop up the appointment message at 12:30."
:group 'nndiary
:type '(repeat (cons :format "%v\n"
(integer :format "%v")

View file

@ -40,6 +40,7 @@
(define-key help-mode-map [mouse-2] 'help-follow-mouse)
(define-key help-mode-map "\C-c\C-b" 'help-go-back)
(define-key help-mode-map "\C-c\C-f" 'help-go-forward)
(define-key help-mode-map "\C-c\C-c" 'help-follow-symbol)
;; Documentation only, since we use minor-mode-overriding-map-alist.
(define-key help-mode-map "\r" 'help-follow)
@ -52,13 +53,28 @@ To use the element, do (apply FUNCTION ARGS) then goto the point.")
(put 'help-xref-stack 'permanent-local t)
(make-variable-buffer-local 'help-xref-stack)
(defvar help-xref-forward-stack nil
"The stack of used to navigate help forwards after using the back button.
Used by `help-follow' and `help-xref-go-forward'.
An element looks like (POSITION FUNCTION ARGS...).
To use the element, do (apply FUNCTION ARGS) then goto the point.")
(put 'help-xref-forward-stack 'permanent-local t)
(make-variable-buffer-local 'help-xref-forward-stack)
(defvar help-xref-stack-item nil
"An item for `help-follow' in this buffer to push onto `help-xref-stack'.
The format is (FUNCTION ARGS...).")
(put 'help-xref-stack-item 'permanent-local t)
(make-variable-buffer-local 'help-xref-stack-item)
(defvar help-xref-stack-forward-item nil
"An item for `help-go-back' to push onto `help-xref-forward-stack'.
The format is (FUNCTION ARGS...).")
(put 'help-xref-stack-forward-item 'permanent-local t)
(make-variable-buffer-local 'help-xref-stack-forward-item)
(setq-default help-xref-stack nil help-xref-stack-item nil)
(setq-default help-xref-forward-stack nil help-xref-forward-stack-item nil)
(defcustom help-mode-hook nil
"Hook run by `help-mode'."
@ -123,6 +139,11 @@ The format is (FUNCTION ARGS...).")
'help-function #'help-xref-go-back
'help-echo (purecopy "mouse-2, RET: go back to previous help buffer"))
(define-button-type 'help-forward
:supertype 'help-xref
'help-function #'help-xref-go-forward
'help-echo (purecopy "mouse-2, RET: move forward to next help buffer"))
(define-button-type 'help-info
:supertype 'help-xref
'help-function #'info
@ -242,6 +263,9 @@ Commands:
(defvar help-back-label (purecopy "[back]")
"Label to use by `help-make-xrefs' for the go-back reference.")
(defvar help-forward-label (purecopy "[forward]")
"Label to use by `help-make-xrefs' for the go-forward reference.")
(defconst help-xref-symbol-regexp
(purecopy (concat "\\(\\<\\(\\(variable\\|option\\)\\|" ; Link to var
"\\(function\\|command\\)\\|" ; Link to function
@ -286,7 +310,8 @@ because we want to record the \"previous\" position of point so we can
restore it properly when going back."
(with-current-buffer (help-buffer)
(when help-xref-stack-item
(push (cons (point) help-xref-stack-item) help-xref-stack))
(push (cons (point) help-xref-stack-item) help-xref-stack)
(setq help-xref-forward-stack nil))
(when interactive-p
(let ((tail (nthcdr 10 help-xref-stack)))
;; Truncate the stack.
@ -480,6 +505,11 @@ that."
(insert "\n")
(help-insert-xref-button help-back-label 'help-back
(current-buffer))
(insert "\t"))
;; Make a forward-reference in this buffer if appropriate.
(when help-xref-forward-stack
(help-insert-xref-button help-forward-label 'help-forward
(current-buffer))
(insert "\n")))
;; View mode steals RET from us.
(set (make-local-variable 'minor-mode-overriding-map-alist)
@ -598,6 +628,7 @@ help buffer."
"From BUFFER, go back to previous help buffer text using `help-xref-stack'."
(let (item position method args)
(with-current-buffer buffer
(push (cons (point) help-xref-stack-item) help-xref-forward-stack)
(when help-xref-stack
(setq item (pop help-xref-stack)
;; Clear the current item so that it won't get pushed
@ -613,12 +644,39 @@ help buffer."
(set-window-point (get-buffer-window buffer) position)
(goto-char position)))))
(defun help-xref-go-forward (buffer)
"From BUFFER, go forward to next help buffer."
(let (item position method args)
(with-current-buffer buffer
(push (cons (point) help-xref-stack-item) help-xref-stack)
(when help-xref-forward-stack
(setq item (pop help-xref-forward-stack)
;; Clear the current item so that it won't get pushed
;; by the function we're about to call. TODO: We could also
;; push it onto a "forward" stack and add a `forw' button.
help-xref-stack-item nil
position (car item)
method (cadr item)
args (cddr item))))
(apply method args)
(with-current-buffer buffer
(if (get-buffer-window buffer)
(set-window-point (get-buffer-window buffer) position)
(goto-char position)))))
(defun help-go-back ()
"Go back to previous topic in this help buffer."
(interactive)
(if help-xref-stack
(help-xref-go-back (current-buffer))
(error "No previous help buffer")))
(defun help-go-forward ()
"Go back to next topic in this help buffer."
(interactive)
(if help-xref-forward-stack
(help-xref-go-forward (current-buffer))
(error "No next help buffer")))
(defun help-do-xref (pos function args)
"Call the help cross-reference function FUNCTION with args ARGS.

File diff suppressed because it is too large Load diff

View file

@ -368,10 +368,10 @@ Hard newlines are left intact."
With optional argument ARG, turn on line wrapping if and only if ARG is positive.
If automatic line wrapping is turned on, wrap the entire buffer."
(interactive "P")
(and (null arg)
(null longlines-auto-wrap)
(setq arg 1))
(if (> (prefix-numeric-value arg) 0)
(setq arg (if arg
(> (prefix-numeric-value arg) 0)
(not longlines-auto-wrap)))
(if arg
(let ((mod (buffer-modified-p)))
(setq longlines-auto-wrap t)
(longlines-wrap-region (point-min) (point-max))

View file

@ -228,7 +228,7 @@ Otherwise, look for `movemail' in the directories in
`emacs' Means any implementation, compatible with the native Emacs one.
This is the default;
`mailutils' Means GNU mailutils implementation, capable of handling full
mail URLs as the source mailbox;")
mail URLs as the source mailbox.")
;;;###autoload
(defun rmail-movemail-variant-p (&rest variants)

View file

@ -854,6 +854,15 @@ Search, the `unseen' attribute is restored.")
(set-buffer rmail-buffer)
(rmail-show-message msg-num t))))))
(rmail-summary-update-highlight nil)))))
(defun rmail-summary-save-buffer ()
"Save the buffer associated with this RMAIL summary."
(interactive)
(save-window-excursion
(save-excursion
(switch-to-buffer rmail-buffer)
(save-buffer))))
(if rmail-summary-mode-map
nil
@ -923,6 +932,7 @@ Search, the `unseen' attribute is restored.")
'rmail-summary-sort-by-lines)
(define-key rmail-summary-mode-map "\C-c\C-s\C-k"
'rmail-summary-sort-by-labels)
(define-key rmail-summary-mode-map "\C-x\C-s" 'rmail-summary-save-buffer)
)
;;; Menu bar bindings.

View file

@ -1,3 +1,8 @@
2007-06-06 Juanma Barranquero <lekktu@gmail.com>
* mh-mime.el (mh-mh-directive-present-p):
* mh-search.el (mh-index-group-by-folder): Fix typos in docstrings.
2006-11-14 Bill Wohler <wohler@newt.com>
* mh-xface.el (mh-x-image-url-cache-canonicalize): Add `*' to
@ -10,7 +15,7 @@
* mh-e.el (Version, mh-version): Update for release 8.0.3.
* mh-e.el (mh-alias-local-users): Boolean docstrings should start
with "Non-nil means". Perhaps this option should have a -flag
with "Non-nil means". Perhaps this option should have a -flag
appended.
(mh-junk-background): Sync docstring with manual.
@ -62,7 +67,7 @@
* mh-tool-bar.el (mh-tool-bar-define): Fix XEmacs' vector-list so
it refers to the icons in mh-xemacs-icon-map instead of trying to
declare the icons in situ. This allows mh-tool-bar.el to be
compiled under XEmacs. Remove initial value for
compiled under XEmacs. Remove initial value for
mh-tool-bar-folder-buttons, mh-tool-bar-show-buttons,
mh-tool-bar-letter-buttons. The MH-E icons now appear in XEmacs.
In mh-tool-bar-init, check for mh-xemacs-use-tool-bar-flag sooner.
@ -133,7 +138,7 @@
2006-04-26 Eric Ding <ericding@alum.mit.edu>
* mh-e.el (mh-invisible-header-fields-internal): Add entry
"X-Provags-ID:"
"X-Provags-ID:".
2006-04-25 Bill Wohler <wohler@newt.com>
@ -155,9 +160,9 @@
* mh-letter.el (mh-insert-letter): If a message number isn't
given, throw an error rather than using a potentially incorrect
message number (closes SF #1473729). In addition, use the cur
message number (closes SF #1473729). In addition, use the cur
message if mh-sent-from-msg is nil (when sending a message, in
contrast to replying). Move conversion of int to string into
contrast to replying). Move conversion of int to string into
interactive stanza so body can assume variables are of proper
type.
@ -177,15 +182,15 @@
(mh-tool-bar-folder-buttons-set, mh-tool-bar-letter-buttons-set):
Call it (closes SF #1452718).
* mh-folder.el (mh-folder-buttons-init-flag): Delete. Use
* mh-folder.el (mh-folder-buttons-init-flag): Delete. Use
mh-folder-tool-bar-map instead.
(image-load-path): Delete. No longer used.
(image-load-path): Delete. No longer used.
(mh-folder-mode): Moved setting of image-load-path into
mh-tool-bar-folder-buttons-init.
* mh-letter.el (mh-letter-buttons-init-flag): Delete. Use
* mh-letter.el (mh-letter-buttons-init-flag): Delete. Use
mh-letter-tool-bar-map instead.
(image-load-path): Delete. No longer used.
(image-load-path): Delete. No longer used.
(mh-letter-mode): Moved setting of image-load-path into
mh-tool-bar-letter-buttons-init.
@ -202,10 +207,10 @@
* 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
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
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.
@ -218,11 +223,11 @@
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-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-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.
@ -232,11 +237,11 @@
* 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
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
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).
@ -256,9 +261,9 @@
* mh-show.el (font-lock-auto-fontify): Ditto.
* mh-utils.el (mh-speed-flists-cache): Ditto
* mh-utils.el (mh-speed-flists-cache): Ditto.
* mh-acros.el (struct, x, y): No need to wrap defvar with
* 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.
@ -287,7 +292,7 @@
* 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.
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.
@ -297,7 +302,7 @@
* 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-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)
@ -307,7 +312,7 @@
(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-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)
@ -320,18 +325,18 @@
(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-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-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-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)
@ -348,8 +353,7 @@
(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-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)
@ -361,7 +365,7 @@
(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-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
@ -375,7 +379,7 @@
2006-03-31 Bill Wohler <wohler@newt.com>
* mh-e.el (mh-strip-package-version): Move before use to avoid
compiler error. Make macro, also to avoid compiler error.
compiler error. Make macro, also to avoid compiler error.
(mh-defface-compat): Incorporate body into mh-face-data and
delete.
@ -474,7 +478,7 @@
MH-Letter mode, move save-buffer and mh-fully-kill-draft icons in
front of mh-compose-insertion to be consistent with other mailers,
such as Evolution. In MH-Folder mode, move vanilla reply icon to
the left of the other reply icons. Use mail/inbox icon instead of
the left of the other reply icons. Use mail/inbox icon instead of
mail, next-page instead of page-down, delete instead of close,
mail/move instead of mail/refile, data-save instead of execute,
mail/flag-for-followup instead of highlight, contact instead of
@ -513,7 +517,7 @@
2006-03-15 Bill Wohler <wohler@newt.com>
* mh-compat.el (mh-image-load-path-for-library): Fix example by
not recommending that one binds image-load-path. Just defvar it to
not recommending that one binds image-load-path. Just defvar it to
placate compiler and only use it if previously defined.
* mh-e.el (image-load-path): Don't bind!
@ -551,11 +555,11 @@
2006-03-10 Bill Wohler <wohler@newt.com>
* mh-compat.el (mh-replace-regexp-in-string): Pass the literal
flag to replace-in-string. This was badly needed by
flag to replace-in-string. This was badly needed by
mh-quote-pick-expr in order to properly quote subjects when using
/ s on XEmacs (closes SF #1447598).
(mh-image-load-path-for-library): Merged changes from Reiner. Add
no-error argument. If path t, just return directory.
(mh-image-load-path-for-library): Merged changes from Reiner. Add
no-error argument. If path t, just return directory.
* mh-e.el (mh-profile-component): Drop `s' from mhparam
-components for Mailutils compatibility (closes SF #1446985).
@ -598,11 +602,11 @@
(mh-sub-folders): Use new flag to mh-normalize-folder-name to make
this function more robust. It could too easily list the folders in /.
(mh-folder-list): Fix a couple of problems pointed out by Thomas
Baumann. Set folder to nil if empty. Don't append "/" if folder nil.
Baumann. Set folder to nil if empty. Don't append "/" if folder nil.
2006-03-03 Bill Wohler <wohler@newt.com>
* mh-folder.el (mh-folder-mode): Rename mh-image-load-path to
* mh-folder.el (mh-folder-mode): Rename mh-image-load-path to
mh-image-load-path-for-library.
* mh-letter.el (mh-letter-mode): Rename mh-image-load-path to
@ -689,7 +693,7 @@
2006-02-21 Eric Ding <ericding@alum.mit.edu>
* mh-e.el (mh-invisible-header-fields-internal): Add entry
"X-Sasl-enc:"
"X-Sasl-enc:".
2006-02-20 Eric Ding <ericding@alum.mit.edu>
@ -958,7 +962,7 @@
* mh-comp.el (mh-send-sub): Don't find components file in current
directory--this seems to have been a side-effect of commenting out
the use of an old mh-etc variable. Improve error message.
the use of an old mh-etc variable. Improve error message.
2006-01-31 Bill Wohler <wohler@newt.com>
@ -979,7 +983,7 @@
(mh-display-completion-list): Move here from mh-comp.el.
(mh-face-foreground, mh-face-background): Move here from
mh-xface.el.
(mh-write-file-functions): Move here from mh-folder.el
(mh-write-file-functions): Move here from mh-folder.el.
* mh-folder.el (mh-write-file-functions-compat): Move to
mh-compat.el and rename to mh-write-file-functions.
@ -1042,7 +1046,7 @@
mh-adaptive-cmd-note-flag.
* mh-comp.el (sc-cite-original): Remove autoload of "sc" with old
docstring. sc-cite-original is autoloaded via loaddefs.el for all
docstring. sc-cite-original is autoloaded via loaddefs.el for all
supported versions. In addition, the package name "sc" has been
made obsolete by "supercite since at least Emacs 21.
@ -1323,7 +1327,7 @@
* mh-exec.el: Move content into mh-e.el and remove.
* mh-folder.el: New file. Contains mh-folder-mode from mh-e.el.
* mh-folder.el: New file. Contains mh-folder-mode from mh-e.el.
* mh-funcs.el (mh-note-copied, mh-note-printed): Move to new file
mh-scan.el.
@ -1368,7 +1372,7 @@
* mh-print.el: Rearrange for consistency with other files.
* mh-scan.el: New file. Contains scan line constants and utilities
* mh-scan.el: New file. Contains scan line constants and utilities
from XXX, mh-funcs, mh-utils.el.
* mh-search.el: Rearrange for consistency with other files.
@ -1565,7 +1569,7 @@
* mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el;
needed to help remove dependency on mh-utils.
* mh-exec.el: New file. Move process support routines here from
* mh-exec.el: New file. Move process support routines here from
mh-utils.el.
* mh-init.el (mh-utils): Remove require.
@ -1612,7 +1616,7 @@
(mh-kill-folder-suppress-prompt-hooks): Rename mh-index-p to
mh-search-p.
(mh-search-mode-hook): Change group from mh-index to mh-search.
(mh-index-folder): Rename to mh-search-folder. Change group from
(mh-index-folder): Rename to mh-search-folder. Change group from
mh-index to mh-search.
* mh-e.el (mh-folder-font-lock-keywords): Rename mh-index-folder
@ -1667,7 +1671,7 @@
2006-01-12 Bill Wohler <wohler@newt.com>
* mh-search.el: New file containing contents of mh-index.el and
mh-pick.el. C-c C-c launches your mh-index-program; C-c C-p runs
mh-pick.el. C-c C-c launches your mh-index-program; C-c C-p runs
pick. Pick no longer sets the "search" sequence. Instead, it
brings up a folder view that we're accustomed to. (Closes SF
#829207.)
@ -1722,13 +1726,13 @@
* mh-utils.el (mh-x-image-url-cache-canonicalize): Use
url-hexify-string to remove special characters from filenames
(closes SF #1396499). Note that this invalidates the existing
(closes SF #1396499). Note that this invalidates the existing
names in your cache so you might as well remove
~/Mail/.mhe-x-image-cache/* now.
(url-unreserved-chars, url-hexify-string): Define if not defined.
Copied from url-util.el in Emacs22 for Emacs 21.
* mh-buffers.el: New file. Contains constants and code from
* mh-buffers.el: New file. Contains constants and code from
mh-index.el and mh-utils.el.
* mh-alias.el:
@ -1758,7 +1762,7 @@
2006-01-10 Bill Wohler <wohler@newt.com>
* mh-comp.el (mh-insert-letter): If you choose a different folder,
the cur message is used. Sync docstring with manual (closes SF
the cur message is used. Sync docstring with manual (closes SF
#1205890).
* mh-mime.el (mh-compose-forward): Use standard range argument
@ -1776,7 +1780,7 @@
use function mh-variants instead.
(mh-variant-info, mh-variant-mh-info, mh-variant-mu-mh-info)
(mh-variant-nmh-info): Co-locate next to mh-variants, which uses
them. Updated to use mh-file-command-p which is more accurrate
them. Updated to use mh-file-command-p which is more accurrate
than file-executable-p which returns t for directories.
(mh-file-command-p): Move here from mh-utils, since
mh-variant-*-info are the only functions to use it.
@ -1962,8 +1966,8 @@
* mh-customize.el (mh-folder-msg-number): Snow is actually
off-white on low color displays which turns to white when bold.
This is unreadable on white backgrounds. Use snow with min-colors
requirement. Use cyan on low-color displays.
This is unreadable on white backgrounds. Use snow with min-colors
requirement. Use cyan on low-color displays.
* mh-init.el (mh-defface-compat): On low-color displays, delete
the high-color display rather than simply strip the min-colors
@ -1976,13 +1980,13 @@
2006-01-02 Bill Wohler <wohler@newt.com>
* mh-alias.el (mh-alias-grab-from-field): Remove leading * from
docstring. Does this mean something in a defun?
docstring. Does this mean something in a defun?
* mh-customize.el (bw-new-face-to-old, bw-old-face-to-new):
Checkdoc fix.
* mh-e.el (mh-inc-folder): Rename maildrop-name argument to file
so it reads better in docstring and manual. Sync docstring with
so it reads better in docstring and manual. Sync docstring with
manual.
* mh-init.el (mh-defface-compat): Remove trailing space (checkdoc).
@ -2004,7 +2008,7 @@
* mh-e.el (mh-refile-or-write-again, mh-toggle-showing): Ditto.
* mh-funcs.el (mh-pipe-msg, mh-sort-folder, mh-undo-folder)
(mh-store-msg, mh-store-buffer): Ditto
(mh-store-msg, mh-store-buffer): Ditto.
* mh-index.el (mh-index-search, mh-index-do-search)
(mh-index-next-folder, mh-index-sequenced-messages): Ditto.
@ -2014,7 +2018,7 @@
* mh-mime.el (mh-mh-compose-external-compressed-tar)
(mh-mh-compose-external-type, mh-mh-to-mime, mh-mh-to-mime-undo)
(mh-mml-secure-message-sign, mh-mml-secure-message-encrypt)
(mh-mml-secure-message-signencrypt): Ditto
(mh-mml-secure-message-signencrypt): Ditto.
* mh-pick.el (mh-search-folder): Ditto.
@ -2068,7 +2072,7 @@
(mh-scan-date-regexp, mh-scan-rcpt-regexp, mh-scan-body-regexp)
(mh-scan-subject-regexp): Sync docstrings with manual
(mh-scan-format-regexp): Rename to
mh-scan-sent-to-me-sender-regexp. Drop date parenthesized
mh-scan-sent-to-me-sender-regexp. Drop date parenthesized
expression. Make expression more like the others (anchored at the
beginning of line). Sync docstrings with manual.
(mh-folder-font-lock-keywords): Use faces directly rather than
@ -2228,7 +2232,7 @@
(mh-tool-bar-define): Replace toolbar with tool-bar or tool bar
depending on context.
(mh-toolbar-init): Rename to mh-tool-bar-init. Simplify condition
for calling set-specifier. Only look at the value of
for calling set-specifier. Only look at the value of
mh-xemacs-use-tool-bar-flag.
(mh-tool-bar-folder-buttons, mh-tool-bar-letter-buttons):
Sync docstrings with manual.
@ -2501,7 +2505,7 @@
msg argument to message (to make for a better docstring).
* mh-customize.el (mh-redist-full-contents-flag): Convert defvar
to defcustom. Rename by adding -flag.
to defcustom. Rename by adding -flag.
(mh-compose-forward-as-mime-flag)
(mh-compose-letter-function, mh-forward-subject-format)
(mh-insert-x-mailer-flag, mh-reply-default-reply-to)
@ -2623,10 +2627,10 @@
Sync docstring with manual.
* mh-identity.el (mh-assoc-ignore-case): Merge with version in
mh-alias.el and move to mh-acros.el
mh-alias.el and move to mh-acros.el.
* mh-alias.el (mh-assoc-ignore-case): Merge with version in
mh-identity.el and move to mh-acros.el
mh-identity.el and move to mh-acros.el.
* mh-acros.el (mh-assoc-ignore-case): Merge of function from
mh-identity.el and mh-alias.el.
@ -2667,15 +2671,15 @@
mh-mhn-compose-external-compressed-tar to
mh-mh-compose-external-compressed-tar. Rename
mh-mhn-compose-anon-ftp to mh-mh-compose-anon-ftp. Rename
mh-edit-mhn to mh-mh-to-mime. Rename mh-mhn-directive-present-p to
mh-mh-directive-present-p. Rename mh-revert-mhn-edit to
mh-edit-mhn to mh-mh-to-mime. Rename mh-mhn-directive-present-p to
mh-mh-directive-present-p. Rename mh-revert-mhn-edit to
mh-mh-to-mime-undo. Rename mh-gnus-pgp-support-flag to
mh-pgp-support-flag. Rename mh-compose-insertion value from 'mhn
to 'mh.
(mh-insert-signature): Rename mh-mhn-directive-present-p to
mh-mh-directive-present-p.
(mh-send-letter): Rename mh-mhn-directive-present-p to
mh-mh-directive-present-p. Rename mh-edit-mhn to mh-mh-to-mime.
mh-mh-directive-present-p. Rename mh-edit-mhn to mh-mh-to-mime.
(mh-letter-mode-map): Rename mh-edit-mhn to mh-mh-to-mime. Rename
mh-mhn-compose-anon-ftp to mh-mh-compose-anon-ftp. Rename
mh-mhn-compose-external-compressed-tar to
@ -2829,7 +2833,7 @@
* mh-e.el (Version, mh-version): Add +cvs to version.
2005-10-14 Bill Wohler <wohler@newt.com>
2005-10-14 Bill Wohler <wohler@newt.com>
Released MH-E version 7.85.

View file

@ -1667,7 +1667,7 @@ This action can be undone by running \\[undo]."
(defun mh-mh-directive-present-p (&optional begin end)
"Check if the text between BEGIN and END might be a MH-style directive.
The optional argument BEGIN defaults to the beginning of the
buffer, while END defaults to the the end of the buffer."
buffer, while END defaults to the end of the buffer."
(unless begin (setq begin (point-min)))
(unless end (setq end (point-max)))
(save-excursion

View file

@ -1357,7 +1357,7 @@ record is invalid return 'error."
;;;###mh-autoload
(defun mh-index-group-by-folder ()
"Partition the messages based on source folder.
Returns an alist with the the folder names in the car and the cdr
Returns an alist with the folder names in the car and the cdr
being the list of messages originally from that folder."
(save-excursion
(goto-char (point-min))

650
lisp/net/socks.el Normal file
View file

@ -0,0 +1,650 @@
;;; socks.el --- A Socks v5 Client for Emacs
;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002,
;; 2007 Free Software Foundation, Inc.
;; Author: William M. Perry <wmperry@gnu.org>
;; Dave Love <fx@gnu.org>
;; Keywords: comm, firewalls
;; 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 is an implementation of the SOCKS v5 protocol as defined in
;; RFC 1928.
;; TODO
;; - Finish the redirection rules stuff
;; - Implement composition of servers. Recursively evaluate the
;; redirection rules and do SOCKS-over-HTTP and SOCKS-in-SOCKS
(eval-when-compile
(require 'wid-edit))
(require 'custom)
(if (not (fboundp 'split-string))
(defun split-string (string &optional pattern)
"Return a list of substrings of STRING which are separated by PATTERN.
If PATTERN is omitted, it defaults to \"[ \\f\\t\\n\\r\\v]+\"."
(or pattern
(setq pattern "[ \f\t\n\r\v]+"))
(let (parts (start 0))
(while (string-match pattern string start)
(setq parts (cons (substring string start (match-beginning 0)) parts)
start (match-end 0)))
(nreverse (cons (substring string start) parts)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Custom widgets
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-widget 'dynamic-choice 'menu-choice
"A pretty simple dynamic dropdown list"
:format "%[%t%]: %v"
:tag "Network"
:case-fold t
:void '(item :format "invalid (%t)\n")
:value-create 's5-widget-value-create
:value-delete 'widget-children-value-delete
:value-get 'widget-choice-value-get
:value-inline 'widget-choice-value-inline
:mouse-down-action 'widget-choice-mouse-down-action
:action 'widget-choice-action
:error "Make a choice"
:validate 'widget-choice-validate
:match 's5-dynamic-choice-match
:match-inline 's5-dynamic-choice-match-inline)
(defun s5-dynamic-choice-match (widget value)
(let ((choices (funcall (widget-get widget :choice-function)))
current found)
(while (and choices (not found))
(setq current (car choices)
choices (cdr choices)
found (widget-apply current :match value)))
found))
(defun s5-dynamic-choice-match-inline (widget value)
(let ((choices (funcall (widget-get widget :choice-function)))
current found)
(while (and choices (not found))
(setq current (car choices)
choices (cdr choices)
found (widget-match-inline current value)))
found))
(defun s5-widget-value-create (widget)
(let ((choices (funcall (widget-get widget :choice-function)))
(value (widget-get widget :value)))
(if (not value)
(widget-put widget :value (widget-value (car choices))))
(widget-put widget :args choices)
(widget-choice-value-create widget)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Customization support
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defgroup socks nil
"SOCKS Support"
:prefix "socks-"
:group 'processes)
'(defcustom socks-server-aliases nil
"A list of server aliases for use in access control and filtering rules."
:group 'socks
:type '(repeat (list :format "%v"
:value ("" "" 1080 5)
(string :tag "Alias")
(string :tag "Hostname/IP Address")
(integer :tag "Port #")
(choice :tag "SOCKS Version"
(integer :tag "SOCKS v4" :value 4)
(integer :tag "SOCKS v5" :value 5)))))
'(defcustom socks-network-aliases
'(("Anywhere" (netmask "0.0.0.0" "0.0.0.0")))
"A list of network aliases for use in subsequent rules."
:group 'socks
:type '(repeat (list :format "%v"
:value (netmask "" "255.255.255.0")
(string :tag "Alias")
(radio-button-choice
:format "%v"
(list :tag "IP address range"
(const :format "" :value range)
(string :tag "From")
(string :tag "To"))
(list :tag "IP address/netmask"
(const :format "" :value netmask)
(string :tag "IP Address")
(string :tag "Netmask"))
(list :tag "Domain Name"
(const :format "" :value domain)
(string :tag "Domain name"))
(list :tag "Unique hostname/IP address"
(const :format "" :value exact)
(string :tag "Hostname/IP Address"))))))
'(defun s5-servers-filter ()
(if socks-server-aliases
(mapcar (lambda (x) (list 'const :tag (car x) :value (car x))) s5-server-aliases)
'((const :tag "No aliases defined" :value nil))))
'(defun s5-network-aliases-filter ()
(mapcar (lambda (x) (list 'const :tag (car x) :value (car x)))
socks-network-aliases))
'(defcustom socks-redirection-rules
nil
"A list of redirection rules."
:group 'socks
:type '(repeat (list :format "%v"
:value ("Anywhere" nil)
(dynamic-choice :choice-function s5-network-aliases-filter
:tag "Destination network")
(radio-button-choice
:tag "Connection type"
(const :tag "Direct connection" :value nil)
(dynamic-choice :format "%t: %[%v%]"
:choice-function s5-servers-filter
:tag "Proxy chain via")))))
(defcustom socks-server
(list "Default server" "socks" 1080 5)
""
:group 'socks
:type '(list
(string :format "" :value "Default server")
(string :tag "Server")
(integer :tag "Port")
(radio-button-choice :tag "SOCKS Version"
:format "%t: %v"
(const :tag "SOCKS v4 " :format "%t" :value 4)
(const :tag "SOCKS v5" :format "%t" :value 5))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Get down to the nitty gritty
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defconst socks-version 5)
(defvar socks-debug nil)
;; Common socks v5 commands
(defconst socks-connect-command 1)
(defconst socks-bind-command 2)
(defconst socks-udp-associate-command 3)
;; Miscellaneous other socks constants
(defconst socks-authentication-null 0)
(defconst socks-authentication-failure 255)
;; Response codes
(defconst socks-response-success 0)
(defconst socks-response-general-failure 1)
(defconst socks-response-access-denied 2)
(defconst socks-response-network-unreachable 3)
(defconst socks-response-host-unreachable 4)
(defconst socks-response-connection-refused 5)
(defconst socks-response-ttl-expired 6)
(defconst socks-response-cmd-not-supported 7)
(defconst socks-response-address-not-supported 8)
(defvar socks-errors
'("Succeeded"
"General SOCKS server failure"
"Connection not allowed by ruleset"
"Network unreachable"
"Host unreachable"
"Connection refused"
"Time-to-live expired"
"Command not supported"
"Address type not supported"))
;; The socks v5 address types
(defconst socks-address-type-v4 1)
(defconst socks-address-type-name 3)
(defconst socks-address-type-v6 4)
;; Base variables
(defvar socks-timeout 5)
(defvar socks-connections (make-hash-table :size 13))
;; Miscellaneous stuff for authentication
(defvar socks-authentication-methods nil)
(defvar socks-username (user-login-name))
(defvar socks-password nil)
(defun socks-register-authentication-method (id desc callback)
(let ((old (assq id socks-authentication-methods)))
(if old
(setcdr old (cons desc callback))
(setq socks-authentication-methods
(cons (cons id (cons desc callback))
socks-authentication-methods)))))
(defun socks-unregister-authentication-method (id)
(let ((old (assq id socks-authentication-methods)))
(if old
(setq socks-authentication-methods
(delq old socks-authentication-methods)))))
(socks-register-authentication-method 0 "No authentication" 'identity)
(defun socks-build-auth-list ()
(let ((num 0)
(retval ""))
(mapcar
(function
(lambda (x)
(if (fboundp (cdr (cdr x)))
(setq retval (format "%s%c" retval (car x))
num (1+ num)))))
(reverse socks-authentication-methods))
(format "%c%s" num retval)))
(defconst socks-state-waiting-for-auth 0)
(defconst socks-state-submethod-negotiation 1)
(defconst socks-state-authenticated 2)
(defconst socks-state-waiting 3)
(defconst socks-state-connected 4)
(defmacro socks-wait-for-state-change (proc htable cur-state)
(`
(while (and (= (gethash 'state (, htable)) (, cur-state))
(memq (process-status (, proc)) '(run open)))
(accept-process-output (, proc) socks-timeout))))
(defun socks-filter (proc string)
(let ((info (gethash proc socks-connections))
state version desired-len)
(or info (error "socks-filter called on non-SOCKS connection %S" proc))
(setq state (gethash 'state info))
(cond
((= state socks-state-waiting-for-auth)
(puthash 'scratch (concat string (gethash 'scratch info)) info)
(setq string (gethash 'scratch info))
(if (< (length string) 2)
nil ; We need to spin some more
(puthash 'authtype (aref string 1) info)
(puthash 'scratch (substring string 2 nil) info)
(puthash 'state socks-state-submethod-negotiation info)))
((= state socks-state-submethod-negotiation)
)
((= state socks-state-authenticated)
)
((= state socks-state-waiting)
(puthash 'scratch (concat string (gethash 'scratch info)) info)
(setq string (gethash 'scratch info))
(setq version (gethash 'server-protocol info))
(cond
((equal version 'http)
(if (not (string-match "\r\n\r\n" string))
nil ; Need to spin some more
(puthash 'state socks-state-connected info)
(puthash 'reply 0 info)
(puthash 'response string info)))
((equal version 4)
(if (< (length string) 2)
nil ; Can't know how much to read yet
(setq desired-len
(+ 4 ; address length
2 ; port
2 ; initial data
))
(if (< (length string) desired-len)
nil ; need to spin some more
(let ((response (aref string 1)))
(if (= response 90)
(setq response 0))
(puthash 'state socks-state-connected info)
(puthash 'reply response info)
(puthash 'response string info)))))
((equal version 5)
(if (< (length string) 4)
nil
(setq desired-len
(+ 6 ; Standard socks header
(cond
((= (aref string 3) socks-address-type-v4) 4)
((= (aref string 3) socks-address-type-v6) 16)
((= (aref string 3) socks-address-type-name)
(if (< (length string) 5)
255
(+ 1 (aref string 4)))))))
(if (< (length string) desired-len)
nil ; Need to spin some more
(puthash 'state socks-state-connected info)
(puthash 'reply (aref string 1) info)
(puthash 'response string info))))))
((= state socks-state-connected)
)
)
)
)
(defun socks-open-connection (server-info)
(interactive)
(save-excursion
(let ((proc (socks-original-open-network-stream "socks"
nil
(nth 1 server-info)
(nth 2 server-info)))
(info (make-hash-table :size 13))
(authtype nil)
version)
;; Initialize process and info about the process
(set-process-filter proc 'socks-filter)
(set-process-query-on-exit-flag proc nil)
(puthash proc info socks-connections)
(puthash 'state socks-state-waiting-for-auth info)
(puthash 'authtype socks-authentication-failure info)
(puthash 'server-protocol (nth 3 server-info) info)
(puthash 'server-name (nth 1 server-info) info)
(setq version (nth 3 server-info))
(cond
((equal version 'http)
;; Don't really have to do any connection setup under http
nil)
((equal version 4)
;; Don't really have to do any connection setup under v4
nil)
((equal version 5)
;; Need to handle all the authentication crap under v5
;; Send what we think we can handle for authentication types
(process-send-string proc (format "%c%s" socks-version
(socks-build-auth-list)))
;; Basically just do a select() until we change states.
(socks-wait-for-state-change proc info socks-state-waiting-for-auth)
(setq authtype (gethash 'authtype info))
(cond
((= authtype socks-authentication-null)
(and socks-debug (message "No authentication necessary")))
((= authtype socks-authentication-failure)
(error "No acceptable authentication methods found."))
(t
(let* ((auth-type (gethash 'authtype info))
(auth-handler (assoc auth-type socks-authentication-methods))
(auth-func (and auth-handler (cdr (cdr auth-handler))))
(auth-desc (and auth-handler (car (cdr auth-handler)))))
(set-process-filter proc nil)
(if (and auth-func (fboundp auth-func)
(funcall auth-func proc))
nil ; We succeeded!
(delete-process proc)
(error "Failed to use auth method: %s (%d)"
(or auth-desc "Unknown") auth-type))
)
)
)
(puthash 'state socks-state-authenticated info)
(set-process-filter proc 'socks-filter)))
proc)))
(defun socks-send-command (proc command atype address port)
(let ((addr (cond
((or (= atype socks-address-type-v4)
(= atype socks-address-type-v6))
address)
((= atype socks-address-type-name)
(format "%c%s" (length address) address))
(t
(error "Unkown address type: %d" atype))))
(info (gethash proc socks-connections))
request version)
(or info (error "socks-send-command called on non-SOCKS connection %S"
proc))
(puthash 'state socks-state-waiting info)
(setq version (gethash 'server-protocol info))
(cond
((equal version 'http)
(setq request (format (eval-when-compile
(concat
"CONNECT %s:%d HTTP/1.0\r\n"
"User-Agent: Emacs/SOCKS v1.0\r\n"
"\r\n"))
(cond
((equal atype socks-address-type-name) address)
(t
(error "Unsupported address type for HTTP: %d" atype)))
port)))
((equal version 4)
(setq request (format
"%c%c%c%c%s%s%c"
version ; version
command ; command
(lsh port -8) ; port, high byte
(- port (lsh (lsh port -8) 8)) ; port, low byte
addr ; address
(user-full-name) ; username
0 ; terminate username
)))
((equal version 5)
(setq request (format
"%c%c%c%c%s%c%c"
version ; version
command ; command
0 ; reserved
atype ; address type
addr ; address
(lsh port -8) ; port, high byte
(- port (lsh (lsh port -8) 8)) ; port, low byte
)))
(t
(error "Unknown protocol version: %d" version)))
(process-send-string proc request)
(socks-wait-for-state-change proc info socks-state-waiting)
(process-status proc)
(if (= (or (gethash 'reply info) 1) socks-response-success)
nil ; Sweet sweet success!
(delete-process proc)
(error "SOCKS: %s" (nth (or (gethash 'reply info) 1) socks-errors)))
proc))
;; Replacement functions for open-network-stream, etc.
(defvar socks-noproxy nil
"*List of regexps matching hosts that we should not socksify connections to")
(defun socks-find-route (host service)
(let ((route socks-server)
(noproxy socks-noproxy))
(while noproxy
(if (eq ?! (aref (car noproxy) 0))
(if (string-match (substring (car noproxy) 1) host)
(setq noproxy nil))
(if (string-match (car noproxy) host)
(setq route nil
noproxy nil)))
(setq noproxy (cdr noproxy)))
route))
(defvar socks-override-functions nil
"*Whether to overwrite the open-network-stream function with the SOCKSified
version.")
(if (fboundp 'socks-original-open-network-stream)
nil ; Do nothing, we've been here already
(defalias 'socks-original-open-network-stream
(symbol-function 'open-network-stream))
(if socks-override-functions
(defalias 'open-network-stream 'socks-open-network-stream)))
(defvar socks-services-file "/etc/services")
(defvar socks-tcp-services (make-hash-table :size 13 :test 'equal))
(defvar socks-udp-services (make-hash-table :size 13 :test 'equal))
(defun socks-parse-services ()
(if (not (and (file-exists-p socks-services-file)
(file-readable-p socks-services-file)))
(error "Could not find services file: %s" socks-services-file))
(save-excursion
(clrhash socks-tcp-services)
(clrhash socks-udp-services)
(set-buffer (get-buffer-create " *socks-tmp*"))
(erase-buffer)
(insert-file-contents socks-services-file)
;; Nuke comments
(goto-char (point-min))
(while (re-search-forward "#.*" nil t)
(replace-match ""))
;; Nuke empty lines
(goto-char (point-min))
(while (re-search-forward "^[ \t\n]+" nil t)
(replace-match ""))
;; Now find all the lines
(goto-char (point-min))
(let (name port type)
(while (re-search-forward "^\\([^ \t]+\\)[ \t]+\\([0-9]+\\)/\\([a-z]+\\)"
nil t)
(setq name (downcase (match-string 1))
port (string-to-number (match-string 2))
type (downcase (match-string 3)))
(puthash name port (if (equal type "udp")
socks-udp-services
socks-tcp-services))))))
(defun socks-find-services-entry (service &optional udp)
"Return the port # associated with SERVICE"
(if (= (hash-table-count socks-tcp-services) 0)
(socks-parse-services))
(gethash (downcase service)
(if udp socks-udp-services socks-tcp-services)))
(defun socks-open-network-stream (name buffer host service)
(let* ((route (socks-find-route host service))
proc info version atype)
(if (not route)
(socks-original-open-network-stream name buffer host service)
(setq proc (socks-open-connection route)
info (gethash proc socks-connections)
version (gethash 'server-protocol info))
(cond
((equal version 4)
(setq host (socks-nslookup-host host))
(if (not (listp host))
(error "Could not get IP address for: %s" host))
(setq host (apply 'format "%c%c%c%c" host))
(setq atype socks-address-type-v4))
(t
(setq atype socks-address-type-name)))
(socks-send-command proc
socks-connect-command
atype
host
(if (stringp service)
(socks-find-services-entry service)
service))
(puthash 'buffer buffer info)
(puthash 'host host info)
(puthash 'service host info)
(set-process-filter proc nil)
(set-process-buffer proc (if buffer (get-buffer-create buffer)))
proc)))
;; Authentication modules go here
;; Basic username/password authentication, ala RFC 1929
(socks-register-authentication-method 2 "Username/Password"
'socks-username/password-auth)
(defconst socks-username/password-auth-version 1)
(defun socks-username/password-auth-filter (proc str)
(let ((info (gethash proc socks-connections))
state desired-len)
(or info (error "socks-filter called on non-SOCKS connection %S" proc))
(setq state (gethash 'state info))
(puthash 'scratch (concat (gethash 'scratch info) str) info)
(if (< (length (gethash 'scratch info)) 2)
nil
(puthash 'password-auth-status (aref (gethash 'scratch info) 1) info)
(puthash 'state socks-state-authenticated info))))
(defun socks-username/password-auth (proc)
(let* ((info (gethash proc socks-connections))
(state (gethash 'state info)))
(if (not socks-password)
(setq socks-password (read-passwd
(format "Password for %s@%s: "
socks-username
(gethash 'server-name info)))))
(puthash 'scratch "" info)
(set-process-filter proc 'socks-username/password-auth-filter)
(process-send-string proc
(format "%c%c%s%c%s"
socks-username/password-auth-version
(length socks-username)
socks-username
(length socks-password)
socks-password))
(socks-wait-for-state-change proc info state)
(= (gethash 'password-auth-status info) 0)))
;; More advanced GSS/API stuff, not yet implemented - volunteers?
;; (socks-register-authentication-method 1 "GSS/API" 'socks-gssapi-auth)
(defun socks-gssapi-auth (proc)
nil)
;; CHAP stuff
;; (socks-register-authentication-method 3 "CHAP" 'socks-chap-auth)
(defun socks-chap-auth (proc)
nil)
;; CRAM stuff
;; (socks-register-authentication-method 5 "CRAM" 'socks-cram-auth)
(defun socks-cram-auth (proc)
nil)
(defcustom socks-nslookup-program "nslookup"
"*If non-NIL then a string naming the nslookup program."
:type '(choice (const :tag "None" :value nil) string)
:group 'socks)
(defun socks-nslookup-host (host)
"Attempt to resolve the given HOSTNAME using nslookup if possible."
(interactive "sHost: ")
(if socks-nslookup-program
(let ((proc (start-process " *nslookup*" " *nslookup*"
socks-nslookup-program host))
(res host))
(set-process-query-on-exit-flag proc nil)
(save-excursion
(set-buffer (process-buffer proc))
(while (progn
(accept-process-output proc)
(memq (process-status proc) '(run open))))
(goto-char (point-min))
(if (re-search-forward "Name:.*\nAddress\\(es\\)?: *\\([0-9.]+\\)$" nil t)
(progn
(setq res (buffer-substring (match-beginning 2)
(match-end 2))
res (mapcar 'string-to-int (split-string res "\\.")))))
(kill-buffer (current-buffer)))
res)
host))
(provide 'socks)
;; arch-tag: 67aef0d9-f4f7-4056-89c3-b4c9bf93ce7f
;;; socks.el ends here

View file

@ -332,7 +332,7 @@ cache or user."
(interactive "r")
(let ((status
(pgg-save-coding-system start end
(pgg-invoke "encrypt-symmetric-region"
(pgg-invoke "encrypt-symmetric-region"
(or pgg-scheme pgg-default-scheme)
(point-min) (point-max) passphrase))))
(when (interactive-p)
@ -416,7 +416,7 @@ If the optional 3rd argument CLEARTEXT is non-nil, it does not create
a detached signature.
If this function is called interactively, CLEARTEXT is enabled
and the the output is displayed.
and the output is displayed.
If optional PASSPHRASE is not specified, it will be obtained from the
passphrase cache or user."
@ -441,7 +441,7 @@ If optional arguments START and END are specified, only sign data
within the region.
If this function is called interactively, CLEARTEXT is enabled
and the the output is displayed.
and the output is displayed.
If optional PASSPHRASE is not specified, it will be obtained from the
passphrase cache or user."
@ -485,7 +485,7 @@ signer's public key from `pgg-default-keyserver-address'."
(or (cdr (assq 'preferred-key-server packet))
pgg-default-keyserver-address))
(pgg-fetch-key keyserver key))
(setq status
(setq status
(pgg-save-coding-system start end
(pgg-invoke "verify-region" (or pgg-scheme pgg-default-scheme)
(point-min) (point-max) signature)))

View file

@ -38,11 +38,14 @@
;; LINE will be nil for a message that doesn't contain them. Then the
;; location refers to a indented beginning of line or beginning of file.
;; Once any location in some file has been jumped to, the list is extended to
;; (COLUMN LINE FILE-STRUCTURE MARKER . VISITED) for all LOCs pertaining to
;; that file.
;; (COLUMN LINE FILE-STRUCTURE MARKER TIMESTAMP . VISITED)
;; for all LOCs pertaining to that file.
;; MARKER initially points to LINE and COLUMN in a buffer visiting that file.
;; Being a marker it sticks to some text, when the buffer grows or shrinks
;; before that point. VISITED is t if we have jumped there, else nil.
;; TIMESTAMP is necessary because of "incremental compilation": `omake -P'
;; polls filesystem for changes and recompiles when a file is modified
;; using the same *compilation* buffer. this necessitates re-parsing markers.
;; FILE-STRUCTURE is a list of
;; ((FILENAME . DIRECTORY) FORMATS (LINE LOC ...) ...)
@ -117,7 +120,7 @@ bound to the compilation buffer and window, respectively.")
"Function to compute the name of a compilation buffer.
The function receives one argument, the name of the major mode of the
compilation buffer. It should return a string.
nil means compute the name with `(concat \"*\" (downcase major-mode) \"*\")'.")
If nil, compute the name with `(concat \"*\" (downcase major-mode) \"*\")'.")
;;;###autoload
(defvar compilation-finish-function nil
@ -126,7 +129,7 @@ It is called with two arguments: the compilation buffer, and a string
describing how the process finished.")
(make-obsolete-variable 'compilation-finish-function
"Use `compilation-finish-functions', but it works a little differently."
"use `compilation-finish-functions', but it works a little differently."
"22.1")
;;;###autoload
@ -466,7 +469,7 @@ Otherwise, it saves all modified buffers without asking."
(defcustom compilation-search-path '(nil)
"*List of directories to search for source files named in error messages.
Elements should be directory names, not file names of directories.
nil as an element means to try the default directory."
The value nil as an element means to try the default directory."
:type '(repeat (choice (const :tag "Default" nil)
(string :tag "Directory")))
:group 'compilation)
@ -1419,7 +1422,7 @@ Turning the mode on runs the normal hook `compilation-minor-mode-hook'."
(font-lock-fontify-buffer)))
(defun compilation-handle-exit (process-status exit-status msg)
"Write MSG in the current buffer and hack its mode-line-process."
"Write MSG in the current buffer and hack its `mode-line-process'."
(let ((inhibit-read-only t)
(status (if compilation-exit-message-function
(funcall compilation-exit-message-function
@ -1516,7 +1519,7 @@ Just inserts the text, but uses `insert-before-markers'."
(eq (prog1 last (setq last (nth 2 (car msg))))
last))
(if compilation-skip-visited
(nthcdr 4 (car msg)))
(nthcdr 5 (car msg)))
(if compilation-skip-to-next-location
(eq (car msg) loc))
;; count this message only if none of the above are true
@ -1619,7 +1622,7 @@ This is the value of `next-error-function' in Compilation buffers."
(when reset
(setq compilation-current-error nil))
(let* ((columns compilation-error-screen-columns) ; buffer's local value
(last 1)
(last 1) timestamp
(loc (compilation-next-error (or n 1) nil
(or compilation-current-error
compilation-messages-start
@ -1632,10 +1635,17 @@ This is the value of `next-error-function' in Compilation buffers."
compilation-current-error
(copy-marker (line-beginning-position)))
loc (car loc))
;; If loc contains no marker, no error in that file has been visited. If
;; the marker is invalid the buffer has been killed. So, recalculate all
;; markers for that file.
(unless (and (nth 3 loc) (marker-buffer (nth 3 loc)))
;; If loc contains no marker, no error in that file has been visited.
;; If the marker is invalid the buffer has been killed.
;; If the file is newer than the timestamp, it has been modified
;; (`omake -P' polls filesystem for changes and recompiles when needed
;; in the same process and buffer).
;; So, recalculate all markers for that file.
(unless (and (nth 3 loc) (marker-buffer (nth 3 loc))
(equal (nth 4 loc)
(setq timestamp
(with-current-buffer (marker-buffer (nth 3 loc))
(visited-file-modtime)))))
(with-current-buffer (compilation-find-file marker (caar (nth 2 loc))
(cadr (car (nth 2 loc))))
(save-restriction
@ -1658,7 +1668,8 @@ This is the value of `next-error-function' in Compilation buffers."
(set-marker (nth 3 col) (point))
(setcdr (nthcdr 2 col) `(,(point-marker)))))))))
(compilation-goto-locus marker (nth 3 loc) (nth 3 end-loc))
(setcdr (nthcdr 3 loc) t))) ; Set this one as visited.
(setcdr (nthcdr 3 loc) (list timestamp))
(setcdr (nthcdr 4 loc) t))) ; Set this one as visited.
(defvar compilation-gcpro nil
"Internal variable used to keep some values from being GC'd.")
@ -1825,8 +1836,8 @@ and overlay is highlighted between MK and END-MK."
Search the directories in `compilation-search-path'.
A nil in `compilation-search-path' means to try the
\"current\" directory, which is passed in DIRECTORY.
If DIRECTORY. is relative, it is combined with `default-directory'.
If DIRECTORY. is nil, that means use `default-directory'.
If DIRECTORY is relative, it is combined with `default-directory'.
If DIRECTORY is nil, that means use `default-directory'.
If FILENAME is not found at all, ask the user where to find it.
Pop up the buffer containing MARKER and scroll to MARKER if we ask the user."
(or formats (setq formats '("%s")))
@ -1867,7 +1878,7 @@ Pop up the buffer containing MARKER and scroll to MARKER if we ask the user."
;; restrictive otherwise, since it also prevents the
;; user from completing "fo" to "foo/" when she
;; wants to enter "foo/bar".
;;
;;
;; Try to make sure the user can only select
;; a valid answer. This predicate may be ignored,
;; tho, so we still have to double-check afterwards.

View file

@ -1003,7 +1003,7 @@ type `ebrowse-hs' is set to the resulting obarray."
(defun ebrowse-member-table (header)
"Return the member obarray. Build it it hasn't been set up yet.
"Return the member obarray. Build it if it hasn't been set up yet.
HEADER is the tree header structure of the class tree."
(when (null (ebrowse-hs-member-table header))
(loop for buffer in (ebrowse-browser-buffer-list)
@ -3598,7 +3598,7 @@ The file name is read from the minibuffer."
(defun* ebrowse-draw-file-member-info (info &optional (kind ""))
"Display a line in an the members per file info buffer.
"Display a line in the members info buffer.
INFO describes the member. It has the form (TREE ACCESSOR MEMBER).
TREE is the class of the member to display.
ACCESSOR is the accessor symbol of its member list.

View file

@ -7095,7 +7095,7 @@ sort the list before displaying"
"Make the user select an element from the alist in the variable SYM.
The keys of the alist are expected to be strings. The function returns the
car of the selected association.
To do this, PROMPT is displayed and and the user must hit a letter key to
To do this, PROMPT is displayed and the user must hit a letter key to
select an entry. If the user does not reply within DELAY seconds, a help
window with the options is displayed automatically.
The key which is associated with each option is generated automatically.

View file

@ -1017,7 +1017,7 @@ The converted character representation is stored in rAX."
"Alist that contains all the possible operation codes for mix.
Each elt has the form
(OP-CODE GROUP FULL-NAME C-BYTE F-BYTE DESCRIPTION EXECUTION-TIME)
Where OP-CODE is the text of the opcode as an symbol,
Where OP-CODE is the text of the opcode as a symbol,
FULL-NAME is the human readable name as a string,
C-BYTE is the operation code telling what operation is to be performed,
F-BYTE holds a modification of the operation code which can be a symbol

View file

@ -878,9 +878,9 @@ preceding cell has spilled over."
(defun ses-call-printer (printer &optional value)
"Invokes PRINTER (a string or parenthesized string or function-symbol or
lambda of one argument) on VALUE. Result is the the printed cell as a
string. The variable `ses-call-printer-return' is set to t if the printer
used parenthesis to request left-justification, or the error-signal if the
lambda of one argument) on VALUE. Result is the printed cell as a string.
The variable `ses-call-printer-return' is set to t if the printer used
parenthesis to request left-justification, or the error-signal if the
printer signaled one (and \"%s\" is used as the default printer), else nil."
(setq ses-call-printer-return nil)
(unless value

View file

@ -1315,7 +1315,7 @@ using the mouse.\n\n")
(emacs-version)
"\n"
:face '(variable-pitch :height 0.5)
"Copyright (C) 2007 Free Software Foundation, Inc.")
emacs-copyright)
(and auto-save-list-file-prefix
;; Don't signal an error if the
;; directory for auto-save-list files

View file

@ -663,15 +663,15 @@ appear on disk when you save the tar-file's buffer."
(size (tar-header-size tokens))
(link-p (tar-header-link-type tokens)))
(if link-p
(error "This is a%s, not a real file"
(cond ((eq link-p 5) " directory")
((eq link-p 20) " tar directory header")
((eq link-p 28) " next has longname")
((eq link-p 29) " multivolume-continuation")
((eq link-p 35) " sparse entry")
((eq link-p 38) " volume header")
((eq link-p 55) "n extended pax header")
(t "link"))))
(error "This is %s, not a real file"
(cond ((eq link-p 5) "a directory")
((eq link-p 20) "a tar directory header")
((eq link-p 28) "a next has longname")
((eq link-p 29) "a multivolume-continuation")
((eq link-p 35) "a sparse entry")
((eq link-p 38) "a volume header")
((eq link-p 55) "an extended pax header")
(t "a link"))))
(if (zerop size) (error "This is a zero-length file"))
descriptor))

469
lisp/textmodes/css-mode.el Normal file
View file

@ -0,0 +1,469 @@
;;; css-mode.el --- Major mode to edit CSS files
;; Copyright (C) 2006, 2007 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
;; Keywords: hypermedia
;; This file 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.
;; This file 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:
;; Yet another CSS mode.
;;; Todo:
;; - electric ; and }
;; - filling code with auto-fill-mode
;; - completion
;; - fix font-lock errors with multi-line selectors
;;; Code:
(defun css-extract-keyword-list (res)
(with-temp-buffer
(url-insert-file-contents "http://www.w3.org/TR/REC-CSS2/css2.txt")
(goto-char (point-max))
(search-backward "Appendix H. Index")
(forward-line)
(delete-region (point-min) (point))
(let ((result nil)
keys)
(dolist (re res)
(goto-char (point-min))
(setq keys nil)
(while (re-search-forward (cdr re) nil t)
(push (match-string 1) keys))
(push (cons (car re) (sort keys 'string-lessp)) result))
(nreverse result))))
(defun css-extract-parse-val-grammar (string env)
(let ((start 0)
(elems ())
name)
(while (string-match
(concat "\\(?:"
(concat "<a [^>]+><span [^>]+>\\(?:"
"&lt;\\([^&]+\\)&gt;\\|'\\([^']+\\)'"
"\\)</span></a>")
"\\|" "\\(\\[\\)"
"\\|" "\\(]\\)"
"\\|" "\\(||\\)"
"\\|" "\\(|\\)"
"\\|" "\\([*+?]\\)"
"\\|" "\\({[^}]+}\\)"
"\\|" "\\(\\w+\\(?:-\\w+\\)*\\)"
"\\)[ \t\n]*")
string start)
;; (assert (eq start (match-beginning 0)))
(setq start (match-end 0))
(cond
;; Reference to a type of value.
((setq name (match-string-no-properties 1 string))
(push (intern name) elems))
;; Reference to another property's values.
((setq name (match-string-no-properties 2 string))
(setq elems (delete-dups (append (cdr (assoc name env)) elems))))
;; A literal
((setq name (match-string-no-properties 9 string))
(push name elems))
;; We just ignore the rest. I.e. we ignore the structure because
;; it's too difficult to exploit anyway (it would allow us to only
;; complete top/center/bottom after one of left/center/right and
;; vice-versa).
(t nil)))
elems))
(defun css-extract-props-and-vals ()
(with-temp-buffer
(url-insert-file-contents "http://www.w3.org/TR/CSS21/propidx.html")
(goto-char (point-min))
(let ((props ()))
(while (re-search-forward "#propdef-\\([^\"]+\\)\"><span class=\"propinst-\\1 xref\">'\\1'</span></a>" nil t)
(let ((prop (match-string-no-properties 1)))
(save-excursion
(goto-char (match-end 0))
(search-forward "<td>")
(let ((vals-string (buffer-substring (point)
(progn
(re-search-forward "[ \t\n]+|[ \t\n]+<a href=\"cascade.html#value-def-inherit\" class=\"noxref\"><span class=\"value-inst-inherit\">inherit</span></a>")
(match-beginning 0)))))
;;
(push (cons prop (css-extract-parse-val-grammar vals-string props))
props)))))
props)))
;; Extraction was done with:
;; (css-extract-keyword-list
;; '((pseudo . "^ +\\* :\\([^ \n,]+\\)")
;; (at . "^ +\\* @\\([^ \n,]+\\)")
;; (descriptor . "^ +\\* '\\([^ '\n]+\\)' (descriptor)")
;; (media . "^ +\\* '\\([^ '\n]+\\)' media group")
;; (property . "^ +\\* '\\([^ '\n]+\\)',")))
(defconst css-pseudo-ids
'("active" "after" "before" "first" "first-child" "first-letter" "first-line"
"focus" "hover" "lang" "left" "link" "right" "visited")
"Identifiers for pseudo-elements and pseudo-classes.")
(defconst css-at-ids
'("charset" "font-face" "import" "media" "page")
"Identifiers that appear in the form @foo.")
(defconst css-descriptor-ids
'("ascent" "baseline" "bbox" "cap-height" "centerline" "definition-src"
"descent" "font-family" "font-size" "font-stretch" "font-style"
"font-variant" "font-weight" "mathline" "panose-1" "slope" "src" "stemh"
"stemv" "topline" "unicode-range" "units-per-em" "widths" "x-height")
"Identifiers for font descriptors.")
(defconst css-media-ids
'("all" "aural" "bitmap" "continuous" "grid" "paged" "static" "tactile"
"visual")
"Identifiers for types of media.")
(defconst css-property-ids
'("azimuth" "background" "background-attachment" "background-color"
"background-image" "background-position" "background-repeat" "block"
"border" "border-bottom" "border-bottom-color" "border-bottom-style"
"border-bottom-width" "border-collapse" "border-color" "border-left"
"border-left-color" "border-left-style" "border-left-width" "border-right"
"border-right-color" "border-right-style" "border-right-width"
"border-spacing" "border-style" "border-top" "border-top-color"
"border-top-style" "border-top-width" "border-width" "bottom"
"caption-side" "clear" "clip" "color" "compact" "content"
"counter-increment" "counter-reset" "cue" "cue-after" "cue-before"
"cursor" "dashed" "direction" "display" "dotted" "double" "elevation"
"empty-cells" "float" "font" "font-family" "font-size" "font-size-adjust"
"font-stretch" "font-style" "font-variant" "font-weight" "groove" "height"
"hidden" "inline" "inline-table" "inset" "left" "letter-spacing"
"line-height" "list-item" "list-style" "list-style-image"
"list-style-position" "list-style-type" "margin" "margin-bottom"
"margin-left" "margin-right" "margin-top" "marker-offset" "marks"
"max-height" "max-width" "min-height" "min-width" "orphans" "outline"
"outline-color" "outline-style" "outline-width" "outset" "overflow"
"padding" "padding-bottom" "padding-left" "padding-right" "padding-top"
"page" "page-break-after" "page-break-before" "page-break-inside" "pause"
"pause-after" "pause-before" "pitch" "pitch-range" "play-during" "position"
"quotes" "richness" "ridge" "right" "run-in" "size" "solid" "speak"
"speak-header" "speak-numeral" "speak-punctuation" "speech-rate" "stress"
"table" "table-caption" "table-cell" "table-column" "table-column-group"
"table-footer-group" "table-header-group" "table-layout" "table-row"
"table-row-group" "text-align" "text-decoration" "text-indent"
"text-shadow" "text-transform" "top" "unicode-bidi" "vertical-align"
"visibility" "voice-family" "volume" "white-space" "widows" "width"
"word-spacing" "z-index")
"Identifiers for properties.")
(defcustom css-electrick-keys '(?\} ?\;) ;; '()
"Self inserting keys which should trigger re-indentation."
:type '(repeat character)
:options '((?\} ?\;)))
(defvar css-mode-syntax-table
(let ((st (make-syntax-table)))
;; C-style comments.
(modify-syntax-entry ?/ ". 14" st)
(modify-syntax-entry ?* ". 23" st)
;; Strings.
(modify-syntax-entry ?\" "\"" st)
(modify-syntax-entry ?\' "\"" st)
;; Blocks.
(modify-syntax-entry ?\{ "(}" st)
(modify-syntax-entry ?\} "){" st)
;; Args in url(...) thingies and other "function calls".
(modify-syntax-entry ?\( "()" st)
(modify-syntax-entry ?\) ")(" st)
;; To match attributes in selectors.
(modify-syntax-entry ?\[ "(]" st)
(modify-syntax-entry ?\] ")[" st)
;; Special chars that sometimes come at the beginning of words.
(modify-syntax-entry ?@ "'" st)
;; (modify-syntax-entry ?: "'" st)
(modify-syntax-entry ?# "'" st)
;; Distinction between words and symbols.
(modify-syntax-entry ?- "_" st)
st))
(defconst css-escapes-re
"\\\\\\(?:[^\000-\037\177]\\|[0-9a-fA-F]+[ \n\t\r\f]?\\)")
(defconst css-nmchar-re (concat "\\(?:[-[:alnum:]]\\|" css-escapes-re "\\)"))
(defconst css-nmstart-re (concat "\\(?:[[:alpha:]]\\|" css-escapes-re "\\)"))
(defconst css-ident-re (concat css-nmstart-re css-nmchar-re "*"))
(defconst css-name-re (concat css-nmchar-re "+"))
(defface css-selector '((t :inherit font-lock-function-name-face))
"Face to use for selectors.")
(defface css-property '((t :inherit font-lock-variable-name-face))
"Face to use for properties.")
(defvar css-font-lock-keywords
`(("!\\s-*important" . font-lock-builtin-face)
;; Atrules keywords. IDs not in css-at-ids are valid (ignored).
;; In fact the regexp should probably be
;; (,(concat "\\(@" css-ident-re "\\)\\([ \t\n][^;{]*\\)[;{]")
;; (1 font-lock-builtin-face))
;; Since "An at-rule consists of everything up to and including the next
;; semicolon (;) or the next block, whichever comes first."
(,(concat "@" css-ident-re) . font-lock-builtin-face)
;; Selectors.
;; FIXME: attribute selectors don't work well because they may contain
;; strings which have already been highlighted as f-l-string-face and
;; thus prevent this highlighting from being applied (actually now that
;; I use `append' this should work better). But really the part of hte
;; selector between [...] should simply not be highlighted.
(,(concat "^\\([ \t]*[^@:{\n][^:{\n]+\\(?::" (regexp-opt css-pseudo-ids t)
"\\(?:([^)]+)\\)?[^:{\n]*\\)*\\)\\(?:\n[ \t]*\\)*{")
(1 'css-selector append))
;; In the above rule, we allow the open-brace to be on some subsequent
;; line. This will only work if we properly mark the intervening text
;; as being part of a multiline element (and even then, this only
;; ensures proper refontification, but not proper discovery).
("^[ \t]*{" (0 (save-excursion
(goto-char (match-beginning 0))
(skip-chars-backward " \n\t")
(put-text-property (point) (match-end 0)
'font-lock-multiline t)
;; No face.
nil)))
;; Properties. Again, we don't limit ourselves to css-property-ids.
(,(concat "\\(?:[{;]\\|^\\)[ \t]*\\(" css-ident-re "\\)\\s-*:")
(1 'css-property))))
(defvar css-font-lock-defaults
'(css-font-lock-keywords nil t))
(unless (fboundp 'prog-mode) (defalias 'prog-mode 'fundamental-mode))
;;;###autoload (add-to-list 'auto-mode-alist '("\\.css\\'" . css-mode))
;;;###autoload
(define-derived-mode css-mode prog-mode "CSS"
"Major mode to edit Cascading Style Sheets."
(set (make-local-variable 'font-lock-defaults) css-font-lock-defaults)
(set (make-local-variable 'comment-start) "/*")
(set (make-local-variable 'comment-start-skip) "/\\*+[ \t]*")
(set (make-local-variable 'comment-end) "*/")
(set (make-local-variable 'comment-end-skip) "[ \t]*\\*+/")
(set (make-local-variable 'forward-sexp-function) 'css-forward-sexp)
(set (make-local-variable 'parse-sexp-ignore-comments) t)
(set (make-local-variable 'indent-line-function) 'css-indent-line)
(set (make-local-variable 'fill-paragraph-function)
'css-fill-paragraph)
(when css-electrick-keys
(let ((fc (make-char-table 'auto-fill-chars)))
(set-char-table-parent fc auto-fill-chars)
(dolist (c css-electrick-keys)
(aset fc c 'indent-according-to-mode))
(set (make-local-variable 'auto-fill-chars) fc))))
(defun css-fill-paragraph (&optional justify)
(save-excursion
(let ((ppss (syntax-ppss))
(eol (line-end-position)))
(cond
((and (nth 4 ppss)
(save-excursion
(goto-char (nth 8 ppss))
(forward-comment 1)
(prog1 (not (bolp))
(setq eol (point)))))
;; Filling inside a comment whose comment-end marker is not \n.
;; This code is meant to be generic, so that it works not only for
;; css-mode but for all modes.
(save-restriction
(narrow-to-region (nth 8 ppss) eol)
(comment-normalize-vars)
(let ((fill-paragraph-function nil)
(paragraph-separate
(if (and comment-continue
(string-match "[^ \t]" comment-continue))
(concat "\\(?:[ \t]*" (regexp-quote comment-continue)
"\\)?\\(?:" paragraph-separate "\\)")
paragraph-separate))
(paragraph-start
(if (and comment-continue
(string-match "[^ \t]" comment-continue))
(concat "\\(?:[ \t]*" (regexp-quote comment-continue)
"\\)?\\(?:" paragraph-start "\\)")
paragraph-start)))
(fill-paragraph justify)
;; Don't try filling again.
t)))
((and (null (nth 8 ppss))
(or (nth 1 ppss)
(and (ignore-errors
(down-list 1)
(when (<= (point) eol)
(setq ppss (syntax-ppss)))))))
(goto-char (nth 1 ppss))
(let ((end (save-excursion
(ignore-errors (forward-sexp 1) (copy-marker (point) t)))))
(when end
(while (re-search-forward "[{;}]" end t)
(cond
;; This is a false positive inside a string or comment.
((nth 8 (syntax-ppss)) nil)
((eq (char-before) ?\})
(save-excursion
(forward-char -1)
(skip-chars-backward " \t")
(unless (bolp) (newline))))
(t
(while
(progn
(setq eol (line-end-position))
(and (forward-comment 1)
(> (point) eol)
;; A multi-line comment should be on its own line.
(save-excursion (forward-comment -1)
(when (< (point) eol)
(newline)
t)))))
(if (< (point) eol) (newline)))))
(goto-char (nth 1 ppss))
(indent-region (line-beginning-position 2) end)
;; Don't use the default filling code.
t)))))))
;;; Navigation and indentation.
(defconst css-navigation-syntax-table
(let ((st (make-syntax-table css-mode-syntax-table)))
(map-char-table (lambda (c v)
;; Turn punctuation (code = 1) into symbol (code = 1).
(if (eq (car-safe v) 1)
(set-char-table-range st c (cons 3 (cdr v)))))
st)
st))
(defun css-backward-sexp (n)
(let ((forward-sexp-function nil))
(if (< n 0) (css-forward-sexp (- n))
(while (> n 0)
(setq n (1- n))
(forward-comment (- (point-max)))
(if (not (eq (char-before) ?\;))
(backward-sexp 1)
(while (progn (backward-sexp 1)
(save-excursion
(forward-comment (- (point-max)))
;; FIXME: We should also skip punctuation.
(not (memq (char-before) '(?\; ?\{)))))))))))
(defun css-forward-sexp (n)
(let ((forward-sexp-function nil))
(if (< n 0) (css-backward-sexp (- n))
(while (> n 0)
(setq n (1- n))
(forward-comment (point-max))
(if (not (eq (char-after) ?\;))
(forward-sexp 1)
(while (progn (forward-sexp 1)
(save-excursion
(forward-comment (point-max))
;; FIXME: We should also skip punctuation.
(not (memq (char-after) '(?\; ?\})))))))))))
(defun css-indent-calculate-virtual ()
(if (or (save-excursion (skip-chars-backward " \t") (bolp))
(if (looking-at "\\s(")
(save-excursion
(forward-char 1) (skip-chars-forward " \t")
(not (or (eolp) (looking-at comment-start-skip))))))
(current-column)
(css-indent-calculate)))
(defcustom css-indent-offset 4
"Basic size of one indentation step."
:type 'integer)
(defun css-indent-calculate ()
(let ((ppss (syntax-ppss))
pos)
(with-syntax-table css-navigation-syntax-table
(save-excursion
(cond
;; Inside a string.
((nth 3 ppss) 'noindent)
;; Inside a comment.
((nth 4 ppss)
(setq pos (point))
(forward-line -1)
(skip-chars-forward " \t")
(if (>= (nth 8 ppss) (point))
(progn
(goto-char (nth 8 ppss))
(if (eq (char-after pos) ?*)
(forward-char 1)
(if (not (looking-at comment-start-skip))
(error "Internal css-mode error")
(goto-char (match-end 0))))
(current-column))
(if (and (eq (char-after pos) ?*) (eq (char-after) ?*))
(current-column)
;; 'noindent
(current-column)
)))
;; In normal code.
(t
(or
(when (looking-at "\\s)")
(forward-char 1)
(backward-sexp 1)
(css-indent-calculate-virtual))
(when (looking-at comment-start-skip)
(forward-comment (point-max))
(css-indent-calculate))
(when (save-excursion (forward-comment (- (point-max)))
(setq pos (point))
(eq (char-syntax (preceding-char)) ?\())
(goto-char (1- pos))
(if (not (looking-at "\\s([ \t]*"))
(error "Internal css-mode error")
(if (or (memq (char-after (match-end 0)) '(?\n nil))
(save-excursion (goto-char (match-end 0))
(looking-at comment-start-skip)))
(+ (css-indent-calculate-virtual) css-indent-offset)
(progn (goto-char (match-end 0)) (current-column)))))
(progn
(css-backward-sexp 1)
(if (looking-at "\\s(")
(css-indent-calculate)
(css-indent-calculate-virtual))))))))))
(defun css-indent-line ()
"Indent current line according to CSS indentation rules."
(interactive)
(let* ((savep (point))
(forward-sexp-function nil)
(indent (condition-case nil
(save-excursion
(forward-line 0)
(skip-chars-forward " \t")
(if (>= (point) savep) (setq savep nil))
(css-indent-calculate))
(error nil))))
(if (not (numberp indent)) 'noindent
(if savep
(save-excursion (indent-line-to indent))
(indent-line-to indent)))))
(provide 'css-mode)
;; arch-tag: b4d8b8e2-b130-4e74-b3aa-cd8f1ab659d0
;;; css-mode.el ends here

View file

@ -0,0 +1,603 @@
;;; org-publish.el --- publish related org-mode files as a website
;; Copyright (C) 2006, 2007 Free Software Foundation, Inc.
;; Author: David O'Toole <dto@gnu.org>
;; Keywords: hypermedia, outlines
;; Version: 1.80
;; $Id: org-publish.el,v 1.2 2007/06/07 02:04:17 miles Exp $
;; This file 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.
;; This file 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.
;; This file is part of GNU Emacs.
;;; Commentary:
;; Requires at least version 4.27 of org.el
;;
;; The official org-mode website:
;; http://staff.science.uva.nl/~dominik/Tools/org/
;;
;; Home page for org-publish.el:
;; http://dto.freeshell.org/notebook/OrgMode.html
;; This program extends the HTML publishing support of Emacs Org-mode
;; to allow configurable publishing of related sets of files as a
;; complete website.
;;
;; org-publish.el can do the following:
;;
;; + Publish all one's org-files to html
;; + Upload html, images, attachments and other files to a web server
;; + Exclude selected private pages from publishing
;; + Publish a clickable index of pages
;; + Manage local timestamps, for publishing only changed files
;; + Accept plugin functions to extend range of publishable content
;;
;; Special thanks to the org-mode maintainer Carsten Dominik for his
;; ideas, enthusiasm, and cooperation.
;;; Installation:
;; Put org-publish.el in your load path, byte-compile it, and then add
;; the following lines to your emacs initialization file:
;; (autoload 'org-publish "org-publish" nil t)
;; (autoload 'org-publish "org-publish-all" nil t)
;; (autoload 'org-publish "org-publish-current-file" nil t)
;; (autoload 'org-publish "org-publish-current-project" nil t)
;; NOTE: When org-publish.el is included with org.el, those forms are
;; already in the file org-install.el, and hence don't need to be put
;; in your emacs initialization file in this case.
;;; Usage:
;;
;; The program's main configuration variable is
;; `org-publish-project-alist'. See below for example configurations
;; with commentary.
;; The main interactive functions are:
;;
;; M-x org-publish
;; M-x org-publish-all
;; M-x org-publish-current-file
;; M-x org-publish-current-project
;;;; Simple example configuration:
;; (setq org-publish-project-alist
;; (list
;; '("org" . (:base-directory "~/org/"
;; :base-extension "org"
;; :publishing-directory "~/public_html"
;; :with-section-numbers nil
;; :table-of-contents nil
;; :style "<link rel=stylesheet href=\"../other/mystyle.css\" type=\"text/css\">")))
;;;; More complex example configuration:
;; Imagine your *.org files are kept in ~/org, your images in
;; ~/images, and stylesheets in ~/other. Now imagine you want to
;; publish the files through an ssh connection to a remote host, via
;; Tramp-mode. To maintain relative links from *.org files to /images
;; and /other, we should replicate the same directory structure in
;; your web server account's designated html root (in this case,
;; assumed to be ~/html)
;; Once you've done created the proper directories, you can adapt the
;; following example configuration to your specific paths, run M-x
;; org-publish-all, and it should publish the files to the correct
;; directories on the web server, transforming the *.org files into
;; HTML, and leaving other files alone.
;; (setq org-publish-project-alist
;; (list
;; '("orgfiles" :base-directory "~/org/"
;; :base-extension "org"
;; :publishing-directory "/ssh:user@host:~/html/notebook/"
;; :publishing-function org-publish-org-to-html
;; :exclude "PrivatePage.org" ;; regexp
;; :headline-levels 3
;; :with-section-numbers nil
;; :table-of-contents nil
;; :style "<link rel=stylesheet href=\"../other/mystyle.css\" type=\"text/css\">"
;; :auto-preamble t
;; :auto-postamble nil)
;;
;; ("images" :base-directory "~/images/"
;; :base-extension "jpg\\|gif\\|png"
;; :publishing-directory "/ssh:user@host:~/html/images/"
;; :publishing-function org-publish-attachment)
;;
;; ("other" :base-directory "~/other/"
;; :base-extension "css"
;; :publishing-directory "/ssh:user@host:~/html/other/"
;; :publishing-function org-publish-attachment)
;; ("website" :components ("orgfiles" "images" "other"))))
;; For more information, see the documentation for the variable
;; `org-publish-project-alist'.
;; Of course, you don't have to publish to remote directories from
;; within emacs. You can always just publish to local folders, and
;; then use the synchronization/upload tool of your choice.
;;; List of user-visible changes since version 1.27
;; 1.78: Allow list-valued :publishing-function
;; 1.77: Added :preparation-function, this allows you to use GNU Make etc.
;; 1.65: Remove old "composite projects". They're redundant.
;; 1.64: Allow meta-projects with :components
;; 1.57: Timestamps flag is now called "org-publish-use-timestamps-flag"
;; 1.52: Properly set default for :index-filename
;; 1.48: Composite projects allowed.
;; :include keyword allowed.
;; 1.43: Index no longer includes itself in the index.
;; 1.42: Fix "function definition is void" error
;; when :publishing-function not set in org-publish-current-file.
;; 1.41: Fixed bug where index isn't published on first try.
;; 1.37: Added interactive function "org-publish". Prompts for particular
;; project name to publish.
;; 1.34: Added force-publish option to all interactive functions.
;; 1.32: Fixed "index.org has changed on disk" error during index publishing.
;; 1.30: Fixed startup error caused by (require 'em-unix)
;;; Code:
(eval-when-compile
(require 'cl))
(defgroup org-publish nil
"Options for publishing a set of Org-mode and related files."
:tag "Org Publishing"
:group 'org)
(defcustom org-publish-project-alist nil
"Association list to control publishing behavior.
Each element of the alist is a publishing 'project.' The CAR of
each element is a string, uniquely identifying the project. The
CDR of each element is in one of the following forms:
(:property value :property value ... )
OR,
(:components (\"project-1\" \"project-2\" ...))
When the CDR of an element of org-publish-project-alist is in
this second form, the elements of the list after :components are
taken to be components of the project, which group together files
requiring different publishing options. When you publish such a
project with M-x org-publish, the components all publish.
When a property is given a value in org-publish-project-alist, its
setting overrides the value of the corresponding user variable
(if any) during publishing. However, options set within a file
override everything.
Most properties are optional, but some should always be set:
:base-directory Directory containing publishing source files
:base-extension Extension (without the dot!) of source files.
This can be a regular expression.
:publishing-directory Directory (possibly remote) where output
files will be published
The :exclude property may be used to prevent certain files from
being published. Its value may be a string or regexp matching
file names you don't want to be published.
The :include property may be used to include extra files. Its
value may be a list of filenames to include. The filenames are
considered relative to the publishing directory.
When both :include and :exclude properties are given values, the
exclusion step happens first.
One special property controls which back-end function to use for
publishing files in the project. This can be used to extend the
set of file types publishable by org-publish, as well as the set
of output formats.
:publishing-function Function to publish file. The default is
org-publish-org-to-html, but other
values are possible. May also be a
list of functions, in which case
each function in the list is invoked
in turn.
Another property allows you to insert code that prepares a
project for publishing. For example, you could call GNU Make on a
certain makefile, to ensure published files are built up to date.
:preparation-function Function to be called before publishing
this project.
Some properties control details of the Org publishing process,
and are equivalent to the corresponding user variables listed in
the right column. See the documentation for those variables to
learn more about their use and default values.
:language org-export-default-language
:headline-levels org-export-headline-levels
:section-numbers org-export-with-section-numbers
:table-of-contents org-export-with-toc
:emphasize org-export-with-emphasize
:sub-superscript org-export-with-sub-superscripts
:TeX-macros org-export-with-TeX-macros
:fixed-width org-export-with-fixed-width
:tables org-export-with-tables
:table-auto-headline org-export-highlight-first-table-line
:style org-export-html-style
:convert-org-links org-export-html-link-org-files-as-html
:inline-images org-export-html-inline-images
:expand-quoted-html org-export-html-expand
:timestamp org-export-html-with-timestamp
:publishing-directory org-export-publishing-directory
:preamble org-export-html-preamble
:postamble org-export-html-postamble
:auto-preamble org-export-html-auto-preamble
:auto-postamble org-export-html-auto-postamble
:author user-full-name
:email user-mail-address
The following properties may be used to control publishing of an
index of files or summary page for a given project.
:auto-index Whether to publish an index during
org-publish-current-project or org-publish-all.
:index-filename Filename for output of index. Defaults
to 'index.org' (which becomes 'index.html')
:index-title Title of index page. Defaults to name of file.
:index-function Plugin function to use for generation of index.
Defaults to 'org-publish-org-index', which
generates a plain list of links to all files
in the project.
"
:group 'org-publish
:type 'alist)
(defcustom org-publish-use-timestamps-flag t
"When non-nil, use timestamp checking to publish only changed files.
When nil, do no timestamp checking and always publish all
files."
:group 'org-publish
:type 'boolean)
(defcustom org-publish-timestamp-directory "~/.org-timestamps/"
"Name of directory in which to store publishing timestamps."
:group 'org-publish
:type 'string)
;;;; Timestamp-related functions
(defun org-publish-timestamp-filename (filename)
"Return path to timestamp file for filename FILENAME."
(while (string-match "~\\|/" filename)
(setq filename (replace-match "_" nil t filename)))
(concat org-publish-timestamp-directory filename ".timestamp"))
(defun org-publish-needed-p (filename)
"Check whether file should be published.
If org-publish-use-timestamps-flag is set to nil, this function always
returns t. Otherwise, check the timestamps folder to determine
whether file should be published."
(if org-publish-use-timestamps-flag
(progn
;;
;; create folder if needed
(if (not (file-exists-p org-publish-timestamp-directory))
(make-directory org-publish-timestamp-directory)
(if (not (file-directory-p org-publish-timestamp-directory))
(error "org-publish-timestamp-directory must be a directory.")))
;;
;; check timestamp. ok if timestamp file doesn't exist
(let* ((timestamp (org-publish-timestamp-filename filename))
(rtn (file-newer-than-file-p filename timestamp)))
(if rtn
;; handle new timestamps
(if (not (file-exists-p timestamp))
;; create file
(with-temp-buffer
(make-directory (file-name-directory timestamp) :parents)
(write-file timestamp)
(kill-buffer (current-buffer)))))
rtn))
t))
(defun org-publish-update-timestamp (filename)
"Update publishing timestamp for file FILENAME."
(let ((timestamp (org-publish-timestamp-filename filename)))
;; Emacs 21 doesn't have set-file-times
(if (fboundp 'set-file-times)
(set-file-times timestamp)
(call-process "touch" nil 0 nil timestamp))))
;;;; A hash mapping files to project names
(defvar org-publish-files (make-hash-table :test 'equal) "Hash
table mapping file names to project names.")
;;;; Checking filenames against this hash
(defun org-publish-validate-link (link &optional directory)
(gethash (file-truename (expand-file-name link directory))
org-publish-files))
;;;; Getting project information out of org-publish-project-alist
(defun org-publish-get-plists (&optional project-name)
"Return a list of property lists for project PROJECT-NAME.
When argument is not given, return all property lists for all projects."
(let ((alist (if project-name
(list (assoc project-name org-publish-project-alist))
org-publish-project-alist))
(project nil)
(plists nil)
(single nil)
(components nil))
;;
;;
(while (setq project (pop alist))
;; what kind of project is it?
(if (setq components (plist-get (cdr project) :components))
;; meta project. annotate each plist with name of enclosing project
(setq single
(apply 'append
(mapcar 'org-publish-get-plists components)))
;; normal project
(setq single (list (cdr project))))
;;
(setq plists (append plists single))
(dolist (p single)
(let* ((exclude (plist-get p :exclude))
(files (org-publish-get-base-files p exclude)))
(dolist (f files)
(puthash (file-truename f) (car project) org-publish-files)))))
plists))
(defun org-publish-get-base-files (plist &optional exclude-regexp)
"Return a list of all files in project defined by PLIST.
If EXCLUDE-REGEXP is set, this will be used to filter out
matching filenames."
(let* ((dir (file-name-as-directory (plist-get plist :base-directory)))
(include-list (plist-get plist :include))
(extension (or (plist-get plist :base-extension) "org"))
(regexp (concat "^[^\\.].*\\.\\(" extension "\\)$"))
(allfiles (directory-files dir t regexp)))
;;
;; exclude files
(setq allfiles
(if (not exclude-regexp)
allfiles
(delq nil
(mapcar (lambda (x)
(if (string-match exclude-regexp x) nil x))
allfiles))))
;;
;; include extra files
(let ((inc nil))
(while (setq inc (pop include-list))
(setq allfiles (cons (expand-file-name inc dir) allfiles))))
allfiles))
(defun org-publish-get-project-from-filename (filename)
"Figure out which project a given FILENAME belongs to, if any.
Filename should contain full path. Returns name of project, or
nil if not found."
(org-publish-get-plists)
(gethash (file-truename filename) org-publish-files))
(defun org-publish-get-plist-from-filename (filename)
"Return publishing configuration plist for file FILENAME."
(let ((found nil))
(mapcar
(lambda (plist)
(let ((files (org-publish-get-base-files plist)))
(if (member (expand-file-name filename) files)
(setq found plist))))
(org-publish-get-plists))
found))
;;;; Pluggable publishing back-end functions
(defun org-publish-org-to-html (plist filename)
"Publish an org file to HTML.
PLIST is the property list for the given project.
FILENAME is the filename of the org file to be published."
(require 'org)
(let* ((arg (plist-get plist :headline-levels)))
(progn
(find-file filename)
(org-export-as-html arg nil plist)
;; get rid of HTML buffer
(kill-buffer (current-buffer)))))
(defun org-publish-attachment (plist filename)
"Publish a file with no transformation of any kind.
PLIST is the property list for the given project.
FILENAME is the filename of the file to be published."
;; make sure eshell/cp code is loaded
(require 'eshell)
(require 'esh-maint)
(require 'em-unix)
(let ((destination (file-name-as-directory (plist-get plist :publishing-directory))))
(eshell/cp filename destination)))
;;;; Publishing files, sets of files, and indices
(defun org-publish-file (filename)
"Publish file FILENAME."
(let* ((project-name (org-publish-get-project-from-filename filename))
(plist (org-publish-get-plist-from-filename filename))
(publishing-function (or (plist-get plist :publishing-function) 'org-publish-org-to-html)))
(if (not project-name)
(error (format "File %s is not part of any known project." filename)))
(when (org-publish-needed-p filename)
(if (listp publishing-function)
;; allow chain of publishing functions
(mapc (lambda (f)
(funcall f plist filename))
publishing-function)
(funcall publishing-function plist filename))
(org-publish-update-timestamp filename))))
(defun org-publish-plist (plist)
"Publish all files in set defined by PLIST.
If :auto-index is set, publish the index too."
(let* ((exclude-regexp (plist-get plist :exclude))
(publishing-function (or (plist-get plist :publishing-function) 'org-publish-org-to-html))
(index-p (plist-get plist :auto-index))
(index-filename (or (plist-get plist :index-filename) "index.org"))
(index-function (or (plist-get plist :index-function) 'org-publish-org-index))
(preparation-function (plist-get plist :preparation-function))
(f nil))
;;
(when preparation-function
(funcall preparation-function))
(if index-p
(funcall index-function plist index-filename))
(let ((files (org-publish-get-base-files plist exclude-regexp)))
(while (setq f (pop files))
;; check timestamps
(when (org-publish-needed-p f)
(if (listp publishing-function)
;; allow chain of publishing functions
(mapc (lambda (func)
(funcall func plist f))
publishing-function)
(funcall publishing-function plist f))
(org-publish-update-timestamp f))))))
(defun org-publish-org-index (plist &optional index-filename)
"Create an index of pages in set defined by PLIST.
Optionally set the filename of the index with INDEX-FILENAME;
default is 'index.org'."
(let* ((dir (file-name-as-directory (plist-get plist :base-directory)))
(exclude-regexp (plist-get plist :exclude))
(files (org-publish-get-base-files plist exclude-regexp))
(index-filename (concat dir (or index-filename "index.org")))
(index-buffer (find-buffer-visiting index-filename))
(ifn (file-name-nondirectory index-filename))
(f nil))
;;
;; if buffer is already open, kill it to prevent error message
(if index-buffer
(kill-buffer index-buffer))
(with-temp-buffer
(while (setq f (pop files))
(let ((fn (file-name-nondirectory f)))
(unless (string= fn ifn) ;; index shouldn't index itself
(insert (concat " + [[file:" fn "]["
(file-name-sans-extension fn)
"]]\n")))))
(write-file index-filename)
(kill-buffer (current-buffer)))))
;(defun org-publish-meta-index (meta-plist &optional index-filename)
; "Create an index for a metaproject."
; (let* ((plists (
;;;; Interactive publishing functions
;;;###autoload
(defun org-publish (project-name &optional force)
"Publish the project PROJECT-NAME."
(interactive (list (completing-read "Project name: " org-publish-project-alist
nil t)
current-prefix-arg))
(save-window-excursion
(let ((org-publish-use-timestamps-flag (if force nil t))
(plists (org-publish-get-plists project-name)))
(mapcar 'org-publish-plist plists))))
;;;###autoload
(defun org-publish-current-project (&optional force)
"Publish the project associated with the current file.
With prefix argument, force publishing all files in project."
(interactive "P")
(save-window-excursion
(let* ((project-name (org-publish-get-project-from-filename (buffer-file-name)))
(org-publish-use-timestamps-flag (if force nil t)))
(if (not project-name)
(error (format "File %s is not part of any known project." (buffer-file-name))))
(org-publish project-name))))
;;;###autoload
(defun org-publish-current-file (&optional force)
"Publish the current file.
With prefix argument, force publish the file."
(interactive "P")
(save-window-excursion
(let ((org-publish-use-timestamps-flag
(if force nil t)))
(org-publish-file (buffer-file-name)))))
;;;###autoload
(defun org-publish-all (&optional force)
"Publish all projects.
With prefix argument, force publish all files."
(interactive "P")
(save-window-excursion
(let ((org-publish-use-timestamps-flag
(if force nil t))
(plists (org-publish-get-plists)))
(mapcar 'org-publish-plist plists))))
(provide 'org-publish)
;; arch-tag: 72807f3c-8af0-4a6b-8dca-c3376eb25adb
;;; org-publish.el ends here

File diff suppressed because it is too large Load diff

View file

@ -155,9 +155,9 @@ options:
" RET instead."))
(insert "\n\nWith your current key bindings"
" you can use "
(if (string-equal "the menus" where)
(if (string-match "^the .*menus?$" where)
""
"the key ")
"the key")
where
" to get the function `"
(format "%s" db)
@ -406,7 +406,7 @@ where
WHERE is a text describing the key sequences to which DEF-FUN is
bound now (or, if it is remapped, a key sequence
for the function it is remapped to)
REMARK is a list with info about rebinding. It has either of
REMARK is a list with info about rebinding. It has either of
these formats:
\(TEXT cua-mode)
@ -434,14 +434,26 @@ where
(key-fun (if (eq def-fun 'ESC-prefix)
(lookup-key global-map [27])
(key-binding key)))
(where (where-is-internal (if rem-fun rem-fun def-fun))))
(where (where-is-internal (if rem-fun rem-fun def-fun)))
cwhere)
(if where
(progn
(setq where (key-description (car where)))
(setq cwhere (car where)
where (key-description cwhere))
(when (and (< 10 (length where))
(string= (substring where 0 (length "<menu-bar>"))
"<menu-bar>"))
(setq where "the menus")))
(setq where
(if (and (vectorp cwhere)
(setq cwhere (elt cwhere 1))
(setq cwhere
(cadr
(assoc cwhere
(lookup-key global-map
[menu-bar]))))
(stringp cwhere))
(format "the `%s' menu" cwhere)
"the menus"))))
(setq where ""))
(setq remark nil)
(unless
@ -915,7 +927,7 @@ See `get-lang-string' for more information.")
In certain places Emacs can replace a string shown to the user with
a language specific string. This function retrieves such strings.
LANG is the language specification. It should be one of those
LANG is the language specification. It should be one of those
strings that can be returned by `read-language-name'. STRINGID
is a symbol that specifies the string to retrieve.

View file

@ -27,6 +27,9 @@
;;; Code:
(defconst emacs-copyright "Copyright (C) 2007 Free Software Foundation, Inc."
"Short copyright string for this version of Emacs.")
(defconst emacs-version "23.0.0" "\
Version numbers of this version of Emacs.")

View file

@ -1,3 +1,7 @@
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-01-30 Robert J. Chassell <bob@rattlesnake.com>
* emacs-lisp-intro.texi (else): Rephrase message of first

View file

@ -1,9 +1,31 @@
2007-06-03 Nick Roberts <nickrob@snap.net.nz>
* commands.texi (Click Events): Describe width and height when
object is nil.
2007-05-30 Nick Roberts <nickrob@snap.net.nz>
* commands.texi (Click Events): Layout more logically. Describe
width and height.
(Drag Events, Motion Events): Update to new format for position.
2007-06-02 Richard Stallman <rms@gnu.org>
* frames.texi (Color Parameters): Add xref to (emacs)Standard Faces.
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
* text.texi (Special Properties): Correct meaning of fontified
face.
2007-05-30 Richard Stallman <rms@gnu.org>
* text.texi (Special Properties): Add link to Adjusting Point.
2007-05-12 Richard Stallman <rms@gnu.org>
* text.texi (Margins): indent-to-left-margin is not the default.

View file

@ -1225,7 +1225,7 @@ input stream. @xref{Key Sequence Input}.
@item @var{x}, @var{y}
These are the pixel-denominated coordinates of the click, relative to
These are the pixel coordinates of the click, relative to
the top left corner of @var{window}, which is @code{(0 . 0)}.
For the mode or header line, @var{y} does not have meaningful data.
For the vertical line, @var{x} does not have meaningful data.
@ -1266,13 +1266,14 @@ This is the image object on which the click occurred. It is either
an image object as returned by @code{find-image} if click was in an image.
@item @var{dx}, @var{dy}
These are the pixel-denominated coordinates of the click, relative to
These are the pixel coordinates of the click, relative to
the top left corner of @var{object}, which is @code{(0 . 0)}. If
@var{object} is @code{nil}, the coordinates are relative to the top
left corner of the character glyph clicked on.
@item @var{width}, @var{height}
These are the pixel-denominated width and height of @var{object}.
These are the pixel width and height of @var{object} or, if this is
@code{nil}, those of the character glyph clicked on.
@end table
@sp 1

View file

@ -2505,8 +2505,9 @@ makes @code{modeline} an alias for the @code{mode-line} face.
@cindex automatic face assignment
@cindex faces, automatic choice
This hook is used for automatically assigning faces to text in the
buffer. It is part of the implementation of Font-Lock mode.
This hook is used for automatically assigning facesto text in the
buffer. It is part of the implementation of Jit-Lock mode, used by
Font-Lock.
@defvar fontification-functions
This variable holds a list of functions that are called by Emacs

View file

@ -7,7 +7,7 @@
@c Version of the manual and of Emacs.
@c Please remember to update the edition number in README as well.
@set VERSION 2.9
@set EMACSVER 22.0.990
@set EMACSVER 22.1.50
@dircategory Emacs
@direntry

View file

@ -706,6 +706,7 @@ results for LCD color displays.
These frame parameters are semi-obsolete in that they are automatically
equivalent to particular face attributes of particular faces.
@xref{Standard Faces,,, emacs, The Emacs Manual}.
@table @code
@item font

View file

@ -2951,6 +2951,11 @@ meanings. The following sections list a few additional special property
names that control filling and property inheritance. All other names
have no standard meaning, and you can use them as you like.
Note: the properties @code{composition}, @code{display},
@code{invisible} and @code{intangible} can also cause point to move to
an acceptable place, after each Emacs command. @xref{Adjusting
Point}.
@table @code
@cindex property category of text character
@kindex category @r{(text property)}
@ -3019,24 +3024,11 @@ that all text between the character and where the mouse is have the same
@item fontified
@kindex fontified @r{(text property)}
This property says whether the character has a face assigned to it by font
locking. The display engine tests it to decide whether a buffer
portion needs refontifying before display. @xref{Auto Faces}. It
takes one of three values:
@table @asis
@item @code{nil}
Font locking is disabled, or the character's @code{face} property, if
any, is invalid.
@item @code{defer}
This value is only used when ``just in time'' font locking is enabled
and it means that the character's @code{face} property is invalid and
needs deferred fontification.
@item @code{t}
The character's @code{face} property, or absence of one, is valid.
@end table
This property says whether the text is ready for display. If
@code{nil}, Emacs's redisplay routine calls the functions in
@code{fontification-functions} (@pxref{Auto Faces}) to prepare this
part of the buffer before it is displayed. It is used internally by
the ``just in time'' font locking code.
@item display
This property activates various features that change the
@ -3138,6 +3130,10 @@ If you try to move point forward into the group, point actually moves to
the end of the group. If you try to move point backward into the group,
point actually moves to the start of the group.
If consecutive characters have unequal non-@code{nil}
@code{intangible} properties, they belong to separate groups; each
group is separately treated as described above.
When the variable @code{inhibit-point-motion-hooks} is non-@code{nil},
the @code{intangible} property is ignored.

View file

@ -1,3 +1,7 @@
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-02-28 Glenn Morris <rgm@gnu.org>
* Makefile.in (distclean): Delete Makefile.

View file

@ -1,3 +1,7 @@
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-05-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* INSTALL: Add note about moving self-contained application bundle

View file

@ -1,10 +1,33 @@
2007-05-28 Michael Albinus <michael.albinus@gmx.de>
2007-06-06 Andreas Seltenreich <andreas@gate450.dyndns.org>
* gnus.texi (Misc Group Stuff, Summary Buffer)
(Server Commands, Article Keymap): Fix typo. s/function/command/.
2007-06-07 Alan Mackenzie <acm@muc.de>
* display.texi (Optional Mode Line): Document the new form of
line+column numbers, "(561,2)".
2007-06-06 Juanma Barranquero <lekktu@gmail.com>
* cc-mode.texi (Comment Commands, Getting Started, Style Variables):
* gnus.texi (Article Buttons, Mail Source Customization)
(Sending or Not Sending, Customizing NNDiary):
* maintaining.texi (Create Tags Table):
* message.texi (Message Headers):
* mh-e.texi (HTML): Fix typos.
2007-06-07 Michael Albinus <michael.albinus@gmx.de>
Sync with Tramp 2.0.56.
* tramp.texi (Frequently Asked Questions): Improve ~/.zshrc
settings. Reported by Ted Zlatanov <tzz@lifelogs.com>.
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-05-26 Michael Olson <mwolson@gnu.org>
* erc.texi (Modules): Fix references to completion modules.
@ -15,12 +38,12 @@
2007-05-09 Didier Verna <didier@xemacs.org>
* gnus.texi (Email Based Diary): New. Proper documentation for the
* gnus.texi (Email Based Diary): New. Proper documentation for the
nndiary back end and the gnus-diary library.
2007-05-07 Karl Berry <karl@gnu.org>
* emacs.texi (EMACSVER): back to 22.
* emacs.texi (EMACSVER): Back to 22.
2007-05-06 Richard Stallman <rms@gnu.org>
@ -39,9 +62,9 @@
* emacs.texi (EMACSVER) [smallbook]: 22 for printed version.
* .cvsignore (*.pdf): new entry.
* .cvsignore (*.pdf): New entry.
* texinfo.tex: update from current version for better pdf generation.
* texinfo.tex: Update from current version for better pdf generation.
* emacs.texi (\urlcolor, \linkcolor) [smallbook]: \let to \Black
for printing.
@ -1375,9 +1398,9 @@
* emacs.texi (\hbadness): Set to 6000 so we aren't bothered by
not-too-underfull hboxes in the TeX output.
* abbrevs.texi, buffers.texi, building.texi, calendar.texi,
cmdargs.texi, custom.texi, dired.texi, macos.texi,
maintaining.texi, misc.texi, mule.texi, programs.texi, rmail.texi,
sending.texi, text.texi: fix overfull/underfull boxes.
* cmdargs.texi, custom.texi, dired.texi, macos.texi,
* maintaining.texi, misc.texi, mule.texi, programs.texi, rmail.texi,
* sending.texi, text.texi: Fix overfull/underfull boxes.
2006-07-03 Romain Francoise <romain@orebokech.com>
@ -1460,7 +1483,7 @@
2006-06-25 Nick Roberts <nickrob@snap.net.nz>
* frames.texi (XTerm Mouse) Rename to...
* frames.texi (XTerm Mouse): Rename to...
(Text-Only Mouse): ...this. Mention t-mouse-mode.
* emacs.texi (Top): Use new node name.
@ -1803,7 +1826,7 @@
2006-05-06 Eli Zaretskii <eliz@gnu.org>
* makefile.w32-in (emacs.dvi):
* Makefile.in (emacs.dvi): Add xresmini.texi
* Makefile.in (emacs.dvi): Add xresmini.texi.
* xresmini.texi (Table of Resources): Remove xref to non-existent
node "LessTif Resources".
@ -1889,7 +1912,7 @@
Next, and Up links.
* emacs.texi (Top) [ifnottex]: Add menu entries for "Picture Mode"
and its sections. @include picture-xtra.texi
and its sections. @include picture-xtra.texi.
* maintaining.texi (Maintaining) [ifnottex]: Add menu entry for
"Emerge".
@ -1944,11 +1967,11 @@
2006-05-05 Karl Berry <karl@gnu.org>
* texinfo.tex (\definetextfonsizexi, \definetextfonsizex): new cmds.
(\fonttextsize): new user-level command to change text font size.
* emacs.texi: call @fonttextsize 10, inside @tex to avoid
* texinfo.tex (\definetextfonsizexi, \definetextfonsizex): New cmds.
(\fonttextsize): New user-level command to change text font size.
* emacs.texi: Call @fonttextsize 10, inside @tex to avoid
errors from the current release of makeinfo (4.8).
* help.texi (Library Keywords): change widest word in multitable
* help.texi (Library Keywords): Change widest word in multitable
template from `emulations' to `convenience'. (Not sure if this is
related to the font change.)
@ -2148,7 +2171,7 @@
(Inserting Version Control Headers, Customizing VC, General Options)
(Options for RCS and SCCS, Options specific for CVS): Move all
these nodes to emacs-xtra.texi, for brevity.
* cmdargs.texi, files.texi: change cross-references.
* cmdargs.texi, files.texi: Change cross-references.
2006-04-11 Reiner Steib <Reiner.Steib@gmx.de>
@ -2179,13 +2202,13 @@
2006-04-09 Karl Berry <karl@gnu.org>
* msdog.texi, emacs-xtra.texi: move all the MS-DOS material to
* msdog.texi, emacs-xtra.texi: Move all the MS-DOS material to
emacs-xtra.texi, leaving only MS Windows information.
* building.texi, emacs.texi, frames.texi, gnu.texi, macos.texi,
msdog.texi, mule.texi, trouble.texi: change cross-references and
* msdog.texi, mule.texi, trouble.texi: Change cross-references and
node names.
* emacs.texi: move @summarycontents and @contents to the beginning
* emacs.texi: Move @summarycontents and @contents to the beginning
of the file.
2006-04-07 Reiner Steib <Reiner.Steib@gmx.de>
@ -2264,7 +2287,7 @@
* sending.texi (Mail Sending): pxref to Top needs five args.
* texinfo.tex: update to current version (2006-03-21.13).
* texinfo.tex: Update to current version (2006-03-21.13).
2006-04-02 Bill Wohler <wohler@newt.com>
@ -2913,7 +2936,7 @@
* mark.texi: Minor clarifications.
(Selective Undo): Node deleted.
* m-x.texi: Minor clarifications
* m-x.texi: Minor clarifications.
* killing.texi: Minor clarifications.
Refer to "graphical" terminals, rather than window systems.
@ -3603,7 +3626,7 @@
2005-11-04 Carsten Dominik <dominik@science.uva.nl>
* org.texi: Version number changed to 3.19
* org.texi: Version number changed to 3.19.
2005-11-04 Romain Francoise <romain@orebokech.com>
@ -3802,7 +3825,7 @@
2005-10-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* cmdargs.texi (Icons X): -nb => -nbi
* cmdargs.texi (Icons X): -nb => -nbi.
2005-10-10 Chong Yidong <cyd@stupidchicken.com>
@ -3893,7 +3916,7 @@
2005-09-23 Carsten Dominik <dominik@science.uva.nl>
* org.texi Version 3.16
* org.texi Version 3.16.
2005-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
@ -4153,11 +4176,11 @@
2005-07-19 Carsten Dominik <dominik@science.uva.nl>
* org.texi: Version 3.14
* org.texi: Version 3.14.
2005-07-04 Carsten Dominik <dominik@science.uva.nl>
* org.texi: Version 3.13
* org.texi: Version 3.13.
2005-07-19 Juri Linkov <juri@jurta.org>
@ -4261,7 +4284,7 @@
2005-06-29 Carsten Dominik <dominik@science.uva.nl>
* org.texi: Version 3.12
* org.texi: Version 3.12.
2005-06-24 Richard M. Stallman <rms@gnu.org>
@ -4341,7 +4364,7 @@
2005-06-13 Carsten Dominik <dominik@science.uva.nl>
* org.texi: Version 3.11
* org.texi: Version 3.11.
2005-06-12 Jay Belanger <belanger@truman.edu>
@ -4487,11 +4510,11 @@
2005-05-20 Carsten Dominik <dominik@science.uva.nl>
* org.texi: Version 3.09
* org.texi: Version 3.09.
2005-05-18 Carsten Dominik <dominik@science.uva.nl>
* reftex.texi: Version 4.28
* reftex.texi: Version 4.28.
2005-05-18 Luc Teirlinck <teirllm@auburn.edu>
@ -4639,7 +4662,7 @@
2005-04-25 Chong Yidong <cyd@stupidchicken.com>
* ack.texi (Acknowledgments): Delete info about iso-acc.el
* ack.texi (Acknowledgments): Delete info about iso-acc.el.
* dired.texi (Misc Dired Features): Document
dired-compare-directories.
@ -6199,7 +6222,7 @@
2004-09-10 Eli Zaretskii <eliz@gnu.org>
* Makefile.in (../info/gnus, gnus.dvi): Depend on gnus-faq.texi
* Makefile.in (../info/gnus, gnus.dvi): Depend on gnus-faq.texi.
2004-09-09 Kim F. Storm <storm@cua.dk>
@ -7305,7 +7328,7 @@
2003-02-17 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* xresources.texi (GTK names in Emacs): Add emacs-toolbar - GtkToolbar
* xresources.texi (GTK names in Emacs): Add emacs-toolbar - GtkToolbar.
2003-02-05 Kai Gro,A_(Bjohann <kai.grossjohann@uni-duisburg.de>
@ -7375,8 +7398,8 @@
Also use @ifnottex instead of @ifinfo around the top node, where
needed for the sake of the HTML output.
(The Gnus manual is not fixed since it's not clear to me how it
works; and the Tramp manual already uses @copying, although in an
unusual way. All others were changed.)
works; and the Tramp manual already uses @copying, although in an
unusual way. All others were changed.)
2002-09-10 Jonathan Yavner <jyavner@engineer.com>
@ -7501,7 +7524,7 @@
1999-10-12 Stefan Monnier <monnier@cs.yale.edu>
* Makefile.in (faq): Use ../info/emacs-faq.info (as specified in the
faq.texi file) rather than ../info/faq.
faq.texi file) rather than ../info/faq.
1999-10-07 Gerd Moellmann <gerd@gnu.org>

View file

@ -236,113 +236,113 @@ functions, classes etc - there are other packages for that.
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@menu
* Introduction::
* Overview::
* Getting Started::
* Commands::
* Font Locking::
* Config Basics::
* Custom Filling and Breaking::
* Custom Auto-newlines::
* Clean-ups::
* Indentation Engine Basics::
* Customizing Indentation::
* Custom Macros::
* Odds and Ends::
* Sample .emacs File::
* Performance Issues::
* Limitations and Known Bugs::
* FAQ::
* Updating CC Mode::
* Mailing Lists and Bug Reports::
* Introduction::
* Overview::
* Getting Started::
* Commands::
* Font Locking::
* Config Basics::
* Custom Filling and Breaking::
* Custom Auto-newlines::
* Clean-ups::
* Indentation Engine Basics::
* Customizing Indentation::
* Custom Macros::
* Odds and Ends::
* Sample .emacs File::
* Performance Issues::
* Limitations and Known Bugs::
* FAQ::
* Updating CC Mode::
* Mailing Lists and Bug Reports::
* GNU Free Documentation License::
* Command and Function Index::
* Variable Index::
* Concept and Key Index::
* Command and Function Index::
* Variable Index::
* Concept and Key Index::
@detailmenu
--- The Detailed Node Listing ---
Commands
* Indentation Commands::
* Comment Commands::
* Movement Commands::
* Filling and Breaking::
* Minor Modes::
* Electric Keys::
* Auto-newlines::
* Hungry WS Deletion::
* Subword Movement::
* Other Commands::
* Indentation Commands::
* Comment Commands::
* Movement Commands::
* Filling and Breaking::
* Minor Modes::
* Electric Keys::
* Auto-newlines::
* Hungry WS Deletion::
* Subword Movement::
* Other Commands::
Font Locking
* Font Locking Preliminaries::
* Faces::
* Doc Comments::
* AWK Mode Font Locking::
* Font Locking Preliminaries::
* Faces::
* Doc Comments::
* AWK Mode Font Locking::
Configuration Basics
* CC Hooks::
* Style Variables::
* Styles::
* CC Hooks::
* Style Variables::
* Styles::
Styles
* Built-in Styles::
* Choosing a Style::
* Adding Styles::
* File Styles::
* Built-in Styles::
* Choosing a Style::
* Adding Styles::
* File Styles::
Customizing Auto-newlines
* Hanging Braces::
* Hanging Colons::
* Hanging Semicolons and Commas::
* Hanging Braces::
* Hanging Colons::
* Hanging Semicolons and Commas::
Hanging Braces
* Custom Braces::
* Custom Braces::
Indentation Engine Basics
* Syntactic Analysis::
* Syntactic Symbols::
* Indentation Calculation::
* Syntactic Analysis::
* Syntactic Symbols::
* Indentation Calculation::
Syntactic Symbols
* Function Symbols::
* Class Symbols::
* Conditional Construct Symbols::
* Switch Statement Symbols::
* Brace List Symbols::
* External Scope Symbols::
* Paren List Symbols::
* Literal Symbols::
* Multiline Macro Symbols::
* Objective-C Method Symbols::
* Anonymous Class Symbol::
* Statement Block Symbols::
* K&R Symbols::
* Function Symbols::
* Class Symbols::
* Conditional Construct Symbols::
* Switch Statement Symbols::
* Brace List Symbols::
* External Scope Symbols::
* Paren List Symbols::
* Literal Symbols::
* Multiline Macro Symbols::
* Objective-C Method Symbols::
* Anonymous Class Symbol::
* Statement Block Symbols::
* K&R Symbols::
Customizing Indentation
* c-offsets-alist::
* Interactive Customization::
* Line-Up Functions::
* Custom Line-Up::
* Other Indentation::
* c-offsets-alist::
* Interactive Customization::
* Line-Up Functions::
* Custom Line-Up::
* Other Indentation::
Line-Up Functions
* Brace/Paren Line-Up::
* List Line-Up::
* Operator Line-Up::
* Comment Line-Up::
* Misc Line-Up::
* Brace/Paren Line-Up::
* List Line-Up::
* Operator Line-Up::
* Comment Line-Up::
* Misc Line-Up::
@end detailmenu
@end menu
@ -534,7 +534,7 @@ is no ``easy customization'' facility for making this change.}:
@end example
@noindent
Details of of this and other similar ``Minor Modes'' appear in the
Details of this and other similar ``Minor Modes'' appear in the
section @ref{Minor Modes}.
@item Making the @key{RET} key indent the new line
@ -613,16 +613,16 @@ structures.
@menu
* Indentation Commands::
* Comment Commands::
* Movement Commands::
* Filling and Breaking::
* Minor Modes::
* Electric Keys::
* Auto-newlines::
* Hungry WS Deletion::
* Subword Movement::
* Other Commands::
* Indentation Commands::
* Comment Commands::
* Movement Commands::
* Filling and Breaking::
* Minor Modes::
* Electric Keys::
* Auto-newlines::
* Hungry WS Deletion::
* Subword Movement::
* Other Commands::
@end menu
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@ -852,7 +852,7 @@ actions describing how they should be handled. If a certain line type
isn't present on the list then the line is indented to the column
specified by @code{comment-column}.
See the documentation string for for a full description of this
See the documentation string for a full description of this
variable (use @kbd{C-h v c-indent-comment-alist}).
@end defopt
@ -1810,10 +1810,10 @@ chapter, @ref{AWK Mode Font Locking}, applies to AWK. The other
sections apply to the other languages.
@menu
* Font Locking Preliminaries::
* Faces::
* Doc Comments::
* AWK Mode Font Locking::
* Font Locking Preliminaries::
* Faces::
* Doc Comments::
* AWK Mode Font Locking::
@end menu
@ -2318,9 +2318,9 @@ have it enabled by default by placing the following in your
@end table
@menu
* CC Hooks::
* Style Variables::
* Styles::
* CC Hooks::
* Style Variables::
* Styles::
@end menu
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@ -2409,7 +2409,7 @@ The variables that @ccmode{}'s style system control are called
@dfn{style variables}. Note that style variables are ordinary Lisp
variables, which the style system initializes; you can change their
values at any time (e.g. in a hook function). The style system can
also also set other variables, to some extent. @xref{Styles}.
also set other variables, to some extent. @xref{Styles}.
@dfn{Style variables} are handled specially in several ways:
@ -2509,10 +2509,10 @@ for any particular style, and pretty easily start editing new or
existing code using these styles.
@menu
* Built-in Styles::
* Choosing a Style::
* Adding Styles::
* File Styles::
* Built-in Styles::
* Choosing a Style::
* Adding Styles::
* File Styles::
@end menu
@ -3059,9 +3059,9 @@ to remove these automatically added newlines in certain specific
circumstances. @xref{Clean-ups}.
@menu
* Hanging Braces::
* Hanging Colons::
* Hanging Semicolons and Commas::
* Hanging Braces::
* Hanging Colons::
* Hanging Semicolons and Commas::
@end menu
@ -3212,7 +3212,7 @@ themselves.
@end defopt
@menu
* Custom Braces::
* Custom Braces::
@end menu
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@ -3732,9 +3732,9 @@ of the variables associated with indentation, not even
@end defopt
@menu
* Syntactic Analysis::
* Syntactic Symbols::
* Indentation Calculation::
* Syntactic Analysis::
* Syntactic Symbols::
* Indentation Calculation::
@end menu
@ -4113,19 +4113,19 @@ Java. @ref{Anonymous Class Symbol}.
@end table
@menu
* Function Symbols::
* Class Symbols::
* Conditional Construct Symbols::
* Switch Statement Symbols::
* Brace List Symbols::
* External Scope Symbols::
* Paren List Symbols::
* Literal Symbols::
* Multiline Macro Symbols::
* Objective-C Method Symbols::
* Anonymous Class Symbol::
* Statement Block Symbols::
* K&R Symbols::
* Function Symbols::
* Class Symbols::
* Conditional Construct Symbols::
* Switch Statement Symbols::
* Brace List Symbols::
* External Scope Symbols::
* Paren List Symbols::
* Literal Symbols::
* Multiline Macro Symbols::
* Objective-C Method Symbols::
* Anonymous Class Symbol::
* Statement Block Symbols::
* K&R Symbols::
@end menu
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@ -5019,11 +5019,11 @@ can install functions here to make ad-hoc adjustments to any line's
indentation.
@menu
* c-offsets-alist::
* Interactive Customization::
* Line-Up Functions::
* Custom Line-Up::
* Other Indentation::
* c-offsets-alist::
* Interactive Customization::
* Line-Up Functions::
* Custom Line-Up::
* Other Indentation::
@end menu
@ -5371,11 +5371,11 @@ Works with:
@end iftex
@menu
* Brace/Paren Line-Up::
* List Line-Up::
* Operator Line-Up::
* Comment Line-Up::
* Misc Line-Up::
* Brace/Paren Line-Up::
* List Line-Up::
* Operator Line-Up::
* Comment Line-Up::
* Misc Line-Up::
@end menu
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

View file

@ -922,8 +922,18 @@ accessible part of the buffer is shown.
Number mode is enabled. Use the command @kbd{M-x line-number-mode} to
turn this mode on and off; normally it is on. The line number appears
after the buffer percentage @var{pos}, with the letter @samp{L} to
indicate what it is. @xref{Minor Modes}, for more information about
minor modes and about how to use this command.
indicate what it is.
@cindex Column Number mode
@cindex mode, Column Number
@findex column-number-mode
Similarly, you can display the current column number by turning on
Column number mode with @kbd{M-x column-number-mode}. The column
number is indicated by the letter @samp{C}. However, when both of
these modes are enabled, the line and column numbers are displayed in
parentheses, the line number first, rather than with @samp{L} and
@samp{C}. For example: @samp{(561,2)}. @xref{Minor Modes}, for more
information about minor modes and about how to use these commands.
@cindex narrowing, and line number display
If you have narrowed the buffer (@pxref{Narrowing}), the displayed
@ -946,13 +956,6 @@ larger than the value of the variable
@code{line-number-display-limit-width}. The default value is 200
characters.
@cindex Column Number mode
@cindex mode, Column Number
@findex column-number-mode
You can also display the current column number by turning on Column
Number mode. It displays the current column number preceded by the
letter @samp{C}. Type @kbd{M-x column-number-mode} to toggle this mode.
@findex display-time
@cindex time (on mode line)
Emacs can optionally display the time and system load in all mode

View file

@ -4084,8 +4084,8 @@ happens. You just have to be careful if you do stuff like that.
@item v
@kindex v (Group)
@cindex keys, reserved for users (Group)
The key @kbd{v} is reserved for users. You can bind it key to some
function or better use it as a prefix key. For example:
The key @kbd{v} is reserved for users. You can bind it to some
command or better use it as a prefix key. For example:
@lisp
(define-key gnus-group-mode-map (kbd "v j d")
@ -4498,8 +4498,8 @@ available in Emacs.
@kindex v (Summary)
@cindex keys, reserved for users (Summary)
The key @kbd{v} is reserved for users. You can bind it key to some
function or better use it as a prefix key. For example:
The key @kbd{v} is reserved for users. You can bind it to some
command or better use it as a prefix key. For example:
@lisp
(define-key gnus-summary-mode-map (kbd "v -") "LrS") ;; lower subthread
@end lisp
@ -8936,7 +8936,7 @@ This variable determines what to do when the button on a string as
message ID or a mail address. If it is one of the symbols @code{mid} or
@code{mail}, Gnus will always assume that the string is a message ID or
a mail address, respectively. If this variable is set to the symbol
@code{ask}, always query the user what do do. If it is a function, this
@code{ask}, always query the user what to do. If it is a function, this
function will be called with the string as its only argument. The
function must return @code{mid}, @code{mail}, @code{invalid} or
@code{ask}. The default value is the function
@ -11422,8 +11422,8 @@ buffer.
@kindex v (Article)
@cindex keys, reserved for users (Article)
The key @kbd{v} is reserved for users. You can bind it key to some
function or better use it as a prefix key.
The key @kbd{v} is reserved for users. You can bind it to some
command or better use it as a prefix key.
A few additional keystrokes are available:
@ -12460,8 +12460,8 @@ Also @pxref{Formatting Variables}.
@item v
@kindex v (Server)
@cindex keys, reserved for users (Server)
The key @kbd{v} is reserved for users. You can bind it key to some
function or better use it as a prefix key.
The key @kbd{v} is reserved for users. You can bind it to some
command or better use it as a prefix key.
@item a
@kindex a (Server)
@ -14034,7 +14034,7 @@ files. If a positive number, delete files older than number of days
@item mail-source-delete-old-incoming-confirm
@vindex mail-source-delete-old-incoming-confirm
If non-@code{nil}, ask for for confirmation before deleting old incoming
If non-@code{nil}, ask for confirmation before deleting old incoming
files. This variable only applies when
@code{mail-source-delete-incoming} is a positive number.
@ -16589,7 +16589,7 @@ Probably the only useful value to change this to is
messages instead of the internal article date. See section 6.4.4 of
RFC 2060 for more information on valid strings.
However, if @code{nnimap-search-uids-not-since-is-evil}
However, if @code{nnimap-search-uids-not-since-is-evil}
is true, this variable has no effect since the search logic
is reversed, as described below.
@ -18107,7 +18107,7 @@ two variables are probably the only ones you will want to change:
@defvar nndiary-reminders
This is the list of times when you want to be reminded of your
appointements (e.g. 3 weeks before, then 2 days before, then 1 hour
appointments (e.g. 3 weeks before, then 2 days before, then 1 hour
before and that's it). Remember that ``being reminded'' means that the
diary message will pop up as brand new and unread again when you get new
mail.
@ -18258,14 +18258,14 @@ automatically (although not filled with proper values yet).
@node Sending or Not Sending
@subsection Sending or Not Sending
Well, assuming you've read of of the above, here are two final notes on
Well, assuming you've read all of the above, here are two final notes on
mail sending with @code{nndiary}:
@itemize @bullet
@item
@code{nndiary} is a @emph{real} mail back end. You really send real diary
messsages for real. This means for instance that you can give
appointements to anybody (provided they use Gnus and @code{nndiary}) by
appointments to anybody (provided they use Gnus and @code{nndiary}) by
sending the diary message to them as well.
@item
However, since @code{nndiary} also has a @code{request-post} method, you

View file

@ -409,8 +409,8 @@ source files, and the tags file will still refer correctly to the source
files. If the tags file is in @file{/dev}, however, the file names are
made relative to the current working directory. This is useful, for
example, when writing the tags to @file{/dev/stdout}.
When using a a relative file name, it should not be a symbolic link
When using a relative file name, it should not be a symbolic link
pointing to a tags file in a different directory, because this would
generally render the file names invalid.

View file

@ -1450,7 +1450,7 @@ responding to a message:
@vindex message-subject-trailing-was-regexp
Controls what to do with trailing @samp{(was: <old subject>)} in subject
lines. If @code{nil}, leave the subject unchanged. If it is the symbol
@code{ask}, query the user what do do. In this case, the subject is
@code{ask}, query the user what to do. In this case, the subject is
matched against @code{message-subject-trailing-was-ask-regexp}. If
@code{message-subject-trailing-was-query} is @code{t}, always strip the
trailing old subject. In this case,

View file

@ -132,64 +132,64 @@ Fifth Floor, Boston, MA 02110-1301, USA.
Tour Through MH-E
* Sending Mail Tour::
* Reading Mail Tour::
* Processing Mail Tour::
* Leaving MH-E::
* More About MH-E::
* Sending Mail Tour::
* Reading Mail Tour::
* Processing Mail Tour::
* Leaving MH-E::
* More About MH-E::
Using This Manual
* Options::
* Ranges::
* Folder Selection::
* Options::
* Ranges::
* Folder Selection::
Reading Your Mail
* Viewing::
* Viewing Attachments::
* HTML::
* Digests::
* Reading PGP::
* Printing::
* Files and Pipes::
* Navigating::
* Miscellaneous Commands and Options::
* Viewing::
* Viewing Attachments::
* HTML::
* Digests::
* Reading PGP::
* Printing::
* Files and Pipes::
* Navigating::
* Miscellaneous Commands and Options::
Sending Mail
* Composing::
* Replying::
* Forwarding::
* Redistributing::
* Editing Again::
* Composing::
* Replying::
* Forwarding::
* Redistributing::
* Editing Again::
Editing a Draft
* Editing Message::
* Inserting Letter::
* Inserting Messages::
* Signature::
* Picture::
* Adding Attachments::
* Sending PGP::
* Checking Recipients::
* Sending Message::
* Killing Draft::
* Editing Message::
* Inserting Letter::
* Inserting Messages::
* Signature::
* Picture::
* Adding Attachments::
* Sending PGP::
* Checking Recipients::
* Sending Message::
* Killing Draft::
Odds and Ends
* Bug Reports::
* Mailing Lists::
* MH FAQ and Support::
* Getting MH-E::
* Bug Reports::
* Mailing Lists::
* MH FAQ and Support::
* Getting MH-E::
History of MH-E
* From Brian Reid::
* From Jim Larus::
* From Stephen Gildea::
* From Bill Wohler::
* From Brian Reid::
* From Jim Larus::
* From Stephen Gildea::
* From Bill Wohler::
@end detailmenu
@end menu
@ -360,7 +360,7 @@ mode (@pxref{Reading Mail Tour}). In this mode, simply enter the
numerical argument before entering the command.
@end quotation
@sp 1
@cindex @file{.emacs}
@cindex Emacs, variables
@cindex files, @file{.emacs}
@ -415,7 +415,7 @@ Face Customization} in @cite{The GNU Emacs Manual}.
@findex customize-option
Commands often offer @dfn{hooks} which enable you to extend or modify
the way a command works.
the way a command works.
@ifnothtml
@ref{Hooks, , Hooks, emacs, The GNU Emacs Manual}, in @cite{The GNU
Emacs Manual}
@ -673,11 +673,11 @@ use all the features of MH-E. I suggest you read this chapter first to
get the big picture, and then you can read the manual as you wish.
@menu
* Sending Mail Tour::
* Reading Mail Tour::
* Processing Mail Tour::
* Leaving MH-E::
* More About MH-E::
* Sending Mail Tour::
* Reading Mail Tour::
* Processing Mail Tour::
* Leaving MH-E::
* More About MH-E::
@end menu
@node Sending Mail Tour, Reading Mail Tour, Tour Through MH-E, Tour Through MH-E
@ -843,10 +843,10 @@ sending the original message, like this:
@cartouche
@smallexample
To:
cc:
Subject: Re: Test
In-reply-to: <31054.1142621351@@stop.mail-abuse.org>
To:
cc:
Subject: Re: Test
In-reply-to: <31054.1142621351@@stop.mail-abuse.org>
References: <31054.1142621351@@stop.mail-abuse.org>
Comments: In-reply-to Bill Wohler <wohler@@stop.mail-abuse.org>
message dated "Fri, 17 Mar 2006 10:49:11 -0800."
@ -1161,9 +1161,9 @@ conflicts with existing MH-E symbols, use a prefix like @samp{my-} or
your initials. (Unless, of course, your initials happen to be @emph{mh}!)
@menu
* Options::
* Ranges::
* Folder Selection::
* Options::
* Ranges::
* Folder Selection::
@end menu
@node Options, Ranges, Using This Manual, Using This Manual
@ -2001,15 +2001,15 @@ The functions and variables introduced here are explained in more
detail in the following sections.
@menu
* Viewing::
* Viewing Attachments::
* HTML::
* Digests::
* Reading PGP::
* Printing::
* Files and Pipes::
* Navigating::
* Miscellaneous Commands and Options::
* Viewing::
* Viewing Attachments::
* HTML::
* Digests::
* Reading PGP::
* Printing::
* Files and Pipes::
* Navigating::
* Miscellaneous Commands and Options::
@end menu
@node Viewing, Viewing Attachments, Reading Mail, Reading Mail
@ -2047,7 +2047,7 @@ The option @code{mh-show-maximum-size} provides an opportunity to skip
over large messages which may be slow to load. The default value of 0
means that all message are shown regardless of size.
A litany of options control what displayed messages look like.
A litany of options control what displayed messages look like.
@vindex mh-show-cc
@vindex mh-show-date
@ -2637,7 +2637,7 @@ the Gnus command @kbd{W h} (@pxref{Article Washing,,,gnus},).
@end ifinfo
@ifnotinfo
see section @uref{http://www.gnus.org/manual/emacs-mime_6.html,
Display Customization} in the @cite{The Emacs MIME Manual} and the the
Display Customization} in the @cite{The Emacs MIME Manual} and the
documentation for the Gnus command @kbd{W h} (see section
@uref{http://www.gnus.org/manual/gnus_99.html, Article Washing} in the
@cite{The Gnus Manual}).
@ -2808,7 +2808,7 @@ The latter is used whether the signature is unknown or untrusted.
@cindex customization group, @samp{pgg}
The @samp{pgg} customization group may have some settings which may
interest you.
interest you.
@iftex
See @cite{The PGG Manual}.
@end iftex
@ -3942,11 +3942,11 @@ The functions and options introduced here are explained in more detail
in the following sections.
@menu
* Composing::
* Replying::
* Forwarding::
* Redistributing::
* Editing Again::
* Composing::
* Replying::
* Forwarding::
* Redistributing::
* Editing Again::
@end menu
@node Composing, Replying, Sending Mail, Sending Mail
@ -4686,16 +4686,16 @@ The commands and options introduced here are explained in more
detail in the following sections.
@menu
* Editing Message::
* Inserting Letter::
* Inserting Messages::
* Signature::
* Picture::
* Adding Attachments::
* Sending PGP::
* Checking Recipients::
* Sending Message::
* Killing Draft::
* Editing Message::
* Inserting Letter::
* Inserting Messages::
* Signature::
* Picture::
* Adding Attachments::
* Sending PGP::
* Checking Recipients::
* Sending Message::
* Killing Draft::
@end menu
@node Editing Message, Inserting Letter, Editing Drafts, Editing Drafts
@ -4795,7 +4795,7 @@ the alias expansion in the minibuffer if
@code{mh-alias-flash-on-comma} is turned on.
@c XXX Document the replacement for the inaccessible 'long argument.
@findex mh-letter-toggle-header-field-display
@kindex C-c C-t
@ -5543,7 +5543,7 @@ mechanisms include vanilla @samp{PGP} and @samp{S/MIME}.
@cindex customization group, @samp{pgg}
The @samp{pgg} customization group may have some settings which may
interest you.
interest you.
@iftex
See @cite{The PGG Manual}.
@end iftex
@ -5954,7 +5954,7 @@ mh-alias-apropos} to show all aliases or addresses that match a
regular expression
@ifnothtml
(@pxref{Regexps, , Syntax of Regular Expressions, emacs, The
GNU Emacs Manual}).
GNU Emacs Manual}).
@end ifnothtml
@ifhtml
(see the section
@ -6104,7 +6104,7 @@ customize @code{mh-auto-fields-list}, click on the @samp{INS} button
and enter a regular expression for the recipient's address
@ifnothtml
(@pxref{Regexps, , Syntax of Regular Expressions, emacs, The
GNU Emacs Manual}).
GNU Emacs Manual}).
@end ifnothtml
@ifhtml
(see the section
@ -6142,7 +6142,7 @@ recipient is also listed there so that he receives replies to your
reply.
@c -------------------------
@item Other Field
Other header fields may be added using this menu item.
Other header fields may be added using this menu item.
@end table
@findex mh-insert-auto-fields
@ -6181,7 +6181,7 @@ added. To customize @code{mh-identity-handlers}, replace the name of
an existing handler function associated with the field you want to
change with the name of a function you have written. You can also
click on an @samp{INS} button and insert a field of your choice and
the name of the function you have written to handle it.
the name of the function you have written to handle it.
@vindex mh-identity-list
@ -6210,7 +6210,7 @@ containing the value for the field is given.
@kindex M-x speedbar
@kindex Mouse-2
You can also use the speedbar
You can also use the speedbar
@ifnothtml
(@pxref{Speedbar, , Speedbar Frames, emacs, The GNU Emacs Manual},)
@end ifnothtml
@ -6573,7 +6573,7 @@ There is one option from the @samp{mh-search} customization group used
in searching.
@vtable @code
@item mh-search-program
@item mh-search-program
Search program that MH-E shall use (default: @samp{Auto-detect}).
@end vtable
@ -7145,7 +7145,7 @@ Limit to messages with the same @samp{Cc:} field
@c -------------------------
@kindex / m
@findex mh-narrow-to-from
@item / m
@item / m
Limit to messages with the same @samp{From:} field
(@code{mh-narrow-to-from}).
@c -------------------------
@ -7635,7 +7635,7 @@ If you don't use @command{spamc}, use @samp{spamassassin -P -a}.
Note that one of the recipes above throws away messages with a score
greater than or equal to 10. Here's how you can determine a value that
works best for you.
works best for you.
First, run @samp{spamassassin -t} on every mail message in your
archive and use @command{gnumeric} to verify that the average plus the
@ -8579,10 +8579,10 @@ tell you how to report bugs and how to get on the MH-E mailing lists.
I also point out some additional sources of information.
@menu
* Bug Reports::
* Mailing Lists::
* MH FAQ and Support::
* Getting MH-E::
* Bug Reports::
* Mailing Lists::
* MH FAQ and Support::
* Getting MH-E::
@end menu
@node Bug Reports, Mailing Lists, Odds and Ends, Odds and Ends
@ -8713,10 +8713,10 @@ development to @uref{http://sourceforge.net/, SourceForge} where it
lives today.
@menu
* From Brian Reid::
* From Jim Larus::
* From Stephen Gildea::
* From Bill Wohler::
* From Brian Reid::
* From Jim Larus::
* From Stephen Gildea::
* From Bill Wohler::
@end menu
@node From Brian Reid, From Jim Larus, History, History
@ -9715,7 +9715,7 @@ Public License instead of this License.
@c The following are words that ispell should ignore that would not
@c normally be in a dictionary (global or personal). Be careful not to
@c include words here that could potentially be typos of other words
@c (such as url, elisp, or MHE).
@c (such as url, elisp, or MHE).
@c
@c LocalWords: CTRL ESC SPC f's
@c LocalWords: addr Aliasfile alist

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,7 @@
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-02-10 Glenn Morris <rgm@gnu.org>
* COPYING.DJ: Remove file since it is no longer needed (see README

View file

@ -1,3 +1,7 @@
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-05-22 Eli Zaretskii <eliz@gnu.org>
* INSTALL: Add information about where to find GDB, and warn

View file

@ -1,3 +1,12 @@
2007-06-04 Ulrich Mueller <ulm@gentoo.org> (tiny change)
* ChgPane.c, ChgSel.c: Quiet --with-x-toolkit=no
compilation warnings: #include <config.h>.
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-05-30 Ulrich Mueller <ulm@gentoo.org> (tiny change)
* XMakeAssoc.c (XMakeAssoc): Use malloc rather than xmalloc.

View file

@ -13,6 +13,7 @@
*
*/
#include <config.h>
#include "XMenuInt.h"
int

View file

@ -13,6 +13,7 @@
*
*/
#include <config.h>
#include "XMenuInt.h"
int

View file

@ -1,3 +1,224 @@
2007-06-10 Jason Rumney <jasonr@gnu.org>
* w32fns.c (Fx_file_dialog): Take size from struct not pointer.
2007-06-08 Juanma Barranquero <lekktu@gmail.com>
* callint.c (Fcall_interactively):
* editfns.c (Fdelete_and_extract_region):
* fileio.c (Fread_file_name):
* fns.c (Fmapconcat):
* keyboard.c (cmd_error_internal):
* keymap.c (Fkey_description):
* lread.c (openp):
* minibuf.c (read_minibuf):
* search.c (wordify):
* sunfns.c (sel_read):
* xdisp.c (Fformat_mode_line, syms_of_xdisp):
* xfns.c (x_default_scroll_bar_color_parameter):
* xmenu.c (menu_help_callback):
* xselect.c (Fx_get_atom_name):
* xterm.c (x_term_init): Use empty_unibyte_string.
2007-06-08 Dmitry Antipov <dmitry.antipov@mail.ru> (tiny change)
* alloc.c (init_strings): Initialize canonical empty strings.
(make_uninit_string, make_uninit_multibyte_string): Return appropriate
canonical empty string when the requested size is 0.
* emacs.c (empty_unibyte_string): Rename from empty_string.
(empty_multibyte_string): New canonical empty string.
(syms_of_emacs): Don't initialize empty_string.
* lisp.h (STRING_SET_UNIBYTE): Return the canonical empty unibyte
string, if appropriate.
(empty_unibyte_string, empty_multibyte_string): New externs.
(empty_string): Remove extern.
* lread.c (syms_of_lread): Use empty_unibyte_string.
2007-06-07 Jason Rumney <jasonr@gnu.org>
* s/ms-w32.h: Don't define HAVE_TZNAME.
* editfns.c (Fcurrent_time_zone): Remove hack for Japanese Windows.
2007-06-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* mac.c (xrm_get_preference_database): Remove BLOCK_INPUT.
* macfns.c (mac_get_window_bounds): Move extern to macterm.h.
(compute_tip_xy) [TARGET_API_MAC_CARBON]: Use GetGlobalMouse.
* macmenu.c [TARGET_API_MAC_CARBON] (menu_target_item_handler):
Don't call next handler.
[TARGET_API_MAC_CARBON] (install_menu_target_item_handler):
Remove argument. Install handler to application.
(set_frame_menubar): Don't change deep_p.
(mac_menu_show): Use FRAME_OUTER_TO_INNER_DIFF_X and
FRAME_OUTER_TO_INNER_DIFF_Y.
(DIALOG_BUTTON_COMMAND_ID_OFFSET, DIALOG_BUTTON_COMMAND_ID_P)
(DIALOG_BUTTON_COMMAND_ID_VALUE, DIALOG_BUTTON_MAKE_COMMAND_ID)
[HAVE_DIALOGS]: New macros.
[HAVE_DIALOGS] (mac_handle_dialog_event, create_and_show_dialog):
Use them.
(fill_menubar) [TARGET_API_MAC_CARBON]: Use CFString.
* macselect.c [MAC_OSX] (install_service_handler): Rename from
init_service_handler. All callers changed. Return OSStatus value.
* macterm.c (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
All callers changed so as not to call SetPortWindowPort.
(mac_begin_cg_clip) [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw.
(mac_draw_image_string_atsui) [USE_ATSUI]: New function created from
mac_draw_string_common.
(mac_draw_image_string_qd): Likewise.
(mac_draw_string_common): Use them. Add INLINE.
(XTmouse_position, x_scroll_bar_report_motion) [TARGET_API_MAC_CARBON]:
Use FRAME_OUTER_TO_INNER_DIFF_X, FRAME_OUTER_TO_INNER_DIFF_Y, and
GetGlobalMouse.
(x_set_mouse_pixel_position) [MAC_OSX]: Use FRAME_OUTER_TO_INNER_DIFF_X
and FRAME_OUTER_TO_INNER_DIFF_Y.
[TARGET_API_MAC_CARBON] (mac_handle_mouse_event): Likewise.
[USE_MAC_TSM] (mac_handle_text_input_event): Likewise.
(x_make_frame_visible) [TARGET_API_MAC_CARBON]: Move code for
repositioning window to mac_handle_window_event.
(x_make_frame_invisible) [TARGET_API_MAC_CARBON]: Move code for
saving window location to mac_handle_window_event
[USE_MAC_FONT_PANEL] (mac_show_hide_font_panel): Install handler here.
(install_menu_target_item_handler): Remove argument in extern.
[TARGET_API_MAC_CARBON] (mac_event_to_emacs_modifiers):
Also accept command events.
(do_keystroke): New function created from XTread_socket.
(init_command_handler): Remove functions.
[TARGET_API_MAC_CARBON] (mac_handle_window_event): Reposition window
and save window location by kEventWindowShowing and kEventWindowHiding
handlers here. Don't call next handler for window state change and
focus events.
(mac_handle_application_event, mac_handle_keyboard_event)
[TARGET_API_MAC_CARBON]: New functions.
(install_window_handler) [TARGET_API_MAC_CARBON]: Register handlers for
kEventWindowShowing and kEventWindowHiding events. Move installation
of mouse, font, text input and menu target item handlers to
install_application_handler.
(install_application_handler) [TARGET_API_MAC_CARBON]: New function.
(mac_handle_cg_display_reconfig) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
New function.
(init_dm_notification_handler) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
Register it.
(XTread_socket) [TARGET_API_MAC_CARBON]: Consolidate
SendEventToEventTarget calls. Use FRAME_OUTER_TO_INNER_DIFF_X and
FRAME_OUTER_TO_INNER_DIFF_Y. Move application activation handler
to mac_handle_application_event. Move keyboard handler to
mac_handle_keyboard_event.
(XTread_socket) [!TARGET_API_MAC_CARBON]: Use do_keystroke.
(mac_initialize) [TARGET_API_MAC_CARBON]: Don't call
init_command_handler. Call install_application_handler.
* macterm.h (mac_get_window_bounds): Move extern from macfns.c.
(FRAME_OUTER_TO_INNER_DIFF_X, FRAME_OUTER_TO_INNER_DIFF_Y): New macros.
2007-06-07 Glenn Morris <rgm@gnu.org>
* emacs.c (main): Use `emacs-copyright' in --version output.
2007-06-06 Chong Yidong <cyd@stupidchicken.com>
* image.c (xpm_load): Remove spurious call to
xpm_init_color_cache.
2007-06-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* macfns.c (mac_window): Replace WindowPtr with WindowRef.
* macgui.h: Replace WindowPtr with WindowRef.
* macmenu.c: Replace MenuHandle and GetMenuHandle with MenuRef and
GetMenuRef, respectively. Replace WindowPtr with WindowRef.
Replace ControlHandle with ControlRef.
(install_menu_quit_handler): Rename arg MENU_HANDLE to ROOT_MENU.
* macterm.c: Replace MenuHandle and GetMenuHandle with MenuRef and
GetMenuRef, respectively. Replace WindowPtr with WindowRef.
Replace ControlHandle with ControlRef.
(USE_CARBON_EVENTS): Remove. Use TARGET_API_MAC_CARBON instead.
[MAC_OS8] (do_get_menus): Rename variable `menu_handle' to `menu'.
* macterm.h (struct scroll_bar): Rename member control_handle_low
and control_handle_high to control_ref_low and control_ref_high.
All uses changed.
(SCROLL_BAR_CONTROL_REF, SET_SCROLL_BAR_CONTROL_REF): Rename from
SCROLL_BAR_CONTROL_HANDLE and SET_SCROLL_BAR_CONTROL_HANDLE,
respectively. All uses changed.
(XCreatePixmap, XCreatePixmapFromBitmapData, XSetWindowBackground)
(install_window_handler, remove_window_handler): Replace WindowPtr
with WindowRef in externs.
2007-06-05 Juanma Barranquero <lekktu@gmail.com>
* xfaces.c (Finternal_lisp_face_p): Signal error for face alias loops.
2007-06-03 Nick Roberts <nickrob@snap.net.nz>
* keyboard.c (discard_mouse_events): Add GPM_CLICK_EVENT case.
* frame.c (Fmouse_position, Fmouse_pixel_position):
Condition on HAVE_GPM too.
* term.c (term_mouse_highlight): Remove unused variables.
(Fterm_open_connection): Set gpm_zerobased to 1.
(term_mouse_movement, term_mouse_click, handle_one_term_event):
Use zero based co-ordinates.
(handle_one_term_event): Report a drag as mouse movement too.
* Makefile.in (MOUSE_SUPPORT): Define for HAVE_GPM.
2007-06-03 Chong Yidong <cyd@stupidchicken.com>
* image.c (search_image_cache): New function. Require background
color match if background color is unspecified in the image spec.
(uncache_image, lookup_image): Use it.
2007-06-01 Juanma Barranquero <lekktu@gmail.com>
* window.c (Fshrink_window): Reflow docstring.
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-06-01 Richard Stallman <rms@gnu.org>
* xfns.c (x_encode_text): Add GCPRO.
2007-06-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* xfns.c (x_set_name_internal): Save encoded name before
x_encode_text in case string data is relocated.
2007-05-31 Richard Stallman <rms@gnu.org>
* buffer.c (syms_of_buffer): Doc fix.
2007-05-30 Nick Roberts <nickrob@snap.net.nz>
* sysdep.c (init_sys_modes): Add rather than replace with
O_NONBLOCK.
* frame.c [HAVE_GPM] (Fset_mouse_pixel_position): Add call to
term_mouse_moveto.
* termhooks.h (term_mouse_moveto): New extern.
* term.c (mouse_face_window): Rename...
(Qmouse_face_window): ...to this.
(term_show_mouse_face, term_clear_mouse_face)
(term_mouse_highlight): Use Qmouse_face_window.
(term_mouse_moveto): New function.
(term_mouse_position): Make it work.
(syms_of_term): Uncomment assignment to mouse_position_hook.
Staticpro Qmouse_face_window.
2007-05-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* xdisp.c (redisplay_internal): Bind inhibit-point-motion-hooks to t
@ -6,14 +227,14 @@
2007-05-26 Dan Nicolaescu <dann@ics.uci.edu>
* xfaces.c (syms_of_xfaces): Delete stray semicolon.
* xdisp.c (next_element_from_buffer):
* window.c (delete_window):
* term.c (term_mouse_highlight):
* msdos.c (getdefdir):
* xdisp.c (next_element_from_buffer):
* window.c (delete_window):
* term.c (term_mouse_highlight):
* msdos.c (getdefdir):
* macterm.c (mac_create_bitmap_from_bitmap_data)
(init_font_name_table):
* fns.c (Fsxhash):
* data.c (Fmake_local_variable):
(init_font_name_table):
* fns.c (Fsxhash):
* data.c (Fmake_local_variable):
* ccl.c (ccl_driver): Likewise.
2007-05-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
@ -25,7 +246,7 @@
* image.c (uncache_image): Fix typo.
2007-05-23 Johannes Weiner <hannes@saeurebad.de> (tiny change)
2007-05-23 Johannes Weiner <hannes@saeurebad.de> (tiny change)
* keyboard.c (make_lispy_movement): Condition on HAVE_GPM too.
@ -78,7 +299,7 @@
* termhooks.h [HAVE_GPM_H] (enum event_kind): Add GPM_CLICK_EVENT.
Include gpm.h.
(handle_one_term_event, term_gpm) New externs.
(handle_one_term_event, term_gpm): New externs.
* sysdep.c [HAVE_GPM_H] (init_sys_modes): Make gpm_fd nonblocking
and allow it to be interrupted by SIGIO.
@ -144,11 +365,12 @@
2007-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
* editfns.c (Ftranspose_regions): Yet another int/Lisp_Object mixup (YAILOM)
* editfns.c (Ftranspose_regions): Yet another int/Lisp_Object
mixup (YAILOM).
2007-05-07 Andreas Schwab <schwab@suse.de>
* keymap.c (Flookup_key): Fix typo in last change.
* keymap.c (Flookup_key): Fix typo in last change.
2007-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
@ -2599,7 +2821,7 @@
for writing files. Call gtk_file_chooser_set_current_name to keep
default filename.
* minibuf.c (Finternal_complete_buffer): Move after DEFUN:s it calls
* minibuf.c (Finternal_complete_buffer): Move after DEFUN:s it calls.
2006-09-02 Jindrich Makovicka <makovick@gmail.com> (tiny change)
@ -2856,7 +3078,7 @@
* xterm.h (struct x_display_info): Add x_dnd_atoms* to keep track
of drag and drop Atoms.
* xterm.c (x_term_init): Initialize dpyinfo->x_dnd_atoms*
* xterm.c (x_term_init): Initialize dpyinfo->x_dnd_atoms*.
2006-08-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
@ -4022,7 +4244,7 @@
2006-05-23 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* xterm.c: Remove declarations already in xterm.h
* xterm.c: Remove declarations already in xterm.h.
* xterm.h: Add extern declarations for x_clear_errors,
x_fully_uncatch_errors, x_catching_errors and
@ -4763,7 +4985,8 @@
* puresize.h (pure_write_error): Mark as NO_RETURN.
* lisp.h (args_out_of_range, args_out_of_range_3)
* lisp.h (args_out_of_range, args_out_of_range_3, Fkill_emacs):
Likewise.
2006-04-08 Eli Zaretskii <eliz@gnu.org>
@ -6380,7 +6603,7 @@
* macterm.c (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
(Qpreferences): Remove variables.
(syms_of_macterm) : Don't initialize them.
(syms_of_macterm): Don't initialize them.
(Qhicommand) [USE_CARBON_EVENTS]: New variable.
(syms_of_macterm) [USE_CARBON_EVENTS]: Initialize it.
(init_required_apple_events, do_ae_open_application)
@ -7062,7 +7285,7 @@
* mac.c [TARGET_API_MAC_CARBON] (get_cfstring_encoding_from_lisp):
Allow nil as argument.
[TARGET_API_MAC_CARBON] (Fmac_code_convert_string): Regard nil
[TARGET_API_MAC_CARBON] (Fmac_code_convert_string): Regard nil
for encoding arguments as UTF-16 in native byte order, no BOM.
* macfns.c (Fx_create_frame): Add debugging code.
@ -9998,7 +10221,7 @@
(cfobject_desc_to_lisp, cfproperty_list_to_lisp): Likewise.
* process.c (init_process): Change `#ifdef DARWIN' to `#if
defined (DARWIN) || defined (MAC_OSX)'
defined (DARWIN) || defined (MAC_OSX)'.
* s/darwin.h (DARWIN): Don't define.
@ -10535,7 +10758,7 @@
2005-02-03 Kim F. Storm <storm@cua.dk>
* dispnew.c (build_frame_matrix_from_leaf_window)
[!GLYPH_DEBUG]: Fix xassert.
[!GLYPH_DEBUG]: Fix xassert.
* xfaces.c (x_free_gc) [!GLYPH_DEBUG]: Fix xassert.
@ -11425,7 +11648,7 @@
2004-12-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* macterm.c (mac_do_list_fonts): Fix memory leak
* macterm.c (mac_do_list_fonts): Fix memory leak.
2004-12-20 Richard M. Stallman <rms@gnu.org>
@ -12205,7 +12428,7 @@
* Makefile.in (SOME_MACHINE_OBJECTS): Add fringe.o, image.o
and w32*.o.
(temacs${EXEEXT}): Generate buildobj.lst when temacs is linked.
(mostlyclean): Rm buildobj.lst
(mostlyclean): Rm buildobj.lst.
* makefile.w32-in ($(TEMACS)): Generate buildobj.lst when temacs
is linked.
@ -12543,7 +12766,7 @@
(SAFE_ALLOCA, SAFE_ALLOCA_LISP): Increment it when malloc is used.
(SAFE_FREE): Test it to determine if we need to unwind to free.
Remove size arg. All users changed.
(SAFE_FREE_LISP) Remove. All users changed to use SAFE_FREE.
(SAFE_FREE_LISP): Remove. All users changed to use SAFE_FREE.
2004-10-26 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
@ -13200,7 +13423,7 @@
(single_submenu): Use ENCODE_MENU_STRING
(mac_menu_show): Use ENCODE_MENU_STRING. Reset grabbed because
button release isn't passed to event loop
(add_menu_item): Use SetMenuItemWithCFString
(add_menu_item): Use SetMenuItemWithCFString.
2004-08-26 Steven Tamm <steventamm@mac.com>
@ -13469,7 +13692,7 @@
blocking on event queue only by calling ReceiveNextEvent
instead of select (since GUI events aren't on an fd).
(sys_read): Remove function
* sysdep.c: Remove redefine of read to sys_read if HAVE_CARBON
* sysdep.c: Remove redefine of read to sys_read if HAVE_CARBON.
2004-07-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
@ -13479,12 +13702,12 @@
* macterm.c (x_make_frame_visible): Comment in polling on
frame creation.
* keyboard.c: Undef SIGIO on Carbon
* keyboard.c: Undef SIGIO on Carbon.
* atimer.c (alarm_signal_handler): Call alarm handlers after
scheduling.
* eval.c (Feval): Remove quit_char test
* eval.c (Feval): Remove quit_char test.
* process.c (wait_reading_process_input): Remove clearing
stdin for select call on process input.
@ -14436,7 +14659,7 @@
2004-05-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* macterm.c (x_flush, XTframe_up_to_date): Use FRAME_MAC_P
instead of FRAME_X_P
instead of FRAME_X_P.
2004-05-11 Kim F. Storm <storm@cua.dk>
@ -14606,7 +14829,7 @@
2004-05-01 Jason Rumney <jasonr@gnu.org>
* w32term.c (x_draw_hollow_cursor): Sync with xterm.c
* w32term.c (x_draw_hollow_cursor): Sync with xterm.c.
2004-04-30 Kim F. Storm <storm@cua.dk>
@ -17399,7 +17622,7 @@
* makefile.w32-in (alloca.o): Remove.
(coding.o): Depend on intervals.h
(emacs.o, bytecode.o): Depend on window.h
(emacs.o, bytecode.o): Depend on window.h.
2003-09-01 Dave Love <fx@gnu.org>
@ -18180,7 +18403,7 @@
* gtkutil.c: Include keyboard.h, charset.h, coding.h.
(xg_create_frame_widgets): Use ENCODE_UTF_8.
* xterm.c (Qutf_8): Move to coding.c
* xterm.c (Qutf_8): Move to coding.c.
* xmenu.c (ENCODE_MENU_STRING): New.
(list_of_panes, list_of_items, digest_single_submenu, xmenu_show):
@ -20909,7 +21132,7 @@
(redisplay_internal): Add check for USE_GTK and popup_activated.
(redisplay_window): Add check for USE_GTK and FRAME_EXTERNAL_MENU_BAR.
(redisplay_window): Add check for USE_GTK and FRAME_EXTERNAL_TOOL_BAR.
(display_menu_bar): Add check for USE_GTK
(display_menu_bar): Add check for USE_GTK.
* lisp.h (Vx_resource_name): Declare extern.
@ -22027,7 +22250,7 @@
* buffer.c (assoc_ignore_text_properties, Fother_buffer, Fkill_buffer)
(call_overlay_mod_hooks): Use CONSP and XCAR/XCDR.
(Fget_buffer_create, advance_to_char_boundary): Use BEG and BEG_BYTE;
(Fget_buffer_create, advance_to_char_boundary): Use BEG and BEG_BYTE.
2002-10-21 Stefan Monnier <monnier@cs.yale.edu>
@ -23726,8 +23949,8 @@
* fns.c (Fstring_make_unibyte): Doc fix.
* xselect.c (lisp_data_to_selection_data): If the requested type
is STRING, call string_make_unibyte to encode the selected text
as a string.
is STRING, call string_make_unibyte to encode the selected text
as a string.
* window.c (Fset_window_hscroll): Doc fix.

View file

@ -691,8 +691,12 @@ otherobj= $(termcapobj) lastfile.o $(mallocobj) $(allocaobj) $(widgetobj) $(LIBO
#define MOUSE_SUPPORT ${lispsource}mouse.elc \
${lispsource}select.elc ${lispsource}scroll-bar.elc
#else
#ifdef HAVE_GPM
#define MOUSE_SUPPORT ${lispsource}mouse.elc
#else
#define MOUSE_SUPPORT
#endif
#endif
#ifdef VMS
#define VMS_SUPPORT ${lispsource}vmsproc.elc ${lispsource}vms-patch.elc

View file

@ -1756,6 +1756,8 @@ init_strings ()
string_blocks = NULL;
n_string_blocks = 0;
string_free_list = NULL;
empty_unibyte_string = make_pure_string ("", 0, 0, 0);
empty_multibyte_string = make_pure_string ("", 0, 0, 1);
}
@ -2479,6 +2481,9 @@ make_uninit_string (length)
int length;
{
Lisp_Object val;
if (!length)
return empty_unibyte_string;
val = make_uninit_multibyte_string (length, length);
STRING_SET_UNIBYTE (val);
return val;
@ -2497,6 +2502,8 @@ make_uninit_multibyte_string (nchars, nbytes)
if (nchars < 0)
abort ();
if (!nbytes)
return empty_multibyte_string;
s = allocate_string ();
allocate_string_data (s, nchars, nbytes);

View file

@ -6002,7 +6002,7 @@ same format as a regular save would use. */);
The default is t, which means that text is invisible
if it has a non-nil `invisible' property.
If the value is a list, a text character is invisible if its `invisible'
property is an element in that list.
property is an element in that list (or is a list with members in common).
If an element is a cons cell of the form (PROP . ELLIPSIS),
then characters with property value PROP are invisible,
and they have an ellipsis as well if ELLIPSIS is non-nil. */);

View file

@ -585,7 +585,7 @@ invoke it. If KEYS is omitted or nil, the return value of
case 'G': /* Possibly nonexistent file name,
default to directory alone. */
args[i] = Fread_file_name (callint_message,
Qnil, Qnil, Qnil, build_string (""), Qnil);
Qnil, Qnil, Qnil, empty_unibyte_string, Qnil);
break;
case 'i': /* Ignore an argument -- Does not do I/O */

View file

@ -1972,6 +1972,7 @@ the data it can't find. */)
int offset = tm_diff (t, &gmt);
char *s = 0;
char buf[6];
#ifdef HAVE_TM_ZONE
if (t->tm_zone)
s = (char *)t->tm_zone;
@ -1982,19 +1983,6 @@ the data it can't find. */)
#endif
#endif /* not HAVE_TM_ZONE */
#if defined HAVE_TM_ZONE || defined HAVE_TZNAME
if (s)
{
/* On Japanese w32, we can get a Japanese string as time
zone name. Don't accept that. */
char *p;
for (p = s; *p && (isalnum ((unsigned char)*p) || *p == ' '); ++p)
;
if (p == s || *p)
s = NULL;
}
#endif
if (!s)
{
/* No local time zone name is available; use "+-NNNN" instead. */
@ -2002,6 +1990,7 @@ the data it can't find. */)
sprintf (buf, "%c%02d%02d", (offset < 0 ? '-' : '+'), am/60, am%60);
s = buf;
}
return Fcons (make_number (offset), Fcons (build_string (s), Qnil));
}
else
@ -3174,7 +3163,7 @@ DEFUN ("delete-and-extract-region", Fdelete_and_extract_region,
{
validate_region (&start, &end);
if (XINT (start) == XINT (end))
return build_string ("");
return empty_unibyte_string;
return del_range_1 (XINT (start), XINT (end), 1, 1);
}

View file

@ -133,8 +133,8 @@ Lisp_Object Vinstallation_directory;
/* Hook run by `kill-emacs' before it does really anything. */
Lisp_Object Vkill_emacs_hook;
/* An empty lisp string. To avoid having to build any other. */
Lisp_Object empty_string;
/* Empty lisp strings. To avoid having to build any others. */
Lisp_Object empty_unibyte_string, empty_multibyte_string;
/* Search path separator. */
Lisp_Object Vpath_separator;
@ -859,17 +859,23 @@ main (argc, argv
So ignore --version otherwise. */
&& initialized)
{
Lisp_Object tem;
Lisp_Object tem, tem2;
tem = Fsymbol_value (intern ("emacs-version"));
tem2 = Fsymbol_value (intern ("emacs-copyright"));
if (!STRINGP (tem))
{
fprintf (stderr, "Invalid value of `emacs-version'\n");
exit (1);
}
if (!STRINGP (tem2))
{
fprintf (stderr, "Invalid value of `emacs-copyright'\n");
exit (1);
}
else
{
printf ("GNU Emacs %s\n", SDATA (tem));
printf ("Copyright (C) 2007 Free Software Foundation, Inc.\n");
printf ("%s\n", SDATA(tem2));
printf ("GNU Emacs comes with ABSOLUTELY NO WARRANTY.\n");
printf ("You may redistribute copies of Emacs\n");
printf ("under the terms of the GNU General Public License.\n");
@ -2494,9 +2500,6 @@ see `kill-emacs-query-functions' instead.
The hook is not run in batch mode, i.e., if `noninteractive' is non-nil. */);
Vkill_emacs_hook = Qnil;
empty_string = build_string ("");
staticpro (&empty_string);
DEFVAR_INT ("emacs-priority", &emacs_priority,
doc: /* Priority for Emacs to run at.
This value is effective only if set before Emacs is dumped,

View file

@ -6346,7 +6346,7 @@ and `read-file-name-function'. */)
if (! replace_in_history)
add_to_history = 1;
val = empty_string;
val = empty_unibyte_string;
}
unbind_to (count, Qnil);

View file

@ -2497,7 +2497,7 @@ SEQUENCE may be a list, a vector, a bool-vector, or a string. */)
wrong_type_argument (Qlistp, sequence);
leni = XINT (len);
nargs = leni + leni - 1;
if (nargs < 0) return build_string ("");
if (nargs < 0) return empty_unibyte_string;
SAFE_ALLOCA_LISP (args, nargs);

View file

@ -1460,7 +1460,7 @@ and returns whatever that function returns. */)
f = SELECTED_FRAME ();
x = y = Qnil;
#ifdef HAVE_MOUSE
#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
/* It's okay for the hook to refrain from storing anything. */
if (mouse_position_hook)
(*mouse_position_hook) (&f, -1,
@ -1504,7 +1504,7 @@ and nil for X and Y. */)
f = SELECTED_FRAME ();
x = y = Qnil;
#ifdef HAVE_MOUSE
#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
/* It's okay for the hook to refrain from storing anything. */
if (mouse_position_hook)
(*mouse_position_hook) (&f, -1,
@ -1591,6 +1591,13 @@ before calling this function on it, like this.
Fselect_frame (frame);
mouse_moveto (XINT (x), XINT (y));
}
#else
#ifdef HAVE_GPM
{
Fselect_frame (frame);
term_mouse_moveto (XINT (x), XINT (y));
}
#endif
#endif
#endif

View file

@ -1609,6 +1609,7 @@ x_alloc_image_color (f, img, color_name, dflt)
Image Cache
***********************************************************************/
static struct image *search_image_cache P_ ((struct frame *, Lisp_Object, unsigned));
static void cache_image P_ ((struct frame *f, struct image *img));
static void postprocess_image P_ ((struct frame *, struct image *));
@ -1631,24 +1632,47 @@ make_image_cache ()
}
/* Search frame F for an images with spec SPEC, and free it. */
/* Find an image matching SPEC in the cache, and return it. If no
image is found, return NULL. */
static struct image *
search_image_cache (f, spec, hash)
struct frame *f;
Lisp_Object spec;
unsigned hash;
{
struct image *img;
struct image_cache *c = FRAME_X_IMAGE_CACHE (f);
Lisp_Object specified_bg = image_spec_value (spec, QCbackground, NULL);
int i = hash % IMAGE_CACHE_BUCKETS_SIZE;
/* If the image spec does not specify a background color, the cached
image must have the same background color as the current frame.
The following code be improved. For example, jpeg does not
support transparency, but currently a jpeg image spec won't match
a cached spec created with a different frame background. The
extra memory usage is probably negligible in practice. */
if (!c) return NULL;
for (img = c->buckets[i]; img; img = img->next)
if (img->hash == hash
&& !NILP (Fequal (img->spec, spec))
&& (STRINGP (specified_bg)
|| img->background == FRAME_BACKGROUND_PIXEL (f)))
break;
return img;
}
/* Search frame F for an image with spec SPEC, and free it. */
static void
uncache_image (f, spec)
struct frame *f;
Lisp_Object spec;
{
struct image_cache *c = FRAME_X_IMAGE_CACHE (f);
struct image *img;
unsigned hash = sxhash (spec, 0);
int i = hash % IMAGE_CACHE_BUCKETS_SIZE;
for (img = c->buckets[i]; img; img = img->next)
if (img->hash == hash && !NILP (Fequal (img->spec, spec)))
{
free_image (f, img);
break;
}
struct image *img = search_image_cache (f, spec, sxhash (spec, 0));
if (img)
free_image (f, img);
}
@ -1875,9 +1899,7 @@ lookup_image (f, spec)
struct frame *f;
Lisp_Object spec;
{
struct image_cache *c = FRAME_X_IMAGE_CACHE (f);
struct image *img;
int i;
unsigned hash;
struct gcpro gcpro1;
EMACS_TIME now;
@ -1891,12 +1913,7 @@ lookup_image (f, spec)
/* Look up SPEC in the hash table of the image cache. */
hash = sxhash (spec, 0);
i = hash % IMAGE_CACHE_BUCKETS_SIZE;
for (img = c->buckets[i]; img; img = img->next)
if (img->hash == hash && !NILP (Fequal (img->spec, spec)))
break;
img = search_image_cache (f, spec, hash);
if (img && img->load_failed_p)
{
free_image (f, img);
@ -3961,9 +3978,6 @@ xpm_load (f, img)
attrs.valuemask |= XpmCloseness;
#endif /* not XpmAllocCloseColors */
#endif /* ALLOC_XPM_COLORS */
#ifdef ALLOC_XPM_COLORS
xpm_init_color_cache (f, &attrs);
#endif
/* If image specification contains symbolic color definitions, add
these to `attrs'. */

View file

@ -1249,7 +1249,7 @@ cmd_error_internal (data, context)
/* Use user's specified output function if any. */
if (!NILP (Vcommand_error_function))
call3 (Vcommand_error_function, data,
build_string (context ? context : ""),
context ? build_string (context) : empty_unibyte_string,
Vsignaling_function);
/* If the window system or terminal frame hasn't been initialized
yet, or we're not interactive, write the message to stderr and exit. */
@ -3917,6 +3917,9 @@ discard_mouse_events ()
|| sp->kind == WHEEL_EVENT
#ifdef WINDOWSNT
|| sp->kind == W32_SCROLL_BAR_CLICK_EVENT
#endif
#ifdef HAVE_GPM
|| sp->kind == GPM_CLICK_EVENT
#endif
|| sp->kind == SCROLL_BAR_CLICK_EVENT)
{

View file

@ -2218,7 +2218,7 @@ spaces are put between sequence elements, etc. */)
len += 2;
}
else if (len == 0)
return empty_string;
return empty_unibyte_string;
return Fconcat (len - 1, args);
}

View file

@ -704,7 +704,10 @@ extern int string_bytes P_ ((struct Lisp_String *));
#endif /* not GC_CHECK_STRING_BYTES */
/* Mark STR as a unibyte string. */
#define STRING_SET_UNIBYTE(STR) (XSTRING (STR)->size_byte = -1)
#define STRING_SET_UNIBYTE(STR) \
do { if (EQ (STR, empty_multibyte_string)) \
(STR) = empty_unibyte_string; \
else XSTRING (STR)->size_byte = -1; } while (0)
/* Get text properties. */
#define STRING_INTERVALS(STR) (XSTRING (STR)->intervals + 0)
@ -3098,7 +3101,8 @@ extern void syms_of_frame P_ ((void));
/* defined in emacs.c */
extern Lisp_Object decode_env_path P_ ((char *, char *));
extern Lisp_Object Vinvocation_name, Vinvocation_directory;
extern Lisp_Object Vinstallation_directory, empty_string;
extern Lisp_Object Vinstallation_directory;
extern Lisp_Object empty_unibyte_string, empty_multibyte_string;
EXFUN (Fkill_emacs, 1);
#if HAVE_SETLOCALE
void fixup_locale P_ ((void));

Some files were not shown because too many files have changed in this diff Show more