1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-18 11:50:38 -08:00

Merge from trunk.

This commit is contained in:
Paul Eggert 2012-01-09 09:36:10 -08:00
commit 35cf62d95c
2137 changed files with 23907 additions and 10975 deletions

View file

@ -1,3 +1,11 @@
2011-12-17 Paul Eggert <eggert@cs.ucla.edu>
Port HAVE_PTHREAD configuration to MirBSD 10 (Bug#10201).
* configure.in (HAVE_PTHREAD): Check for pthread_atfork if linking
to gmalloc.c. This should prevent a MirBSD 10 build failure reported
by Nelson H. F. Beebe in
<http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00065.html>.
2011-12-10 Juanma Barranquero <lekktu@gmail.com> 2011-12-10 Juanma Barranquero <lekktu@gmail.com>
* update-subdirs: Don't set no-byte-compile twice (bug#10260). * update-subdirs: Don't set no-byte-compile twice (bug#10260).
@ -2254,7 +2262,7 @@
2009-12-10 Jan Djärv <jan.h.d@swipnet.se> 2009-12-10 Jan Djärv <jan.h.d@swipnet.se>
* configure.in: Check for RSVG if GNUStep is used. * configure.in: Check for RSVG if GNUstep is used.
2009-12-09 Jan Djärv <jan.h.d@swipnet.se> 2009-12-09 Jan Djärv <jan.h.d@swipnet.se>
@ -2439,7 +2447,7 @@
2009-05-06 Stefan Monnier <monnier@iro.umontreal.ca> 2009-05-06 Stefan Monnier <monnier@iro.umontreal.ca>
* configure.in: Don't define CANNOT_DUMP for GNUStep any more. * configure.in: Don't define CANNOT_DUMP for GNUstep any more.
2009-05-05 Per Starbäck <per@starback.se> (tiny change) 2009-05-05 Per Starbäck <per@starback.se> (tiny change)
@ -10072,7 +10080,7 @@
;; coding: utf-8 ;; coding: utf-8
;; End: ;; End:
Copyright (C) 1993-1999, 2001-2011 Free Software Foundation, Inc. Copyright (C) 1993-1999, 2001-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs. This file is part of GNU Emacs.

View file

@ -1,6 +1,6 @@
# Build Emacs from a fresh tarball or version-control checkout. # Build Emacs from a fresh tarball or version-control checkout.
# Copyright 2011 Free Software Foundation, Inc. # Copyright (C) 2011-2012 Free Software Foundation, Inc.
# #
# This file is part of GNU Emacs. # This file is part of GNU Emacs.
# #

View file

@ -1,5 +1,5 @@
GNU Emacs Installation Guide GNU Emacs Installation Guide
Copyright (C) 1992, 1994, 1996-1997, 2000-2011 Copyright (C) 1992, 1994, 1996-1997, 2000-2012
Free Software Foundation, Inc. Free Software Foundation, Inc.
See the end of the file for license conditions. See the end of the file for license conditions.

View file

@ -1,4 +1,4 @@
Copyright (C) 2002-2011 Free Software Foundation, Inc. Copyright (C) 2002-2012 Free Software Foundation, Inc.
See the end of the file for license conditions. See the end of the file for license conditions.

View file

@ -2,7 +2,7 @@
# DIST: make most of the changes to this file you might want, so try # DIST: make most of the changes to this file you might want, so try
# DIST: that first. # DIST: that first.
# Copyright (C) 1992-2011 Free Software Foundation, Inc. # Copyright (C) 1992-2012 Free Software Foundation, Inc.
# This file is part of GNU Emacs. # This file is part of GNU Emacs.

2
README
View file

@ -1,4 +1,4 @@
Copyright (C) 2001-2011 Free Software Foundation, Inc. Copyright (C) 2001-2012 Free Software Foundation, Inc.
See the end of the file for license conditions. See the end of the file for license conditions.

View file

@ -1226,7 +1226,7 @@
;; coding: utf-8 ;; coding: utf-8
;; End: ;; End:
Copyright (C) 2001-2011 Free Software Foundation, Inc. Copyright (C) 2001-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs. This file is part of GNU Emacs.

View file

@ -61,13 +61,6 @@ sk Miroslav Vaško
* BUGS * BUGS
** Does deleting frames run Lisp code? If so, can we get rid of that?
It is a dangerous design.
http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01330.html
** Why were the calls to x_fully_uncatch_errors commented out in eval.c?
http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01987.html
** rms: gnus-dired.el is a mistake. Those features should not ** rms: gnus-dired.el is a mistake. Those features should not
be part of Gnus. They should be moved to some other part of Emacs. be part of Gnus. They should be moved to some other part of Emacs.
rsteib: Gnus dependencies in `gnus-dired.el' (and `mailcap.el') have been rsteib: Gnus dependencies in `gnus-dired.el' (and `mailcap.el') have been
@ -90,25 +83,8 @@ and change key bindings where necessary. The current list of modes:
`log-edit-comment-search-forward'. Perhaps search commands `log-edit-comment-search-forward'. Perhaps search commands
on the global key binding `M-s' are useless in these modes. on the global key binding `M-s' are useless in these modes.
** sdl.web@gmail.com, 30 Oct: ps-lpr-switches has no effect
http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg02091.html
Fixed by this change?
2007-11-09 Vinicius Jose Latorre <viniciusjl@ig.com.br>
* ps-print.el: [...]
(ps-do-despool): If ps-lpr-switches is not a list, force it to be one.
** In C, use EMACS_INT for variables and structure members
for buffer/string positions. E.g. struct it, struct text_pos.
* DOCUMENTATION * DOCUMENTATION
** Clean up Emacs.app references in code and documentation.
** Document new font backend
** Document XEmbed support ** Document XEmbed support
** Check the Emacs Tutorial. ** Check the Emacs Tutorial.
@ -148,19 +124,19 @@ TUTORIAL.zh
** Check the manual. ** Check the manual.
abbrevs.texi abbrevs.texi cyd
ack.texi ack.texi
anti.texi anti.texi
arevert-xtra.texi cyd arevert-xtra.texi cyd
basic.texi cyd basic.texi cyd
buffers.texi cyd buffers.texi cyd
building.texi building.texi cyd
calendar.texi calendar.texi
cal-xtra.texi cal-xtra.texi
cmdargs.texi cmdargs.texi
commands.texi cyd commands.texi cyd
custom.texi custom.texi cyd
dired.texi dired.texi cyd
dired-xtra.texi dired-xtra.texi
display.texi cyd display.texi cyd
emacs.texi emacs.texi
@ -177,27 +153,27 @@ indent.texi cyd
killing.texi cyd killing.texi cyd
kmacro.texi cyd kmacro.texi cyd
macos.texi macos.texi
maintaining.texi maintaining.texi cyd
major.texi
mark.texi cyd mark.texi cyd
mini.texi mini.texi
misc.texi misc.texi cyd
modes.texi cyd modes.texi cyd
msdog.texi msdog.texi
msdog-xtra.texi msdog-xtra.texi
mule.texi mule.texi
m-x.texi cyd m-x.texi cyd
package.texi cyd
picture-xtra.texi picture-xtra.texi
programs.texi programs.texi cyd
regs.texi cyd regs.texi cyd
rmail.texi rmail.texi
screen.texi cyd screen.texi cyd
search.texi cyd search.texi cyd
sending.texi sending.texi cyd
text.texi text.texi cyd
trouble.texi trouble.texi cyd
vc-xtra.texi vc-xtra.texi cyd
vc1-xtra.texi vc1-xtra.texi cyd
windows.texi cyd windows.texi cyd
xresources.texi xresources.texi

View file

@ -1,4 +1,4 @@
Copyright (C) 2001-2011 Free Software Foundation, Inc. Copyright (C) 2001-2012 Free Software Foundation, Inc.
See the end of the file for license conditions. See the end of the file for license conditions.

View file

@ -1,6 +1,6 @@
;;; admin.el --- utilities for Emacs administration ;;; admin.el --- utilities for Emacs administration
;; Copyright (C) 2001-2011 Free Software Foundation, Inc. ;; Copyright (C) 2001-2012 Free Software Foundation, Inc.
;; This file is part of GNU Emacs. ;; This file is part of GNU Emacs.

View file

@ -1,6 +1,6 @@
/* Allocate X colors. Used for testing with dense colormaps. /* Allocate X colors. Used for testing with dense colormaps.
Copyright (C) 2001-2011 Free Software Foundation, Inc. Copyright (C) 2001-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs. This file is part of GNU Emacs.

View file

@ -1,7 +1,7 @@
#! /usr/bin/perl #! /usr/bin/perl
# Build Emacs in several different configurations. # Build Emacs in several different configurations.
# Copyright (C) 2001-2011 Free Software Foundation, Inc. # Copyright (C) 2001-2012 Free Software Foundation, Inc.
# This file is part of GNU Emacs. # This file is part of GNU Emacs.

View file

@ -1,6 +1,6 @@
;;; bzrmerge.el --- help merge one Emacs bzr branch to another ;;; bzrmerge.el --- help merge one Emacs bzr branch to another
;; Copyright (C) 2010-2011 Free Software Foundation, Inc. ;; Copyright (C) 2010-2012 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
;; Keywords: ;; Keywords:

View file

@ -1,4 +1,4 @@
Copyright (C) 2009-2011 Free Software Foundation, Inc. Copyright (C) 2009-2012 Free Software Foundation, Inc.
Copyright (C) 2009, 2010, 2011 Copyright (C) 2009, 2010, 2011
National Institute of Advanced Industrial Science and Technology (AIST) National Institute of Advanced Industrial Science and Technology (AIST)
Registration Number H13PRO009 Registration Number H13PRO009

View file

@ -1,6 +1,6 @@
;;; cus-test.el --- tests for custom types and load problems ;;; cus-test.el --- tests for custom types and load problems
;; Copyright (C) 1998, 2000, 2002-2011 Free Software Foundation, Inc. ;; Copyright (C) 1998, 2000, 2002-2012 Free Software Foundation, Inc.
;; Author: Markus Rost <markus.rost@mathematik.uni-regensburg.de> ;; Author: Markus Rost <markus.rost@mathematik.uni-regensburg.de>
;; Maintainer: Markus Rost <rost@math.ohio-state.edu> ;; Maintainer: Markus Rost <rost@math.ohio-state.edu>

View file

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Copyright (C) 2001-2011 Free Software Foundation, Inc. # Copyright (C) 2001-2012 Free Software Foundation, Inc.
# This file is part of GNU Emacs. # This file is part of GNU Emacs.

View file

@ -1,6 +1,6 @@
;;; bovine-grammar.el --- Bovine's input grammar mode ;;; bovine-grammar.el --- Bovine's input grammar mode
;; ;;
;; Copyright (C) 2002-2011 Free Software Foundation, Inc. ;; Copyright (C) 2002-2012 Free Software Foundation, Inc.
;; ;;
;; Author: David Ponce <david@dponce.com> ;; Author: David Ponce <david@dponce.com>
;; Maintainer: David Ponce <david@dponce.com> ;; Maintainer: David Ponce <david@dponce.com>
@ -298,7 +298,7 @@ VALUE is a value, or range of values to match against. For
example, a SYMBOL might need to match \"foo\". Some TYPES will not example, a SYMBOL might need to match \"foo\". Some TYPES will not
have matching criteria. have matching criteria.
LAMBDA is a lambda expression which is evaled with the text of the LAMBDA is a lambda expression which is evalled with the text of the
type when it is found. It is passed the list of all buffer text type when it is found. It is passed the list of all buffer text
elements found since the last lambda expression. It should return a elements found since the last lambda expression. It should return a
semantic element (see below.) semantic element (see below.)

View file

@ -1,6 +1,6 @@
;;; c.by -- LL grammar for C/C++ language specification ;;; c.by -- LL grammar for C/C++ language specification
;; Copyright (C) 1999-2011 Free Software Foundation, Inc. ;; Copyright (C) 1999-2012 Free Software Foundation, Inc.
;; ;;
;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Author: Eric M. Ludlam <zappo@gnu.org>
;; David Ponce <david@dponce.com> ;; David Ponce <david@dponce.com>
@ -261,7 +261,7 @@ define
; ;
;; In C++, structures can have the same things as classes. ;; In C++, structures can have the same things as classes.
;; So delete this somday in the figure. ;; So delete this some day in the figure.
;; ;;
;;structparts : semantic-list ;;structparts : semantic-list
;; (EXPANDFULL $1 structsubparts) ;; (EXPANDFULL $1 structsubparts)

View file

@ -1,6 +1,6 @@
;;; semantic-grammar.wy -- LALR grammar of Semantic input grammars ;;; semantic-grammar.wy -- LALR grammar of Semantic input grammars
;; ;;
;; Copyright (C) 2002-2011 Free Software Foundation, Inc. ;; Copyright (C) 2002-2012 Free Software Foundation, Inc.
;; ;;
;; Author: David Ponce <david@dponce.com> ;; Author: David Ponce <david@dponce.com>
;; Maintainer: David Ponce <david@dponce.com> ;; Maintainer: David Ponce <david@dponce.com>

View file

@ -1,6 +1,6 @@
;;; java-tags.wy -- Semantic LALR grammar for Java ;;; java-tags.wy -- Semantic LALR grammar for Java
;; Copyright (C) 2002-2011 Free Software Foundation, Inc. ;; Copyright (C) 2002-2012 Free Software Foundation, Inc.
;; ;;
;; Author: David Ponce <david@dponce.com> ;; Author: David Ponce <david@dponce.com>
;; Maintainer: David Ponce <david@dponce.com> ;; Maintainer: David Ponce <david@dponce.com>

View file

@ -1,6 +1,6 @@
;;; javascript-jv.wy -- LALR grammar for Javascript ;;; javascript-jv.wy -- LALR grammar for Javascript
;; Copyright (C) 2005-2011 Free Software Foundation, Inc. ;; Copyright (C) 2005-2012 Free Software Foundation, Inc.
;; Copyright (C) 1998-2011 Ecma International. ;; Copyright (C) 1998-2011 Ecma International.
;; Author: Joakim Verona ;; Author: Joakim Verona
@ -66,7 +66,7 @@
;; Other Goals ;; Other Goals
%start FormalParameterList %start FormalParameterList
;; with the terminals stuff, I used the javacript.y names, ;; with the terminals stuff, I used the javascript.y names,
;; but the semantic/wisent/java-tags.wy types ;; but the semantic/wisent/java-tags.wy types
;; when possible ;; when possible
;; ------------------ ;; ------------------

View file

@ -1,6 +1,6 @@
;;; make.by -- BY notation for Makefiles. ;;; make.by -- BY notation for Makefiles.
;; Copyright (C) 1999-2011 Free Software Foundation, Inc. ;; Copyright (C) 1999-2012 Free Software Foundation, Inc.
;; ;;
;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Author: Eric M. Ludlam <zappo@gnu.org>
;; David Ponce <david@dponce.com> ;; David Ponce <david@dponce.com>

View file

@ -1,6 +1,6 @@
;;; python.wy -- LALR grammar for Python ;;; python.wy -- LALR grammar for Python
;; Copyright (C) 2002-2011 Free Software Foundation, Inc. ;; Copyright (C) 2002-2012 Free Software Foundation, Inc.
;; Copyright (C) 2001-2010 Python Software Foundation ;; Copyright (C) 2001-2010 Python Software Foundation
;; Author: Richard Kim <ryk@dspwiz.com> ;; Author: Richard Kim <ryk@dspwiz.com>

View file

@ -1,6 +1,6 @@
;;; scheme.by -- Scheme BNF language specification ;;; scheme.by -- Scheme BNF language specification
;; Copyright (C) 2001-2011 Free Software Foundation, Inc. ;; Copyright (C) 2001-2012 Free Software Foundation, Inc.
;; This file is part of GNU Emacs. ;; This file is part of GNU Emacs.

View file

@ -1,6 +1,6 @@
;;; srecode-template.wy --- Semantic Recoder Template parser ;;; srecode-template.wy --- Semantic Recoder Template parser
;; Copyright (C) 2005-2011 Free Software Foundation, Inc. ;; Copyright (C) 2005-2012 Free Software Foundation, Inc.
;; Author: Eric Ludlam <zappo@gnu.org> ;; Author: Eric Ludlam <zappo@gnu.org>
;; Keywords: syntax ;; Keywords: syntax

View file

@ -1,6 +1,6 @@
;;; wisent-grammar.el --- Wisent's input grammar mode ;;; wisent-grammar.el --- Wisent's input grammar mode
;; Copyright (C) 2002-2011 Free Software Foundation, Inc. ;; Copyright (C) 2002-2012 Free Software Foundation, Inc.
;; ;;
;; Author: David Ponce <david@dponce.com> ;; Author: David Ponce <david@dponce.com>
;; Maintainer: David Ponce <david@dponce.com> ;; Maintainer: David Ponce <david@dponce.com>

View file

@ -1,6 +1,6 @@
#! /bin/bash #! /bin/bash
## Copyright (C) 2002-2011 Free Software Foundation, Inc. ## Copyright (C) 2002-2012 Free Software Foundation, Inc.
## Author: Francesco Potorti` <pot@gnu.org> ## Author: Francesco Potorti` <pot@gnu.org>

View file

@ -2,7 +2,7 @@
# Build Emacs with various options for profiling, debugging, # Build Emacs with various options for profiling, debugging,
# with and without warnings enabled etc. # with and without warnings enabled etc.
# Copyright (C) 2001-2011 Free Software Foundation, Inc. # Copyright (C) 2001-2012 Free Software Foundation, Inc.
# This file is part of GNU Emacs. # This file is part of GNU Emacs.

View file

@ -1,4 +1,4 @@
Copyright (C) 2007-2011 Free Software Foundation, Inc. Copyright (C) 2007-2012 Free Software Foundation, Inc.
See the end of the file for license conditions. See the end of the file for license conditions.

View file

@ -1,4 +1,4 @@
Copyright (C) 2002-2011 Free Software Foundation, Inc. Copyright (C) 2002-2012 Free Software Foundation, Inc.
See the end of the file for license conditions. See the end of the file for license conditions.

View file

@ -1,6 +1,6 @@
Some lisp/emacs-lisp/ Features and Where They Are Documented Some lisp/emacs-lisp/ Features and Where They Are Documented
Copyright (C) 2007-2011 Free Software Foundation, Inc. Copyright (C) 2007-2012 Free Software Foundation, Inc.
See the end of the file for license conditions. See the end of the file for license conditions.

View file

@ -1,6 +1,6 @@
-*- coding: utf-8; mode: text; -*- -*- coding: utf-8; mode: text; -*-
Copyright (C) 2007-2011 Free Software Foundation, Inc. Copyright (C) 2007-2012 Free Software Foundation, Inc.
See the end of the file for license conditions. See the end of the file for license conditions.
From README.multi-tty in the multi-tty branch. From README.multi-tty in the multi-tty branch.

View file

@ -1,6 +1,6 @@
-*-mode: text; coding: latin-1;-*- -*-mode: text; coding: latin-1;-*-
Copyright (C) 2002-2011 Free Software Foundation, Inc. Copyright (C) 2002-2012 Free Software Foundation, Inc.
See the end of the file for license conditions. See the end of the file for license conditions.
Problems, fixmes and other unicode-related issues Problems, fixmes and other unicode-related issues

View file

@ -1,4 +1,4 @@
Copyright (C) 2001-2011 Free Software Foundation, Inc. Copyright (C) 2001-2012 Free Software Foundation, Inc.
See the end of the file for license conditions. See the end of the file for license conditions.
Emacs for Windows Emacs for Windows

View file

@ -1,4 +1,4 @@
Copyright (C) 2001-2011 Free Software Foundation, Inc. Copyright (C) 2001-2012 Free Software Foundation, Inc.
See the end of the file for license conditions. See the end of the file for license conditions.
Precompiled Distributions of Precompiled Distributions of

View file

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
### quick-install-emacs --- do a halfway-decent job of installing emacs quickly ### quick-install-emacs --- do a halfway-decent job of installing emacs quickly
## Copyright (C) 2001-2011 Free Software Foundation, Inc. ## Copyright (C) 2001-2012 Free Software Foundation, Inc.
## Author: Miles Bader <miles@gnu.org> ## Author: Miles Bader <miles@gnu.org>

View file

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
### autogen.sh - tool to help build Emacs from a bzr checkout ### autogen.sh - tool to help build Emacs from a bzr checkout
## Copyright (C) 2011 Free Software Foundation, Inc. ## Copyright (C) 2011-2012 Free Software Foundation, Inc.
## Author: Glenn Morris <rgm@gnu.org> ## Author: Glenn Morris <rgm@gnu.org>

View file

@ -2,7 +2,7 @@
/* GNU Emacs site configuration template file. /* GNU Emacs site configuration template file.
Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2011 Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2012
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GNU Emacs. This file is part of GNU Emacs.

30
autogen/configure vendored
View file

@ -10018,7 +10018,7 @@ $as_echo "#define DOUG_LEA_MALLOC 1" >>confdefs.h
## Use mmap directly for allocating larger buffers. ## Use mmap directly for allocating larger buffers.
## FIXME this comes from src/s/{gnu,gnu-linux}.h: ## FIXME this comes from src/s/{gnu,gnu-linux}.h:
## #ifdef DOUG_LEA_MALLOC; #undef REL_ALLOC; #endif ## #ifdef DOUG_LEA_MALLOC; #undef REL_ALLOC; #endif
## Does the AC_FUNC_MMAP test below make this check unecessary? ## Does the AC_FUNC_MMAP test below make this check unnecessary?
case "$opsys" in case "$opsys" in
gnu*) REL_ALLOC=no ;; gnu*) REL_ALLOC=no ;;
esac esac
@ -10339,9 +10339,15 @@ fi
done done
if test "$ac_cv_header_pthread_h"; then if test "$ac_cv_header_pthread_h"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_self in -lpthread" >&5 if test "$GMALLOC_OBJ" = gmalloc.o; then
$as_echo_n "checking for pthread_self in -lpthread... " >&6; } emacs_pthread_function=pthread_atfork
if test "${ac_cv_lib_pthread_pthread_self+set}" = set; then : else
emacs_pthread_function=pthread_self
fi
as_ac_Lib=`$as_echo "ac_cv_lib_pthread_$emacs_pthread_function" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $emacs_pthread_function in -lpthread" >&5
$as_echo_n "checking for $emacs_pthread_function in -lpthread... " >&6; }
if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
$as_echo_n "(cached) " >&6 $as_echo_n "(cached) " >&6
else else
ac_check_lib_save_LIBS=$LIBS ac_check_lib_save_LIBS=$LIBS
@ -10355,27 +10361,29 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
char pthread_self (); char $emacs_pthread_function ();
int int
main () main ()
{ {
return pthread_self (); return $emacs_pthread_function ();
; ;
return 0; return 0;
} }
_ACEOF _ACEOF
if ac_fn_c_try_link "$LINENO"; then : if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_pthread_pthread_self=yes eval "$as_ac_Lib=yes"
else else
ac_cv_lib_pthread_pthread_self=no eval "$as_ac_Lib=no"
fi fi
rm -f core conftest.err conftest.$ac_objext \ rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS LIBS=$ac_check_lib_save_LIBS
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_self" >&5 eval ac_res=\$$as_ac_Lib
$as_echo "$ac_cv_lib_pthread_pthread_self" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
if test "x$ac_cv_lib_pthread_pthread_self" = x""yes; then : $as_echo "$ac_res" >&6; }
eval as_val=\$$as_ac_Lib
if test "x$as_val" = x""yes; then :
HAVE_PTHREAD=yes HAVE_PTHREAD=yes
fi fi

View file

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
### update_autogen - update the generated files in Emacs autogen/ directory ### update_autogen - update the generated files in Emacs autogen/ directory
## Copyright (C) 2011 Free Software Foundation, Inc. ## Copyright (C) 2011-2012 Free Software Foundation, Inc.
## Author: Glenn Morris <rgm@gnu.org> ## Author: Glenn Morris <rgm@gnu.org>

View file

@ -1,9 +1,7 @@
@echo off @echo off
rem ---------------------------------------------------------------------- rem ----------------------------------------------------------------------
rem Configuration script for MSDOS rem Configuration script for MSDOS
rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003 rem Copyright (C) 1994-1999, 2001-2012 Free Software Foundation, Inc.
rem 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
rem Inc.
rem This file is part of GNU Emacs. rem This file is part of GNU Emacs.

View file

@ -4,7 +4,7 @@ dnl autoconf
dnl in the directory containing this script. dnl in the directory containing this script.
dnl If you changed any AC_DEFINES, also run autoheader. dnl If you changed any AC_DEFINES, also run autoheader.
dnl dnl
dnl Copyright (C) 1994-1996, 1999-2011 Free Software Foundation, Inc. dnl Copyright (C) 1994-1996, 1999-2012 Free Software Foundation, Inc.
dnl dnl
dnl This file is part of GNU Emacs. dnl This file is part of GNU Emacs.
dnl dnl
@ -1683,7 +1683,7 @@ if test "$doug_lea_malloc" = "yes" ; then
## Use mmap directly for allocating larger buffers. ## Use mmap directly for allocating larger buffers.
## FIXME this comes from src/s/{gnu,gnu-linux}.h: ## FIXME this comes from src/s/{gnu,gnu-linux}.h:
## #ifdef DOUG_LEA_MALLOC; #undef REL_ALLOC; #endif ## #ifdef DOUG_LEA_MALLOC; #undef REL_ALLOC; #endif
## Does the AC_FUNC_MMAP test below make this check unecessary? ## Does the AC_FUNC_MMAP test below make this check unnecessary?
case "$opsys" in case "$opsys" in
gnu*) REL_ALLOC=no ;; gnu*) REL_ALLOC=no ;;
esac esac
@ -1720,7 +1720,15 @@ dnl Check if pthreads is available.
LIB_PTHREAD= LIB_PTHREAD=
AC_CHECK_HEADERS(pthread.h) AC_CHECK_HEADERS(pthread.h)
if test "$ac_cv_header_pthread_h"; then if test "$ac_cv_header_pthread_h"; then
AC_CHECK_LIB(pthread, pthread_self, HAVE_PTHREAD=yes) dnl gmalloc.c uses pthread_atfork, which is not available on older-style
dnl hosts such as MirBSD 10, so test for pthread_atfork instead of merely
dnl testing for pthread_self if Emacs uses gmalloc.c.
if test "$GMALLOC_OBJ" = gmalloc.o; then
emacs_pthread_function=pthread_atfork
else
emacs_pthread_function=pthread_self
fi
AC_CHECK_LIB(pthread, $emacs_pthread_function, HAVE_PTHREAD=yes)
fi fi
if test "$HAVE_PTHREAD" = yes; then if test "$HAVE_PTHREAD" = yes; then
case "${canonical}" in case "${canonical}" in
@ -3508,7 +3516,7 @@ fi
AH_TOP([/* GNU Emacs site configuration template file. AH_TOP([/* GNU Emacs site configuration template file.
Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2011 Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2012
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GNU Emacs. This file is part of GNU Emacs.

View file

@ -1,3 +1,261 @@
2012-01-09 Chong Yidong <cyd@gnu.org>
* custom.texi (Custom Themes): Switched custom-safe-themes to use
SHA-256.
2012-01-07 Chong Yidong <cyd@gnu.org>
* display.texi (Useless Whitespace): Add Whitespace mode.
* custom.texi (Hooks): Discuss how to disable minor modes.
* files.texi (Diff Mode): Discuss diff-auto-refine-mode
(Bug#10309). Discuss use of Whitespace mode (Bug#10300).
* trouble.texi (Lossage): Refer to Bugs node for problems.
(DEL Does Not Delete): Don't use "usual erasure key" teminology.
(Screen Garbled): Don't refer to terminal "manufacturers".
(Total Frustration): Node deleted. Eliza is documented in
Amusements now.
(Known Problems): More info about using the bug tracker. Mention
debbugs package.
(Bug Criteria): Copyedits.
(Understanding Bug Reporting): Mention emacs -Q.
2012-01-06 Chong Yidong <cyd@gnu.org>
* custom.texi (Specifying File Variables): The mode: keyword
doesn't have to be first anymore. Add example of specifying minor
modes.
(Directory Variables): Simplify example. Mention application to
non-file buffers.
(Disabling): Use "initialization file" terminology.
(Init Examples): Fix hook example.
2012-01-06 Eli Zaretskii <eliz@gnu.org>
* cmdargs.texi (MS-Windows Registry): Shorten the index entry.
(Bug#10422)
Move the stuff about resources to xresources.texi.
* xresources.texi (Resources): Move information about setting X
resources in the Registry from cmdargs.texi. Make the index entry
be similar to the one in cmdargs.texi.
2012-01-05 Chong Yidong <cyd@gnu.org>
* custom.texi (Customization Groups): Update example.
(Browsing Custom): Document the new search field.
(Changing a Variable): Update example for Emacs 24 changes.
Document Custom-set and Custom-save commands.
(Face Customization): Document Emacs 24 changes. De-document
modify-face.
(Specific Customization): Mention customize-variable.
(Custom Themes): Add customize-themes, custom-theme-load-path,
custom-theme-directory, and describe-theme.
(Creating Custom Themes): New node.
(Examining): Mention M-:.
* package.texi (Packages): Fix typo.
2012-01-03 Chong Yidong <cyd@gnu.org>
* misc.texi (Single Shell): Don't document Lisp usage of
shell-command. Tidy up discussion of synchronicity. Add index
entries for async-shell-command.
(Interactive Shell): Note that M-x shell uses shell-file-name.
Note change in behavior in Emacs 24.
(Shell Mode): Shell mode now uses completion-at-point.
(Shell Prompts): Emphasize that comint-use-prompt-regexp isn't the
default method for recognizing prompts nowadays.
(Shell Ring): Add xref to Minibuffer History.
(Directory Tracking): Explain Dirtrack mode in more detail.
(Term Mode): Fix index entries.
(Paging in Term): Merge into Term Mode.
(Serial Terminal, Emacs Server, emacsclient Options): Copyedits.
(Printing): Fix xref. State default of lpr-switches.
(PostScript): Remove obsolete sentence. Omit description of
non-interactive behaviors.
(Hyperlinking): Improve description.
(Browse-URL): Using compose-mail for mailto URLs is the default.
Document browse-url-mailto-function.
(Goto Address mode): Add index entries. Add xref to Browse-URL.
(FFAP): FFAP is not a minor mode.
(Amusements): M-x lm was renamed to M-x landmark. Document
nato-region.
2012-01-01 Chong Yidong <cyd@gnu.org>
* misc.texi (Gnus, Buffers of Gnus): Copyedits.
(Gnus Startup): Note that the system might not be set up for news.
Describe group levels more clearly.
(Gnus Group Buffer, Gnus Summary Buffer): New nodes, split from
Summary of Gnus.
(Document View): Copyedits. Move zoom commads to DocView
Navigation node.
(DocView Navigation, DocView Searching, DocView Slicing)
(DocView Conversion): Nodes renamed from Navigation, etc.
* sending.texi (Mail Sending): Add message-kill-buffer-on-exit.
2011-12-31 Eli Zaretskii <eliz@gnu.org>
* basic.texi (Moving Point): Fix the description of C-n and C-p.
(Bug#10380)
2011-12-30 Chong Yidong <cyd@gnu.org>
* sending.texi (Sending Mail): Document initial mail buffer name,
and changed multiple mail buffer behavior.
(Mail Format): Put the example at the top of the section.
(Mail Headers): Move discussion of "From" to the top.
(Mail Sending): Document sendmail-query-once.
(Citing Mail): Make it less Rmail-specific.
2011-12-29 Chong Yidong <cyd@gnu.org>
* text.texi (Org Mode): Copyedits. Refer to Outline Format for
example. Add index entries.
(Org Organizer, Org Authoring): Nodes renamed. Copyedits.
2011-12-26 Chong Yidong <cyd@gnu.org>
* dired.texi (Dired Enter, Misc Dired Features): Document
dired-use-ls-dired changes. Mention quit-window.
(Dired Navigation): Add index entries.
(Dired Visiting): Fix View Mode xref.
(Marks vs Flags): Prefer C-/ binding for undo.
(Subdirectories in Dired): Add xrefs.
(Misc Dired Features): Document some Emacs 24 changes. Add index
entries.
* abbrevs.texi (Abbrev Concepts): No need to mention abbrev-mode
variable, since it is explained in Minor Modes node.
(Defining Abbrevs): Copyedits.
(Expanding Abbrevs): State default of abbrev-all-caps. Prefer the
C-/ binding for undo.
(Dabbrev Customization): Add xrefs for case-fold-search and
case-replace.
* dired-xtra.texi (Subdir Switches): Add xref.
* maintaining.texi (VC Directory Commands): Mention quit-window.
2011-12-25 Chong Yidong <cyd@gnu.org>
* maintaining.texi (Tags): Mention Semantic.
(Create Tags Table, Etags Regexps): Copyedits.
(Find Tag): Mention minibuffer completion.
(List Tags): Mention completion-at-point. Completion is actually
available in M-x list-tags.
* vc1-xtra.texi (VC Delete/Rename): Rename from Renaming and VC.
Document vc-delete-file.
* files.texi (Misc File Ops): Mention vc-delete-file.
* programs.texi (Symbol Completion): Mention completion-at-point
explicitly.
2011-12-22 Chong Yidong <cyd@gnu.org>
* maintaining.texi (Change Log Commands): Don't specially mention
vc-update-change-log which is CVS-only.
* vc1-xtra.texi (Version Headers): Note that these are for
Subversion, CVS, etc. only.
(General VC Options): De-document vc-keep-workfiles. Fix
RCS-isms.
2011-12-22 Eli Zaretskii <eliz@gnu.org>
* building.texi (Debugger Operation): Fix a typo: "@end iftext"
should be @end iftex".
2011-12-21 Chong Yidong <cyd@gnu.org>
* maintaining.texi (Advanced C-x v v): Use fileset terminology.
(VC With A Merging VCS, VC Change Log): Add xref to VC Pull node.
(VC Pull): Mention vc-log-incoming.
(Log Buffer): Add CVS/RCS only disclaimer.
* vc1-xtra.texi (Remote Repositories): Update introduction.
(Local Version Control): Node deleted (obsolete with DVCSes).
(Remote Repositories, Version Backups): Node deleted. Move
documentation of vc-cvs-stay-local to CVS Options.
(CVS Options): Reduce verbosity of description of obscure CVS
locking feature.
(Making Revision Tags, Revision Tag Caveats): Merge into Revision
Tags node.
(Revision Tags): Move under Miscellaneous VC subsection.
(Change Logs and VC): Note that this is wrong for DVCSs.
De-document log entry manipulating features.
(Renaming and VC): Describe how it works on modern VCSes.
* files.texi (Misc File Ops): Mention vc-rename-file.
* programs.texi (Custom C Indent): Add index entries.
2011-12-20 Alan Mackenzie <acm@muc.de>
* programs.texi (Motion in C): Update the description of C-M-a and
C-M-e, they now DTRT in enclosing scopes.
(Custom C Indent): Add @dfn{guessing} of the indentation style.
2011-12-20 Chong Yidong <cyd@gnu.org>
* maintaining.texi (VCS Concepts): Add "working tree" terminology.
(Old Revisions): Use it.
(VCS Repositories): Add "distributed" terminology.
(Log Buffer): Remove duplicate description
about changesets. Fix "current VC fileset" ambiguity.
(Multi-User Branching): Node deleted.
(Branches, Switching Branches): Discuss decentralized version
control systems.
(VC Pull): New node.
(Merging): Document merging on decentralized systems.
(Creating Branches): Note that this is specific to CVS and related
systems.
2011-12-19 Chong Yidong <cyd@gnu.org>
* maintaining.texi (VCS Merging, VCS Changesets): Index entries.
(VC Mode Line): Add index entry for "version control status".
(VC Undo): Use vc-revert instead of its vc-revert-buffer alias.
Document vc-revert-show-diff. De-document vc-rollback.
(VC Directory Mode): Rewrite introduction. Move prefix arg
documentation here from VC Directory Buffer node.
(VC Directory Buffer): Use a decentralized VCS example.
(VC Directory Commands): Use a table. Remove material duplicated
in previous nodes on multi-file VC filsets.
2011-12-17 Chong Yidong <cyd@gnu.org>
* maintaining.texi (VCS Concepts): Make "revision" terminology
less CVS-specific.
(VC With A Merging VCS, VC With A Locking VCS): Add xref to
Registering node.
(Secondary VC Commands): Deleted. Promote subnodes.
(Log Buffer): Add command name for C-c C-c. Fix the name of the
log buffer. Add index entries.
(VCS Changesets, Types of Log File, VC With A Merging VCS): Use
"commit" terminology.
(Old Revisions): Move it to just before VC Change Log. "Tag" here
doesn't refer to tags tables. Note other possible forms of the
revision ID. C-x v = does not save.
(Registering): Note similarity to C-x v v action. Fix description
of how backends are chosen. De-document vc-default-init-revision.
(VC Change Log): Document C-x v l in VC-Dir buffer. Document RET
in root log buffers.
2011-12-16 Chong Yidong <cyd@gnu.org>
* maintaining.texi (Version Control Systems): Drop Meta-CVS.
(Basic VC Editing): Remove redundant descriptions.
(VC With A Merging VCS): Make description more general instead of
CVS-specific.
(VC With A Locking VCS): Use VC fileset terminology.
2011-12-12 Chong Yidong <cyd@gnu.org> 2011-12-12 Chong Yidong <cyd@gnu.org>
* building.texi (Executing Lisp): Fix xref for C-M-x. * building.texi (Executing Lisp): Fix xref for C-M-x.

View file

@ -1,6 +1,6 @@
#### Makefile for the Emacs Manual #### Makefile for the Emacs Manual
# Copyright (C) 1994, 1996-2011 Free Software Foundation, Inc. # Copyright (C) 1994, 1996-2012 Free Software Foundation, Inc.
# This file is part of GNU Emacs. # This file is part of GNU Emacs.

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Abbrevs @node Abbrevs
@ -45,17 +45,14 @@ expanding to @samp{find outer otter}, then you can insert @samp{find
outer otter.} into the buffer by typing @kbd{f o o .}. outer otter.} into the buffer by typing @kbd{f o o .}.
@findex abbrev-mode @findex abbrev-mode
@vindex abbrev-mode
@cindex Abbrev mode @cindex Abbrev mode
@cindex mode, Abbrev @cindex mode, Abbrev
Abbrevs expand only when Abbrev mode (a minor mode) is enabled. Abbrevs expand only when Abbrev mode, a buffer-local minor mode, is
Disabling Abbrev mode does not cause abbrev definitions to be forgotten, enabled. Disabling Abbrev mode does not cause abbrev definitions to
but they do not expand until Abbrev mode is enabled again. The command be forgotten, but they do not expand until Abbrev mode is enabled
@kbd{M-x abbrev-mode} toggles Abbrev mode; with a numeric argument, it again. The command @kbd{M-x abbrev-mode} toggles Abbrev mode; with a
turns Abbrev mode on if the argument is positive, off otherwise. numeric argument, it turns Abbrev mode on if the argument is positive,
@xref{Minor Modes}. @code{abbrev-mode} is also a variable; Abbrev mode is off otherwise. @xref{Minor Modes}.
on when the variable is non-@code{nil}. The variable @code{abbrev-mode}
automatically becomes local to the current buffer when it is set.
Abbrevs can have @dfn{mode-specific} definitions, active only in one major Abbrevs can have @dfn{mode-specific} definitions, active only in one major
mode. Abbrevs can also have @dfn{global} definitions that are active in mode. Abbrevs can also have @dfn{global} definitions that are active in
@ -108,22 +105,18 @@ region as the expansion of the abbrev being defined.
@kindex C-x a l @kindex C-x a l
@findex add-mode-abbrev @findex add-mode-abbrev
The command @kbd{C-x a l} (@code{add-mode-abbrev}) is similar, but The command @kbd{C-x a l} (@code{add-mode-abbrev}) is similar, but
defines a mode-specific abbrev. Mode-specific abbrevs are active only in a defines a mode-specific abbrev for the current major mode. The
particular major mode. @kbd{C-x a l} defines an abbrev for the major mode arguments work the same as for @kbd{C-x a g}.
in effect at the time @kbd{C-x a l} is typed. The arguments work the same
as for @kbd{C-x a g}.
@kindex C-x a i g @kindex C-x a i g
@findex inverse-add-global-abbrev @findex inverse-add-global-abbrev
@kindex C-x a i l @kindex C-x a i l
@findex inverse-add-mode-abbrev @findex inverse-add-mode-abbrev
If the abbrev text itself is already in the buffer, you can use the @kbd{C-x a i g} (@code{inverse-add-global-abbrev}) and @kbd{C-x a i
commands @kbd{C-x a i g} (@code{inverse-add-global-abbrev}) and l} (@code{inverse-add-mode-abbrev}) perform the opposite task: if the
@kbd{C-x a i l} (@code{inverse-add-mode-abbrev}) to define it as an abbrev text is already in the buffer, you use these commands to define
abbrev by specify the expansion in the minibuffer. These commands are an abbrev by specifying the expansion in the minibuffer. These
called ``inverse'' because they invert the meaning of the two text commands will expand the abbrev text used for the definition.
strings they use (one from the buffer and one read with the
minibuffer).
@findex define-mode-abbrev @findex define-mode-abbrev
@findex define-global-abbrev @findex define-global-abbrev
@ -132,8 +125,8 @@ expansion in the buffer using the command @code{define-global-abbrev}.
It reads two arguments---the abbrev, and its expansion. The command It reads two arguments---the abbrev, and its expansion. The command
@code{define-mode-abbrev} does likewise for a mode-specific abbrev. @code{define-mode-abbrev} does likewise for a mode-specific abbrev.
To change the definition of an abbrev, just define a new definition. To change the definition of an abbrev, just make a new definition.
When the abbrev has a prior definition, the abbrev definition commands When an abbrev has a prior definition, the abbrev definition commands
ask for confirmation before replacing it. ask for confirmation before replacing it.
@findex kill-all-abbrevs @findex kill-all-abbrevs
@ -155,11 +148,11 @@ The most common way to use an abbrev is to insert it and then insert a
punctuation or whitespace character to expand it. punctuation or whitespace character to expand it.
@vindex abbrev-all-caps @vindex abbrev-all-caps
Abbrev expansion preserves case; thus, @samp{foo} expands into @samp{find Abbrev expansion preserves case: @samp{foo} expands to @samp{find
outer otter}; @samp{Foo} into @samp{Find outer otter}, and @samp{FOO} into outer otter}, and @samp{Foo} to @samp{Find outer otter}. @samp{FOO}
@samp{FIND OUTER OTTER} or @samp{Find Outer Otter} according to the expands to @samp{Find Outer Otter} by default, but if you change the
variable @code{abbrev-all-caps} (setting it non-@code{nil} specifies variable @code{abbrev-all-caps} to a non-@code{nil} value, it expands
@samp{FIND OUTER OTTER}). to @samp{FIND OUTER OTTER}.
These commands are used to control abbrev expansion: These commands are used to control abbrev expansion:
@ -196,14 +189,14 @@ punctuation with @kbd{C-q}. Thus, @kbd{foo C-q ,} leaves @samp{foo,} in
the buffer, not expanding it. the buffer, not expanding it.
@findex unexpand-abbrev @findex unexpand-abbrev
If you expand an abbrev by mistake, you can undo the expansion and If you expand an abbrev by mistake, you can undo the expansion by
bring back the abbrev itself by typing @kbd{C-_} to undo (@pxref{Undo}). typing @kbd{C-/} (@code{undo}). @xref{Undo}. This undoes the
This also undoes the insertion of the non-word character that expanded insertion of the abbrev expansion and brings back the abbrev text. If
the abbrev. If the result you want is the terminating non-word the result you want is the terminating non-word character plus the
character plus the unexpanded abbrev, you must reinsert the terminating unexpanded abbrev, you must reinsert the terminating character,
character, quoting it with @kbd{C-q}. You can also use the command quoting it with @kbd{C-q}. You can also use the command @kbd{M-x
@kbd{M-x unexpand-abbrev} to cancel the last expansion without unexpand-abbrev} to cancel the last expansion without deleting the
deleting the terminating character. terminating character.
@findex expand-region-abbrevs @findex expand-region-abbrevs
@kbd{M-x expand-region-abbrevs} searches through the region for defined @kbd{M-x expand-region-abbrevs} searches through the region for defined
@ -409,12 +402,11 @@ you are expanding.
@vindex dabbrev-case-fold-search @vindex dabbrev-case-fold-search
This feature is controlled by the variable This feature is controlled by the variable
@code{dabbrev-case-fold-search}. If it is @code{t}, case is ignored in @code{dabbrev-case-fold-search}. If it is @code{t}, case is ignored
this search; if it is @code{nil}, the word and the expansion must match in this search; if it is @code{nil}, the word and the expansion must
in case. If the value of @code{dabbrev-case-fold-search} is match in case. If the value is @code{case-fold-search} (the default),
@code{case-fold-search}, which is true by default, then the variable then the variable @code{case-fold-search} controls whether to ignore
@code{case-fold-search} controls whether to ignore case while searching case while searching for expansions (@pxref{Search Case}).
for expansions.
@vindex dabbrev-case-replace @vindex dabbrev-case-replace
Normally, dynamic abbrev expansion preserves the case pattern Normally, dynamic abbrev expansion preserves the case pattern
@ -425,10 +417,10 @@ expansion to that case pattern.
The variable @code{dabbrev-case-replace} controls whether to The variable @code{dabbrev-case-replace} controls whether to
preserve the case pattern of the dynamic abbrev. If it is @code{t}, preserve the case pattern of the dynamic abbrev. If it is @code{t},
the dynamic abbrev's case pattern is preserved in most cases; if it is the dynamic abbrev's case pattern is preserved in most cases; if it is
@code{nil}, the expansion is always copied verbatim. If the value of @code{nil}, the expansion is always copied verbatim. If the value is
@code{dabbrev-case-replace} is @code{case-replace}, which is true by @code{case-replace} (the default), then the variable
default, then the variable @code{case-replace} controls whether to @code{case-replace} controls whether to copy the expansion verbatim
copy the expansion verbatim. (@pxref{Replacement and Case}).
However, if the expansion contains a complex mixed case pattern, and However, if the expansion contains a complex mixed case pattern, and
the dynamic abbrev matches this pattern as far as it goes, then the the dynamic abbrev matches this pattern as far as it goes, then the

View file

@ -1,6 +1,6 @@
@c -*- coding: iso-latin-1 -*- @c -*- coding: iso-latin-1 -*-
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1994-1997, 1999-2011 Free Software Foundation, Inc. @c Copyright (C) 1994-1997, 1999-2012 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@c @c
@node Acknowledgments, Screen, Concept Index, Top @node Acknowledgments, Screen, Concept Index, Top
@ -1183,7 +1183,7 @@ Martin Stjernholm co-authored CC Mode, a major editing mode for C,
C@t{++}, Objective-C, Java, Pike, CORBA IDL, and AWK code. C@t{++}, Objective-C, Java, Pike, CORBA IDL, and AWK code.
@item @item
Steve Strassman did not write @file{spook.el}, and even if he did, he Steve Strassmann did not write @file{spook.el}, and even if he did, he
really didn't mean for you to use it in an anarchistic way. really didn't mean for you to use it in an anarchistic way.
@item @item

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 2005-2011 Free Software Foundation, Inc. @c Copyright (C) 2005-2012 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Antinews, Mac OS / GNUstep, X Resources, Top @node Antinews, Mac OS / GNUstep, X Resources, Top

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 2004-2011 Free Software Foundation, Inc. @c Copyright (C) 2004-2012 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@c @c
@c This file is included either in emacs-xtra.texi (when producing the @c This file is included either in emacs-xtra.texi (when producing the

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Basic, Minibuffer, Exiting, Top @node Basic, Minibuffer, Exiting, Top
@ -130,11 +130,13 @@ specifies how many copies of the character to insert
@cindex moving the cursor @cindex moving the cursor
To do more than insert characters, you have to know how to move To do more than insert characters, you have to know how to move
point (@pxref{Point}). The keyboard commands @kbd{C-f}, @kbd{C-b}, point (@pxref{Point}). The keyboard commands @kbd{C-f}, @kbd{C-b},
@kbd{C-n}, and @kbd{C-p} move point to the right, left, up and down @kbd{C-n}, and @kbd{C-p} move point to the right, left, down, and up,
respectively. You can also move point using the @dfn{arrow keys} respectively. You can also move point using the @dfn{arrow keys}
present on most keyboards: @kbd{@key{right}}, @kbd{@key{left}}, present on most keyboards: @kbd{@key{right}}, @kbd{@key{left}},
@kbd{@key{down}}, and @kbd{@key{up}}; however, many Emacs users find @kbd{@key{down}}, and @kbd{@key{up}}; however, many Emacs users find
that it is slower to use the arrow keys than the control keys. that it is slower to use the arrow keys than the control keys, because
you need to move your hand to the area of the keyboard where those
keys are located.
You can also click the left mouse button to move point to the You can also click the left mouse button to move point to the
position clicked. Emacs also provides a variety of additional position clicked. Emacs also provides a variety of additional

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Buffers, Windows, Files, Top @node Buffers, Windows, Files, Top

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Building, Maintaining, Programs, Top @node Building, Maintaining, Programs, Top
@ -24,9 +24,9 @@ assist in the process of compiling and testing programs.
* Executing Lisp:: Various modes for editing Lisp programs, * Executing Lisp:: Various modes for editing Lisp programs,
with different facilities for running with different facilities for running
the Lisp programs. the Lisp programs.
* Lisp Libraries:: How Lisp programs are loaded into Emacs. * Libraries: Lisp Libraries. How Lisp programs are loaded into Emacs.
* Lisp Eval:: Executing a single Lisp expression in Emacs. * Eval: Lisp Eval. Executing a single Lisp expression in Emacs.
* Lisp Interaction:: Executing Lisp in an Emacs buffer. * Interaction: Lisp Interaction. Executing Lisp in an Emacs buffer.
* External Lisp:: Communicating through Emacs with a separate Lisp. * External Lisp:: Communicating through Emacs with a separate Lisp.
@end menu @end menu
@ -550,7 +550,7 @@ This is the basic interface for interacting with a debugger, used by
@kbd{M-x gud-gdb} and other commands listed in @kbd{M-x gud-gdb} and other commands listed in
@iftex @iftex
the preceding section. the preceding section.
@end iftext @end iftex
@ifnottex @ifnottex
@ref{Starting GUD}. @ref{Starting GUD}.
@end ifnottex @end ifnottex
@ -565,7 +565,7 @@ Mode}). Completion is available for most debugger commands
commands to repeat them. commands to repeat them.
@iftex @iftex
See the next section See the next section
@end iftext @end iftex
@ifnottex @ifnottex
@xref{Commands of GUD}, @xref{Commands of GUD},
@end ifnottex @end ifnottex

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 2004-2011 Free Software Foundation, Inc. @c Copyright (C) 2004-2012 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@c @c
@c This file is included either in emacs-xtra.texi (when producing the @c This file is included either in emacs-xtra.texi (when producing the
@ -41,12 +41,12 @@ customize the variables @code{calendar-intermonth-header} and
@vindex calendar-holiday-marker @vindex calendar-holiday-marker
@vindex diary-entry-marker @vindex diary-entry-marker
@vindex calenday-today-marker @vindex calendar-today-marker
The variable @code{calendar-holiday-marker} specifies how to mark a The variable @code{calendar-holiday-marker} specifies how to mark a
date as being a holiday. Its value may be a single-character string to date as being a holiday. Its value may be a single-character string to
insert next to the date, or a face name to use for displaying the date. insert next to the date, or a face name to use for displaying the date.
Likewise, the variable @code{diary-entry-marker} specifies how to mark a Likewise, the variable @code{diary-entry-marker} specifies how to mark a
date that has diary entries, and @code{calenday-today-marker} is used by date that has diary entries, and @code{calendar-today-marker} is used by
the function @code{calendar-mark-today} to mark today's date. By the function @code{calendar-mark-today} to mark today's date. By
default, the calendar uses faces named @code{holiday}, @code{diary}, and default, the calendar uses faces named @code{holiday}, @code{diary}, and
@code{calendar-today} for these purposes. @code{calendar-today} for these purposes.

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Calendar/Diary @node Calendar/Diary

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Emacs Invocation, X Resources, GNU Free Documentation License, Top @node Emacs Invocation, X Resources, GNU Free Documentation License, Top
@ -675,9 +675,9 @@ changing any environment or registry settings.
@node MS-Windows Registry @node MS-Windows Registry
@appendixsubsec The MS-Windows System Registry @appendixsubsec The MS-Windows System Registry
@pindex addpm, MS-Windows installation program @pindex addpm, MS-Windows installation program
@cindex registry, setting environment variables and resources on MS-Windows @cindex registry, setting environment variables (MS-Windows)
Under MS-Windows, the installation program @command{addpm.exe} adds On MS-Windows, the installation program @command{addpm.exe} adds
values for @env{emacs_dir}, @env{EMACSLOADPATH}, @env{EMACSDATA}, values for @env{emacs_dir}, @env{EMACSLOADPATH}, @env{EMACSDATA},
@env{EMACSPATH}, @env{EMACSDOC}, @env{SHELL} and @env{TERM} to the @env{EMACSPATH}, @env{EMACSDOC}, @env{SHELL} and @env{TERM} to the
@file{HKEY_LOCAL_MACHINE} section of the system registry, under @file{HKEY_LOCAL_MACHINE} section of the system registry, under
@ -704,10 +704,6 @@ still cannot determine the values, compiled-in defaults are used.
In addition to the environment variables above, you can also add many In addition to the environment variables above, you can also add many
of the settings which on X belong in the @file{.Xdefaults} file of the settings which on X belong in the @file{.Xdefaults} file
(@pxref{X Resources}) to the @file{/Software/GNU/Emacs} registry key. (@pxref{X Resources}) to the @file{/Software/GNU/Emacs} registry key.
Settings you add to the @file{HKEY_LOCAL_MACHINE} section will affect
all users of the machine. Settings you add to the
@file{HKEY_CURRENT_USER} section will only affect you, and will
override machine wide settings.
@node Display X @node Display X
@appendixsec Specifying the Display Name @appendixsec Specifying the Display Name

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@iftex @iftex

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 2004-2011 Free Software Foundation, Inc. @c Copyright (C) 2004-2012 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@c @c
@c This file is included either in emacs-xtra.texi (when producing the @c This file is included either in emacs-xtra.texi (when producing the
@ -7,24 +7,24 @@
@node Subdir Switches @node Subdir Switches
@section Subdirectory Switches in Dired @section Subdirectory Switches in Dired
You can insert subdirectories with specified @code{ls} switches in You can insert subdirectories with specified @command{ls} switches in
Dired buffers using @kbd{C-u i}. You can change the @code{ls} Dired buffers using @kbd{C-u i}. You can change the @command{ls}
switches of an already inserted subdirectory using @kbd{C-u l}. switches of an already inserted subdirectory using @kbd{C-u l}.
Dired preserves the switches if you revert the buffer. Deleting a Dired preserves the switches if you revert the buffer. Deleting a
subdirectory forgets about its switches. subdirectory forgets about its switches.
Using @code{dired-undo} (usually bound to @kbd{C-_} and @kbd{C-x u}) Using @code{dired-undo} (@pxref{Marks vs Flags}) to reinsert or delete
to reinsert or delete subdirectories that were inserted with explicit subdirectories that were inserted with explicit switches can bypass
switches can bypass Dired's machinery for remembering (or forgetting) Dired's machinery for remembering (or forgetting) switches. Deleting
switches. Deleting a subdirectory using @code{dired-undo} does not a subdirectory using @code{dired-undo} does not forget its switches.
forget its switches. When later reinserted using @kbd{i}, it will be When later reinserted using @kbd{i}, it will be reinserted using its
reinserted using its old switches. Using @code{dired-undo} to old switches. Using @code{dired-undo} to reinsert a subdirectory that
reinsert a subdirectory that was deleted using the regular was deleted using the regular Dired commands (not @code{dired-undo})
Dired commands (not @code{dired-undo}) will originally insert it with will originally insert it with its old switches. Reverting the
its old switches. Reverting the buffer, however, will relist it using buffer, however, will relist it using the buffer's default switches.
the buffer's default switches. If any of this yields problems, you If any of this yields problems, you can easily correct the situation
can easily correct the situation using @kbd{C-u i} or @kbd{C-u l}. using @kbd{C-u i} or @kbd{C-u l}.
Dired does not remember the @code{R} switch. Inserting a subdirectory Dired does not remember the @code{R} switch. Inserting a subdirectory
with switches that include the @code{R} switch is equivalent to with switches that include the @code{R} switch is equivalent to

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Dired @node Dired
@ -73,32 +73,45 @@ completion commands can be used in the minibuffer; in particular,
a directory name. a directory name.
The variable @code{dired-listing-switches} specifies the options to The variable @code{dired-listing-switches} specifies the options to
give to @code{ls} for listing the directory; this string @emph{must} give to @command{ls} for listing the directory; this string
contain @samp{-l}. If you use a prefix argument with the @code{dired} @emph{must} contain @samp{-l}. If you use a prefix argument with the
command, you can specify the @code{ls} switches with the minibuffer @code{dired} command, you can specify the @command{ls} switches with the
before you enter the directory specification. No matter how they are minibuffer before you enter the directory specification. No matter
specified, the @code{ls} switches can include short options (that is, how they are specified, the @command{ls} switches can include short
single characters) requiring no arguments, and long options (starting options (that is, single characters) requiring no arguments, and long
with @samp{--}) whose arguments are specified with @samp{=}. options (starting with @samp{--}) whose arguments are specified with
@samp{=}.
@vindex dired-use-ls-dired @vindex dired-use-ls-dired
Note that Dired automatically adds the option @samp{--dired}, if If your @command{ls} program supports the @samp{--dired} option,
your @code{ls} program supports it, unless you explicitly set Dired automatically passes it that option; this causes @command{ls} to
the variable @code{dired-use-ls-dired} to @code{nil}. Without this emit special escape sequences for certain unusual file names, without
option, Dired will have trouble parsing some @samp{unusual} file-names. which Dired will not be able to parse those names. The first time you
See the documentation of @code{dired-use-ls-dired} for more details. run Dired in an Emacs session, it checks whether @command{ls} supports
the @samp{--dired} option by calling it once with that option. If the
exit code is 0, Dired will subsequently use the @samp{--dired} option;
otherwise it will not. You can inhibit this check by customizing the
variable @code{dired-use-ls-dired}. The value @code{unspecified} (the
default) means to perform the check; any other non-@code{nil} value
means to use the @samp{--dired} option; and @code{nil} means not to
use the @samp{--dired} option.
On MS-Windows and MS-DOS systems, Emacs @emph{emulates} @code{ls}; On MS-Windows and MS-DOS systems, Emacs emulates @command{ls}.
see @ref{ls in Lisp}, for options and peculiarities of that emulation. @xref{ls in Lisp}, for options and peculiarities of this emulation.
@findex dired-other-window @findex dired-other-window
@kindex C-x 4 d @kindex C-x 4 d
@findex dired-other-frame @findex dired-other-frame
@kindex C-x 5 d @kindex C-x 5 d
To display the Dired buffer in another window rather than in the To display the Dired buffer in another window, use @kbd{C-x 4 d}
selected window, use @kbd{C-x 4 d} (@code{dired-other-window}) instead (@code{dired-other-window}) instead of @kbd{C-x d}. @kbd{C-x 5 d}
of @kbd{C-x d}. @kbd{C-x 5 d} (@code{dired-other-frame}) uses a (@code{dired-other-frame}) displays the Dired buffer in a separate
separate frame to display the Dired buffer. frame.
@kindex q @r{(Dired)}
@findex quit-window
Typing @kbd{q} (@code{quit-window}) buries the Dired buffer, and
deletes its window if the window was created just for that buffer.
@node Dired Navigation @node Dired Navigation
@section Navigation in the Dired Buffer @section Navigation in the Dired Buffer
@ -124,7 +137,11 @@ minibuffer, and moves point to the line in the Dired buffer describing
that file. that file.
@cindex searching Dired buffers @cindex searching Dired buffers
@findex dired-isearch-filenames
@vindex dired-isearch-filenames @vindex dired-isearch-filenames
@findex dired-isearch-filenames-regexp
@kindex M-s f C-s @r{(Dired)}
@kindex M-s f M-C-s @r{(Dired)}
@kbd{M-s f C-s} (@code{dired-isearch-filenames}) performs a forward @kbd{M-s f C-s} (@code{dired-isearch-filenames}) performs a forward
incremental search in the Dired buffer, looking for matches only incremental search in the Dired buffer, looking for matches only
amongst the file names and ignoring the rest of the text in the amongst the file names and ignoring the rest of the text in the
@ -331,18 +348,16 @@ another window, but do not select that window (@code{dired-display-file}).
@item Mouse-1 @item Mouse-1
@itemx Mouse-2 @itemx Mouse-2
@findex dired-mouse-find-file-other-window @findex dired-mouse-find-file-other-window
Visit the file named by the line you click on Visit the file whose name you clicked on
(@code{dired-mouse-find-file-other-window}). This uses another window (@code{dired-mouse-find-file-other-window}). This uses another window
to display the file, like the @kbd{o} command. to display the file, like the @kbd{o} command.
@item v @item v
@kindex v @r{(Dired)} @kindex v @r{(Dired)}
@findex dired-view-file @findex dired-view-file
View the file described on the current line, using @kbd{M-x view-file} View the file described on the current line, with View mode
(@code{dired-view-file}). Viewing a file with @code{view-file} is (@code{dired-view-file}). View mode provides convenient commands to
like visiting it, but is slanted toward moving around in the file navigate the buffer but forbids changing it; @xref{View Mode}.
conveniently and does not allow changing the file. @xref{Misc File
Ops, View File, Miscellaneous File Operations}.
@item ^ @item ^
@kindex ^ @r{(Dired)} @kindex ^ @r{(Dired)}
@ -520,9 +535,9 @@ the regular expression @var{regexp}
@kbd{% m}, except that it searches the file contents instead of the file @kbd{% m}, except that it searches the file contents instead of the file
name. name.
@item C-x u @item C-/
@itemx C-x u
@itemx C-_ @itemx C-_
@itemx C-/
@kindex C-_ @r{(Dired)} @kindex C-_ @r{(Dired)}
@findex dired-undo @findex dired-undo
Undo changes in the Dired buffer, such as adding or removing Undo changes in the Dired buffer, such as adding or removing
@ -615,7 +630,7 @@ Like the other commands in this section, this command operates on the
Rename the specified files (@code{dired-do-rename}). If you rename a Rename the specified files (@code{dired-do-rename}). If you rename a
single file, the argument @var{new} is the new name of the file. If single file, the argument @var{new} is the new name of the file. If
you rename several files, the argument @var{new} is the directory into you rename several files, the argument @var{new} is the directory into
which to move the files (this is like the shell command @code{mv}). which to move the files (this is like the shell command @command{mv}).
Dired automatically changes the visited file name of buffers associated Dired automatically changes the visited file name of buffers associated
with renamed files so that they refer to the new names. with renamed files so that they refer to the new names.
@ -625,7 +640,7 @@ with renamed files so that they refer to the new names.
@cindex hard links (in Dired) @cindex hard links (in Dired)
@item H @var{new} @key{RET} @item H @var{new} @key{RET}
Make hard links to the specified files (@code{dired-do-hardlink}). Make hard links to the specified files (@code{dired-do-hardlink}).
This is like the shell command @code{ln}. The argument @var{new} is This is like the shell command @command{ln}. The argument @var{new} is
the directory to make the links in, or (if making just one link) the the directory to make the links in, or (if making just one link) the
name to give the link. name to give the link.
@ -642,9 +657,10 @@ link.
@kindex M @r{(Dired)} @kindex M @r{(Dired)}
@cindex changing file permissions (in Dired) @cindex changing file permissions (in Dired)
@item M @var{modespec} @key{RET} @item M @var{modespec} @key{RET}
Change the mode (also called ``permission bits'') of the specified files Change the mode (also called @dfn{permission bits}) of the specified
(@code{dired-do-chmod}). @var{modespec} can be in octal or symbolic files (@code{dired-do-chmod}). @var{modespec} can be in octal or
notation like arguments handled by the @code{chmod} program. symbolic notation, like arguments handled by the @command{chmod}
program.
@findex dired-do-chgrp @findex dired-do-chgrp
@kindex G @r{(Dired)} @kindex G @r{(Dired)}
@ -663,8 +679,8 @@ this.)
@vindex dired-chown-program @vindex dired-chown-program
The variable @code{dired-chown-program} specifies the name of the The variable @code{dired-chown-program} specifies the name of the
program to use to do the work (different systems put @code{chown} in program to use to do the work (different systems put @command{chown}
different places). in different places).
@findex dired-do-touch @findex dired-do-touch
@kindex T @r{(Dired)} @kindex T @r{(Dired)}
@ -952,17 +968,17 @@ The backup file is the first file given to @code{diff}.
@cindex subdirectories in Dired @cindex subdirectories in Dired
@cindex expanding subdirectories in Dired @cindex expanding subdirectories in Dired
A Dired buffer displays just one directory in the normal case; A Dired buffer usually displays just one directory, but you can
but you can optionally include its subdirectories as well. optionally include its subdirectories as well.
The simplest way to include multiple directories in one Dired buffer is The simplest way to include multiple directories in one Dired buffer is
to specify the options @samp{-lR} for running @code{ls}. (If you give a to specify the options @samp{-lR} for running @command{ls}. (If you give a
numeric argument when you run Dired, then you can specify these options numeric argument when you run Dired, then you can specify these options
in the minibuffer.) That produces a recursive directory listing showing in the minibuffer.) That produces a recursive directory listing showing
all subdirectories at all levels. all subdirectories at all levels.
More often, you will want to show only specific subdirectories. You More often, you will want to show only specific subdirectories. You
can do this with the @kbd{i} command: can do this with @kbd{i} (@code{dired-maybe-insert-subdir}):
@table @kbd @table @kbd
@findex dired-maybe-insert-subdir @findex dired-maybe-insert-subdir
@ -973,25 +989,27 @@ can do this with the @kbd{i} command:
Insert the contents of a subdirectory later in the buffer. Insert the contents of a subdirectory later in the buffer.
@end table @end table
Use the @kbd{i} (@code{dired-maybe-insert-subdir}) command on a line @noindent
that describes a file which is a directory. It inserts the contents of If you use this command on a line that describes a file which is a
that directory into the same Dired buffer, and moves there. Inserted directory, it inserts the contents of that directory into the same
subdirectory contents follow the top-level directory of the Dired Dired buffer, and moves there. Inserted subdirectory contents follow
buffer, just as they do in @samp{ls -lR} output. the top-level directory of the Dired buffer, just as they do in
@samp{ls -lR} output.
If the subdirectory's contents are already present in the buffer, the If the subdirectory's contents are already present in the buffer,
@kbd{i} command just moves to it. the @kbd{i} command just moves to it.
In either case, @kbd{i} sets the Emacs mark before moving, so @kbd{C-u In either case, @kbd{i} sets the Emacs mark before moving, so
C-@key{SPC}} takes you back to the old position in the buffer (the line @kbd{C-u C-@key{SPC}} returns to your previous position in the Dired
describing that subdirectory). You can also use @samp{^} to return buffer (@pxref{Setting Mark}). You can also use @samp{^} to return to
to the parent directory in the same Dired buffer. the parent directory in the same Dired buffer (@pxref{Dired
Visiting}).
Use the @kbd{l} command (@code{dired-do-redisplay}) to update the Use the @kbd{l} command (@code{dired-do-redisplay}) to update the
subdirectory's contents. Use @kbd{C-u k} on the subdirectory header subdirectory's contents, and use @kbd{C-u k} on the subdirectory
line to remove the subdirectory listing (@pxref{Dired Updating}). You header line to remove the subdirectory listing (@pxref{Dired
can also hide and show inserted subdirectories (@pxref{Hiding Updating}). You can also hide and show inserted subdirectories
Subdirectories}). (@pxref{Hiding Subdirectories}).
@ifnottex @ifnottex
@include dired-xtra.texi @include dired-xtra.texi
@ -1209,10 +1227,10 @@ tell @command{find} what condition to test. To use this command, you
need to know how to use @command{find}. need to know how to use @command{find}.
@vindex find-ls-option @vindex find-ls-option
The format of listing produced by these commands is controlled by the The format of listing produced by these commands is controlled by
variable @code{find-ls-option}, whose default value specifies using the variable @code{find-ls-option}, whose default value specifies
options @samp{-ld} for @code{ls}. If your listings are corrupted, you using options @samp{-ld} for @command{ls}. If your listings are
may need to change the value of this variable. corrupted, you may need to change the value of this variable.
@findex locate @findex locate
@findex locate-with-filter @findex locate-with-filter
@ -1338,10 +1356,14 @@ rotation is lossless, and uses an external utility called JpegTRAN.
@kindex + @r{(Dired)} @kindex + @r{(Dired)}
@findex dired-create-directory @findex dired-create-directory
The command @kbd{+} (@code{dired-create-directory}) reads a The command @kbd{+} (@code{dired-create-directory}) reads a
directory name, and creates the directory if it does not already directory name, and creates that directory. It signals an error if
exist. the directory already exists.
@cindex searching multiple files via Dired @cindex searching multiple files via Dired
@kindex M-s a C-s @r{(Dired)}
@kindex M-s a M-C-s @r{(Dired)}
@findex dired-do-isearch
@findex dired-do-isearch-regexp
The command @kbd{M-s a C-s} (@code{dired-do-isearch}) begins a The command @kbd{M-s a C-s} (@code{dired-do-isearch}) begins a
``multi-file'' incremental search on the marked files. If a search ``multi-file'' incremental search on the marked files. If a search
fails at the end of a file, typing @kbd{C-s} advances to the next fails at the end of a file, typing @kbd{C-s} advances to the next

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@ -1062,6 +1062,56 @@ can enable or disable this feature for all new buffers by setting the
default value of this variable, e.g.@: @code{(setq-default default value of this variable, e.g.@: @code{(setq-default
indicate-empty-lines t)}. indicate-empty-lines t)}.
@cindex Whitespace mode
@cindex mode, Whitespace
@findex whitespace-mode
@vindex whitespace-style
Whitespace mode is a buffer-local minor mode that lets you
``visualize'' many kinds of whitespace in the buffer, by either
drawing the whitespace characters with a special face or displaying
them as special glyphs. To toggle this mode, type @kbd{M-x
whitespace-mode}. The kinds of whitespace visualized are determined
by the list variable @code{whitespace-style}. Here is a partial list
of possible elements (see the variable's documentation for the full
list):
@table @code
@item face
Enable all visualizations which use special faces. This element has a
special meaing: if it is absent from the list, none of the other
visualizations take effect except @code{space-mark}, @code{tab-mark},
and @code{newline-mark}.
@item trailing
Highlight trailing whitespace.
@item tabs
Highlight tab characters.
@item spaces
Highlight space and non-breaking space characters.
@item lines
@vindex whitespace-line-column
Highlight lines longer than 80 lines. To change the column limit,
customize the variable @code{whitespace-line-column}.
@item newline
Highlight newlines.
@item empty
Highlight empty lines.
@item space-mark
Draw space and non-breaking characters with a special glyph.
@item tab-mark
Draw tab characters with a special glyph.
@item newline-mark
Draw newline characters with a special glyph.
@end table
@node Selective Display @node Selective Display
@section Selective Display @section Selective Display
@cindex selective display @cindex selective display

View file

@ -11,7 +11,7 @@
@copying @copying
This manual describes specialized features of Emacs. This manual describes specialized features of Emacs.
Copyright @copyright{} 2004-2011 Copyright @copyright{} 2004-2012
Free Software Foundation, Inc. Free Software Foundation, Inc.
@quotation @quotation

View file

@ -11,7 +11,7 @@
This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},@* This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},@*
updated for Emacs version @value{EMACSVER}. updated for Emacs version @value{EMACSVER}.
Copyright @copyright{} 1985-1987, 1993-2011 Free Software Foundation, Inc. Copyright @copyright{} 1985-1987, 1993-2012 Free Software Foundation, Inc.
@quotation @quotation
Permission is granted to copy, distribute and/or modify this document Permission is granted to copy, distribute and/or modify this document
@ -548,6 +548,7 @@ Commands for Human Languages
* Case:: Changing the case of text. * Case:: Changing the case of text.
* Text Mode:: The major modes for editing text files. * Text Mode:: The major modes for editing text files.
* Outline Mode:: Editing outlines. * Outline Mode:: Editing outlines.
* Org Mode:: The Emacs organizer.
* TeX Mode:: Editing input to the formatter TeX. * TeX Mode:: Editing input to the formatter TeX.
* HTML Mode:: Editing HTML and SGML files. * HTML Mode:: Editing HTML and SGML files.
* Nroff Mode:: Editing input to the formatter nroff. * Nroff Mode:: Editing input to the formatter nroff.
@ -741,15 +742,16 @@ Version Control
* VC Mode Line:: How the mode line shows version control status. * VC Mode Line:: How the mode line shows version control status.
* Basic VC Editing:: How to edit a file under version control. * Basic VC Editing:: How to edit a file under version control.
* Log Buffer:: Features available in log entry buffers. * Log Buffer:: Features available in log entry buffers.
* Registering:: Putting a file under version control.
* Old Revisions:: Examining and comparing old versions. * Old Revisions:: Examining and comparing old versions.
* Secondary VC Commands:: The commands used a little less frequently. * VC Change Log:: Viewing the VC Change Log.
* VC Undo:: Canceling changes before or after committing.
* VC Directory Mode:: Listing files managed by version control. * VC Directory Mode:: Listing files managed by version control.
* Branches:: Multiple lines of development. * Branches:: Multiple lines of development.
* Remote Repositories:: Efficient access to remote CVS servers.
* Revision Tags:: Symbolic names for revisions. * Revision Tags:: Symbolic names for revisions.
* Miscellaneous VC:: Various other commands and features of VC. * Miscellaneous VC:: Various other commands and features of VC.
* Customizing VC:: Variables that change VC's behavior. * Customizing VC:: Variables that change VC's behavior.
Introduction to Version Control Introduction to Version Control
* Why Version Control?:: Understanding the problems it addresses. * Why Version Control?:: Understanding the problems it addresses.
@ -766,12 +768,6 @@ Basic Editing under Version Control
* VC With A Locking VCS:: RCS in its default mode, SCCS, and optionally CVS. * VC With A Locking VCS:: RCS in its default mode, SCCS, and optionally CVS.
* Advanced C-x v v:: Advanced features available with a prefix argument. * Advanced C-x v v:: Advanced features available with a prefix argument.
The Secondary Commands of VC
* Registering:: Putting a file under version control.
* VC Change Log:: Viewing the VC Change Log.
* VC Undo:: Canceling changes before or after check-in.
VC Directory Mode VC Directory Mode
* VC Directory Buffer:: What the buffer looks like and means. * VC Directory Buffer:: What the buffer looks like and means.
@ -780,26 +776,15 @@ VC Directory Mode
Multiple Branches of a File Multiple Branches of a File
* Switching Branches:: How to get to another existing branch. * Switching Branches:: How to get to another existing branch.
* Creating Branches:: How to start a new branch. * VC Pull:: Updating a branch from another branch.
* Merging:: Transferring changes between branches. * Merging:: Transferring changes between branches.
* Multi-User Branching:: Multiple users working at multiple branches * Creating Branches:: How to start a new branch.
in parallel.
Remote Repositories
* Version Backups:: Keeping local copies of repository versions.
* Local Version Control:: Using another version system for local editing.
Revision Tags
* Making Revision Tags:: The tag facilities.
* Revision Tag Caveats:: Things to be careful of when using tags.
Miscellaneous Commands and Features of VC Miscellaneous Commands and Features of VC
* Change Logs and VC:: Generating a change log file from log entries. * Change Logs and VC:: Generating a change log file from log entries.
* Renaming and VC:: A command to rename both the source and master * VC Delete/Rename:: Deleting and renaming version-controlled files.
file correctly. * Revision Tags:: Symbolic names for revisions.
* Version Headers:: Inserting version control headers into working files. * Version Headers:: Inserting version control headers into working files.
Customizing VC Customizing VC
@ -934,10 +919,10 @@ Customizing the Calendar and Diary
Document Viewing Document Viewing
* Navigation:: Navigation inside DocView buffers. * DocView Navigation:: Navigating DocView buffers.
* Searching:: Searching inside documents. * DocView Searching:: Searching inside documents.
* Slicing:: Specifying which part of pages should be displayed. * DocView Slicing:: Specifying which part of a page is displayed.
* Conversion:: Influencing and triggering conversion. * DocView Conversion:: Influencing and triggering conversion.
Sending Mail Sending Mail
@ -989,7 +974,8 @@ Gnus
* Buffers of Gnus:: The group, summary, and article buffers. * Buffers of Gnus:: The group, summary, and article buffers.
* Gnus Startup:: What you should know about starting Gnus. * Gnus Startup:: What you should know about starting Gnus.
* Summary of Gnus:: A short description of the basic Gnus commands. * Gnus Group Buffer:: A short description of Gnus group commands.
* Gnus Summary Buffer:: A short description of Gnus summary commands.
Running Shell Commands from Emacs Running Shell Commands from Emacs
@ -1002,7 +988,6 @@ Running Shell Commands from Emacs
* Shell Options:: Options for customizing Shell mode. * Shell Options:: Options for customizing Shell mode.
* Terminal emulator:: An Emacs window as a terminal emulator. * Terminal emulator:: An Emacs window as a terminal emulator.
* Term Mode:: Special Emacs commands used in Term mode. * Term Mode:: Special Emacs commands used in Term mode.
* Paging in Term:: Paging in the terminal emulator.
* Remote Host:: Connecting to another computer. * Remote Host:: Connecting to another computer.
* Serial Terminal:: Connecting to a serial port. * Serial Terminal:: Connecting to a serial port.
@ -1048,15 +1033,14 @@ Customization
Easy Customization Interface Easy Customization Interface
* Customization Groups:: How settings are classified in a structure. * Customization Groups:: How settings are classified.
* Browsing Custom:: Browsing and searching for settings. * Browsing Custom:: Browsing and searching for settings.
* Changing a Variable:: How to edit an option's value and set the option. * Changing a Variable:: How to edit an option's value and set the option.
* Saving Customizations:: Specifying the file for saving customizations. * Saving Customizations:: Saving customizations for future Emacs sessions.
* Face Customization:: How to edit the attributes of a face. * Face Customization:: How to edit the attributes of a face.
* Specific Customization:: Making a customization buffer for specific * Specific Customization:: Customizing specific settings or groups.
variables, faces, or groups. * Custom Themes:: Collections of customization settings.
* Custom Themes:: How to define collections of customized options * Creating Custom Themes:: How to create a new custom theme.
that can be loaded and unloaded together.
Variables Variables
@ -1104,9 +1088,7 @@ Dealing with Emacs Trouble
* Text Garbled:: Garbage in the text. * Text Garbled:: Garbage in the text.
* Memory Full:: How to cope when you run out of memory. * Memory Full:: How to cope when you run out of memory.
* After a Crash:: Recovering editing in an Emacs session that crashed. * After a Crash:: Recovering editing in an Emacs session that crashed.
* Emergency Escape:: Emergency escape--- * Emergency Escape:: What to do if Emacs stops responding.
What to do if Emacs stops responding.
* Total Frustration:: When you are at your wits' end.
Reporting Bugs Reporting Bugs
@ -1386,7 +1368,7 @@ Shapiro, Richard Sharman, Olin Shivers, Espen Skoglund, Rick Sladkey,
Lynn Slater, Chris Smith, David Smith, Paul D.@: Smith, William Lynn Slater, Chris Smith, David Smith, Paul D.@: Smith, William
Sommerfeld, Andre Spiegel, Michael Staats, Ulf Stegemann, Reiner Steib, Sommerfeld, Andre Spiegel, Michael Staats, Ulf Stegemann, Reiner Steib,
Sam Steingold, Ake Stenhoff, Peter Stephenson, Ken Stevens, Andy Stewart, Sam Steingold, Ake Stenhoff, Peter Stephenson, Ken Stevens, Andy Stewart,
Jonathan Stigelman, Martin Stjernholm, Kim F.@: Storm, Steve Strassman, Jonathan Stigelman, Martin Stjernholm, Kim F.@: Storm, Steve Strassmann,
Olaf Sylvester, Naoto Takahashi, Steven Tamm, Jean-Philippe Theberge, Olaf Sylvester, Naoto Takahashi, Steven Tamm, Jean-Philippe Theberge,
Jens T.@: Berger Thielemann, Spencer Thomas, Jim Thompson, Luc Jens T.@: Berger Thielemann, Spencer Thomas, Jim Thompson, Luc
Teirlinck, David O'Toole, Tom Tromey, Enami Tsugutomo, Eli Tziperman, Teirlinck, David O'Toole, Tom Tromey, Enami Tsugutomo, Eli Tziperman,

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 2004-2011 Free Software Foundation, Inc. @c Copyright (C) 2004-2012 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@c @c
@c This file is included either in emacs-xtra.texi (when producing the @c This file is included either in emacs-xtra.texi (when producing the

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 2001-2011 @c Copyright (C) 1985-1987, 1993-1995, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@iftex @iftex

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Files, Buffers, Keyboard Macros, Top @node Files, Buffers, Keyboard Macros, Top
@ -1352,9 +1352,25 @@ manipulate and apply parts of patches:
@findex diff-hunk-next @findex diff-hunk-next
Move to the next hunk-start (@code{diff-hunk-next}). Move to the next hunk-start (@code{diff-hunk-next}).
@findex diff-auto-refine-mode
@cindex mode, Diff Auto-Refine
@cindex Diff Auto-Refine mode
This command has a side effect: it @dfn{refines} the hunk you move to,
highlighting its changes with better granularity. To disable this
feature, type @kbd{M-x diff-auto-refine-mode} to toggle off the minor
mode Diff Auto-Refine mode. To disable Diff Auto Refine mode by
default, add this to your init file (@pxref{Hooks}):
@example
(add-hook 'diff-mode-hook
(lambda () (diff-auto-refine-mode -1)))
@end example
@item M-p @item M-p
@findex diff-hunk-prev @findex diff-hunk-prev
Move to the previous hunk-start (@code{diff-hunk-prev}). Move to the previous hunk-start (@code{diff-hunk-prev}). Like
@kbd{M-n}, this has the side-effect of refining the hunk you move to,
unless you disable Diff Auto-Refine mode.
@item M-@} @item M-@}
@findex diff-file-next @findex diff-file-next
@ -1447,13 +1463,13 @@ descriptions of the changes. @kbd{C-x 4 a} itself in Diff mode
operates on behalf of the current hunk's file, but gets the function operates on behalf of the current hunk's file, but gets the function
name from the patch itself. This is useful for making log entries for name from the patch itself. This is useful for making log entries for
functions that are deleted by the patch. functions that are deleted by the patch.
@item M-x diff-show-trailing-whitespaces RET
@findex diff-show-trailing-whitespaces
Highlight trailing whitespace characters, except for those used by the
patch syntax (@pxref{Useless Whitespace}).
@end table @end table
By default, Diff mode highlights trailing whitespace on modified
lines, so that they are more obvious. This is done by enabling
Whitespace mode in the Diff buffer (@pxref{Useless Whitespace}). Diff
mode buffers are set up so that Whitespace mode avoids highlighting
trailing whitespace occurring in the diff context.
@node Misc File Ops @node Misc File Ops
@section Miscellaneous File Operations @section Miscellaneous File Operations
@ -1485,6 +1501,12 @@ argument to @kbd{M-x delete-file} or @kbd{M-x delete-directory} makes
them delete outright, instead of using the Trash, regardless of them delete outright, instead of using the Trash, regardless of
@code{delete-by-moving-to-trash}. @code{delete-by-moving-to-trash}.
@ifnottex
If a file is under version control (@pxref{Version Control}), you
should delete it using @kbd{M-x vc-delete-file} instead of @kbd{M-x
delete-file}. @xref{VC Delete/Rename}.
@end ifnottex
@findex copy-file @findex copy-file
@cindex copying files @cindex copying files
@kbd{M-x copy-file} reads the file @var{old} and writes a new file @kbd{M-x copy-file} reads the file @var{old} and writes a new file
@ -1498,6 +1520,7 @@ it creates a copy of the @var{old} directory and puts it in @var{new}.
If @var{new} is not an existing directory, it copies all the contents If @var{new} is not an existing directory, it copies all the contents
of @var{old} into a new directory named @var{new}. of @var{old} into a new directory named @var{new}.
@cindex renaming files
@findex rename-file @findex rename-file
@kbd{M-x rename-file} reads two file names @var{old} and @var{new} @kbd{M-x rename-file} reads two file names @var{old} and @var{new}
using the minibuffer, then renames file @var{old} as @var{new}. If using the minibuffer, then renames file @var{old} as @var{new}. If
@ -1512,6 +1535,12 @@ RET /tmp RET} renames @file{~/foo} to @file{/tmp/foo}. The same rule
applies to all the remaining commands in this section. All of them applies to all the remaining commands in this section. All of them
ask for confirmation when the new file name already exists, too. ask for confirmation when the new file name already exists, too.
@ifnottex
If a file is under version control (@pxref{Version Control}), you
should rename it using @kbd{M-x vc-rename-file} instead of @kbd{M-x
rename-file}. @xref{VC Delete/Rename}.
@end ifnottex
@findex add-name-to-file @findex add-name-to-file
@cindex hard links (creation) @cindex hard links (creation)
@kbd{M-x add-name-to-file} adds an additional name to an existing @kbd{M-x add-name-to-file} adds an additional name to an existing

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Fixit, Keyboard Macros, Search, Top @node Fixit, Keyboard Macros, Search, Top

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 2004-2011 Free Software Foundation, Inc. @c Copyright (C) 2004-2012 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@c @c
@c This file is included either in emacs-xtra.texi (when producing the @c This file is included either in emacs-xtra.texi (when producing the
@ -22,7 +22,7 @@ extensions @samp{.f90}, @samp{.f95}, @samp{.f03} and @samp{.f08}.
Customize @code{auto-mode-alist} to add more extensions. GNU Fortran Customize @code{auto-mode-alist} to add more extensions. GNU Fortran
supports both free and fixed form. This manual mainly documents Fortran supports both free and fixed form. This manual mainly documents Fortran
mode, but the corresponding F90 mode features are mentioned when mode, but the corresponding F90 mode features are mentioned when
revelant. relevant.
Fortran mode provides special motion commands for Fortran statements Fortran mode provides special motion commands for Fortran statements
and subprograms, and indentation commands that understand Fortran and subprograms, and indentation commands that understand Fortran

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Frames, International, Windows, Top @node Frames, International, Windows, Top

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Glossary, Key Index, Intro, Top @node Glossary, Key Index, Intro, Top

View file

@ -1,4 +1,4 @@
@c Copyright (C) 1985-1987, 1993, 1995, 2001-2011 @c Copyright (C) 1985-1987, 1993, 1995, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c @c
@c Permission is granted to anyone to make or distribute verbatim copies @c Permission is granted to anyone to make or distribute verbatim copies

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Help, Mark, M-x, Top @node Help, Mark, M-x, Top

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Indentation, Text, Modes, Top @node Indentation, Text, Modes, Top

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Keyboard Macros, Files, Fixit, Top @node Keyboard Macros, Files, Fixit, Top

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node M-x, Help, Minibuffer, Top @node M-x, Help, Minibuffer, Top

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 2000-2011 Free Software Foundation, Inc. @c Copyright (C) 2000-2012 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Mac OS / GNUstep, Microsoft Windows, Antinews, Top @node Mac OS / GNUstep, Microsoft Windows, Antinews, Top
@appendix Emacs and Mac OS / GNUstep @appendix Emacs and Mac OS / GNUstep

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
#### -*- Makefile -*- for the Emacs Manual #### -*- Makefile -*- for the Emacs Manual
# Copyright (C) 2003-2011 Free Software Foundation, Inc. # Copyright (C) 2003-2012 Free Software Foundation, Inc.
# This file is part of GNU Emacs. # This file is part of GNU Emacs.

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Mark, Killing, Help, Top @node Mark, Killing, Help, Top

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Minibuffer, M-x, Basic, Top @node Minibuffer, M-x, Basic, Top

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Modes, Indentation, International, Top @node Modes, Indentation, International, Top
@ -96,7 +96,7 @@ the rules of the language (@pxref{Indentation}). The keys that are
commonly changed are @key{TAB}, @key{DEL}, and @kbd{C-j}. Many modes commonly changed are @key{TAB}, @key{DEL}, and @kbd{C-j}. Many modes
also define special commands of their own, usually bound in the prefix also define special commands of their own, usually bound in the prefix
key @kbd{C-c}. Major modes can also alter user options and variables; key @kbd{C-c}. Major modes can also alter user options and variables;
for instance, programming language modes typicaly set a buffer-local for instance, programming language modes typically set a buffer-local
value for the variable @code{comment-start}, which determines how value for the variable @code{comment-start}, which determines how
source code comments are delimited (@pxref{Comments}). source code comments are delimited (@pxref{Comments}).

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 2004-2011 Free Software Foundation, Inc. @c Copyright (C) 2004-2012 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@c @c
@c This file is included either in emacs-xtra.texi (when producing the @c This file is included either in emacs-xtra.texi (when producing the

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Microsoft Windows, Manifesto, Mac OS / GNUstep, Top @node Microsoft Windows, Manifesto, Mac OS / GNUstep, Top

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1997, 1999-2011 Free Software Foundation, Inc. @c Copyright (C) 1997, 1999-2012 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node International, Modes, Frames, Top @node International, Modes, Frames, Top
@chapter International Character Set Support @chapter International Character Set Support

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Packages @node Packages
@ -20,7 +20,7 @@ via this buffer. @xref{Package Menu}.
@findex describe-package @findex describe-package
The command @kbd{C-h P} (@code{describe-package}) prompts for the The command @kbd{C-h P} (@code{describe-package}) prompts for the
name of a package, and displays a help buffer describing that name of a package, and displays a help buffer describing the
attributes of the package and the features that it implements. attributes of the package and the features that it implements.
By default, Emacs downloads packages from a @dfn{package archive} By default, Emacs downloads packages from a @dfn{package archive}
@ -119,9 +119,9 @@ dependencies; also, delete all packages marked with @kbd{d}
(@code{package-menu-execute}). This also removes the marks. (@code{package-menu-execute}). This also removes the marks.
@item r @item r
Refresh the package list (@code{package-menu-refresh}). This also Refresh the package list (@code{package-menu-refresh}). This fetches
retrieves the list of available packages from the package archive the list of available packages from the package archive again, and
again. recomputes the package list.
@end table @end table
@noindent @noindent

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 2004-2011 Free Software Foundation, Inc. @c Copyright (C) 2004-2012 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@c @c
@c This file is included either in emacs-xtra.texi (when producing the @c This file is included either in emacs-xtra.texi (when producing the

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Programs, Building, Text, Top @node Programs, Building, Text, Top
@ -38,8 +38,8 @@ Highlight program syntax (@pxref{Font Lock}).
* Glasses:: Making identifiersLikeThis more readable. * Glasses:: Making identifiersLikeThis more readable.
* Semantic:: Suite of editing tools based on source code parsing. * Semantic:: Suite of editing tools based on source code parsing.
* Misc for Programs:: Other Emacs features useful for editing programs. * Misc for Programs:: Other Emacs features useful for editing programs.
* C Modes:: Special commands of C, C++, Objective-C, * C Modes:: Special commands of C, C++, Objective-C, Java,
Java, and Pike modes. IDL, Pike and AWK modes.
* Asm Mode:: Asm mode and its special features. * Asm Mode:: Asm mode and its special features.
@ifnottex @ifnottex
* Fortran:: Fortran mode and its special features. * Fortran:: Fortran mode and its special features.
@ -606,6 +606,14 @@ information on customizing indentation for C and related modes,
including how to override parts of an existing style and how to define including how to override parts of an existing style and how to define
your own styles. your own styles.
@findex c-guess
@findex c-guess-install
As an alternative to specifying a style, you can tell Emacs to guess
a style by typing @kbd{M-x c-guess} in a sample code buffer. You can
then apply the guessed style to other buffers with @kbd{M-x
c-guess-install}. @xref{Guessing the Style,,, ccmode, the CC Mode
Manual}, for details.
@node Parentheses @node Parentheses
@section Commands for Editing with Parentheses @section Commands for Editing with Parentheses
@ -1283,18 +1291,18 @@ for switching graphical windows, so you should type @kbd{C-M-i} or
@kbd{@key{ESC} @key{TAB}} instead. @kbd{@key{ESC} @key{TAB}} instead.
@cindex tags-based completion @cindex tags-based completion
In-buffer symbol completion generates its completion list in a @findex completion-at-point
number of different ways. If Semantic mode is enabled, Emacs tries to
use the Semantic parser data for completion (@pxref{Semantic}). If
Semantic mode is not enabled or it fails at performing completion,
Emacs normally tries to complete using a tags table (@pxref{Tags}).
@cindex Lisp symbol completion @cindex Lisp symbol completion
@cindex completion (Lisp symbols) @cindex completion (Lisp symbols)
In Emacs Lisp mode, completion is performed using the function, In most programming language modes, @kbd{C-M-i} (or
variable, and property names defined in the current Emacs session. If @kbd{M-@key{TAB}}) invokes the command @code{completion-at-point},
there is an open parenthesis immediately before the beginning of the which generates its completion list in a flexible way. If Semantic
partial symbol, only symbols with function definitions are considered. mode is enabled, it tries to use the Semantic parser data for
completion (@pxref{Semantic}). If Semantic mode is not enabled or
fails at performing completion, it tries to complete using the
selected tags table (@pxref{Tags}). If in Emacs Lisp mode, it
performs completion using the function, variable, or property names
defined in the current Emacs session.
In all other respects, in-buffer symbol completion behaves like In all other respects, in-buffer symbol completion behaves like
minibuffer completion. For instance, if Emacs cannot complete to a minibuffer completion. For instance, if Emacs cannot complete to a
@ -1462,17 +1470,17 @@ with Emacs.
related modes. related modes.
@table @code @table @code
@item M-x c-beginning-of-defun @item C-M-a
@itemx M-x c-end-of-defun @itemx C-M-e
@findex c-beginning-of-defun @findex c-beginning-of-defun
@findex c-end-of-defun @findex c-end-of-defun
Move point to the beginning or end of the current function or Move point to the beginning or end of the current function or
top-level definition. These are found by searching for the least top-level definition. In languages with enclosing scopes (such as
C++'s classes) the @dfn{current function} is the immediate one,
possibly inside a scope. Otherwise it is the one defined by the least
enclosing braces. (By contrast, @code{beginning-of-defun} and enclosing braces. (By contrast, @code{beginning-of-defun} and
@code{end-of-defun} search for braces in column zero.) If you are @code{end-of-defun} search for braces in column zero.) @xref{Moving
editing code where the opening brace of a function isn't placed in by Defuns}.
column zero, you may wish to bind @code{C-M-a} and @code{C-M-e} to
these commands. @xref{Moving by Defuns}.
@item C-c C-u @item C-c C-u
@kindex C-c C-u @r{(C mode)} @kindex C-c C-u @r{(C mode)}

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Registers, Display, Killing, Top @node Registers, Display, Killing, Top

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Rmail @node Rmail

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Screen, User Input, Acknowledgments, Top @node Screen, User Input, Acknowledgments, Top

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Search, Fixit, Display, Top @node Search, Fixit, Display, Top

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Sending Mail @node Sending Mail
@ -11,10 +11,10 @@
@kindex C-x m @kindex C-x m
@findex compose-mail @findex compose-mail
To send an @dfn{e-mail} message in Emacs, type @kbd{C-x m}. This To send an email message from Emacs, type @kbd{C-x m}. This
selects and initializes a buffer named @samp{*mail*}, where you can switches to a buffer named @samp{*unsent mail*}, where you can edit
edit the text and headers of the message. Finally, type @kbd{C-c C-s} the text and headers of the message. When done, type @kbd{C-c C-s} or
or @kbd{C-c C-c} to send the message. @kbd{C-c C-c} to send it.
@table @kbd @table @kbd
@item C-x m @item C-x m
@ -30,37 +30,28 @@ In the mail buffer, send the message and bury the buffer
(@code{message-send-and-exit}). (@code{message-send-and-exit}).
@end table @end table
The mail buffer is an ordinary Emacs buffer, so you can switch to
other buffers while composing the mail. If you want to send another
mail before finishing the current one, type @kbd{C-x m} again to open
a new mail buffer whose name has a different numeric suffix
(@pxref{Misc Buffer}). If you invoke the command with a prefix
argument, @w{@kbd{C-u C-x m}}, Emacs switches back to the last mail
buffer, and asks if you want to erase the message in that buffer; if
you answer no, this lets you pick up editing the message where you
left off.
@kindex C-x 4 m @kindex C-x 4 m
@findex compose-mail-other-window @findex compose-mail-other-window
@kindex C-x 5 m @kindex C-x 5 m
@findex compose-mail-other-frame @findex compose-mail-other-frame
@noindent The command @kbd{C-x 4 m} (@code{compose-mail-other-window}) does
The command @kbd{C-x 4 m} (@code{compose-mail-other-window}) does the the same as @kbd{C-x m}, except it displays the mail buffer in a
same as @kbd{C-x m}, except it displays the mail buffer in a different different window. The command @kbd{C-x 5 m}
window. The command @kbd{C-x 5 m} (@code{compose-mail-other-frame}) (@code{compose-mail-other-frame}) does it in a new frame.
creates a new frame for the mail buffer.
Because the mail buffer is an ordinary Emacs buffer, you can switch When you type @kbd{C-c C-c} or @kbd{C-c C-s} to send the mail, Emacs
to other buffers while in the middle of composing mail, and switch may ask you how it should deliver the mail---either directly via SMTP,
back later (or never). If you type @kbd{C-x m} again when you have or using some other method. @xref{Mail Sending}, for details.
been composing another message but have not sent it, Emacs asks for
confirmation before erasing the old message. If you answer @kbd{n},
Emacs selects the mail buffer with its old contents, so you can finish
the old message and send it. @kbd{C-u C-x m} is another way to do
this. Sending the message marks the mail buffer ``unmodified,'' which
avoids the need for confirmation when @kbd{C-x m} is next used.
If you want to send another message before finishing the current
message, use the command @kbd{M-x rename-uniquely} to rename the
current mail buffer (@pxref{Misc Buffer}). Then you can use @kbd{C-x
m} to make a new mail buffer, and work with each mail buffer
independently.
Before using Emacs to send mail, you may need to customize the
variable @code{send-mail-function} if your system is not set up to
deliver mail directly via SMTP (@pxref{Mail Sending}). In addition,
you may need to customize @code{user-mail-address} if the system
cannot receive mail via SMTP (@pxref{Mail Headers}).
@menu @menu
* Format: Mail Format. Format of a mail message. * Format: Mail Format. Format of a mail message.
@ -75,77 +66,91 @@ cannot receive mail via SMTP (@pxref{Mail Headers}).
@node Mail Format @node Mail Format
@section The Format of the Mail Buffer @section The Format of the Mail Buffer
An email message must contain certain pieces of information, called Here is an example of the contents of a mail buffer:
@dfn{headers}, which specify the message's sender, recipient(s), and
so on.
At the top of the mail buffer is a set of @dfn{header fields}, where
you can enter this information. You can insert and edit header fields
using ordinary editing commands. @xref{Header Editing}, for commands
specific to editing header fields.
Some header fields are automatically pre-initialized in the buffer,
when appropriate; other headers, such as @samp{Date} and
@samp{Message-Id}, are normally omitted from the mail buffer and
created automatically when the message is sent.
@vindex mail-header-separator
The line in the buffer that says
@smallexample
--text follows this line--
@end smallexample
@noindent
separates the header fields from the @dfn{body} (or @dfn{text}) of the
message. Everything above this line is treated as part of the
headers; everything below it is treated as the body. The delimiter
line itself does not appear in the message actually sent. The text
used for the delimiter line is controlled by the variable
@code{mail-header-separator}.
Here is an example of what the headers and text in the mail buffer
might look like.
@example @example
To: gnu@@example.org To: subotai@@example.org
CC: lungfish@@example.com, byob@@example.net CC: mongol.soldier@@example.net, rms@@gnu.org
Subject: The Emacs Manual Subject: Re: What is best in life?
From: conan@@example.org
--text follows this line-- --text follows this line--
Please ignore this message. To crush your enemies, see them driven before you, and to hear the
lamentation of their women.
@end example @end example
@noindent
At the top of the mail buffer is a set of @dfn{header fields}, which
are used for specifying information about the email's recipient(s),
subject, and so on. The above buffer contains header fields for
@samp{To}, @samp{Cc}, @samp{Subject}, and @samp{From}. Some header
fields are automatically pre-initialized in the mail buffer, when
appropriate.
The line that says @samp{--text follows this line--} separates the
header fields from the @dfn{body} (or @dfn{text}) of the message.
Everything above that line is treated as part of the headers;
everything below it is treated as the body. The delimiter line itself
does not appear in the message actually sent.
You can insert and edit header fields using ordinary editing
commands. @xref{Header Editing}, for commands specific to editing
header fields. Certain headers, such as @samp{Date} and
@samp{Message-Id}, are normally omitted from the mail buffer and are
created automatically when the message is sent.
@node Mail Headers @node Mail Headers
@section Mail Header Fields @section Mail Header Fields
@cindex headers (of mail message) @cindex headers (of mail message)
A header field in the mail buffer starts with a field name at the A header field in the mail buffer starts with a field name at the
beginning of a line, terminated by a colon. Upper and lower case are beginning of a line, terminated by a colon. Upper and lower case are
equivalent in field names (and in mailing addresses also). After the equivalent in field names. After the colon and optional whitespace
colon and optional whitespace comes the contents of the field. comes the contents of the field.
You can use any name you like for a header field, but normally You can use any name you like for a header field, but normally
people use only standard field names with accepted meanings. Here is people use only standard field names with accepted meanings.
a table of commonly-used fields. Emacs pre-initializes some of these,
depending on various options you can set. You can delete or alter any @vindex user-full-name
header field before you send the message, if you wish. @vindex user-mail-address
The @samp{From} header field identifies the person sending the email
(i.e.@: you). This should be a valid mailing address, as replies are
normally sent there. The default contents of this header field are
computed from the variables @code{user-full-name} (which specifies
your full name) and @code{user-mail-address} (your email address). On
some operating systems, Emacs initializes these two variables using
environment variables (@pxref{General Variables}). If this
information is unavailable or wrong, you should customize the
variables yourself (@pxref{Easy Customization}).
@vindex mail-from-style
The value of the variable @code{mail-from-style} specifies how to
format the contents of the @samp{From} field:
@table @asis
@item @code{nil}
Use just the address, as in @samp{king@@grassland.com}.
@item @code{parens}
Use both address and full name, as in:@*
@samp{king@@grassland.com (Elvis Parsley)}.
@item @code{angles}
Use both address and full name, as in:@*
@samp{Elvis Parsley <king@@grassland.com>}.
@item any other value
Use @code{angles} normally. But if the address must be ``quoted'' to
remain syntactically valid under the @code{angles} format but not
under the @code{parens} format, use @code{parens} instead. This is
the default.
@end table
Apart from @samp{From}, here is a table of commonly-used fields:
@table @samp @table @samp
@item From
@vindex user-mail-address
The address of the sender (you). This should be a valid mailing
address, as replies will normally go there. Emacs initializes this
field using the variables @code{user-full-name} and
@code{user-mail-address}; see below.
@item To @item To
The mailing address(es) to which the message is addressed. To list The mailing address(es) to which the message is addressed. To list
more than one address, use commas (not spaces) to separate them. more than one address, use commas to separate them.
@item Subject @item Subject
A piece of text saying what the message is about. Most mail-reading The subject of the message.
programs can display a summary of messages, listing the subject of
each message but not its text.
@item CC @item CC
Additional mailing address(es) to send the message to. This is like Additional mailing address(es) to send the message to. This is like
@ -158,47 +163,38 @@ not appear in the header of the message actually sent. ``BCC'' stands
for @dfn{blind carbon copies}. for @dfn{blind carbon copies}.
@item FCC @item FCC
The name of one file, to which a copy of the sent message should be The name of a file, to which a copy of the sent message should be
appended. Emacs writes the message in mbox format, unless the file is appended. Emacs writes the message in mbox format, unless the file is
in Babyl format (used by Rmail before Emacs 23), in which case Emacs in Babyl format (used by Rmail before Emacs 23), in which case Emacs
writes Babyl. If an Rmail buffer is visiting the file, Emacs updates writes in Babyl format. If an Rmail buffer is visiting the file,
it accordingly. To specify more than one file, use several @samp{FCC} Emacs updates it accordingly. To specify more than one file, use
fields, with one file name in each field. several @samp{FCC} fields, with one file name in each field.
@item Reply-to @item Reply-to
An address to which replies should be sent, instead of @samp{From}. An address to which replies should be sent, instead of @samp{From}.
You can use this header if, for some reason, your @samp{From} address This is used if, for some reason, your @samp{From} address cannot
is unable to receive replies. receive replies.
@item Mail-reply-to @item Mail-reply-to
This field takes precedence over @samp{Reply-to}. It is used because This field takes precedence over @samp{Reply-to}. It is used because
some mailing lists set the @samp{Reply-to} field for their own purposes some mailing lists set the @samp{Reply-to} field for their own
(a somewhat controversial practice). purposes (a somewhat controversial practice).
@item Mail-followup-to @item Mail-followup-to
This field contains one or more addresses. It is typically used when One of more address(es) to use as default recipient(s) for follow-up
you reply to a message from a mailing list that you are subscribed to. messages. This is typically used when you reply to a message from a
It usually indicates that you want replies to go to the list, and that mailing list that you are subscribed to, and want replies to go to the
you do not need an extra copy sent directly to you. list without sending an extra copy to you.
@c Message mode handles this differently...
@c @vindex mail-mailing-lists
@c The variable @code{mail-mailing-lists} holds a list of mailing list
@c addresses that you are subscribed to. If it is non-@code{nil}, Emacs
@c inserts an appropriate @samp{Mail-followup-to} header when sending mail
@c to a mailing list.
@item In-reply-to @item In-reply-to
A piece of text describing the message you are replying to. Some mail An identifier for the message you are replying to. Most mail readers
systems can use this information to correlate related pieces of mail. use this information to group related messages together. Normally,
Normally, you never need to think about this, because it is filled in this header is filled in automatically when you reply to a message in
automatically when you reply to a message in Rmail (or any other mail any mail program built into Emacs.
program built into Emacs).
@item References @item References
The Message-Ids of previous related messages (a Message-Id is a unique Identifiers for previous related messages. Like @samp{In-reply-to},
identifier generated when a message is sent). Like this is normally filled in automatically for you.
@samp{In-reply-to}, this is normally set up automatically for you.
@end table @end table
@noindent @noindent
@ -217,35 +213,6 @@ To: foo@@example.net, this@@example.net,
@end group @end group
@end example @end example
@vindex user-full-name
@vindex user-mail-address
The default contents of the @samp{From} header field are computed
from the variables @code{user-full-name} and @code{user-mail-address}.
On some operating systems, Emacs initializes these two variables using
environment variables (@pxref{General Variables}). If this
information is unavailable or wrong, you can customize the variables
yourself (@pxref{Easy Customization}).
@vindex mail-from-style
The value of the variable @code{mail-from-style} specifies how to
format the address in the @samp{From} field:
@table @asis
@item @code{nil}
Use just the address, as in @samp{king@@grassland.com}.
@item @code{parens}
Use both address and full name, as in:@*
@samp{king@@grassland.com (Elvis Parsley)}.
@item @code{angles}
Use both address and full name, as in:@*
@samp{Elvis Parsley <king@@grassland.com>}.
@item any other value
Use @code{angles} for most addresses. However, if the address must be
``quoted'' to remain syntactically-valid under the @code{angles}
format but not under the @code{parens} format, use @code{parens}
instead. This is the default.
@end table
@c There is also mail-specify-envelope-from and mail-envelope-from, but @c There is also mail-specify-envelope-from and mail-envelope-from, but
@c these are probably not topics for the Emacs manual. @c these are probably not topics for the Emacs manual.
@ -273,13 +240,12 @@ particular message, edit them as necessary before sending the message.
@vindex mail-personal-alias-file @vindex mail-personal-alias-file
You can define @dfn{mail aliases}, which are short mnemonic names You can define @dfn{mail aliases}, which are short mnemonic names
that stand for mail addresses or groups of mail addresses. By that stand for one or more mailing addresses. By default, mail
default, mail aliases are defined in the file @file{~/.mailrc}. You aliases are defined in the file @file{~/.mailrc}. You can specify a
can specify a different file name to use, by setting the variable different file name to use, by setting the variable
@code{mail-personal-alias-file}. @code{mail-personal-alias-file}.
To define an alias in @file{.mailrc}, write a line in the following To define an alias in @file{.mailrc}, write a line like this:
format:
@example @example
alias @var{nick} @var{fulladdresses} alias @var{nick} @var{fulladdresses}
@ -362,11 +328,9 @@ in greater detail. @xref{Top,,Message, message, Message}.
@node Mail Sending @node Mail Sending
@subsection Mail Sending @subsection Mail Sending
There are two commands to send a message you have been editing:
@table @kbd @table @kbd
@item C-c C-c @item C-c C-c
Send the message, and deselect the mail buffer (@code{message-send-and-exit}). Send the message, and bury the mail buffer (@code{message-send-and-exit}).
@item C-c C-s @item C-c C-s
Send the message, and leave the mail buffer selected (@code{message-send}). Send the message, and leave the mail buffer selected (@code{message-send}).
@end table @end table
@ -374,24 +338,63 @@ Send the message, and leave the mail buffer selected (@code{message-send}).
@kindex C-c C-s @r{(Message mode)} @kindex C-c C-s @r{(Message mode)}
@kindex C-c C-c @r{(Message mode)} @kindex C-c C-c @r{(Message mode)}
@findex message-send @findex message-send
If you want to send a message and be done with it, type @kbd{C-c @vindex message-kill-buffer-on-exit
C-c} (@code{mail-send-and-exit}). This sends the message and then The usual command to send a message is @kbd{C-c C-c}
either deletes the window or switches to another buffer. It also (@code{mail-send-and-exit}). This sends the message and then
``buries'' the mail buffer, putting it at the lowest priority for ``buries'' the mail buffer, putting it at the lowest priority for
reselection. This is the usual command for sending a message. reselection. If you want it to kill the mail buffer instead, change
the variable @code{message-kill-buffer-on-exit} to @code{t}.
@findex message-send-and-exit @findex message-send-and-exit
The command @kbd{C-c C-s} (@code{message-send}) sends the message The command @kbd{C-c C-s} (@code{message-send}) sends the message
and marks the mail buffer unmodified, but leaves the buffer selected. and leaves the buffer selected. Use this command if you want to
Use this command if you want to modify the message (perhaps with new modify the message (perhaps with new recipients) and send it again.
recipients) and send it again.
@vindex message-send-hook @vindex message-send-hook
Sending a message runs the hook @code{message-send-hook}. Sending a message runs the hook @code{message-send-hook}. It also
marks the mail buffer as unmodified, except if the mail buffer is also
a file-visiting buffer (in that case, only saving the file does that,
and you don't get a warning if you try to send the same message
twice).
In a file-visiting buffer, sending the message does not clear the @cindex SMTP
modified flag, because only saving the file should do that. Also, you @cindex Feedmail
don't get a warning if you try to send the same message twice. @cindex Sendmail
@cindex Mailclient
@vindex send-mail-function
The variable @code{send-mail-function} controls how the message is
delivered. Its value should be one of the following functions:
@table @code
@item sendmail-query-once
Query for a delivery method (one of the other entries in this list),
and use that method for this message; then save the method to
@code{send-mail-function}, so that it is used for future deliveries.
This is the default, unless you have already set the variables for
sending mail via @code{smtpmail-send-it} (see below).
@item smtpmail-send-it
Send mail using the through an external mail host, such as your
Internet service provider's outgoing SMTP mail server. If you have
not told Emacs how to contact the SMTP server, it prompts for this
information, which is saved in the variables
@code{smtpmail-smtp-server} and @code{smtpmail-auth-credentials}.
@xref{Top,,Emacs SMTP Library, smtpmail, Sending mail via SMTP}.
@item sendmail-send-it
Send mail using the system's default @command{sendmail} program, or
equivalent. This requires the system to be set up for delivering mail
directly via SMTP.
@item mailclient-send-it
Pass the mail buffer on to the system's designated mail client. See
the commentary section in the file @file{mailclient.el} for details.
@item feedmail-send-it
This is similar to @code{sendmail-send-it}, but allows you to queue
messages for later sending. See the commentary section in the file
@file{feedmail.el} for details.
@end table
@vindex sendmail-coding-system @vindex sendmail-coding-system
When you send a message containing non-@acronym{ASCII} characters, When you send a message containing non-@acronym{ASCII} characters,
@ -404,40 +407,6 @@ the coding system thus determined does not handle the characters in a
particular message, Emacs asks you to select the coding system to use, particular message, Emacs asks you to select the coding system to use,
showing a list of possible coding systems. showing a list of possible coding systems.
@cindex SMTP
@cindex Feedmail
@cindex Sendmail
@cindex Mailclient
@vindex send-mail-function
The variable @code{send-mail-function} controls how the default mail
user agent sends mail. Its value should be a function, which can be
one of the following:
@table @code
@item sendmail-send-it
Send mail using the system's default @command{sendmail} (or
@command{sendmail}-compatible) program. This is the default on Unix
and GNU, and works provided the system is a valid @dfn{mail host}
(that is, provided it can deliver mail via SMTP).
@item mailclient-send-it
Pass the mail buffer on to the system's designated mail client (see
@file{mailclient.el}). This is the default on Mac OS X and
MS-Windows.
@item smtpmail-send-it
Send mail through an external mail host (e.g., your Internet service
provider's SMTP server). You will need to tell Emacs how to contact
the SMTP server, by customizing the variables
@code{smtpmail-smtp-server} and @code{smtpmail-auth-credentials}.
@xref{Top,,Emacs SMTP Library, smtpmail, Sending mail via SMTP}.
@item feedmail-send-it
This is similar to @code{sendmail-send-it}, but allows you to queue
messages for later sending. See the commentary section in the file
@file{feedmail.el} for more information.
@end table
@node Header Editing @node Header Editing
@subsection Mail Header Editing @subsection Mail Header Editing
@ -511,7 +480,8 @@ just inserts a tab character.
@table @kbd @table @kbd
@item C-c C-y @item C-c C-y
Yank the selected message from Rmail (@code{message-yank-original}). Yank the selected message from the mail reader, as a citation
(@code{message-yank-original}).
@item C-c C-q @item C-c C-q
Fill each paragraph cited from another message Fill each paragraph cited from another message
(@code{message-fill-yanked-message}). (@code{message-fill-yanked-message}).
@ -522,9 +492,9 @@ Fill each paragraph cited from another message
@findex message-yank-prefix @findex message-yank-prefix
You can use the command @kbd{C-c C-y} (@code{message-yank-original}) You can use the command @kbd{C-c C-y} (@code{message-yank-original})
to @dfn{cite} a message that you are replying to. This inserts the to @dfn{cite} a message that you are replying to. This inserts the
text of that message into the mail buffer. This command is active text of that message into the mail buffer. This command works only if
only when the mail buffer is invoked from a mail program running in the mail buffer is invoked from a mail reader running in Emacs, such
Emacs, such as Rmail. as Rmail.
By default, Emacs inserts the string @samp{>} in front of each line By default, Emacs inserts the string @samp{>} in front of each line
of the cited text; this prefix string is specified by the variable of the cited text; this prefix string is specified by the variable

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Text, Programs, Indentation, Top @node Text, Programs, Indentation, Top
@ -21,7 +21,10 @@ are also often useful for editing programs.
the file contains ordinary text, use Text mode, which customizes Emacs the file contains ordinary text, use Text mode, which customizes Emacs
in small ways for the syntactic conventions of text. Outline mode in small ways for the syntactic conventions of text. Outline mode
provides special commands for operating on text with an outline provides special commands for operating on text with an outline
structure. structure. Org mode extends Outline mode and turn Emacs into a
full-fledged organizer: you can manage TODO lists, store notes and
publish them in many formats.
@iftex @iftex
@xref{Outline Mode}. @xref{Outline Mode}.
@end iftex @end iftex
@ -70,6 +73,7 @@ for editing such pictures.
* Case:: Changing the case of text. * Case:: Changing the case of text.
* Text Mode:: The major modes for editing text files. * Text Mode:: The major modes for editing text files.
* Outline Mode:: Editing outlines. * Outline Mode:: Editing outlines.
* Org Mode:: The Emacs organizer.
* TeX Mode:: Editing input to the formatter TeX. * TeX Mode:: Editing input to the formatter TeX.
* HTML Mode:: Editing HTML and SGML files. * HTML Mode:: Editing HTML and SGML files.
* Nroff Mode:: Editing input to the formatter nroff. * Nroff Mode:: Editing input to the formatter nroff.
@ -1250,6 +1254,153 @@ automatically by putting this in your init file (@pxref{Init File}):
(eval-after-load "outline" '(require 'foldout)) (eval-after-load "outline" '(require 'foldout))
@end example @end example
@node Org Mode
@section Org Mode
@cindex organizer
@cindex planner
@findex Org mode
@findex mode, Org
@findex org-mode
Org mode is a variant of Outline mode for using Emacs as an
organizer and/or authoring system. Files with names ending in the
extension @file{.org} are opened in Org mode (@pxref{Choosing Modes}).
To explicitly switch to Org mode, type @kbd{M-x org-mode}.
In Org mode, as in Outline mode, each entry has a heading line that
starts with one or more @samp{*} characters. @xref{Outline Format}.
In addition, any line that begins with the @samp{#} character is
treated as a comment.
@kindex TAB @r{(Org Mode)}
@findex org-cycle
Org mode provides commands for easily viewing and manipulating the
outline structure. The simplest of these commands is @key{TAB}
(@code{org-cycle}). If invoked on a heading line, it cycles through
the different visibility states of the subtree: (i) showing only that
heading line, (ii) showing only the heading line and the heading lines
of its direct children, if any, and (iii) showing the entire subtree.
If invoked in a body line, the global binding for @key{TAB} is
executed.
@kindex S-TAB @r{(Org Mode)}
@findex org-shifttab
Typing @key{S-TAB} (@code{org-shifttab}) anywhere in an Org mode
buffer cycles the visibility of the entire outline structure, between
(i) showing only top-level heading lines, (ii) showing all heading
lines but no body lines, and (iii) showing everything.
@kindex M-<up> @r{(Org Mode)}
@kindex M-<down> @r{(Org Mode)}
@kindex M-<left> @r{(Org Mode)}
@kindex M-<right> @r{(Org Mode)}
@findex org-metaup
@findex org-metadown
@findex org-metaleft
@findex org-metaright
You can move an entire entry up or down in the buffer, including its
body lines and subtree (if any), by typing @kbd{M-<up>}
(@code{org-metaup}) or @kbd{M-<down>} (@code{org-metadown}) on the
heading line. Similarly, you can promote or demote a heading line
with @kbd{M-<left>} (@code{org-metaleft}) and @kbd{M-<left>}
(@code{org-metaright}). These commands execute their global bindings
if invoked on a body line.
The following subsections give basic instructions for using Org mode
as an organizer and as an authoring system. @xref{Top,The Org Mode
Manual,,org, The Org Manual}, for details.
@menu
* Org Organizer:: Managing TODO lists and agendas.
* Org Authoring:: Exporting Org buffers to various formats.
@end menu
@node Org Organizer
@subsection Org as an organizer
@cindex TODO item
@cindex Org agenda
@kindex C-c C-t @r{(Org Mode)}
@findex org-todo
@vindex org-todo-keywords
You can tag an Org entry as a @dfn{TODO} item by typing @kbd{C-c
C-t} (@code{org-todo}) anywhere in the entry. This adds the keyword
@samp{TODO} to the heading line. Typing @kbd{C-c C-t} again switches
the keyword to @samp{DONE}; another @kbd{C-c C-t} removes the keyword
entirely, and so forth. You can customize the keywords used by
@kbd{C-c C-t} via the variable @code{org-todo-keywords}.
@kindex C-c C-s @r{(Org Mode)}
@kindex C-c C-d @r{(Org Mode)}
@findex org-schedule
@findex org-deadline
Apart from marking an entry as TODO, you can attach a date to it, by
typing @kbd{C-c C-s} (@code{org-schedule}) in the entry. This prompts
for a date by popping up the Emacs Calendar (@pxref{Calendar/Diary}),
and then adds the tag @samp{SCHEDULED}, together with the selected
date, beneath the heading line. The command @kbd{C-c C-d}
(@code{org-deadline}) has the same effect, except that it uses the tag
@code{DEADLINE}.
@kindex C-c [ @r{(Org Mode)}
@findex org-agenda-file-to-front
@vindex org-agenda-files
Once you have some TODO items planned in an Org file, you can add
that file to the list of @dfn{agenda files} by typing @kbd{C-c [}
(@code{org-agenda-file-to-front}). Org mode is designed to let you
easily maintain multiple agenda files, e.g.@: for organizing different
aspects of your life. The list of agenda files is stored in the
variable @code{org-agenda-files}.
@findex org-agenda
To view items coming from your agenda files, type @kbd{M-x
org-agenda}. This command prompts for what you want to see: a list of
things to do this week, a list of TODO items with specific keywords,
etc.
@ifnottex
@xref{Agenda Views,,,org, The Org Manual}, for details.
@end ifnottex
@node Org Authoring
@subsection Org as an authoring system
@cindex Org exporting
@findex org-export
@kindex C-c C-e @r{(Org mode)}
You may want to format your Org notes nicely and to prepare them for
export and publication. To export the current buffer, type @kbd{C-c
C-e} (@code{org-export}) anywhere in an Org buffer. This command
prompts for an export format; currently supported formats include
HTML, La@TeX{}, OpenDocument (@file{.odt}), and PDF. Some formats,
such as PDF, require certain system tools to be installed.
@vindex org-publish-project-alist
To export several files at once to a specific directory, either
locally or over the network, you must define a list of projects
through the variable @code{org-publish-project-alist}. See its
documentation for details.
Org supports a simple markup scheme for applying text formatting to
exported documents:
@example
- This text is /emphasized/
- This text is *in bold*
- This text is _underlined_
- This text uses =a teletype font=
#+begin_quote
``This is a quote.''
#+end_quote
#+begin_example
This is an example.
#+end_example
@end example
For further details, see @ref{Exporting,,,org, The Org Manual} and
@ref{Publishing,,,org, The Org Manual}.
@node TeX Mode @node TeX Mode
@section @TeX{} Mode @section @TeX{} Mode
@cindex @TeX{} mode @cindex @TeX{} mode

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@iftex @iftex
@ -40,8 +40,8 @@ Cancel a previously made change in the buffer contents (@code{undo}).
@dfn{quitting} with @kbd{C-g}, and @dfn{aborting} with @kbd{C-]} or @dfn{quitting} with @kbd{C-g}, and @dfn{aborting} with @kbd{C-]} or
@kbd{M-x top-level}. Quitting cancels a partially typed command, or @kbd{M-x top-level}. Quitting cancels a partially typed command, or
one which is still running. Aborting exits a recursive editing level one which is still running. Aborting exits a recursive editing level
and cancels the command that invoked the recursive edit. and cancels the command that invoked the recursive edit
(@xref{Recursive Edit}.) (@pxref{Recursive Edit}).
@cindex quitting @cindex quitting
@kindex C-g @kindex C-g
@ -54,7 +54,7 @@ a kill command that is taking a long time, either your text will
kill ring, or maybe both. If the region is active, @kbd{C-g} kill ring, or maybe both. If the region is active, @kbd{C-g}
deactivates the mark, unless Transient Mark mode is off deactivates the mark, unless Transient Mark mode is off
(@pxref{Disabled Transient Mark}). If you are in the middle of an (@pxref{Disabled Transient Mark}). If you are in the middle of an
incremental search, @kbd{C-g} does special things; it may take two incremental search, @kbd{C-g} behaves specially; it may take two
successive @kbd{C-g} characters to get out of a search. successive @kbd{C-g} characters to get out of a search.
@xref{Incremental Search}, for details. @xref{Incremental Search}, for details.
@ -136,12 +136,12 @@ facility.
@node Lossage, Bugs, Quitting, Top @node Lossage, Bugs, Quitting, Top
@section Dealing with Emacs Trouble @section Dealing with Emacs Trouble
This section describes various conditions in which Emacs fails to work This section describes how to recognize and deal with situations in
normally, and how to recognize them and correct them. For a list of which Emacs does not work as you expect, such as keyboard code mixups,
additional problems you might encounter, see @ref{Bugs and problems, , garbled displays, running out of memory, and crashes and hangs.
Bugs and problems, efaq, GNU Emacs FAQ}, and the file @file{etc/PROBLEMS}
in the Emacs distribution. Type @kbd{C-h C-f} to read the FAQ; type @xref{Bugs}, for what to do when you think you have found a bug in
@kbd{C-h C-p} to read the @file{PROBLEMS} file. Emacs.
@menu @menu
* DEL Does Not Delete:: What to do if @key{DEL} doesn't delete. * DEL Does Not Delete:: What to do if @key{DEL} doesn't delete.
@ -150,40 +150,35 @@ in the Emacs distribution. Type @kbd{C-h C-f} to read the FAQ; type
* Text Garbled:: Garbage in the text. * Text Garbled:: Garbage in the text.
* Memory Full:: How to cope when you run out of memory. * Memory Full:: How to cope when you run out of memory.
* After a Crash:: Recovering editing in an Emacs session that crashed. * After a Crash:: Recovering editing in an Emacs session that crashed.
* Emergency Escape:: Emergency escape--- * Emergency Escape:: What to do if Emacs stops responding.
What to do if Emacs stops responding.
* Total Frustration:: When you are at your wits' end.
@end menu @end menu
@node DEL Does Not Delete @node DEL Does Not Delete
@subsection If @key{DEL} Fails to Delete @subsection If @key{DEL} Fails to Delete
@cindex @key{DEL} vs @key{BACKSPACE} @cindex @key{DEL} vs @key{BACKSPACE}
@cindex @key{BACKSPACE} vs @key{DEL} @cindex @key{BACKSPACE} vs @key{DEL}
@cindex usual erasure key
Every keyboard has a large key, usually labeled @key{Backspace}, Every keyboard has a large key, usually labeled @key{Backspace},
which is ordinarily used to erase the last character that you typed. which is ordinarily used to erase the last character that you typed.
We call this key @dfn{the usual erasure key}. In Emacs, it is In Emacs, this key is supposed to be equivalent to @key{DEL}.
supposed to be equivalent to @key{DEL}.
When Emacs starts up on a graphical display, it determines When Emacs starts up on a graphical display, it determines
automatically which key should be @key{DEL}. In some unusual cases, automatically which key should be @key{DEL}. In some unusual cases,
Emacs gets the wrong information from the system. If the usual Emacs gets the wrong information from the system, and @key{Backspace}
erasure key deletes forwards instead of backwards, that is probably ends up deleting forwards instead of backwards.
what happened---Emacs ought to be treating the @key{Backspace} key as
@key{DEL}, but it isn't.
Some keyboards also have a @key{Delete} key, which is ordinarily Some keyboards also have a @key{Delete} key, which is ordinarily
used to delete forwards. If this key deletes backward in Emacs, that used to delete forwards. If this key deletes backward in Emacs, that
too suggests Emacs got the wrong information---but in the opposite too suggests Emacs got the wrong information---but in the opposite
sense. sense.
On a text-only terminal, if you find the usual erasure key prompts On a text-only terminal, if you find that @key{Backspace} prompts
for a Help command, like @kbd{Control-h}, instead of deleting a for a Help command, like @kbd{Control-h}, instead of deleting a
character, it means that key is actually sending the @key{BS} character, it means that key is actually sending the @key{BS}
character. Emacs ought to be treating @key{BS} as @key{DEL}, but it character. Emacs ought to be treating @key{BS} as @key{DEL}, but it
isn't. isn't.
@findex normal-erase-is-backspace-mode
In all of those cases, the immediate remedy is the same: use the In all of those cases, the immediate remedy is the same: use the
command @kbd{M-x normal-erase-is-backspace-mode}. This toggles command @kbd{M-x normal-erase-is-backspace-mode}. This toggles
between the two modes that Emacs supports for handling @key{DEL}, so between the two modes that Emacs supports for handling @key{DEL}, so
@ -192,13 +187,10 @@ mode. On a text-only terminal, if you want to ask for help when
@key{BS} is treated as @key{DEL}, use @key{F1}; @kbd{C-?} may also @key{BS} is treated as @key{DEL}, use @key{F1}; @kbd{C-?} may also
work, if it sends character code 127. work, if it sends character code 127.
@findex normal-erase-is-backspace-mode To fix the problem in every Emacs session, put one of the following
To fix the problem automatically for every Emacs session, you can lines into your initialization file (@pxref{Init File}). For the
put one of the following lines into your @file{.emacs} file first case above, where @key{Backspace} deletes forwards instead of
(@pxref{Init File}). For the first case above, where @key{Backspace} backwards, use this line to make @key{Backspace} act as @key{DEL}:
deletes forwards instead of backwards, use this line to make
@key{Backspace} act as @key{DEL} (resulting in behavior compatible
with Emacs 20 and previous versions):
@lisp @lisp
(normal-erase-is-backspace-mode 0) (normal-erase-is-backspace-mode 0)
@ -224,12 +216,12 @@ Customization}.
Recursive editing levels are important and useful features of Emacs, but Recursive editing levels are important and useful features of Emacs, but
they can seem like malfunctions if you do not understand them. they can seem like malfunctions if you do not understand them.
If the mode line has square brackets @samp{[@dots{}]} around the parentheses If the mode line has square brackets @samp{[@dots{}]} around the
that contain the names of the major and minor modes, you have entered a parentheses that contain the names of the major and minor modes, you
recursive editing level. If you did not do this on purpose, or if you have entered a recursive editing level. If you did not do this on
don't understand what that means, you should just get out of the recursive purpose, or if you don't understand what that means, you should just
editing level. To do so, type @kbd{M-x top-level}. This is called getting get out of the recursive editing level. To do so, type @kbd{M-x
back to top level. @xref{Recursive Edit}. top-level}. @xref{Recursive Edit}.
@node Screen Garbled @node Screen Garbled
@subsection Garbage on the Screen @subsection Garbage on the Screen
@ -244,12 +236,9 @@ the following section.)
entry for the terminal you are using. The file @file{etc/TERMS} in entry for the terminal you are using. The file @file{etc/TERMS} in
the Emacs distribution gives the fixes for known problems of this the Emacs distribution gives the fixes for known problems of this
sort. @file{INSTALL} contains general advice for these problems in sort. @file{INSTALL} contains general advice for these problems in
one of its sections. To investigate the possibility that you have one of its sections. If you seem to be using the right terminfo
this sort of problem, try Emacs on another terminal made by a entry, it is possible that there is a bug in the terminfo entry, or a
different manufacturer. If problems happen frequently on one kind of bug in Emacs that appears for certain terminal types.
terminal but not another kind, it is likely to be a bad terminfo entry,
though it could also be due to a bug in Emacs that appears for
terminals that have or that lack specific features.
@node Text Garbled @node Text Garbled
@subsection Garbage in the Text @subsection Garbage in the Text
@ -385,25 +374,6 @@ program.
emergency escape---but there are cases where it won't work, when emergency escape---but there are cases where it won't work, when
system call hangs or when Emacs is stuck in a tight loop in C code. system call hangs or when Emacs is stuck in a tight loop in C code.
@node Total Frustration
@subsection Help for Total Frustration
@cindex Eliza
@cindex doctor
If using Emacs (or something else) becomes terribly frustrating and none
of the techniques described above solve the problem, Emacs can still help
you.
First, if the Emacs you are using is not responding to commands, type
@kbd{C-g C-g} to get out of it and then start a new one.
@findex doctor
Second, type @kbd{M-x doctor @key{RET}}.
The Emacs psychotherapist will help you feel better. Each time you
say something to the psychotherapist, you must end it by typing
@key{RET} @key{RET}. This indicates you are finished typing.
@node Bugs, Contributing, Lossage, Top @node Bugs, Contributing, Lossage, Top
@section Reporting Bugs @section Reporting Bugs
@ -432,41 +402,51 @@ of the main places you can read about known issues:
@itemize @itemize
@item @item
The @file{etc/PROBLEMS} file in the Emacs distribution; type @kbd{C-h The @file{etc/PROBLEMS} file; type @kbd{C-h C-p} to read it. This
C-p} to read it. This file contains a list of particularly well-known file contains a list of particularly well-known issues that have been
issues that have been encountered in compiling, installing and running encountered in compiling, installing and running Emacs. Often, there
Emacs. Often, there are suggestions for workarounds and solutions. are suggestions for workarounds and solutions.
@item @item
Some additional user-level problems can be found in @ref{Bugs and Some additional user-level problems can be found in @ref{Bugs and
problems, , Bugs and problems, efaq, GNU Emacs FAQ}. problems, , Bugs and problems, efaq, GNU Emacs FAQ}.
@cindex bug tracker
@item
The GNU Bug Tracker at @url{http://debbugs.gnu.org}. Emacs bugs are
filed in the tracker under the @samp{emacs} package. The tracker
records information about the status of each bug, the initial bug
report, and the follow-up messages by the bug reporter and Emacs
developers. You can search for bugs by subject, severity, and other
criteria.
@cindex debbugs package
Instead of browsing the bug tracker as a webpage, you can browse it
from Emacs using the @code{debbugs} package, which can be downloaded
via the Package Menu (@pxref{Packages}). This package provides the
command @kbd{M-x debbugs-gnu} to list bugs, and @kbd{M-x
debbugs-gnu-search} to search for a specific bug.
@item @item
The @samp{bug-gnu-emacs} mailing list (also available as the newsgroup The @samp{bug-gnu-emacs} mailing list (also available as the newsgroup
@samp{gnu.emacs.bug}). You can read the list archives at @samp{gnu.emacs.bug}). You can read the list archives at
@url{http://lists.gnu.org/mailman/listinfo/bug-gnu-emacs}. If you @url{http://lists.gnu.org/mailman/listinfo/bug-gnu-emacs}. This list
like, you can also subscribe to the list. Be aware that the sole works as a ``mirror'' of the Emacs bug reports and follow-up messages
purpose of this list is to provide the Emacs maintainers with which are sent to the bug tracker. It also contains old bug reports
information about bugs and feature requests. Reports may contain from before the bug tracker was introduced (in early 2008).
fairly large amounts of data; spectators should not complain about
this.
@item If you like, you can subscribe to the list. Be aware that its purpose
The bug tracker at @url{http://debbugs.gnu.org}. From early 2008, is to provide the Emacs maintainers with information about bugs and
reports from the @samp{bug-gnu-emacs} list have also been sent here. feature requests, so reports may contain fairly large amounts of data;
The tracker contains the same information as the mailing list, just in spectators should not complain about this.
a different format. You may prefer to browse and read reports using
the tracker.
@item @item
The @samp{emacs-pretest-bug} mailing list. This list is no longer The @samp{emacs-pretest-bug} mailing list. This list is no longer
used, and is mainly of historical interest. At one time, it was used used, and is mainly of historical interest. At one time, it was used
for bug reports in development (i.e., not yet released) versions of for bug reports in development (i.e., not yet released) versions of
Emacs. You can read the archives for 2003 to mid 2007 at Emacs. You can read the archives for 2003 to mid 2007 at
@url{http://lists.gnu.org/archive/html/emacs-pretest-bug/}. From @url{http://lists.gnu.org/archive/html/emacs-pretest-bug/}. Nowadays,
late 2007 to mid 2008, the address was an alias for the it is an alias for @samp{bug-gnu-emacs}.
@samp{emacs-devel} mailing list. From mid 2008 onwards, it has been
an alias for @samp{bug-gnu-emacs}.
@item @item
The @samp{emacs-devel} mailing list. Sometimes people report bugs to The @samp{emacs-devel} mailing list. Sometimes people report bugs to
@ -485,33 +465,32 @@ fault''), or exits with an operating system error message that
indicates a problem in the program (as opposed to something like indicates a problem in the program (as opposed to something like
``disk full''), then it is certainly a bug. ``disk full''), then it is certainly a bug.
If Emacs updates the display in a way that does not correspond to what is If the Emacs display does not correspond properly to the contents of
in the buffer, then it is certainly a bug. If a command seems to do the the buffer, then it is a bug. But you should check that features like
wrong thing but the problem corrects itself if you type @kbd{C-l}, it is a buffer narrowing (@pxref{Narrowing}), which can hide parts of the
case of incorrect display updating. buffer or change how it is displayed, are not responsible.
Taking forever to complete a command can be a bug, but you must make Taking forever to complete a command can be a bug, but you must make
certain that it was really Emacs's fault. Some commands simply take a sure that it is really Emacs's fault. Some commands simply take a
long time. Type @kbd{C-g} (@kbd{C-@key{BREAK}} on MS-DOS) and then @kbd{C-h l} long time. Type @kbd{C-g} (@kbd{C-@key{BREAK}} on MS-DOS) and then
to see whether the input Emacs received was what you intended to type; @kbd{C-h l} to see whether the input Emacs received was what you
if the input was such that you @emph{know} it should have been processed intended to type; if the input was such that you @emph{know} it should
quickly, report a bug. If you don't know whether the command should have been processed quickly, report a bug. If you don't know whether
take a long time, find out by looking in the manual or by asking for the command should take a long time, find out by looking in the manual
assistance. or by asking for assistance.
If a command you are familiar with causes an Emacs error message in a If a command you are familiar with causes an Emacs error message in a
case where its usual definition ought to be reasonable, it is probably a case where its usual definition ought to be reasonable, it is probably a
bug. bug.
If a command does the wrong thing, that is a bug. But be sure you know If a command does the wrong thing, that is a bug. But be sure you
for certain what it ought to have done. If you aren't familiar with the know for certain what it ought to have done. If you aren't familiar
command, or don't know for certain how the command is supposed to work, with the command, it might actually be working right. If in doubt,
then it might actually be working right. Rather than jumping to read the command's documentation (@pxref{Name Help}).
conclusions, show the problem to someone who knows for certain.
Finally, a command's intended definition may not be the best A command's intended definition may not be the best possible
possible definition for editing with. This is a very important sort definition for editing with. This is a very important sort of
of problem, but it is also a matter of judgment. Also, it is easy to problem, but it is also a matter of judgment. Also, it is easy to
come to such a conclusion out of ignorance of some of the existing come to such a conclusion out of ignorance of some of the existing
features. It is probably best not to complain about such a problem features. It is probably best not to complain about such a problem
until you have checked the documentation in the usual ways, feel until you have checked the documentation in the usual ways, feel
@ -527,59 +506,61 @@ you should report. The manual's job is to make everything clear to
people who are not Emacs experts---including you. It is just as people who are not Emacs experts---including you. It is just as
important to report documentation bugs as program bugs. important to report documentation bugs as program bugs.
If the on-line documentation string of a function or variable disagrees If the built-in documentation for a function or variable disagrees
with the manual, one of them must be wrong; that is a bug. with the manual, one of them must be wrong; that is a bug.
@node Understanding Bug Reporting @node Understanding Bug Reporting
@subsection Understanding Bug Reporting @subsection Understanding Bug Reporting
@findex emacs-version @findex emacs-version
When you decide that there is a bug, it is important to report it and to When you decide that there is a bug, it is important to report it
report it in a way which is useful. What is most useful is an exact and to report it in a way which is useful. What is most useful is an
description of what commands you type, starting with the shell command to exact description of what commands you type, starting with the shell
run Emacs, until the problem happens. command to run Emacs, until the problem happens.
The most important principle in reporting a bug is to report The most important principle in reporting a bug is to report
@emph{facts}. Hypotheses and verbal descriptions are no substitute for @emph{facts}. Hypotheses and verbal descriptions are no substitute
the detailed raw data. Reporting the facts is straightforward, but many for the detailed raw data. Reporting the facts is straightforward,
people strain to posit explanations and report them instead of the but many people strain to posit explanations and report them instead
facts. If the explanations are based on guesses about how Emacs is of the facts. If the explanations are based on guesses about how
implemented, they will be useless; meanwhile, lacking the facts, we will Emacs is implemented, they will be useless; meanwhile, lacking the
have no real information about the bug. facts, we will have no real information about the bug. If you want to
actually @emph{debug} the problem, and report explanations that are
more than guesses, that is useful---but please include the raw facts
as well.
For example, suppose that you type @kbd{C-x C-f /glorp/baz.ugh For example, suppose that you type @kbd{C-x C-f /glorp/baz.ugh
@key{RET}}, visiting a file which (you know) happens to be rather @key{RET}}, visiting a file which (you know) happens to be rather
large, and Emacs displays @samp{I feel pretty today}. The best way to large, and Emacs displays @samp{I feel pretty today}. The bug report
report the bug is with a sentence like the preceding one, because it would need to provide all that information. You should not assume
gives all the facts. that the problem is due to the size of the file and say, ``I visited a
large file, and Emacs displayed @samp{I feel pretty today}.'' This is
A bad way would be to assume that the problem is due to the size of what we mean by ``guessing explanations.'' The problem might be due
the file and say, ``I visited a large file, and Emacs displayed @samp{I to the fact that there is a @samp{z} in the file name. If this is so,
feel pretty today}.'' This is what we mean by ``guessing then when we got your report, we would try out the problem with some
explanations.'' The problem is just as likely to be due to the fact ``large file,'' probably with no @samp{z} in its name, and not see any
that there is a @samp{z} in the file name. If this is so, then when we problem. There is no way we could guess that we should try visiting a
got your report, we would try out the problem with some ``large file,''
probably with no @samp{z} in its name, and not see any problem. There
is no way in the world that we could guess that we should try visiting a
file with a @samp{z} in its name. file with a @samp{z} in its name.
Alternatively, the problem might be due to the fact that the file starts You should not even say ``visit a file'' instead of @kbd{C-x C-f}.
with exactly 25 spaces. For this reason, you should make sure that you Similarly, rather than saying ``if I have three characters on the
inform us of the exact contents of any file that is needed to reproduce the line,'' say ``after I type @kbd{@key{RET} A B C @key{RET} C-p},'' if
bug. What if the problem only occurs when you have typed the @kbd{C-x C-a} that is the way you entered the text.
command previously? This is why we ask you to give the exact sequence of
characters you typed since starting the Emacs session.
You should not even say ``visit a file'' instead of @kbd{C-x C-f} unless If possible, try quickly to reproduce the bug by invoking Emacs with
you @emph{know} that it makes no difference which visiting command is used. @command{emacs -Q} (so that Emacs starts with no initial
Similarly, rather than saying ``if I have three characters on the line,'' customizations; @pxref{Initial Options}), and repeating the steps that
say ``after I type @kbd{@key{RET} A B C @key{RET} C-p},'' if that is you took to trigger the bug. If you can reproduce the bug this way,
the way you entered the text. that rules out bugs in your personal customizations. Then your bug
report should begin by stating that you started Emacs with
@command{emacs -Q}, followed by the exact sequence of steps for
reproducing the bug. If possible, inform us of the exact contents of
any file that is needed to reproduce the bug.
So please don't guess any explanations when you report a bug. If you Some bugs are not reproducible from @command{emacs -Q}; some are not
want to actually @emph{debug} the problem, and report explanations that easily reproducible at all. In that case, you should report what you
are more than guesses, that is useful---but please include the facts as have---but, as before, please stick to the raw facts about what you
well. did to trigger the bug the first time.
@node Checklist @node Checklist
@subsection Checklist for Bug Reports @subsection Checklist for Bug Reports
@ -616,15 +597,14 @@ address. Or you can simply send an email to that address describing
the problem. the problem.
Your report will be sent to the @samp{bug-gnu-emacs} mailing list, and Your report will be sent to the @samp{bug-gnu-emacs} mailing list, and
stored in the tracker at @url{http://debbugs.gnu.org}. Please try to stored in the GNU Bug Tracker at @url{http://debbugs.gnu.org}. Please
include a valid reply email address, in case we need to ask you for include a valid reply email address, in case we need to ask you for
more information about your report. Submissions are moderated, so more information about your report. Submissions are moderated, so
there may be a delay before your report appears. there may be a delay before your report appears.
You do not need to know how the @url{http://debbugs.gnu.org} bug You do not need to know how the Gnu Bug Tracker works in order to
tracker works in order to report a bug, but if you want to, you can report a bug, but if you want to, you can read the tracker's online
read the tracker's online documentation to see the various features documentation to see the various features you can use.
you can use.
All mail sent to the @samp{bug-gnu-emacs} mailing list is also All mail sent to the @samp{bug-gnu-emacs} mailing list is also
gatewayed to the @samp{gnu.emacs.bug} newsgroup. The reverse is also gatewayed to the @samp{gnu.emacs.bug} newsgroup. The reverse is also
@ -689,10 +669,10 @@ newline after the last line in the buffer (nothing ought to care whether
the last line is terminated, but try telling the bugs that). the last line is terminated, but try telling the bugs that).
@item @item
The precise commands we need to type to reproduce the bug. The precise commands we need to type to reproduce the bug. If at all
If at all possible, give a full recipe for an Emacs started with the possible, give a full recipe for an Emacs started with the @samp{-Q}
@samp{-Q} option (@pxref{Initial Options}). This bypasses your option (@pxref{Initial Options}). This bypasses your personal
@file{.emacs} customizations. customizations.
@findex open-dribble-file @findex open-dribble-file
@cindex dribble file @cindex dribble file
@ -722,8 +702,8 @@ using @kbd{M-:} or from the @samp{*scratch*} buffer just after
starting Emacs. From then on, Emacs copies all terminal output to the starting Emacs. From then on, Emacs copies all terminal output to the
specified termscript file as well, until the Emacs process is killed. specified termscript file as well, until the Emacs process is killed.
If the problem happens when Emacs starts up, put this expression into If the problem happens when Emacs starts up, put this expression into
your @file{.emacs} file so that the termscript file will be open when your Emacs initialization file so that the termscript file will be
Emacs displays the screen for the first time. open when Emacs displays the screen for the first time.
Be warned: it is often difficult, and sometimes impossible, to fix a Be warned: it is often difficult, and sometimes impossible, to fix a
terminal-dependent bug without access to a terminal of the type that terminal-dependent bug without access to a terminal of the type that
@ -806,13 +786,13 @@ produce it, copy it into the bug report.
@item @item
Check whether any programs you have loaded into the Lisp world, Check whether any programs you have loaded into the Lisp world,
including your @file{.emacs} file, set any variables that may affect the including your initialization file, set any variables that may affect
functioning of Emacs. Also, see whether the problem happens in a the functioning of Emacs. Also, see whether the problem happens in a
freshly started Emacs without loading your @file{.emacs} file (start freshly started Emacs without loading your initialization file (start
Emacs with the @code{-Q} switch to prevent loading the init files). If Emacs with the @code{-Q} switch to prevent loading the init files).
the problem does @emph{not} occur then, you must report the precise If the problem does @emph{not} occur then, you must report the precise
contents of any programs that you must load into the Lisp world in order contents of any programs that you must load into the Lisp world in
to cause the problem to occur. order to cause the problem to occur.
@item @item
If the problem does depend on an init file or other Lisp programs that If the problem does depend on an init file or other Lisp programs that
@ -983,8 +963,8 @@ your best to help.
Send an explanation with your changes of what problem they fix or what Send an explanation with your changes of what problem they fix or what
improvement they bring about. For a fix for an existing bug, it is improvement they bring about. For a fix for an existing bug, it is
best to reply to the relevant discussion on the @samp{bug-gnu-emacs} best to reply to the relevant discussion on the @samp{bug-gnu-emacs}
list, or item in the @url{http://debbugs.gnu.org} tracker. Explain list, or the bug entry in the GNU Bug Tracker at
why your change fixes the bug. @url{http://debbugs.gnu.org}. Explain why your change fixes the bug.
@item @item
Always include a proper bug report for the problem you think you have Always include a proper bug report for the problem you think you have

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 2004-2011 Free Software Foundation, Inc. @c Copyright (C) 2004-2012 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@c @c
@c This file is included in emacs-xtra.texi when producing the printed @c This file is included in emacs-xtra.texi when producing the printed

View file

@ -1,305 +1,10 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 2004-2011 Free Software Foundation, Inc. @c Copyright (C) 2004-2012 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@c @c
@c This file is included either in vc-xtra.texi (when producing the @c This file is included either in vc-xtra.texi (when producing the
@c printed version) or in the main Emacs manual (for the on-line version). @c printed version) or in the main Emacs manual (for the on-line version).
@node Remote Repositories
@subsection Remote Repositories
@cindex remote repositories
A common way of using CVS and other more advanced VCSes is to set up
a central repository on some Internet host, then have each
developer check out a personal working copy of the files on his local
machine. Committing changes to the repository, and picking up changes
from other users into one's own working area, then works by direct
interactions with the repository server.
One difficulty is that access to a repository server is often slow,
and that developers might need to work off-line as well. While only
third-generation decentralized VCses such as GNU Arch or Mercurial
really solve this problem, VC is designed to reduce the amount of
network interaction necessary.
If you are using a truly decentralized VCS you can skip the rest of
this section. It describes backup and local-repository techniques
that are only useful for Subversion and earlier VCSes.
@menu
* Version Backups:: Keeping local copies of repository versions.
* Local Version Control:: Using another version system for local editing.
@end menu
@node Version Backups
@subsubsection Version Backups
@cindex version backups
@cindex automatic version backups
When VC sees that the repository for a file is on a remote
machine, it automatically makes local backups of unmodified versions
of the file---@dfn{automatic version backups}. This means that you
can compare the file to the repository version (@kbd{C-x v =}), or
revert to that version (@kbd{C-x v u}), without any network
interactions.
The local copy of the unmodified file is called a @dfn{version
backup} to indicate that it corresponds exactly to a version that is
stored in the repository. Note that version backups are not the same
as ordinary Emacs backup files
@iftex
(@pxref{Backup,,,emacs, the Emacs Manual}).
@end iftex
@ifnottex
(@pxref{Backup}).
@end ifnottex
But they follow a similar naming convention.
For a file that comes from a remote repository, VC makes a
version backup whenever you save the first changes to the file, and
removes it after you have committed your modified version to the
repository. You can disable the making of automatic version backups by
setting @code{vc-cvs-stay-local} to @code{nil} (@pxref{CVS Options}).
@cindex manual version backups
The name of the automatic version backup for version @var{version}
of file @var{file} is @code{@var{file}.~@var{version}.~}. This is
almost the same as the name used by @kbd{C-x v ~}
@iftex
(@pxref{Old Revisions,,,emacs, the Emacs Manual}),
@end iftex
@ifnottex
(@pxref{Old Revisions}),
@end ifnottex
the only difference being the additional dot (@samp{.}) after the
version number. This similarity is intentional, because both kinds of
files store the same kind of information. The file made by @kbd{C-x v
~} acts as a @dfn{manual version backup}.
All the VC commands that operate on old versions of a file can use
both kinds of version backups. For instance, @kbd{C-x v ~} uses
either an automatic or a manual version backup, if possible, to get
the contents of the version you request. Likewise, @kbd{C-x v =} and
@kbd{C-x v u} use either an automatic or a manual version backup, if
one of them exists, to get the contents of a version to compare or
revert to. If you changed a file outside of Emacs, so that no
automatic version backup was created for the previous text, you can
create a manual backup of that version using @kbd{C-x v ~}, and thus
obtain the benefit of the local copy for Emacs commands.
The only difference in Emacs's handling of manual and automatic
version backups, once they exist, is that Emacs deletes automatic
version backups when you commit to the repository. By contrast,
manual version backups remain until you delete them.
@node Local Version Control
@subsubsection Local Version Control
@cindex local version control
@cindex local back end (version control)
When you make many changes to a file that comes from a remote
repository, it can be convenient to have version control on your local
machine as well. You can then record intermediate versions, revert to
a previous state, etc., before you actually commit your changes to the
remote server.
VC lets you do this by putting a file under a second, local version
control system, so that the file is effectively registered in two
systems at the same time. For the description here, we will assume
that the remote system is CVS, and you use RCS locally, although the
mechanism works with any combination of version control systems
(@dfn{back ends}).
To make it work with other back ends, you must make sure that the
``more local'' back end comes before the ``more remote'' back end in
the setting of @code{vc-handled-backends} (@pxref{Customizing VC}). By
default, this variable is set up so that you can use remote CVS and
local RCS as described here.
To start using local RCS for a file that comes from a remote CVS
server, you must @emph{register the file in RCS}, by typing @kbd{C-u
C-x v v rcs @key{RET}}. (In other words, use @code{vc-next-action} with a
prefix argument, and specify RCS as the back end.)
You can do this at any time; it does not matter whether you have
already modified the file with respect to the version in the CVS
repository. If possible, VC tries to make the RCS master start with
the unmodified repository version, then checks in any local changes
as a new version. This works if you have not made any changes yet, or
if the unmodified repository version exists locally as a version
backup (@pxref{Version Backups}). If the unmodified version is not
available locally, the RCS master starts with the modified version;
the only drawback to this is that you cannot compare your changes
locally to what is stored in the repository.
The version number of the RCS master is derived from the current CVS
version, starting a branch from it. For example, if the current CVS
version is 1.23, the local RCS branch will be 1.23.1. Version 1.23 in
the RCS master will be identical to version 1.23 under CVS; your first
changes are checked in as 1.23.1.1. (If the unmodified file is not
available locally, VC will check in the modified file twice, both as
1.23 and 1.23.1.1, to make the revision numbers consistent.)
If you do not use locking under CVS (the default), locking is also
disabled for RCS, so that editing under RCS works exactly as under
CVS.
When you are done with local editing, you can commit the final version
back to the CVS repository by typing @kbd{C-u C-x v v cvs @key{RET}}.
This initializes the log entry buffer
@iftex
(@pxref{Log Buffer,,,emacs, the Emacs Manual})
@end iftex
@ifnottex
(@pxref{Log Buffer})
@end ifnottex
to contain all the log entries you have recorded in the RCS master;
you can edit them as you wish, and then commit in CVS by typing
@kbd{C-c C-c}. If the commit is successful, VC removes the RCS
master, so that the file is once again registered under CVS only.
(The RCS master is not actually deleted, just renamed by appending
@samp{~} to the name, so that you can refer to it later if you wish.)
While using local RCS, you can pick up recent changes from the CVS
repository into your local file, or commit some of your changes back
to CVS, without terminating local RCS version control. To do this,
switch to the CVS back end temporarily, with the @kbd{C-x v b} command:
@table @kbd
@item C-x v b
Switch to another back end that the current file is registered
under (@code{vc-switch-backend}).
@item C-u C-x v b @var{backend} @key{RET}
Switch to @var{backend} for the current file.
@end table
@kindex C-x v b
@findex vc-switch-backend
@kbd{C-x v b} does not change the buffer contents, or any files; it
only changes VC's perspective on how to handle the file. Any
subsequent VC commands for that file will operate on the back end that
is currently selected.
If the current file is registered in more than one back end, typing
@kbd{C-x v b} ``cycles'' through all of these back ends. With a
prefix argument, it asks for the back end to use in the minibuffer.
Thus, if you are using local RCS, and you want to pick up some recent
changes in the file from remote CVS, first visit the file, then type
@kbd{C-x v b} to switch to CVS, and finally use @kbd{C-x v m
@key{RET}} to merge the news
@iftex
(@pxref{Merging,,,emacs, the Emacs Manual}).
@end iftex
@ifnottex
(@pxref{Merging}).
@end ifnottex
You can then switch back to RCS by typing @kbd{C-x v b} again, and
continue to edit locally.
But if you do this, the revision numbers in the RCS master no longer
correspond to those of CVS. Technically, this is not a problem, but
it can become difficult to keep track of what is in the CVS repository
and what is not. So we suggest that you return from time to time to
CVS-only operation, by committing your local changes back to the
repository using @kbd{C-u C-x v v cvs @key{RET}}.
@node Revision Tags
@subsection Revision Tags
@cindex tags and version control
In a VCS with per-file revision numbers (such as SCCS, RCS, or CVS)
@dfn{tag} is a named set of file versions (one for each registered
file) that you can treat as a unit. In a VCS with per-repository
version numbers (Subversion and most later ones) a tag is simply
a symbolic name for a revision.
One important kind of tag is a @dfn{release}, a (theoretically)
stable version of the system that is ready for distribution to users.
@menu
* Making Revision Tags:: The tag facilities.
* Revision Tag Caveats:: Things to be careful of when using tags.
@end menu
@node Making Revision Tags
@subsubsection Making and Using Revision Tags
There are two basic commands for tags; one makes a
tag with a given name, the other retrieves a named tag.
@table @code
@kindex C-x v s
@findex vc-create-tag
@item C-x v s @var{name} @key{RET}
Define the working revision of every registered file in or under the
current directory as a tag named @var{name}
(@code{vc-create-tag}).
@kindex C-x v r
@findex vc-retrieve-tag
@item C-x v r @var{name} @key{RET}
For all registered files at or below the current directory level,
retrieve the tagged revision @var{name}. This command will
switch to a branch if @var{name} is a branch name and your VCS
distinguishes branches from tags.
(@code{vc-retrieve-tag}).
This command reports an error if any files are locked at or below the
current directory, without changing anything; this is to avoid
overwriting work in progress.
@end table
Tags are inexpensive, so you need not hesitate to create them whenever
they are useful. Branches vary in cost depending on your VCS; in
older ones they may be expensive.
You can give a tag or branch name as an argument to @kbd{C-x v =} or
@kbd{C-x v ~}
@iftex
(@pxref{Old Revisions,,,emacs, the Emacs Manual}).
@end iftex
@ifnottex
(@pxref{Old Revisions}).
@end ifnottex
Thus, you can use it to compare a tagged version against the current files,
or two tagged versions against each other.
@node Revision Tag Caveats
@subsubsection Revision Tag Caveats
For SCCS, VC implements tags itself; these tags are visible only
through VC. Most later systems (including CVS, Subversion, bzr, git,
and hg) have a native tag facility, and VC uses it where
available; those tags will be visible even when you bypass VC.
There is no support for VC tags using GNU Arch yet.
Under older VCSes (SCCS, RCS, CVS, early versions of Subversion),
renaming and deletion could create some difficulties with tags. This is
not a VC-specific problem, but a general design issue in version
control systems that was not solved effectively until the earliest
third-generation systems.
In a file-oriented VCS, when you rename a registered file you need
to rename its master along with it; the command @code{vc-rename-file}
will do this automatically. If you are using SCCS, you must also
update the records of the tag, to mention the file by its new name
(@code{vc-rename-file} does this, too). An old tag that refers to a
master file that no longer exists under the recorded name is invalid;
VC can no longer retrieve it. It would be beyond the scope of this
manual to explain enough about RCS and SCCS to explain how to update
the tags by hand.
Using @code{vc-rename-file} makes the tag remain valid for
retrieval, but it does not solve all problems. For example, some of the
files in your program probably refer to others by name. At the very
least, the makefile probably mentions the file that you renamed. If you
retrieve an old tag, the renamed file is retrieved under its new
name, which is not the name that the makefile expects. So the program
won't really work as retrieved.
@node Miscellaneous VC @node Miscellaneous VC
@subsection Miscellaneous Commands and Features of VC @subsection Miscellaneous Commands and Features of VC
@ -307,52 +12,55 @@ won't really work as retrieved.
@menu @menu
* Change Logs and VC:: Generating a change log file from log entries. * Change Logs and VC:: Generating a change log file from log entries.
* Renaming and VC:: A command to rename both the source and master * VC Delete/Rename:: Deleting and renaming version-controlled files.
file correctly. * Revision Tags:: Symbolic names for revisions.
* Version Headers:: Inserting version control headers into working files. * Version Headers:: Inserting version control headers into working files.
@end menu @end menu
@node Change Logs and VC @node Change Logs and VC
@subsubsection Change Logs and VC @subsubsection Change Logs and VC
If you use RCS or CVS for a program and also maintain a change log If you use RCS or CVS for a program with a @file{ChangeLog} file
file for it
@iftex @iftex
(@pxref{Change Log,,,emacs, the Emacs Manual}), (@pxref{Change Log,,,emacs, the Emacs Manual}),
@end iftex @end iftex
@ifnottex @ifnottex
(@pxref{Change Log}), (@pxref{Change Log}),
@end ifnottex @end ifnottex
you can generate change log entries automatically from the version you can generate change log entries from the version control log
control log entries: entries of previous commits.
Note that this only works with RCS or CVS. This procedure would be
particularly incorrect on a modern changeset-based version control
system, where changes to the @file{ChangeLog} file would normally be
committed as part of a changeset. In that case, you should write the
change log entries first, then pull them into the @samp{*vc-log*}
buffer when you commit
@iftex
(@pxref{Log Buffer,,,emacs, the Emacs Manual}).
@end iftex
@ifnottex
(@pxref{Log Buffer}).
@end ifnottex
@table @kbd @table @kbd
@item C-x v a @item C-x v a
@kindex C-x v a @kindex C-x v a
@findex vc-update-change-log @findex vc-update-change-log
Visit the current directory's change log file and, for registered files Visit the current directory's @file{ChangeLog} file and, for
in that directory, create new entries for versions checked in since the registered files in that directory, create new entries for versions
most recent entry in the change log file. committed since the most recent change log entry
(@code{vc-update-change-log}). (@code{vc-update-change-log}).
This command works with RCS or CVS only, not with any of the other
back ends.
@item C-u C-x v a @item C-u C-x v a
As above, but only find entries for the current buffer's file. As above, but only find entries for the current buffer's file.
@item M-1 C-x v a
As above, but find entries for all the currently visited files that are
maintained with version control. This works only with RCS, and it puts
all entries in the log for the default directory, which may not be
appropriate.
@end table @end table
For example, suppose the first line of @file{ChangeLog} is dated For example, suppose the first line of @file{ChangeLog} is dated
1999-04-10, and that the only check-in since then was by Nathaniel 1999-04-10, and that the only check-in since then was by Nathaniel
Bowditch to @file{rcs2log} on 1999-05-22 with log text @samp{Ignore log Bowditch to @file{rcs2log} on 1999-05-22 with log entry @samp{Ignore
messages that start with `#'.}. Then @kbd{C-x v a} visits log messages that start with `#'.}. Then @kbd{C-x v a} inserts this
@file{ChangeLog} and inserts text like this: @file{ChangeLog} entry:
@iftex @iftex
@medbreak @medbreak
@ -369,17 +77,11 @@ messages that start with `#'.}. Then @kbd{C-x v a} visits
@end iftex @end iftex
@noindent @noindent
You can then edit the new change log entry further as you wish. If the version control log entry specifies a function name (in
parenthesis at the beginning of a line), that is reflected in the
Some of the new change log entries may duplicate what's already in @file{ChangeLog} entry. For example, if a log entry for @file{vc.el}
ChangeLog. You will have to remove these duplicates by hand. is @samp{(vc-do-command): Check call-process status.}, the
@file{ChangeLog} entry is:
Normally, the log entry for file @file{foo} is displayed as @samp{*
foo: @var{text of log entry}}. The @samp{:} after @file{foo} is omitted
if the text of the log entry starts with @w{@samp{(@var{functionname}):
}}. For example, if the log entry for @file{vc.el} is
@samp{(vc-do-command): Check call-process status.}, then the text in
@file{ChangeLog} looks like this:
@iftex @iftex
@medbreak @medbreak
@ -395,221 +97,184 @@ if the text of the log entry starts with @w{@samp{(@var{functionname}):
@medbreak @medbreak
@end iftex @end iftex
When @kbd{C-x v a} adds several change log entries at once, it groups When @kbd{C-x v a} adds several change log entries at once, it
related log entries together if they all are checked in by the same groups related log entries together if they all are checked in by the
author at nearly the same time. If the log entries for several such same author at nearly the same time. If the log entries for several
files all have the same text, it coalesces them into a single entry. such files all have the same text, it coalesces them into a single
For example, suppose the most recent check-ins have the following log entry.
entries:
@flushleft @node VC Delete/Rename
@bullet{} For @file{vc.texinfo}: @samp{Fix expansion typos.} @subsubsection Deleting and Renaming Version-Controlled Files
@bullet{} For @file{vc.el}: @samp{Don't call expand-file-name.} @cindex renaming version-controlled files
@bullet{} For @file{vc-hooks.el}: @samp{Don't call expand-file-name.}
@end flushleft
@noindent @table @kbd
They appear like this in @file{ChangeLog}: @item M-x vc-delete-file
Prompt for a file name, delete the file from the working tree, and
schedule the deletion for committing.
@item M-x vc-rename-file
Prompt for two file names, @var{VAR} and @var{OLD}, rename them in the
working tree, and schedule the renaming for committing.
@end table
@findex vc-delete-file
If you wish to delete a version-controlled file, use the command
@kbd{M-x vc-delete-file}. This prompts for the file name, and deletes
it via the version control system. The file is removed from the
working tree, and in the VC Directory buffer
@iftex @iftex
@medbreak (@pxref{VC Directory Mode}),
@end iftex @end iftex
@smallexample @ifnottex
@group (@pxref{VC Directory Mode}),
1999-04-01 Nathaniel Bowditch <nat@@apn.org> @end ifnottex
it is displayed with the @samp{removed} status. When you commit it,
* vc.texinfo: Fix expansion typos. the deletion takes effect in the repository.
* vc.el, vc-hooks.el: Don't call expand-file-name.
@end group
@end smallexample
@iftex
@medbreak
@end iftex
Normally, @kbd{C-x v a} separates log entries by a blank line, but you
can mark several related log entries to be clumped together (without an
intervening blank line) by starting the text of each related log entry
with a label of the form @w{@samp{@{@var{clumpname}@} }}. The label
itself is not copied to @file{ChangeLog}. For example, suppose the log
entries are:
@flushleft
@bullet{} For @file{vc.texinfo}: @samp{@{expand@} Fix expansion typos.}
@bullet{} For @file{vc.el}: @samp{@{expand@} Don't call expand-file-name.}
@bullet{} For @file{vc-hooks.el}: @samp{@{expand@} Don't call expand-file-name.}
@end flushleft
@noindent
Then the text in @file{ChangeLog} looks like this:
@iftex
@medbreak
@end iftex
@smallexample
@group
1999-04-01 Nathaniel Bowditch <nat@@apn.org>
* vc.texinfo: Fix expansion typos.
* vc.el, vc-hooks.el: Don't call expand-file-name.
@end group
@end smallexample
@iftex
@medbreak
@end iftex
A log entry whose text begins with @samp{#} is not copied to
@file{ChangeLog}. For example, if you merely fix some misspellings in
comments, you can log the change with an entry beginning with @samp{#}
to avoid putting such trivia into @file{ChangeLog}.
@node Renaming and VC
@subsubsection Renaming VC Work Files and Master Files
@findex vc-rename-file @findex vc-rename-file
When you rename a registered file, you must also rename its master To rename a version-controlled file, type @kbd{M-x vc-rename-file}.
file correspondingly to get proper results. Use @code{vc-rename-file} This prompts for two arguments: the name of the file you wish to
to rename the source file as you specify, and rename its master file rename, and the new name; then it performs the renaming via the
accordingly. It also updates any tags (@pxref{Revision Tags}) that version control system. The renaming takes effect immediately in the
mention the file, so that they use the new name; despite this, the working tree, and takes effect in the repository when you commit the
tag thus modified may not completely work (@pxref{Revision Tag Caveats}). renamed file.
Some back ends do not provide an explicit rename operation to their On modern version control systems that have built-in support for
repositories. After issuing @code{vc-rename-file}, use @kbd{C-x v v} renaming, the renamed file retains the full change history of the
on the original and renamed buffers and provide the necessary edit original file. On CVS and older version control systems, the
log. @code{vc-rename-file} command actually works by creating a copy of the
old file under the new name, registering it, and deleting the old
file. In this case, the change history is not preserved.
You cannot use @code{vc-rename-file} on a file that is locked by @node Revision Tags
someone else. @subsubsection Revision Tags
@cindex revision tag
@cindex tags for version control
Most version control systems allow you to apply a @dfn{revision tag}
to a specific version of a version-controlled tree. On modern
changeset-based version control systems, a revision tag is simply a
symbolic name for a particular revision. On older file-based systems
like CVS, each tag is added to the entire set of version-controlled
files, allowing them to be handled as a unit. Revision tags are
commonly used to identify releases that are distributed to users.
There are two basic commands for tags; one makes a tag with a given
name, the other retrieves a named tag.
@table @code
@kindex C-x v s
@findex vc-create-tag
@item C-x v s @var{name} @key{RET}
Define the working revision of every registered file in or under the
current directory as a tag named @var{name}
(@code{vc-create-tag}).
@kindex C-x v r
@findex vc-retrieve-tag
@item C-x v r @var{name} @key{RET}
For all registered files at or below the current directory level,
retrieve the tagged revision @var{name}. This command will switch to a
branch if @var{name} is a branch name and your VCS distinguishes
branches from tags. (@code{vc-retrieve-tag}).
This command reports an error if any files are locked at or below the
current directory, without changing anything; this is to avoid
overwriting work in progress.
@end table
You can give a tag or branch name as an argument to @kbd{C-x v =} or
@kbd{C-x v ~}
@iftex
(@pxref{Old Revisions,,,emacs, the Emacs Manual}).
@end iftex
@ifnottex
(@pxref{Old Revisions}).
@end ifnottex
Thus, you can use it to compare a tagged version against the current files,
or two tagged versions against each other.
On SCCS, VC implements tags itself; these tags are visible only
through VC. Most later systems (including CVS, Subversion, bzr, git,
and hg) have a native tag facility, and VC uses it where available;
those tags will be visible even when you bypass VC.
In a file-oriented VCS, when you rename a registered file you need
to rename its master along with it; the command @code{vc-rename-file}
will do this automatically. If you are using SCCS, you must also
update the records of the tag, to mention the file by its new name
(@code{vc-rename-file} does this, too). An old tag that refers to a
master file that no longer exists under the recorded name is invalid;
VC can no longer retrieve it. It would be beyond the scope of this
manual to explain enough about RCS and SCCS to explain how to update
the tags by hand. Using @code{vc-rename-file} makes the tag remain
valid for retrieval, but it does not solve all problems. For example,
some of the files in your program probably refer to others by name.
At the very least, the makefile probably mentions the file that you
renamed. If you retrieve an old tag, the renamed file is retrieved
under its new name, which is not the name that the makefile expects.
So the program won't really work as retrieved.
@node Version Headers @node Version Headers
@subsubsection Inserting Version Control Headers @subsubsection Inserting Version Control Headers
Sometimes it is convenient to put version identification strings On Subversion, CVS, RCS, and SCCS, you can put certain special
directly into working files. Certain special strings called strings called @dfn{version headers} into a work file. When the file
@dfn{version headers} are replaced in each successive version by the is committed, the version control system automatically puts the
number of that version, the name of the user who created it, and other revision number, the name of the user who made the commit, and other
relevant information. All of the back ends that VC supports have such relevant information into the version header.
a mechanism, except GNU Arch.
VC does not normally use the information contained in these headers. @vindex vc-consult-headers
The exception is RCS---with RCS, version headers are sometimes more VC does not normally use the information in the version headers. As
reliable than the master file to determine which version of the file an exception, when using RCS, Emacs uses the version header, if there
you are editing. Note that in a multi-branch environment, version is one, to determine the file version, since it is often more reliable
headers are necessary to make VC behave correctly than the RCS master file. To inhibit using the version header this
@iftex way, change the variable @code{vc-consult-headers} to @code{nil}.
(@pxref{Multi-User Branching,,,emacs, the Emacs Manual}).
@end iftex
@ifnottex
(@pxref{Multi-User Branching}).
@end ifnottex
Searching for RCS version headers is controlled by the variable
@code{vc-consult-headers}. If it is non-@code{nil} (the default),
Emacs searches for headers to determine the version number you are
editing. Setting it to @code{nil} disables this feature.
Note that although CVS uses the same kind of version headers as RCS
does, VC never searches for these headers if you are using CVS,
regardless of the above setting.
@kindex C-x v h @kindex C-x v h
@findex vc-insert-headers @findex vc-insert-headers
You can use the @kbd{C-x v h} command (@code{vc-insert-headers}) to
insert a suitable header string.
@table @kbd
@item C-x v h
Insert headers in a file for use with your version-control system.
@end table
@vindex vc-@var{backend}-header @vindex vc-@var{backend}-header
The default header string is @samp{@w{$}Id$} for RCS and To insert a suitable header string into the current buffer, type
@samp{@w{%}W%} for SCCS. You can specify other headers to insert by @kbd{C-x v h} (@code{vc-insert-headers}). This command works only on
setting the variables @code{vc-@var{backend}-header} where Subversion, CVS, RCS, and SCCS. The variable
@var{backend} is @code{rcs} or @code{sccs}. @code{vc-@var{backend}-header} contains the list of keywords to insert
into the version header; for instance, CVS uses @code{vc-cvs-header},
Instead of a single string, you can specify a list of strings; then whose default value is @code{'("\$Id\$")}. (The extra backslashes
each string in the list is inserted as a separate header on a line of prevent the string constant from being interpreted as a header, if the
its own. Emacs Lisp file defining it is maintained with version control.) The
@kbd{C-x v h} command inserts each keyword in the list on a new line
It may be necessary to use apparently-superfluous backslashes when at point, surrounded by tabs, and inside comment delimiters if
writing the strings that you put in this variable. For instance, you necessary.
might write @code{"$Id\$"} rather than @code{"$Id@w{$}"}. The extra
backslash prevents the string constant from being interpreted as a
header, if the Emacs Lisp file containing it is maintained with
version control.
@vindex vc-comment-alist
Each header is inserted surrounded by tabs, inside comment delimiters,
on a new line at point. Normally the ordinary comment
start and comment end strings of the current mode are used, but for
certain modes, there are special comment delimiters for this purpose;
the variable @code{vc-comment-alist} specifies them. Each element of
this list has the form @code{(@var{mode} @var{starter} @var{ender})}.
@vindex vc-static-header-alist @vindex vc-static-header-alist
The variable @code{vc-static-header-alist} specifies further strings The variable @code{vc-static-header-alist} specifies further strings
to add based on the name of the buffer. Its value should be a list of to add based on the name of the buffer. Its value should be a list of
elements of the form @code{(@var{regexp} . @var{format})}. Whenever elements of the form @code{(@var{regexp} . @var{format})}. Whenever
@var{regexp} matches the buffer name, @var{format} is inserted as part @var{regexp} matches the buffer name, @var{format} is also inserted as
of the header. A header line is inserted for each element that matches part of the version header. A @samp{%s} in @var{format} is replaced
the buffer name, and for each string specified by with the file's version control type.
@code{vc-@var{backend}-header}. The header line is made by processing the
string from @code{vc-@var{backend}-header} with the format taken from the
element. The default value for @code{vc-static-header-alist} is as follows:
@example
@group
(("\\.c$" .
"\n#ifndef lint\nstatic char vcid[] = \"\%s\";\n\
#endif /* lint */\n"))
@end group
@end example
@noindent
It specifies insertion of text of this form:
@example
@group
#ifndef lint
static char vcid[] = "@var{string}";
#endif /* lint */
@end group
@end example
@noindent
Note that the text above starts with a blank line.
If you use more than one version header in a file, put them close
together in the file. The mechanism in @code{revert-buffer} that
preserves markers may not handle markers positioned between two version
headers.
@node Customizing VC @node Customizing VC
@subsection Customizing VC @subsection Customizing VC
@vindex vc-handled-backends @vindex vc-handled-backends
The variable @code{vc-handled-backends} determines which version The variable @code{vc-handled-backends} determines which version
control systems VC should handle. The default value is @code{(RCS CVS control systems VC should handle. The default value is @code{(RCS CVS
SVN SCCS Bzr Git Hg Mtn Arch)}, so it contains all the version systems SVN SCCS Bzr Git Hg Mtn Arch)}, so it contains all the version systems
that are currently supported. If you want VC to ignore one or more of that are currently supported. If you want VC to ignore one or more of
these systems, exclude its name from the list. To disable VC entirely, these systems, exclude its name from the list. To disable VC
set this variable to @code{nil}. entirely, set this variable to @code{nil}.
The order of systems in the list is significant: when you visit a file The order of systems in the list is significant: when you visit a
registered in more than one system (@pxref{Local Version Control}), VC file registered in more than one system, VC uses the system that comes
uses the system that comes first in @code{vc-handled-backends} by first in @code{vc-handled-backends} by default. The order is also
default. The order is also significant when you register a file for significant when you register a file for the first time
the first time, see
@iftex @iftex
@ref{Registering,,,emacs, the Emacs Manual}, (@pxref{Registering,,,emacs, the Emacs Manual}).
@end iftex @end iftex
@ifnottex @ifnottex
@ref{Registering}, (@pxref{Registering}).
@end ifnottex @end ifnottex
for details.
@menu @menu
* General VC Options:: Options that apply to multiple back ends. * General VC Options:: Options that apply to multiple back ends.
@ -626,40 +291,27 @@ maintained with version control. If you want to make backup files even
for files that use version control, set the variable for files that use version control, set the variable
@code{vc-make-backup-files} to a non-@code{nil} value. @code{vc-make-backup-files} to a non-@code{nil} value.
@vindex vc-keep-workfiles
Normally the work file exists all the time, whether it is locked or
not. If you set @code{vc-keep-workfiles} to @code{nil}, then checking
in a new version with @kbd{C-x v v} deletes the work file; but any
attempt to visit the file with Emacs creates it again. (With CVS, work
files are always kept.)
@vindex vc-follow-symlinks @vindex vc-follow-symlinks
Editing a version-controlled file through a symbolic link can be @cindex symbolic links (and version control)
dangerous. It bypasses the version control system---you can edit the Editing a version-controlled file through a symbolic link may cause
file without locking it, and fail to check your changes in. Also, unexpected results, if you are unaware that the underlying file is
your changes might overwrite those of another user. To protect against version-controlled. The variable @code{vc-follow-symlinks} controls
this, VC checks each symbolic link that you visit, to see if it points what Emacs does if you try to visit a symbolic link pointing to a
to a file under version control. version-controlled file. If the value is @code{ask} (the default),
Emacs asks for confirmation. If it is @code{nil}, Emacs just displays
The variable @code{vc-follow-symlinks} controls what to do when a a warning message. If it is @code{t}, Emacs automatically follows the
symbolic link points to a version-controlled file. If it is @code{nil}, link and visits the real file instead.
VC only displays a warning message. If it is @code{t}, VC automatically
follows the link, and visits the real file instead, telling you about
this in the echo area. If the value is @code{ask} (the default), VC
asks you each time whether to follow the link.
@vindex vc-suppress-confirm @vindex vc-suppress-confirm
If @code{vc-suppress-confirm} is non-@code{nil}, then @kbd{C-x v v} If @code{vc-suppress-confirm} is non-@code{nil}, then @kbd{C-x v v}
and @kbd{C-x v i} can save the current buffer without asking, and and @kbd{C-x v i} can save the current buffer without asking, and
@kbd{C-x v u} also operates without asking for confirmation. (This @kbd{C-x v u} also operates without asking for confirmation.
variable does not affect @kbd{C-x v c}; that operation is so drastic
that it should always ask for confirmation.)
@vindex vc-command-messages @vindex vc-command-messages
VC mode does much of its work by running the shell commands for the VC mode does much of its work by running the shell commands for the
appropriate backend. If @code{vc-command-messages} is non-@code{nil}, VC appropriate version control system. If @code{vc-command-messages} is
displays messages to indicate which shell commands it runs, and non-@code{nil}, VC displays messages to indicate which shell commands
additional messages when the commands finish. it runs, and additional messages when the commands finish.
@vindex vc-path @vindex vc-path
You can specify additional directories to search for version control You can specify additional directories to search for version control
@ -715,37 +367,16 @@ the variable @code{vc-mistrust-permissions} affects SCCS use, but
@node CVS Options @node CVS Options
@subsubsection Options specific for CVS @subsubsection Options specific for CVS
@cindex locking (CVS) @vindex vc-cvs-global-switches
By default, CVS does not use locking to coordinate the activities of You can specify additional command line options to pass to all CVS
several users; anyone can change a work file at any time. However, operations in the variable @code{vc-cvs-global-switches}. These
there are ways to restrict this, resulting in behavior that resembles switches are inserted immediately after the @code{cvs} command, before
locking. the name of the operation to invoke.
@cindex CVSREAD environment variable (CVS)
For one thing, you can set the @env{CVSREAD} environment variable
(the value you use makes no difference). If this variable is defined,
CVS makes your work files read-only by default. In Emacs, you must
type @kbd{C-x v v} to make the file writable, so that editing works
in fact similar as if locking was used. Note however, that no actual
locking is performed, so several users can make their files writable
at the same time. When setting @env{CVSREAD} for the first time, make
sure to check out all your modules anew, so that the file protections
are set correctly.
@cindex cvs watch feature
@cindex watching files (CVS)
Another way to achieve something similar to locking is to use the
@dfn{watch} feature of CVS. If a file is being watched, CVS makes it
read-only by default, and you must also use @kbd{C-x v v} in Emacs to
make it writable. VC calls @code{cvs edit} to make the file writable,
and CVS takes care to notify other developers of the fact that you
intend to change the file. See the CVS documentation for details on
using the watch feature.
@vindex vc-stay-local @vindex vc-stay-local
@vindex vc-cvs-stay-local @vindex vc-cvs-stay-local
@cindex remote repositories (CVS) @cindex remote repositories (CVS)
When a file's repository is on a remote machine, VC tries to keep When using a CVS repository on a remote machine, VC can try keeping
network interactions to a minimum. This is controlled by the variable network interactions to a minimum. This is controlled by the variable
@code{vc-cvs-stay-local}. There is another variable, @code{vc-cvs-stay-local}. There is another variable,
@code{vc-stay-local}, which enables the feature also for other back @code{vc-stay-local}, which enables the feature also for other back
@ -753,36 +384,58 @@ ends that support it, including CVS. In the following, we will talk
only about @code{vc-cvs-stay-local}, but everything applies to only about @code{vc-cvs-stay-local}, but everything applies to
@code{vc-stay-local} as well. @code{vc-stay-local} as well.
If @code{vc-cvs-stay-local} is @code{t} (the default), then VC uses If @code{vc-cvs-stay-local} is @code{t} (the default), VC determines
only the entry in the local CVS subdirectory to determine the file's the version control status of each file using only the entry in the
state (and possibly information returned by previous CVS commands). local CVS subdirectory and the information returned by previous CVS
One consequence of this is that when you have modified a file, and commands. As a consequence, if you have modified a file and somebody
somebody else has already checked in other changes to the file, you else has checked in other changes, you will not be notified of the
are not notified of it until you actually try to commit. (But you can conflict until you try to commit.
try to pick up any recent changes from the repository first, using
@kbd{C-x v m @key{RET}},
@iftex
@pxref{Merging,,,emacs, the Emacs Manual}).
@end iftex
@ifnottex
@pxref{Merging}).
@end ifnottex
When @code{vc-cvs-stay-local} is @code{t}, VC also makes local If you change @code{vc-cvs-stay-local} to @code{nil}, VC queries the
version backups, so that simple diff and revert operations are remote repository @emph{before} it decides what to do in
completely local (@pxref{Version Backups}). @code{vc-next-action} (@kbd{C-x v v}), just as it does for local
repositories.
On the other hand, if you set @code{vc-cvs-stay-local} to @code{nil},
then VC queries the remote repository @emph{before} it decides what to
do in @code{vc-next-action} (@kbd{C-x v v}), just as it does for local
repositories. It also does not make any version backups.
You can also set @code{vc-cvs-stay-local} to a regular expression You can also set @code{vc-cvs-stay-local} to a regular expression
that is matched against the repository host name; VC then stays local that is matched against the repository host name; VC then stays local
only for repositories from hosts that match the pattern. only for repositories from hosts that match the pattern.
@vindex vc-cvs-global-switches @cindex automatic version backups
You can specify additional command line options to pass to all CVS When using a remote repository, Emacs normally makes @dfn{automatic
operations in the variable @code{vc-cvs-global-switches}. These version backups} of the original versions of each edited file. These
switches are inserted immediately after the @code{cvs} command, before local backups are made whenever you save the first changes to a file,
the name of the operation to invoke. and they are removed after you commit your changes to the repository.
(Note that these are not the same as ordinary Emacs backup files;
@iftex
@pxref{Backup,,,emacs, the Emacs Manual}.)
@end iftex
@ifnottex
@pxref{Backup}.)
@end ifnottex
Commands like @kbd{C-x v =} and @kbd{C-x v u} make use of automatic
version backups, if possible, to avoid having to access the network.
Setting @code{vc-cvs-stay-local} to @code{nil} disables the making
of automatic version backups.
@cindex manual version backups
Automatic version backups have names of the form
@w{@code{@var{file}.~@var{version}.~}}. This is similar to the name
that @kbd{C-x v ~} saves old versions to
@iftex
(@pxref{Old Revisions,,,emacs, the Emacs Manual}),
@end iftex
@ifnottex
(@pxref{Old Revisions}),
@end ifnottex
except for the additional dot (@samp{.}) after the version. The
relevant VC commands can use both kinds of version backups. The main
difference is that the ``manual'' version backups made by @kbd{C-x v
~} are not deleted automatically when you commit.
@cindex locking (CVS)
CVS does not use locking by default, but there are ways to enable
locking-like behavior using its @env{CVSREAD} or @dfn{watch} feature;
see the CVS documentation for details. If that case, you can use
@kbd{C-x v v} in Emacs to toggle locking, as you would for a
locking-based version control system (@pxref{VC With A Locking VCS}).

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node Windows, Frames, Buffers, Top @node Windows, Frames, Buffers, Top

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. @c This is part of the Emacs manual.
@c Copyright (C) 1987, 1993-1995, 1997, 2001-2011 @c Copyright (C) 1987, 1993-1995, 1997, 2001-2012
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@node X Resources, Antinews, Emacs Invocation, Top @node X Resources, Antinews, Emacs Invocation, Top
@ -51,15 +51,16 @@ this file do not take effect immediately, because the X server stores
its own list of resources; to update it, use the command its own list of resources; to update it, use the command
@command{xrdb}---for instance, @samp{xrdb ~/.Xdefaults}. @command{xrdb}---for instance, @samp{xrdb ~/.Xdefaults}.
@cindex Registry (MS-Windows) @cindex registry, setting resources (MS-Windows)
(MS-Windows systems do not support X resource files; on Windows, (MS-Windows systems do not support X resource files; on Windows,
Emacs looks for X resources in the Windows Registry, first under the Emacs looks for X resources in the Windows Registry, first under the
key @samp{HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs} and then under the key key @samp{HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs}, which affects only
@samp{HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs}. The menu and scroll the current user and override the system-wide settings, and then under
bars are native widgets on MS-Windows, so they are only customizable the key @samp{HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs}, which affects
via the system-wide settings in the Display Control Panel. You can all users of the system. The menu and scroll bars are native widgets
also set resources using the @samp{-xrm} command line option, as on MS-Windows, so they are only customizable via the system-wide
explained below.) settings in the Display Control Panel. You can also set resources
using the @samp{-xrm} command line option, as explained below.)
Each line in the X resource file specifies a value for one option or Each line in the X resource file specifies a value for one option or
for a collection of related options. Each resource specification for a collection of related options. Each resource specification

View file

@ -471,7 +471,7 @@
;; coding: utf-8 ;; coding: utf-8
;; End: ;; End:
Copyright (C) 2001-2011 Free Software Foundation, Inc. Copyright (C) 2001-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs. This file is part of GNU Emacs.

View file

@ -1,6 +1,6 @@
#### Makefile for the Emacs Lisp Introduction manual #### Makefile for the Emacs Lisp Introduction manual
# Copyright (C) 1994-1999, 2001-2011 Free Software Foundation, Inc. # Copyright (C) 1994-1999, 2001-2012 Free Software Foundation, Inc.
# This file is part of GNU Emacs. # This file is part of GNU Emacs.

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