1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-18 03:40:47 -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>
* 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>
* 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>
@ -2439,7 +2447,7 @@
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)
@ -10072,7 +10080,7 @@
;; coding: utf-8
;; 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.

View file

@ -1,6 +1,6 @@
# 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.
#

View file

@ -1,5 +1,5 @@
GNU Emacs Installation Guide
Copyright (C) 1992, 1994, 1996-1997, 2000-2011
Copyright (C) 1992, 1994, 1996-1997, 2000-2012
Free Software Foundation, Inc.
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.

View file

@ -2,7 +2,7 @@
# DIST: make most of the changes to this file you might want, so try
# 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.

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.

View file

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

View file

@ -61,13 +61,6 @@ sk Miroslav Vaško
* 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
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
@ -90,25 +83,8 @@ and change key bindings where necessary. The current list of modes:
`log-edit-comment-search-forward'. Perhaps search commands
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
** Clean up Emacs.app references in code and documentation.
** Document new font backend
** Document XEmbed support
** Check the Emacs Tutorial.
@ -148,19 +124,19 @@ TUTORIAL.zh
** Check the manual.
abbrevs.texi
abbrevs.texi cyd
ack.texi
anti.texi
arevert-xtra.texi cyd
basic.texi cyd
buffers.texi cyd
building.texi
building.texi cyd
calendar.texi
cal-xtra.texi
cmdargs.texi
commands.texi cyd
custom.texi
dired.texi
custom.texi cyd
dired.texi cyd
dired-xtra.texi
display.texi cyd
emacs.texi
@ -177,27 +153,27 @@ indent.texi cyd
killing.texi cyd
kmacro.texi cyd
macos.texi
maintaining.texi
major.texi
maintaining.texi cyd
mark.texi cyd
mini.texi
misc.texi
misc.texi cyd
modes.texi cyd
msdog.texi
msdog-xtra.texi
mule.texi
m-x.texi cyd
package.texi cyd
picture-xtra.texi
programs.texi
programs.texi cyd
regs.texi cyd
rmail.texi
screen.texi cyd
search.texi cyd
sending.texi
text.texi
trouble.texi
vc-xtra.texi
vc1-xtra.texi
sending.texi cyd
text.texi cyd
trouble.texi cyd
vc-xtra.texi cyd
vc1-xtra.texi cyd
windows.texi cyd
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.

View file

@ -1,6 +1,6 @@
;;; 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.

View file

@ -1,6 +1,6 @@
/* 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.

View file

@ -1,7 +1,7 @@
#! /usr/bin/perl
# 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.

View file

@ -1,6 +1,6 @@
;;; 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>
;; 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
National Institute of Advanced Industrial Science and Technology (AIST)
Registration Number H13PRO009

View file

@ -1,6 +1,6 @@
;;; 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>
;; Maintainer: Markus Rost <rost@math.ohio-state.edu>

View file

@ -1,6 +1,6 @@
#! /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.

View file

@ -1,6 +1,6 @@
;;; 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>
;; 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
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
elements found since the last lambda expression. It should return a
semantic element (see below.)

View file

@ -1,6 +1,6 @@
;;; 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>
;; David Ponce <david@dponce.com>
@ -261,7 +261,7 @@ define
;
;; 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
;; (EXPANDFULL $1 structsubparts)

View file

@ -1,6 +1,6 @@
;;; 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>
;; Maintainer: David Ponce <david@dponce.com>

View file

@ -1,6 +1,6 @@
;;; 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>
;; Maintainer: David Ponce <david@dponce.com>

View file

@ -1,6 +1,6 @@
;;; 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.
;; Author: Joakim Verona
@ -66,7 +66,7 @@
;; Other Goals
%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
;; when possible
;; ------------------

View file

@ -1,6 +1,6 @@
;;; 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>
;; David Ponce <david@dponce.com>

View file

@ -1,6 +1,6 @@
;;; 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
;; Author: Richard Kim <ryk@dspwiz.com>

View file

@ -1,6 +1,6 @@
;;; 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.

View file

@ -1,6 +1,6 @@
;;; 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>
;; Keywords: syntax

View file

@ -1,6 +1,6 @@
;;; 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>
;; Maintainer: David Ponce <david@dponce.com>

View file

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

View file

@ -2,7 +2,7 @@
# Build Emacs with various options for profiling, debugging,
# 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.

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.

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.

View file

@ -1,6 +1,6 @@
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.

View file

@ -1,6 +1,6 @@
-*- 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.
From README.multi-tty in the multi-tty branch.

View file

@ -1,6 +1,6 @@
-*-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.
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.
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.
Precompiled Distributions of

View file

@ -1,7 +1,7 @@
#!/bin/sh
### 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>

View file

@ -1,7 +1,7 @@
#!/bin/sh
### 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>

View file

@ -2,7 +2,7 @@
/* 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.
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.
## FIXME this comes from src/s/{gnu,gnu-linux}.h:
## #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
gnu*) REL_ALLOC=no ;;
esac
@ -10339,9 +10339,15 @@ fi
done
if test "$ac_cv_header_pthread_h"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_self in -lpthread" >&5
$as_echo_n "checking for pthread_self in -lpthread... " >&6; }
if test "${ac_cv_lib_pthread_pthread_self+set}" = set; then :
if test "$GMALLOC_OBJ" = gmalloc.o; then
emacs_pthread_function=pthread_atfork
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
else
ac_check_lib_save_LIBS=$LIBS
@ -10355,27 +10361,29 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#ifdef __cplusplus
extern "C"
#endif
char pthread_self ();
char $emacs_pthread_function ();
int
main ()
{
return pthread_self ();
return $emacs_pthread_function ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_pthread_pthread_self=yes
eval "$as_ac_Lib=yes"
else
ac_cv_lib_pthread_pthread_self=no
eval "$as_ac_Lib=no"
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_self" >&5
$as_echo "$ac_cv_lib_pthread_pthread_self" >&6; }
if test "x$ac_cv_lib_pthread_pthread_self" = x""yes; then :
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
eval as_val=\$$as_ac_Lib
if test "x$as_val" = x""yes; then :
HAVE_PTHREAD=yes
fi

View file

@ -1,7 +1,7 @@
#!/bin/bash
### 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>

View file

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

View file

@ -4,7 +4,7 @@ dnl autoconf
dnl in the directory containing this script.
dnl If you changed any AC_DEFINES, also run autoheader.
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 This file is part of GNU Emacs.
dnl
@ -1683,7 +1683,7 @@ if test "$doug_lea_malloc" = "yes" ; then
## Use mmap directly for allocating larger buffers.
## FIXME this comes from src/s/{gnu,gnu-linux}.h:
## #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
gnu*) REL_ALLOC=no ;;
esac
@ -1720,7 +1720,15 @@ dnl Check if pthreads is available.
LIB_PTHREAD=
AC_CHECK_HEADERS(pthread.h)
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
if test "$HAVE_PTHREAD" = yes; then
case "${canonical}" in
@ -3508,7 +3516,7 @@ fi
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.
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>
* building.texi (Executing Lisp): Fix xref for C-M-x.

View file

@ -1,6 +1,6 @@
#### 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.

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@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 .}.
@findex abbrev-mode
@vindex abbrev-mode
@cindex Abbrev mode
@cindex mode, Abbrev
Abbrevs expand only when Abbrev mode (a minor mode) is enabled.
Disabling Abbrev mode does not cause abbrev definitions to be forgotten,
but they do not expand until Abbrev mode is enabled again. The command
@kbd{M-x abbrev-mode} toggles Abbrev mode; with a numeric argument, it
turns Abbrev mode on if the argument is positive, off otherwise.
@xref{Minor Modes}. @code{abbrev-mode} is also a variable; Abbrev mode is
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 expand only when Abbrev mode, a buffer-local minor mode, is
enabled. Disabling Abbrev mode does not cause abbrev definitions to
be forgotten, but they do not expand until Abbrev mode is enabled
again. The command @kbd{M-x abbrev-mode} toggles Abbrev mode; with a
numeric argument, it turns Abbrev mode on if the argument is positive,
off otherwise. @xref{Minor Modes}.
Abbrevs can have @dfn{mode-specific} definitions, active only in one major
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
@findex add-mode-abbrev
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
particular major mode. @kbd{C-x a l} defines an abbrev for the major mode
in effect at the time @kbd{C-x a l} is typed. The arguments work the same
as for @kbd{C-x a g}.
defines a mode-specific abbrev for the current major mode. The
arguments work the same as for @kbd{C-x a g}.
@kindex C-x a i g
@findex inverse-add-global-abbrev
@kindex C-x a i l
@findex inverse-add-mode-abbrev
If the abbrev text itself is already in the buffer, you can use the
commands @kbd{C-x a i g} (@code{inverse-add-global-abbrev}) and
@kbd{C-x a i l} (@code{inverse-add-mode-abbrev}) to define it as an
abbrev by specify the expansion in the minibuffer. These commands are
called ``inverse'' because they invert the meaning of the two text
strings they use (one from the buffer and one read with the
minibuffer).
@kbd{C-x a i g} (@code{inverse-add-global-abbrev}) and @kbd{C-x a i
l} (@code{inverse-add-mode-abbrev}) perform the opposite task: if the
abbrev text is already in the buffer, you use these commands to define
an abbrev by specifying the expansion in the minibuffer. These
commands will expand the abbrev text used for the definition.
@findex define-mode-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
@code{define-mode-abbrev} does likewise for a mode-specific abbrev.
To change the definition of an abbrev, just define a new definition.
When the abbrev has a prior definition, the abbrev definition commands
To change the definition of an abbrev, just make a new definition.
When an abbrev has a prior definition, the abbrev definition commands
ask for confirmation before replacing it.
@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.
@vindex abbrev-all-caps
Abbrev expansion preserves case; thus, @samp{foo} expands into @samp{find
outer otter}; @samp{Foo} into @samp{Find outer otter}, and @samp{FOO} into
@samp{FIND OUTER OTTER} or @samp{Find Outer Otter} according to the
variable @code{abbrev-all-caps} (setting it non-@code{nil} specifies
@samp{FIND OUTER OTTER}).
Abbrev expansion preserves case: @samp{foo} expands to @samp{find
outer otter}, and @samp{Foo} to @samp{Find outer otter}. @samp{FOO}
expands to @samp{Find Outer Otter} by default, but if you change the
variable @code{abbrev-all-caps} to a non-@code{nil} value, it expands
to @samp{FIND OUTER OTTER}.
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.
@findex unexpand-abbrev
If you expand an abbrev by mistake, you can undo the expansion and
bring back the abbrev itself by typing @kbd{C-_} to undo (@pxref{Undo}).
This also undoes the insertion of the non-word character that expanded
the abbrev. If the result you want is the terminating non-word
character plus the unexpanded abbrev, you must reinsert the terminating
character, quoting it with @kbd{C-q}. You can also use the command
@kbd{M-x unexpand-abbrev} to cancel the last expansion without
deleting the terminating character.
If you expand an abbrev by mistake, you can undo the expansion by
typing @kbd{C-/} (@code{undo}). @xref{Undo}. This undoes the
insertion of the abbrev expansion and brings back the abbrev text. If
the result you want is the terminating non-word character plus the
unexpanded abbrev, you must reinsert the terminating character,
quoting it with @kbd{C-q}. You can also use the command @kbd{M-x
unexpand-abbrev} to cancel the last expansion without deleting the
terminating character.
@findex expand-region-abbrevs
@kbd{M-x expand-region-abbrevs} searches through the region for defined
@ -409,12 +402,11 @@ you are expanding.
@vindex dabbrev-case-fold-search
This feature is controlled by the variable
@code{dabbrev-case-fold-search}. If it is @code{t}, case is ignored in
this search; if it is @code{nil}, the word and the expansion must match
in case. If the value of @code{dabbrev-case-fold-search} is
@code{case-fold-search}, which is true by default, then the variable
@code{case-fold-search} controls whether to ignore case while searching
for expansions.
@code{dabbrev-case-fold-search}. If it is @code{t}, case is ignored
in this search; if it is @code{nil}, the word and the expansion must
match in case. If the value is @code{case-fold-search} (the default),
then the variable @code{case-fold-search} controls whether to ignore
case while searching for expansions (@pxref{Search Case}).
@vindex dabbrev-case-replace
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
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
@code{nil}, the expansion is always copied verbatim. If the value of
@code{dabbrev-case-replace} is @code{case-replace}, which is true by
default, then the variable @code{case-replace} controls whether to
copy the expansion verbatim.
@code{nil}, the expansion is always copied verbatim. If the value is
@code{case-replace} (the default), then the variable
@code{case-replace} controls whether to copy the expansion verbatim
(@pxref{Replacement and Case}).
However, if the expansion contains a complex mixed case pattern, and
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 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
@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.
@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.
@item

View file

@ -1,5 +1,5 @@
@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.
@node Antinews, Mac OS / GNUstep, X Resources, Top

View file

@ -1,5 +1,5 @@
@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
@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 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 See file emacs.texi for copying conditions.
@node Basic, Minibuffer, Exiting, Top
@ -130,11 +130,13 @@ specifies how many copies of the character to insert
@cindex moving the cursor
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},
@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}
present on most keyboards: @kbd{@key{right}}, @kbd{@key{left}},
@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
position clicked. Emacs also provides a variety of additional

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node Buffers, Windows, Files, Top

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@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,
with different facilities for running
the Lisp programs.
* Lisp Libraries:: How Lisp programs are loaded into Emacs.
* Lisp Eval:: Executing a single Lisp expression in Emacs.
* Lisp Interaction:: Executing Lisp in an Emacs buffer.
* Libraries: Lisp Libraries. How Lisp programs are loaded into Emacs.
* Eval: Lisp Eval. Executing a single Lisp expression in Emacs.
* Interaction: Lisp Interaction. Executing Lisp in an Emacs buffer.
* External Lisp:: Communicating through Emacs with a separate Lisp.
@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
@iftex
the preceding section.
@end iftext
@end iftex
@ifnottex
@ref{Starting GUD}.
@end ifnottex
@ -565,7 +565,7 @@ Mode}). Completion is available for most debugger commands
commands to repeat them.
@iftex
See the next section
@end iftext
@end iftex
@ifnottex
@xref{Commands of GUD},
@end ifnottex

View file

@ -1,5 +1,5 @@
@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
@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 diary-entry-marker
@vindex calenday-today-marker
@vindex calendar-today-marker
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
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
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
default, the calendar uses faces named @code{holiday}, @code{diary}, and
@code{calendar-today} for these purposes.

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node Calendar/Diary

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node Emacs Invocation, X Resources, GNU Free Documentation License, Top
@ -675,9 +675,9 @@ changing any environment or registry settings.
@node MS-Windows Registry
@appendixsubsec The MS-Windows System Registry
@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},
@env{EMACSPATH}, @env{EMACSDOC}, @env{SHELL} and @env{TERM} to the
@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
of the settings which on X belong in the @file{.Xdefaults} file
(@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
@appendixsec Specifying the Display Name

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@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 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
@c This file is included either in emacs-xtra.texi (when producing the
@ -7,24 +7,24 @@
@node Subdir Switches
@section Subdirectory Switches in Dired
You can insert subdirectories with specified @code{ls} switches in
Dired buffers using @kbd{C-u i}. You can change the @code{ls}
You can insert subdirectories with specified @command{ls} switches in
Dired buffers using @kbd{C-u i}. You can change the @command{ls}
switches of an already inserted subdirectory using @kbd{C-u l}.
Dired preserves the switches if you revert the buffer. Deleting a
subdirectory forgets about its switches.
Using @code{dired-undo} (usually bound to @kbd{C-_} and @kbd{C-x u})
to reinsert or delete subdirectories that were inserted with explicit
switches can bypass Dired's machinery for remembering (or forgetting)
switches. Deleting a subdirectory using @code{dired-undo} does not
forget its switches. When later reinserted using @kbd{i}, it will be
reinserted using its old switches. Using @code{dired-undo} to
reinsert a subdirectory that was deleted using the regular
Dired commands (not @code{dired-undo}) will originally insert it with
its old switches. Reverting the buffer, however, will relist it using
the buffer's default switches. If any of this yields problems, you
can easily correct the situation using @kbd{C-u i} or @kbd{C-u l}.
Using @code{dired-undo} (@pxref{Marks vs Flags}) to reinsert or delete
subdirectories that were inserted with explicit switches can bypass
Dired's machinery for remembering (or forgetting) switches. Deleting
a subdirectory using @code{dired-undo} does not forget its switches.
When later reinserted using @kbd{i}, it will be reinserted using its
old switches. Using @code{dired-undo} to reinsert a subdirectory that
was deleted using the regular Dired commands (not @code{dired-undo})
will originally insert it with its old switches. Reverting the
buffer, however, will relist it using the buffer's default switches.
If any of this yields problems, you can easily correct the situation
using @kbd{C-u i} or @kbd{C-u l}.
Dired does not remember the @code{R} switch. Inserting a subdirectory
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 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 See file emacs.texi for copying conditions.
@node Dired
@ -73,32 +73,45 @@ completion commands can be used in the minibuffer; in particular,
a directory name.
The variable @code{dired-listing-switches} specifies the options to
give to @code{ls} for listing the directory; this string @emph{must}
contain @samp{-l}. If you use a prefix argument with the @code{dired}
command, you can specify the @code{ls} switches with the minibuffer
before you enter the directory specification. No matter how they are
specified, the @code{ls} switches can include short options (that is,
single characters) requiring no arguments, and long options (starting
with @samp{--}) whose arguments are specified with @samp{=}.
give to @command{ls} for listing the directory; this string
@emph{must} contain @samp{-l}. If you use a prefix argument with the
@code{dired} command, you can specify the @command{ls} switches with the
minibuffer before you enter the directory specification. No matter
how they are specified, the @command{ls} switches can include short
options (that is, single characters) requiring no arguments, and long
options (starting with @samp{--}) whose arguments are specified with
@samp{=}.
@vindex dired-use-ls-dired
Note that Dired automatically adds the option @samp{--dired}, if
your @code{ls} program supports it, unless you explicitly set
the variable @code{dired-use-ls-dired} to @code{nil}. Without this
option, Dired will have trouble parsing some @samp{unusual} file-names.
See the documentation of @code{dired-use-ls-dired} for more details.
If your @command{ls} program supports the @samp{--dired} option,
Dired automatically passes it that option; this causes @command{ls} to
emit special escape sequences for certain unusual file names, without
which Dired will not be able to parse those names. The first time you
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};
see @ref{ls in Lisp}, for options and peculiarities of that emulation.
On MS-Windows and MS-DOS systems, Emacs emulates @command{ls}.
@xref{ls in Lisp}, for options and peculiarities of this emulation.
@findex dired-other-window
@kindex C-x 4 d
@findex dired-other-frame
@kindex C-x 5 d
To display the Dired buffer in another window rather than in the
selected window, use @kbd{C-x 4 d} (@code{dired-other-window}) instead
of @kbd{C-x d}. @kbd{C-x 5 d} (@code{dired-other-frame}) uses a
separate frame to display the Dired buffer.
To display the Dired buffer in another window, use @kbd{C-x 4 d}
(@code{dired-other-window}) instead of @kbd{C-x d}. @kbd{C-x 5 d}
(@code{dired-other-frame}) displays the Dired buffer in a separate
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
@section Navigation in the Dired Buffer
@ -124,7 +137,11 @@ minibuffer, and moves point to the line in the Dired buffer describing
that file.
@cindex searching Dired buffers
@findex 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
incremental search in the Dired buffer, looking for matches only
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
@itemx Mouse-2
@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
to display the file, like the @kbd{o} command.
@item v
@kindex v @r{(Dired)}
@findex dired-view-file
View the file described on the current line, using @kbd{M-x view-file}
(@code{dired-view-file}). Viewing a file with @code{view-file} is
like visiting it, but is slanted toward moving around in the file
conveniently and does not allow changing the file. @xref{Misc File
Ops, View File, Miscellaneous File Operations}.
View the file described on the current line, with View mode
(@code{dired-view-file}). View mode provides convenient commands to
navigate the buffer but forbids changing it; @xref{View Mode}.
@item ^
@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
name.
@item C-x u
@item C-/
@itemx C-x u
@itemx C-_
@itemx C-/
@kindex C-_ @r{(Dired)}
@findex dired-undo
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
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
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
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)
@item H @var{new} @key{RET}
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
name to give the link.
@ -642,9 +657,10 @@ link.
@kindex M @r{(Dired)}
@cindex changing file permissions (in Dired)
@item M @var{modespec} @key{RET}
Change the mode (also called ``permission bits'') of the specified files
(@code{dired-do-chmod}). @var{modespec} can be in octal or symbolic
notation like arguments handled by the @code{chmod} program.
Change the mode (also called @dfn{permission bits}) of the specified
files (@code{dired-do-chmod}). @var{modespec} can be in octal or
symbolic notation, like arguments handled by the @command{chmod}
program.
@findex dired-do-chgrp
@kindex G @r{(Dired)}
@ -663,8 +679,8 @@ this.)
@vindex dired-chown-program
The variable @code{dired-chown-program} specifies the name of the
program to use to do the work (different systems put @code{chown} in
different places).
program to use to do the work (different systems put @command{chown}
in different places).
@findex dired-do-touch
@kindex T @r{(Dired)}
@ -952,17 +968,17 @@ The backup file is the first file given to @code{diff}.
@cindex subdirectories in Dired
@cindex expanding subdirectories in Dired
A Dired buffer displays just one directory in the normal case;
but you can optionally include its subdirectories as well.
A Dired buffer usually displays just one directory, but you can
optionally include its subdirectories as well.
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
in the minibuffer.) That produces a recursive directory listing showing
all subdirectories at all levels.
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
@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.
@end table
Use the @kbd{i} (@code{dired-maybe-insert-subdir}) command on a line
that describes a file which is a directory. It inserts the contents of
that directory into the same Dired buffer, and moves there. Inserted
subdirectory contents follow the top-level directory of the Dired
buffer, just as they do in @samp{ls -lR} output.
@noindent
If you use this command on a line that describes a file which is a
directory, it inserts the contents of that directory into the same
Dired buffer, and moves there. Inserted subdirectory contents follow
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
@kbd{i} command just moves to it.
If the subdirectory's contents are already present in the buffer,
the @kbd{i} command just moves to it.
In either case, @kbd{i} sets the Emacs mark before moving, so @kbd{C-u
C-@key{SPC}} takes you back to the old position in the buffer (the line
describing that subdirectory). You can also use @samp{^} to return
to the parent directory in the same Dired buffer.
In either case, @kbd{i} sets the Emacs mark before moving, so
@kbd{C-u C-@key{SPC}} returns to your previous position in the Dired
buffer (@pxref{Setting Mark}). You can also use @samp{^} to return to
the parent directory in the same Dired buffer (@pxref{Dired
Visiting}).
Use the @kbd{l} command (@code{dired-do-redisplay}) to update the
subdirectory's contents. Use @kbd{C-u k} on the subdirectory header
line to remove the subdirectory listing (@pxref{Dired Updating}). You
can also hide and show inserted subdirectories (@pxref{Hiding
Subdirectories}).
Use the @kbd{l} command (@code{dired-do-redisplay}) to update the
subdirectory's contents, and use @kbd{C-u k} on the subdirectory
header line to remove the subdirectory listing (@pxref{Dired
Updating}). You can also hide and show inserted subdirectories
(@pxref{Hiding Subdirectories}).
@ifnottex
@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}.
@vindex find-ls-option
The format of listing produced by these commands is controlled by the
variable @code{find-ls-option}, whose default value specifies using
options @samp{-ld} for @code{ls}. If your listings are corrupted, you
may need to change the value of this variable.
The format of listing produced by these commands is controlled by
the variable @code{find-ls-option}, whose default value specifies
using options @samp{-ld} for @command{ls}. If your listings are
corrupted, you may need to change the value of this variable.
@findex locate
@findex locate-with-filter
@ -1338,10 +1356,14 @@ rotation is lossless, and uses an external utility called JpegTRAN.
@kindex + @r{(Dired)}
@findex dired-create-directory
The command @kbd{+} (@code{dired-create-directory}) reads a
directory name, and creates the directory if it does not already
exist.
directory name, and creates that directory. It signals an error if
the directory already exists.
@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
``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

View file

@ -1,5 +1,5 @@
@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 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
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
@section Selective Display
@cindex selective display

View file

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

View file

@ -11,7 +11,7 @@
This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},@*
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
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.
* Text Mode:: The major modes for editing text files.
* Outline Mode:: Editing outlines.
* Org Mode:: The Emacs organizer.
* TeX Mode:: Editing input to the formatter TeX.
* HTML Mode:: Editing HTML and SGML files.
* 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.
* Basic VC Editing:: How to edit a file under version control.
* Log Buffer:: Features available in log entry buffers.
* Registering:: Putting a file under version control.
* 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.
* Branches:: Multiple lines of development.
* Remote Repositories:: Efficient access to remote CVS servers.
* Revision Tags:: Symbolic names for revisions.
* Miscellaneous VC:: Various other commands and features of VC.
* Customizing VC:: Variables that change VC's behavior.
Introduction to Version Control
* 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.
* 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 Buffer:: What the buffer looks like and means.
@ -780,26 +776,15 @@ VC Directory Mode
Multiple Branches of a File
* 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.
* Multi-User Branching:: Multiple users working at multiple branches
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.
* Creating Branches:: How to start a new branch.
Miscellaneous Commands and Features of VC
* Change Logs and VC:: Generating a change log file from log entries.
* Renaming and VC:: A command to rename both the source and master
file correctly.
* VC Delete/Rename:: Deleting and renaming version-controlled files.
* Revision Tags:: Symbolic names for revisions.
* Version Headers:: Inserting version control headers into working files.
Customizing VC
@ -934,10 +919,10 @@ Customizing the Calendar and Diary
Document Viewing
* Navigation:: Navigation inside DocView buffers.
* Searching:: Searching inside documents.
* Slicing:: Specifying which part of pages should be displayed.
* Conversion:: Influencing and triggering conversion.
* DocView Navigation:: Navigating DocView buffers.
* DocView Searching:: Searching inside documents.
* DocView Slicing:: Specifying which part of a page is displayed.
* DocView Conversion:: Influencing and triggering conversion.
Sending Mail
@ -989,7 +974,8 @@ Gnus
* Buffers of Gnus:: The group, summary, and article buffers.
* 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
@ -1002,7 +988,6 @@ Running Shell Commands from Emacs
* Shell Options:: Options for customizing Shell mode.
* Terminal emulator:: An Emacs window as a terminal emulator.
* Term Mode:: Special Emacs commands used in Term mode.
* Paging in Term:: Paging in the terminal emulator.
* Remote Host:: Connecting to another computer.
* Serial Terminal:: Connecting to a serial port.
@ -1048,15 +1033,14 @@ Customization
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.
* 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.
* Specific Customization:: Making a customization buffer for specific
variables, faces, or groups.
* Custom Themes:: How to define collections of customized options
that can be loaded and unloaded together.
* Specific Customization:: Customizing specific settings or groups.
* Custom Themes:: Collections of customization settings.
* Creating Custom Themes:: How to create a new custom theme.
Variables
@ -1104,9 +1088,7 @@ Dealing with Emacs Trouble
* Text Garbled:: Garbage in the text.
* Memory Full:: How to cope when you run out of memory.
* After a Crash:: Recovering editing in an Emacs session that crashed.
* Emergency Escape:: Emergency escape---
What to do if Emacs stops responding.
* Total Frustration:: When you are at your wits' end.
* Emergency Escape:: What to do if Emacs stops responding.
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
Sommerfeld, Andre Spiegel, Michael Staats, Ulf Stegemann, Reiner Steib,
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,
Jens T.@: Berger Thielemann, Spencer Thomas, Jim Thompson, Luc
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 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
@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 Copyright (C) 1985-1987, 1993-1995, 2001-2011
@c Copyright (C) 1985-1987, 1993-1995, 2001-2012
@c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@iftex

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node Files, Buffers, Keyboard Macros, Top
@ -1352,9 +1352,25 @@ manipulate and apply parts of patches:
@findex 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
@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-@}
@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
name from the patch itself. This is useful for making log entries for
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
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
@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
@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
@cindex copying files
@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
of @var{old} into a new directory named @var{new}.
@cindex renaming files
@findex rename-file
@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
@ -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
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
@cindex hard links (creation)
@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 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 See file emacs.texi for copying conditions.
@node Fixit, Keyboard Macros, Search, Top

View file

@ -1,5 +1,5 @@
@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
@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
supports both free and fixed form. This manual mainly documents Fortran
mode, but the corresponding F90 mode features are mentioned when
revelant.
relevant.
Fortran mode provides special motion commands for Fortran statements
and subprograms, and indentation commands that understand Fortran

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node Frames, International, Windows, Top

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@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
@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 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 See file emacs.texi for copying conditions.
@node Help, Mark, M-x, Top

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node Indentation, Text, Modes, Top

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node Keyboard Macros, Files, Fixit, Top

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node M-x, Help, Minibuffer, Top

View file

@ -1,5 +1,5 @@
@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.
@node Mac OS / GNUstep, Microsoft Windows, Antinews, Top
@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
# Copyright (C) 2003-2011 Free Software Foundation, Inc.
# Copyright (C) 2003-2012 Free Software Foundation, Inc.
# This file is part of GNU Emacs.

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node Mark, Killing, Help, Top

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@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 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 See file emacs.texi for copying conditions.
@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
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;
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
source code comments are delimited (@pxref{Comments}).

View file

@ -1,5 +1,5 @@
@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
@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 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 See file emacs.texi for copying conditions.
@node Microsoft Windows, Manifesto, Mac OS / GNUstep, Top

View file

@ -1,5 +1,5 @@
@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.
@node International, Modes, Frames, Top
@chapter International Character Set Support

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node Packages
@ -20,7 +20,7 @@ via this buffer. @xref{Package Menu}.
@findex describe-package
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.
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.
@item r
Refresh the package list (@code{package-menu-refresh}). This also
retrieves the list of available packages from the package archive
again.
Refresh the package list (@code{package-menu-refresh}). This fetches
the list of available packages from the package archive again, and
recomputes the package list.
@end table
@noindent

View file

@ -1,5 +1,5 @@
@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
@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 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 See file emacs.texi for copying conditions.
@node Programs, Building, Text, Top
@ -38,8 +38,8 @@ Highlight program syntax (@pxref{Font Lock}).
* Glasses:: Making identifiersLikeThis more readable.
* Semantic:: Suite of editing tools based on source code parsing.
* Misc for Programs:: Other Emacs features useful for editing programs.
* C Modes:: Special commands of C, C++, Objective-C,
Java, and Pike modes.
* C Modes:: Special commands of C, C++, Objective-C, Java,
IDL, Pike and AWK modes.
* Asm Mode:: Asm mode and its special features.
@ifnottex
* 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
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
@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.
@cindex tags-based completion
In-buffer symbol completion generates its completion list in a
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}).
@findex completion-at-point
@cindex Lisp symbol completion
@cindex completion (Lisp symbols)
In Emacs Lisp mode, completion is performed using the function,
variable, and property names defined in the current Emacs session. If
there is an open parenthesis immediately before the beginning of the
partial symbol, only symbols with function definitions are considered.
In most programming language modes, @kbd{C-M-i} (or
@kbd{M-@key{TAB}}) invokes the command @code{completion-at-point},
which generates its completion list in a flexible way. If Semantic
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
minibuffer completion. For instance, if Emacs cannot complete to a
@ -1462,17 +1470,17 @@ with Emacs.
related modes.
@table @code
@item M-x c-beginning-of-defun
@itemx M-x c-end-of-defun
@item C-M-a
@itemx C-M-e
@findex c-beginning-of-defun
@findex c-end-of-defun
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
@code{end-of-defun} search for braces in column zero.) If you are
editing code where the opening brace of a function isn't placed in
column zero, you may wish to bind @code{C-M-a} and @code{C-M-e} to
these commands. @xref{Moving by Defuns}.
@code{end-of-defun} search for braces in column zero.) @xref{Moving
by Defuns}.
@item C-c C-u
@kindex C-c C-u @r{(C mode)}

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node Registers, Display, Killing, Top

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node Rmail

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node Screen, User Input, Acknowledgments, Top

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node Search, Fixit, Display, Top

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@node Sending Mail
@ -11,10 +11,10 @@
@kindex C-x m
@findex compose-mail
To send an @dfn{e-mail} message in Emacs, type @kbd{C-x m}. This
selects and initializes a buffer named @samp{*mail*}, where you can
edit the text and headers of the message. Finally, type @kbd{C-c C-s}
or @kbd{C-c C-c} to send the message.
To send an email message from Emacs, type @kbd{C-x m}. This
switches to a buffer named @samp{*unsent mail*}, where you can edit
the text and headers of the message. When done, type @kbd{C-c C-s} or
@kbd{C-c C-c} to send it.
@table @kbd
@item C-x m
@ -30,37 +30,28 @@ In the mail buffer, send the message and bury the buffer
(@code{message-send-and-exit}).
@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
@findex compose-mail-other-window
@kindex C-x 5 m
@findex compose-mail-other-frame
@noindent
The command @kbd{C-x 4 m} (@code{compose-mail-other-window}) does the
same as @kbd{C-x m}, except it displays the mail buffer in a different
window. The command @kbd{C-x 5 m} (@code{compose-mail-other-frame})
creates a new frame for the mail buffer.
The command @kbd{C-x 4 m} (@code{compose-mail-other-window}) does
the same as @kbd{C-x m}, except it displays the mail buffer in a
different window. The command @kbd{C-x 5 m}
(@code{compose-mail-other-frame}) does it in a new frame.
Because the mail buffer is an ordinary Emacs buffer, you can switch
to other buffers while in the middle of composing mail, and switch
back later (or never). If you type @kbd{C-x m} again when you have
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}).
When you type @kbd{C-c C-c} or @kbd{C-c C-s} to send the mail, Emacs
may ask you how it should deliver the mail---either directly via SMTP,
or using some other method. @xref{Mail Sending}, for details.
@menu
* Format: Mail Format. Format of a mail message.
@ -75,77 +66,91 @@ cannot receive mail via SMTP (@pxref{Mail Headers}).
@node Mail Format
@section The Format of the Mail Buffer
An email message must contain certain pieces of information, called
@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.
Here is an example of the contents of a mail buffer:
@example
To: gnu@@example.org
CC: lungfish@@example.com, byob@@example.net
Subject: The Emacs Manual
To: subotai@@example.org
CC: mongol.soldier@@example.net, rms@@gnu.org
Subject: Re: What is best in life?
From: conan@@example.org
--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
@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
@section Mail Header Fields
@cindex headers (of mail message)
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
equivalent in field names (and in mailing addresses also). After the
colon and optional whitespace comes the contents of the field.
equivalent in field names. After the colon and optional whitespace
comes the contents of the field.
You can use any name you like for a header field, but normally
people use only standard field names with accepted meanings. Here is
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
header field before you send the message, if you wish.
people use only standard field names with accepted meanings.
@vindex user-full-name
@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
@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
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
A piece of text saying what the message is about. Most mail-reading
programs can display a summary of messages, listing the subject of
each message but not its text.
The subject of the message.
@item CC
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}.
@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
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
it accordingly. To specify more than one file, use several @samp{FCC}
fields, with one file name in each field.
writes in Babyl format. If an Rmail buffer is visiting the file,
Emacs updates it accordingly. To specify more than one file, use
several @samp{FCC} fields, with one file name in each field.
@item Reply-to
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
is unable to receive replies.
This is used if, for some reason, your @samp{From} address cannot
receive replies.
@item Mail-reply-to
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
(a somewhat controversial practice).
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 (a somewhat controversial practice).
@item Mail-followup-to
This field contains one or more addresses. It is typically used when
you reply to a message from a mailing list that you are subscribed to.
It usually indicates that you want replies to go to the list, and that
you do not need an extra copy sent directly 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.
One of more address(es) to use as default recipient(s) for follow-up
messages. This is typically used when you reply to a message from a
mailing list that you are subscribed to, and want replies to go to the
list without sending an extra copy to you.
@item In-reply-to
A piece of text describing the message you are replying to. Some mail
systems can use this information to correlate related pieces of mail.
Normally, you never need to think about this, because it is filled in
automatically when you reply to a message in Rmail (or any other mail
program built into Emacs).
An identifier for the message you are replying to. Most mail readers
use this information to group related messages together. Normally,
this header is filled in automatically when you reply to a message in
any mail program built into Emacs.
@item References
The Message-Ids of previous related messages (a Message-Id is a unique
identifier generated when a message is sent). Like
@samp{In-reply-to}, this is normally set up automatically for you.
Identifiers for previous related messages. Like @samp{In-reply-to},
this is normally filled in automatically for you.
@end table
@noindent
@ -217,35 +213,6 @@ To: foo@@example.net, this@@example.net,
@end group
@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 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
You can define @dfn{mail aliases}, which are short mnemonic names
that stand for mail addresses or groups of mail addresses. By
default, mail aliases are defined in the file @file{~/.mailrc}. You
can specify a different file name to use, by setting the variable
that stand for one or more mailing addresses. By default, mail
aliases are defined in the file @file{~/.mailrc}. You can specify a
different file name to use, by setting the variable
@code{mail-personal-alias-file}.
To define an alias in @file{.mailrc}, write a line in the following
format:
To define an alias in @file{.mailrc}, write a line like this:
@example
alias @var{nick} @var{fulladdresses}
@ -362,11 +328,9 @@ in greater detail. @xref{Top,,Message, message, Message}.
@node Mail Sending
@subsection Mail Sending
There are two commands to send a message you have been editing:
@table @kbd
@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
Send the message, and leave the mail buffer selected (@code{message-send}).
@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-c @r{(Message mode)}
@findex message-send
If you want to send a message and be done with it, type @kbd{C-c
C-c} (@code{mail-send-and-exit}). This sends the message and then
either deletes the window or switches to another buffer. It also
@vindex message-kill-buffer-on-exit
The usual command to send a message is @kbd{C-c C-c}
(@code{mail-send-and-exit}). This sends the message and then
``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
The command @kbd{C-c C-s} (@code{message-send}) sends the message
and marks the mail buffer unmodified, but leaves the buffer selected.
Use this command if you want to modify the message (perhaps with new
recipients) and send it again.
and leaves the buffer selected. Use this command if you want to
modify the message (perhaps with new recipients) and send it again.
@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
modified flag, because only saving the file should do that. Also, you
don't get a warning if you try to send the same message twice.
@cindex SMTP
@cindex Feedmail
@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
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,
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
@subsection Mail Header Editing
@ -511,7 +480,8 @@ just inserts a tab character.
@table @kbd
@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
Fill each paragraph cited from another message
(@code{message-fill-yanked-message}).
@ -522,9 +492,9 @@ Fill each paragraph cited from another message
@findex message-yank-prefix
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
text of that message into the mail buffer. This command is active
only when the mail buffer is invoked from a mail program running in
Emacs, such as Rmail.
text of that message into the mail buffer. This command works only if
the mail buffer is invoked from a mail reader running in Emacs, such
as Rmail.
By default, Emacs inserts the string @samp{>} in front of each line
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 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 See file emacs.texi for copying conditions.
@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
in small ways for the syntactic conventions of text. Outline mode
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
@xref{Outline Mode}.
@end iftex
@ -70,6 +73,7 @@ for editing such pictures.
* Case:: Changing the case of text.
* Text Mode:: The major modes for editing text files.
* Outline Mode:: Editing outlines.
* Org Mode:: The Emacs organizer.
* TeX Mode:: Editing input to the formatter TeX.
* HTML Mode:: Editing HTML and SGML files.
* 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))
@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
@section @TeX{} Mode
@cindex @TeX{} mode

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@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
@kbd{M-x top-level}. Quitting cancels a partially typed command, or
one which is still running. Aborting exits a recursive editing level
and cancels the command that invoked the recursive edit.
(@xref{Recursive Edit}.)
and cancels the command that invoked the recursive edit
(@pxref{Recursive Edit}).
@cindex quitting
@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}
deactivates the mark, unless Transient Mark mode is off
(@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.
@xref{Incremental Search}, for details.
@ -136,12 +136,12 @@ facility.
@node Lossage, Bugs, Quitting, Top
@section Dealing with Emacs Trouble
This section describes various conditions in which Emacs fails to work
normally, and how to recognize them and correct them. For a list of
additional problems you might encounter, see @ref{Bugs and problems, ,
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
@kbd{C-h C-p} to read the @file{PROBLEMS} file.
This section describes how to recognize and deal with situations in
which Emacs does not work as you expect, such as keyboard code mixups,
garbled displays, running out of memory, and crashes and hangs.
@xref{Bugs}, for what to do when you think you have found a bug in
Emacs.
@menu
* 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.
* Memory Full:: How to cope when you run out of memory.
* After a Crash:: Recovering editing in an Emacs session that crashed.
* Emergency Escape:: Emergency escape---
What to do if Emacs stops responding.
* Total Frustration:: When you are at your wits' end.
* Emergency Escape:: What to do if Emacs stops responding.
@end menu
@node DEL Does Not Delete
@subsection If @key{DEL} Fails to Delete
@cindex @key{DEL} vs @key{BACKSPACE}
@cindex @key{BACKSPACE} vs @key{DEL}
@cindex usual erasure key
Every keyboard has a large key, usually labeled @key{Backspace},
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
supposed to be equivalent to @key{DEL}.
In Emacs, this key is supposed to be equivalent to @key{DEL}.
When Emacs starts up on a graphical display, it determines
automatically which key should be @key{DEL}. In some unusual cases,
Emacs gets the wrong information from the system. If the usual
erasure key deletes forwards instead of backwards, that is probably
what happened---Emacs ought to be treating the @key{Backspace} key as
@key{DEL}, but it isn't.
Emacs gets the wrong information from the system, and @key{Backspace}
ends up deleting forwards instead of backwards.
Some keyboards also have a @key{Delete} key, which is ordinarily
used to delete forwards. If this key deletes backward in Emacs, that
too suggests Emacs got the wrong information---but in the opposite
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
character, it means that key is actually sending the @key{BS}
character. Emacs ought to be treating @key{BS} as @key{DEL}, but it
isn't.
@findex normal-erase-is-backspace-mode
In all of those cases, the immediate remedy is the same: use the
command @kbd{M-x normal-erase-is-backspace-mode}. This toggles
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
work, if it sends character code 127.
@findex normal-erase-is-backspace-mode
To fix the problem automatically for every Emacs session, you can
put one of the following lines into your @file{.emacs} file
(@pxref{Init File}). For the first case above, where @key{Backspace}
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):
To fix the problem in every Emacs session, put one of the following
lines into your initialization file (@pxref{Init File}). For the
first case above, where @key{Backspace} deletes forwards instead of
backwards, use this line to make @key{Backspace} act as @key{DEL}:
@lisp
(normal-erase-is-backspace-mode 0)
@ -224,12 +216,12 @@ Customization}.
Recursive editing levels are important and useful features of Emacs, but
they can seem like malfunctions if you do not understand them.
If the mode line has square brackets @samp{[@dots{}]} around the parentheses
that contain the names of the major and minor modes, you have entered a
recursive editing level. If you did not do this on purpose, or if you
don't understand what that means, you should just get out of the recursive
editing level. To do so, type @kbd{M-x top-level}. This is called getting
back to top level. @xref{Recursive Edit}.
If the mode line has square brackets @samp{[@dots{}]} around the
parentheses that contain the names of the major and minor modes, you
have entered a recursive editing level. If you did not do this on
purpose, or if you don't understand what that means, you should just
get out of the recursive editing level. To do so, type @kbd{M-x
top-level}. @xref{Recursive Edit}.
@node Screen Garbled
@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
the Emacs distribution gives the fixes for known problems of this
sort. @file{INSTALL} contains general advice for these problems in
one of its sections. To investigate the possibility that you have
this sort of problem, try Emacs on another terminal made by a
different manufacturer. If problems happen frequently on one kind of
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.
one of its sections. If you seem to be using the right terminfo
entry, it is possible that there is a bug in the terminfo entry, or a
bug in Emacs that appears for certain terminal types.
@node Text Garbled
@subsection Garbage in the Text
@ -385,25 +374,6 @@ program.
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.
@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
@section Reporting Bugs
@ -432,41 +402,51 @@ of the main places you can read about known issues:
@itemize
@item
The @file{etc/PROBLEMS} file in the Emacs distribution; type @kbd{C-h
C-p} to read it. This file contains a list of particularly well-known
issues that have been encountered in compiling, installing and running
Emacs. Often, there are suggestions for workarounds and solutions.
The @file{etc/PROBLEMS} file; type @kbd{C-h C-p} to read it. This
file contains a list of particularly well-known issues that have been
encountered in compiling, installing and running Emacs. Often, there
are suggestions for workarounds and solutions.
@item
Some additional user-level problems can be found in @ref{Bugs and
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
The @samp{bug-gnu-emacs} mailing list (also available as the newsgroup
@samp{gnu.emacs.bug}). You can read the list archives at
@url{http://lists.gnu.org/mailman/listinfo/bug-gnu-emacs}. If you
like, you can also subscribe to the list. Be aware that the sole
purpose of this list is to provide the Emacs maintainers with
information about bugs and feature requests. Reports may contain
fairly large amounts of data; spectators should not complain about
this.
@url{http://lists.gnu.org/mailman/listinfo/bug-gnu-emacs}. This list
works as a ``mirror'' of the Emacs bug reports and follow-up messages
which are sent to the bug tracker. It also contains old bug reports
from before the bug tracker was introduced (in early 2008).
@item
The bug tracker at @url{http://debbugs.gnu.org}. From early 2008,
reports from the @samp{bug-gnu-emacs} list have also been sent here.
The tracker contains the same information as the mailing list, just in
a different format. You may prefer to browse and read reports using
the tracker.
If you like, you can subscribe to the list. Be aware that its purpose
is to provide the Emacs maintainers with information about bugs and
feature requests, so reports may contain fairly large amounts of data;
spectators should not complain about this.
@item
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
for bug reports in development (i.e., not yet released) versions of
Emacs. You can read the archives for 2003 to mid 2007 at
@url{http://lists.gnu.org/archive/html/emacs-pretest-bug/}. From
late 2007 to mid 2008, the address was an alias for the
@samp{emacs-devel} mailing list. From mid 2008 onwards, it has been
an alias for @samp{bug-gnu-emacs}.
@url{http://lists.gnu.org/archive/html/emacs-pretest-bug/}. Nowadays,
it is an alias for @samp{bug-gnu-emacs}.
@item
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
``disk full''), then it is certainly a bug.
If Emacs updates the display in a way that does not correspond to what is
in the buffer, then it is certainly a bug. If a command seems to do the
wrong thing but the problem corrects itself if you type @kbd{C-l}, it is a
case of incorrect display updating.
If the Emacs display does not correspond properly to the contents of
the buffer, then it is a bug. But you should check that features like
buffer narrowing (@pxref{Narrowing}), which can hide parts of the
buffer or change how it is displayed, are not responsible.
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
long time. Type @kbd{C-g} (@kbd{C-@key{BREAK}} on MS-DOS) and then @kbd{C-h l}
to see whether the input Emacs received was what you intended to type;
if the input was such that you @emph{know} it should have been processed
quickly, report a bug. If you don't know whether the command should
take a long time, find out by looking in the manual or by asking for
assistance.
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} to see whether the input Emacs received was what you
intended to type; if the input was such that you @emph{know} it should
have been processed quickly, report a bug. If you don't know whether
the command should take a long time, find out by looking in the manual
or by asking for assistance.
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
bug.
If a command does the wrong thing, that is a bug. But be sure you know
for certain what it ought to have done. If you aren't familiar with the
command, or don't know for certain how the command is supposed to work,
then it might actually be working right. Rather than jumping to
conclusions, show the problem to someone who knows for certain.
If a command does the wrong thing, that is a bug. But be sure you
know for certain what it ought to have done. If you aren't familiar
with the command, it might actually be working right. If in doubt,
read the command's documentation (@pxref{Name Help}).
Finally, a command's intended definition may not be the best
possible definition for editing with. This is a very important sort
of problem, but it is also a matter of judgment. Also, it is easy to
A command's intended definition may not be the best possible
definition for editing with. This is a very important sort of
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
features. It is probably best not to complain about such a problem
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
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.
@node Understanding Bug Reporting
@subsection Understanding Bug Reporting
@findex emacs-version
When you decide that there is a bug, it is important to report it and to
report it in a way which is useful. What is most useful is an exact
description of what commands you type, starting with the shell command to
run Emacs, until the problem happens.
When you decide that there is a bug, it is important to report it
and to report it in a way which is useful. What is most useful is an
exact description of what commands you type, starting with the shell
command to run Emacs, until the problem happens.
The most important principle in reporting a bug is to report
@emph{facts}. Hypotheses and verbal descriptions are no substitute for
the detailed raw data. Reporting the facts is straightforward, but many
people strain to posit explanations and report them instead of the
facts. If the explanations are based on guesses about how Emacs is
implemented, they will be useless; meanwhile, lacking the facts, we will
have no real information about the bug.
@emph{facts}. Hypotheses and verbal descriptions are no substitute
for the detailed raw data. Reporting the facts is straightforward,
but many people strain to posit explanations and report them instead
of the facts. If the explanations are based on guesses about how
Emacs is implemented, they will be useless; meanwhile, lacking the
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
@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
report the bug is with a sentence like the preceding one, because it
gives all the facts.
A bad way would be to assume 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 what we mean by ``guessing
explanations.'' The problem is just as likely to be due to the fact
that there is a @samp{z} in the file name. If this is so, then when we
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
large, and Emacs displays @samp{I feel pretty today}. The bug report
would need to provide all that information. You should not assume
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
what we mean by ``guessing explanations.'' The problem might be due
to the fact that there is a @samp{z} in the file name. If this is so,
then when we 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 we could guess that we should try visiting a
file with a @samp{z} in its name.
Alternatively, the problem might be due to the fact that the file starts
with exactly 25 spaces. For this reason, you should make sure that you
inform us of the exact contents of any file that is needed to reproduce the
bug. What if the problem only occurs when you have typed the @kbd{C-x C-a}
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}.
Similarly, rather than saying ``if I have three characters on the
line,'' say ``after I type @kbd{@key{RET} A B C @key{RET} C-p},'' if
that is the way you entered the text.
You should not even say ``visit a file'' instead of @kbd{C-x C-f} unless
you @emph{know} that it makes no difference which visiting command is used.
Similarly, rather than saying ``if I have three characters on the line,''
say ``after I type @kbd{@key{RET} A B C @key{RET} C-p},'' if that is
the way you entered the text.
If possible, try quickly to reproduce the bug by invoking Emacs with
@command{emacs -Q} (so that Emacs starts with no initial
customizations; @pxref{Initial Options}), and repeating the steps that
you took to trigger the bug. If you can reproduce the bug this way,
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
want to actually @emph{debug} the problem, and report explanations that
are more than guesses, that is useful---but please include the facts as
well.
Some bugs are not reproducible from @command{emacs -Q}; some are not
easily reproducible at all. In that case, you should report what you
have---but, as before, please stick to the raw facts about what you
did to trigger the bug the first time.
@node Checklist
@subsection Checklist for Bug Reports
@ -616,15 +597,14 @@ address. Or you can simply send an email to that address describing
the problem.
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
more information about your report. Submissions are moderated, so
there may be a delay before your report appears.
You do not need to know how the @url{http://debbugs.gnu.org} bug
tracker works in order to report a bug, but if you want to, you can
read the tracker's online documentation to see the various features
you can use.
You do not need to know how the Gnu Bug Tracker works in order to
report a bug, but if you want to, you can read the tracker's online
documentation to see the various features you can use.
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
@ -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).
@item
The precise commands we need to type to reproduce the bug.
If at all possible, give a full recipe for an Emacs started with the
@samp{-Q} option (@pxref{Initial Options}). This bypasses your
@file{.emacs} customizations.
The precise commands we need to type to reproduce the bug. If at all
possible, give a full recipe for an Emacs started with the @samp{-Q}
option (@pxref{Initial Options}). This bypasses your personal
customizations.
@findex open-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
specified termscript file as well, until the Emacs process is killed.
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
Emacs displays the screen for the first time.
your Emacs initialization file so that the termscript file will be
open when Emacs displays the screen for the first time.
Be warned: it is often difficult, and sometimes impossible, to fix a
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
Check whether any programs you have loaded into the Lisp world,
including your @file{.emacs} file, set any variables that may affect the
functioning of Emacs. Also, see whether the problem happens in a
freshly started Emacs without loading your @file{.emacs} file (start
Emacs with the @code{-Q} switch to prevent loading the init files). 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
to cause the problem to occur.
including your initialization file, set any variables that may affect
the functioning of Emacs. Also, see whether the problem happens in a
freshly started Emacs without loading your initialization file (start
Emacs with the @code{-Q} switch to prevent loading the init files).
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 to cause the problem to occur.
@item
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
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}
list, or item in the @url{http://debbugs.gnu.org} tracker. Explain
why your change fixes the bug.
list, or the bug entry in the GNU Bug Tracker at
@url{http://debbugs.gnu.org}. Explain why your change fixes the bug.
@item
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 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
@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 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
@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).
@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
@subsection Miscellaneous Commands and Features of VC
@ -307,52 +12,55 @@ won't really work as retrieved.
@menu
* Change Logs and VC:: Generating a change log file from log entries.
* Renaming and VC:: A command to rename both the source and master
file correctly.
* VC Delete/Rename:: Deleting and renaming version-controlled files.
* Revision Tags:: Symbolic names for revisions.
* Version Headers:: Inserting version control headers into working files.
@end menu
@node Change Logs and VC
@subsubsection Change Logs and VC
If you use RCS or CVS for a program and also maintain a change log
file for it
If you use RCS or CVS for a program with a @file{ChangeLog} file
@iftex
(@pxref{Change Log,,,emacs, the Emacs Manual}),
@end iftex
@ifnottex
(@pxref{Change Log}),
@end ifnottex
you can generate change log entries automatically from the version
control log entries:
you can generate change log entries from the version control log
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
@item C-x v a
@kindex C-x v a
@findex vc-update-change-log
Visit the current directory's change log file and, for registered files
in that directory, create new entries for versions checked in since the
most recent entry in the change log file.
Visit the current directory's @file{ChangeLog} file and, for
registered files in that directory, create new entries for versions
committed since the most recent change log entry
(@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
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
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
Bowditch to @file{rcs2log} on 1999-05-22 with log text @samp{Ignore log
messages that start with `#'.}. Then @kbd{C-x v a} visits
@file{ChangeLog} and inserts text like this:
Bowditch to @file{rcs2log} on 1999-05-22 with log entry @samp{Ignore
log messages that start with `#'.}. Then @kbd{C-x v a} inserts this
@file{ChangeLog} entry:
@iftex
@medbreak
@ -369,17 +77,11 @@ messages that start with `#'.}. Then @kbd{C-x v a} visits
@end iftex
@noindent
You can then edit the new change log entry further as you wish.
Some of the new change log entries may duplicate what's already in
ChangeLog. You will have to remove these duplicates by hand.
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:
If the version control log entry specifies a function name (in
parenthesis at the beginning of a line), that is reflected in the
@file{ChangeLog} entry. For example, if a log entry for @file{vc.el}
is @samp{(vc-do-command): Check call-process status.}, the
@file{ChangeLog} entry is:
@iftex
@medbreak
@ -395,221 +97,184 @@ if the text of the log entry starts with @w{@samp{(@var{functionname}):
@medbreak
@end iftex
When @kbd{C-x v a} adds several change log entries at once, it groups
related log entries together if they all are checked in by the same
author at nearly the same time. If the log entries for several such
files all have the same text, it coalesces them into a single entry.
For example, suppose the most recent check-ins have the following log
entries:
When @kbd{C-x v a} adds several change log entries at once, it
groups related log entries together if they all are checked in by the
same author at nearly the same time. If the log entries for several
such files all have the same text, it coalesces them into a single
entry.
@flushleft
@bullet{} For @file{vc.texinfo}: @samp{Fix expansion typos.}
@bullet{} For @file{vc.el}: @samp{Don't call expand-file-name.}
@bullet{} For @file{vc-hooks.el}: @samp{Don't call expand-file-name.}
@end flushleft
@node VC Delete/Rename
@subsubsection Deleting and Renaming Version-Controlled Files
@cindex renaming version-controlled files
@noindent
They appear like this in @file{ChangeLog}:
@table @kbd
@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
@medbreak
(@pxref{VC Directory Mode}),
@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
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
@ifnottex
(@pxref{VC Directory Mode}),
@end ifnottex
it is displayed with the @samp{removed} status. When you commit it,
the deletion takes effect in the repository.
@findex vc-rename-file
When you rename a registered file, you must also rename its master
file correspondingly to get proper results. Use @code{vc-rename-file}
to rename the source file as you specify, and rename its master file
accordingly. It also updates any tags (@pxref{Revision Tags}) that
mention the file, so that they use the new name; despite this, the
tag thus modified may not completely work (@pxref{Revision Tag Caveats}).
To rename a version-controlled file, type @kbd{M-x vc-rename-file}.
This prompts for two arguments: the name of the file you wish to
rename, and the new name; then it performs the renaming via the
version control system. The renaming takes effect immediately in the
working tree, and takes effect in the repository when you commit the
renamed file.
Some back ends do not provide an explicit rename operation to their
repositories. After issuing @code{vc-rename-file}, use @kbd{C-x v v}
on the original and renamed buffers and provide the necessary edit
log.
On modern version control systems that have built-in support for
renaming, the renamed file retains the full change history of the
original file. On CVS and older version control systems, the
@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
someone else.
@node Revision Tags
@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
@subsubsection Inserting Version Control Headers
Sometimes it is convenient to put version identification strings
directly into working files. Certain special strings called
@dfn{version headers} are replaced in each successive version by the
number of that version, the name of the user who created it, and other
relevant information. All of the back ends that VC supports have such
a mechanism, except GNU Arch.
On Subversion, CVS, RCS, and SCCS, you can put certain special
strings called @dfn{version headers} into a work file. When the file
is committed, the version control system automatically puts the
revision number, the name of the user who made the commit, and other
relevant information into the version header.
VC does not normally use the information contained in these headers.
The exception is RCS---with RCS, version headers are sometimes more
reliable than the master file to determine which version of the file
you are editing. Note that in a multi-branch environment, version
headers are necessary to make VC behave correctly
@iftex
(@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.
@vindex vc-consult-headers
VC does not normally use the information in the version headers. As
an exception, when using RCS, Emacs uses the version header, if there
is one, to determine the file version, since it is often more reliable
than the RCS master file. To inhibit using the version header this
way, change the variable @code{vc-consult-headers} to @code{nil}.
@kindex C-x v h
@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
The default header string is @samp{@w{$}Id$} for RCS and
@samp{@w{%}W%} for SCCS. You can specify other headers to insert by
setting the variables @code{vc-@var{backend}-header} where
@var{backend} is @code{rcs} or @code{sccs}.
Instead of a single string, you can specify a list of strings; then
each string in the list is inserted as a separate header on a line of
its own.
It may be necessary to use apparently-superfluous backslashes when
writing the strings that you put in this variable. For instance, you
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})}.
To insert a suitable header string into the current buffer, type
@kbd{C-x v h} (@code{vc-insert-headers}). This command works only on
Subversion, CVS, RCS, and SCCS. The variable
@code{vc-@var{backend}-header} contains the list of keywords to insert
into the version header; for instance, CVS uses @code{vc-cvs-header},
whose default value is @code{'("\$Id\$")}. (The extra backslashes
prevent the string constant from being interpreted as a header, if the
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
at point, surrounded by tabs, and inside comment delimiters if
necessary.
@vindex vc-static-header-alist
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
elements of the form @code{(@var{regexp} . @var{format})}. Whenever
@var{regexp} matches the buffer name, @var{format} is inserted as part
of the header. A header line is inserted for each element that matches
the buffer name, and for each string specified by
@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.
@var{regexp} matches the buffer name, @var{format} is also inserted as
part of the version header. A @samp{%s} in @var{format} is replaced
with the file's version control type.
@node Customizing VC
@subsection Customizing VC
@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
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
these systems, exclude its name from the list. To disable VC entirely,
set this variable to @code{nil}.
these systems, exclude its name from the list. To disable VC
entirely, set this variable to @code{nil}.
The order of systems in the list is significant: when you visit a file
registered in more than one system (@pxref{Local Version Control}), VC
uses the system that comes first in @code{vc-handled-backends} by
default. The order is also significant when you register a file for
the first time, see
The order of systems in the list is significant: when you visit a
file registered in more than one system, VC uses the system that comes
first in @code{vc-handled-backends} by default. The order is also
significant when you register a file for the first time
@iftex
@ref{Registering,,,emacs, the Emacs Manual},
(@pxref{Registering,,,emacs, the Emacs Manual}).
@end iftex
@ifnottex
@ref{Registering},
(@pxref{Registering}).
@end ifnottex
for details.
@menu
* 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
@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
Editing a version-controlled file through a symbolic link can be
dangerous. It bypasses the version control system---you can edit the
file without locking it, and fail to check your changes in. Also,
your changes might overwrite those of another user. To protect against
this, VC checks each symbolic link that you visit, to see if it points
to a file under version control.
The variable @code{vc-follow-symlinks} controls what to do when a
symbolic link points to a version-controlled file. If it is @code{nil},
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.
@cindex symbolic links (and version control)
Editing a version-controlled file through a symbolic link may cause
unexpected results, if you are unaware that the underlying file is
version-controlled. The variable @code{vc-follow-symlinks} controls
what Emacs does if you try to visit a symbolic link pointing to a
version-controlled file. If the value is @code{ask} (the default),
Emacs asks for confirmation. If it is @code{nil}, Emacs just displays
a warning message. If it is @code{t}, Emacs automatically follows the
link and visits the real file instead.
@vindex vc-suppress-confirm
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
@kbd{C-x v u} also operates without asking for confirmation. (This
variable does not affect @kbd{C-x v c}; that operation is so drastic
that it should always ask for confirmation.)
@kbd{C-x v u} also operates without asking for confirmation.
@vindex vc-command-messages
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
displays messages to indicate which shell commands it runs, and
additional messages when the commands finish.
appropriate version control system. If @code{vc-command-messages} is
non-@code{nil}, VC displays messages to indicate which shell commands
it runs, and additional messages when the commands finish.
@vindex vc-path
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
@subsubsection Options specific for CVS
@cindex locking (CVS)
By default, CVS does not use locking to coordinate the activities of
several users; anyone can change a work file at any time. However,
there are ways to restrict this, resulting in behavior that resembles
locking.
@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-cvs-global-switches
You can specify additional command line options to pass to all CVS
operations in the variable @code{vc-cvs-global-switches}. These
switches are inserted immediately after the @code{cvs} command, before
the name of the operation to invoke.
@vindex vc-stay-local
@vindex vc-cvs-stay-local
@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
@code{vc-cvs-stay-local}. There is another variable,
@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
@code{vc-stay-local} as well.
If @code{vc-cvs-stay-local} is @code{t} (the default), then VC uses
only the entry in the local CVS subdirectory to determine the file's
state (and possibly information returned by previous CVS commands).
One consequence of this is that when you have modified a file, and
somebody else has already checked in other changes to the file, you
are not notified of it until you actually try to commit. (But you can
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
If @code{vc-cvs-stay-local} is @code{t} (the default), VC determines
the version control status of each file using only the entry in the
local CVS subdirectory and the information returned by previous CVS
commands. As a consequence, if you have modified a file and somebody
else has checked in other changes, you will not be notified of the
conflict until you try to commit.
When @code{vc-cvs-stay-local} is @code{t}, VC also makes local
version backups, so that simple diff and revert operations are
completely local (@pxref{Version Backups}).
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.
If you change @code{vc-cvs-stay-local} to @code{nil}, 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.
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
only for repositories from hosts that match the pattern.
@vindex vc-cvs-global-switches
You can specify additional command line options to pass to all CVS
operations in the variable @code{vc-cvs-global-switches}. These
switches are inserted immediately after the @code{cvs} command, before
the name of the operation to invoke.
@cindex automatic version backups
When using a remote repository, Emacs normally makes @dfn{automatic
version backups} of the original versions of each edited file. These
local backups are made whenever you save the first changes to a file,
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 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 See file emacs.texi for copying conditions.
@node Windows, Frames, Buffers, Top

View file

@ -1,5 +1,5 @@
@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 See file emacs.texi for copying conditions.
@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
@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,
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
@samp{HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs}. The menu and scroll
bars are native widgets on MS-Windows, so they are only customizable
via the system-wide settings in the Display Control Panel. You can
also set resources using the @samp{-xrm} command line option, as
explained below.)
key @samp{HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs}, which affects only
the current user and override the system-wide settings, and then under
the key @samp{HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs}, which affects
all users of the system. The menu and scroll bars are native widgets
on MS-Windows, so they are only customizable via the system-wide
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
for a collection of related options. Each resource specification

View file

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

View file

@ -1,6 +1,6 @@
#### 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.

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