1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 12:21:25 -08:00

Merged in changes from CVS trunk. (Testing my own CVS gateway.)

Patches applied:

 * lorentey@elte.hu--2004/emacs--cvs-trunk--0--patch-3
   Update from CVS.


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-395
This commit is contained in:
Karoly Lorentey 2005-09-05 14:21:08 +00:00
commit 6f5b225036
13 changed files with 172 additions and 38 deletions

View file

@ -33,10 +33,6 @@ To be done by Andre Spiegel <spiegel@gnu.org>.
** Update Speedbar.
** Debug custom themes.
** Get rid of the defadvice calls in org.el.
* FATAL ERRORS
** Investigate reported crashes in compact_small_strings.
@ -115,8 +111,6 @@ The class A seems to be missing.
* DOCUMENTATION
** Document Custom Themes.
** Update man/info.texi.
** Add missing years in copyright notices of all files.
@ -243,7 +237,7 @@ lispref/hash.texi "Luc Teirlinck" Chong Yidong
lispref/help.texi "Luc Teirlinck" Chong Yidong
lispref/hooks.texi Lute Kamstra
lispref/internals.texi "Luc Teirlinck" Chong Yidong
lispref/intro.texi "Luc Teirlinck"
lispref/intro.texi "Luc Teirlinck" Josh Varner
lispref/keymaps.texi "Luc Teirlinck" Chong Yidong
lispref/lists.texi "Luc Teirlinck" Chong Yidong
lispref/loading.texi "Luc Teirlinck" Chong Yidong

View file

@ -1,3 +1,15 @@
2005-09-04 Chong Yidong <cyd@stupidchicken.com>
* custom.el (load-theme): Renamed from require-theme.
Add interactive spec.
(enable-theme): Renamed from custom-enable-theme.
Add interactive spec.
(disable-theme): Renamed from custom-disable-theme.
Add interactive spec.
(custom-make-theme-feature): Doc fix.
(custom-theme-directory): Doc fix.
(provide-theme): Call enable-theme.
2005-09-02 Dan Nicolaescu <dann@ics.uci.edu>
* term/xterm.el (terminal-init-xterm): Add eval-when-compile to

View file

@ -953,7 +953,7 @@ into `features'.
This allows for a file-name convention for autoloading themes:
Every theme X has a property `provide-theme' whose value is \"X-theme\".
\(require-theme X) then attempts to load the file `X-theme.el'."
\(load-theme X) then attempts to load the file `X-theme.el'."
(intern (concat (symbol-name theme) "-theme")))
;;; Loading themes.
@ -996,7 +996,7 @@ Every theme X has a property `provide-theme' whose value is \"X-theme\".
"~/_emacs.d/"
"~/.emacs.d/")
"Directory in which Custom theme files should be written.
`require-theme' searches this directory in addition to load-path.
`load-theme' searches this directory in addition to load-path.
The command `customize-create-theme' writes the files it produces
into this directory."
:type 'string
@ -1031,11 +1031,11 @@ by `custom-make-theme-feature'."
;; `user' must always be the highest-precedence enabled theme.
;; Make that remain true. (This has the effect of making user settings
;; override the ones just loaded, too.)
(custom-enable-theme 'user))
(enable-theme 'user))
(defun require-theme (theme)
(defun load-theme (theme)
"Try to load a theme's settings from its file.
This also enables the theme; use `custom-disable-theme' to disable it."
This also enables the theme; use `disable-theme' to disable it."
;; THEME's feature is stored in THEME's `theme-feature' property.
;; Usually the `theme-feature' property contains a symbol created
@ -1043,6 +1043,7 @@ This also enables the theme; use `custom-disable-theme' to disable it."
;; Note we do no check for validity of the theme here.
;; This allows to pull in themes by a file-name convention
(interactive "SCustom theme name: ")
(let ((load-path (if (file-directory-p custom-theme-directory)
(cons custom-theme-directory load-path)
load-path)))
@ -1070,12 +1071,12 @@ All the themes loaded for BY-THEME are recorded in BY-THEME's property
(let ((themes-loaded (get by-theme 'theme-loads-themes)))
(dolist (theme body)
(cond ((and (consp theme) (eq (car theme) 'reset))
(custom-disable-theme (cadr theme)))
(disable-theme (cadr theme)))
((and (consp theme) (eq (car theme) 'hidden))
(require-theme (cadr theme))
(custom-disable-theme (cadr theme)))
(load-theme (cadr theme))
(disable-theme (cadr theme)))
(t
(require-theme theme)))
(load-theme theme)))
(push theme themes-loaded))
(put by-theme 'theme-loads-themes themes-loaded)))
@ -1087,10 +1088,11 @@ See `custom-theme-load-themes' for more information on BODY."
;;; Enabling and disabling loaded themes.
(defun custom-enable-theme (theme)
(defun enable-theme (theme)
"Reenable all variable and face settings defined by THEME.
The newly enabled theme gets the highest precedence (after `user').
If it is already enabled, just give it highest precedence (after `user')."
(interactive "SEnable Custom theme: ")
(let ((settings (get theme 'theme-settings)))
(dolist (s settings)
(let* ((prop (car s))
@ -1104,11 +1106,12 @@ If it is already enabled, just give it highest precedence (after `user')."
(cons theme (delq theme custom-enabled-themes)))
;; `user' must always be the highest-precedence enabled theme.
(unless (eq theme 'user)
(custom-enable-theme 'user)))
(enable-theme 'user)))
(defun custom-disable-theme (theme)
(defun disable-theme (theme)
"Disable all variable and face settings defined by THEME.
See `custom-known-themes' for a list of known themes."
(interactive "SDisable Custom theme: ")
(let ((settings (get theme 'theme-settings)))
(dolist (s settings)
(let* ((prop (car s))

View file

@ -1,3 +1,16 @@
2005-09-03 Richard M. Stallman <rms@gnu.org>
* tips.texi (Programming Tips): Add conventions for minibuffer
questions and prompts.
2005-09-03 Joshua Varner <jlvarner@gmail.com> (tiny change)
* intro.texi (nil and t): Minor cleanup.
Delete spurious mention of keyword symbols.
(Evaluation Notation): Add index entry.
(A Sample Function Description): Minor cleanup.
(A Sample Variable Description): Not all vars can be set.
2005-09-03 Thien-Thi Nguyen <ttn@gnu.org>
* text.texi (Buffer Contents): Use "\n" in examples' result strings.

View file

@ -197,7 +197,7 @@ in Lisp programs also.
(not nil) ; @r{Emphasize the truth value @var{false}}
@end example
@cindex @code{t} and truth
@cindex @code{t}, uses of
@cindex true
In contexts where a truth value is expected, any non-@code{nil} value
is considered to be @var{true}. However, @code{t} is the preferred way
@ -209,14 +209,14 @@ choosing, use @code{t}. The symbol @code{t} always has the value
In Emacs Lisp, @code{nil} and @code{t} are special symbols that always
evaluate to themselves. This is so that you do not need to quote them
to use them as constants in a program. An attempt to change their
values results in a @code{setting-constant} error. The same is true of
any symbol whose name starts with a colon (@samp{:}). @xref{Constant
values results in a @code{setting-constant} error. @xref{Constant
Variables}.
@node Evaluation Notation
@subsection Evaluation Notation
@cindex evaluation notation
@cindex documentation notation
@cindex notation
A Lisp expression that you can evaluate is called a @dfn{form}.
Evaluating a form always produces a result, which is a Lisp object. In
@ -355,11 +355,11 @@ indicates that the subsequent arguments may be omitted (omitted
arguments default to @code{nil}). Do not write @code{&optional} when
you call the function.
The keyword @code{&rest} (which must be followed by a single argument
name) indicates that any number of arguments can follow. The single
following argument name will have a value, as a variable, which is a
list of all these remaining arguments. Do not write @code{&rest} when
you call the function.
The keyword @code{&rest} (which must be followed by a single
argument name) indicates that any number of arguments can follow. The
single argument name following @code{&rest} will receive, as its
value, a list of all the remaining arguments passed to the function.
Do not write @code{&rest} when you call the function.
Here is a description of an imaginary function @code{foo}:
@ -450,9 +450,9 @@ from @var{body}, which includes all remaining elements of the form.
@cindex variable descriptions
@cindex option descriptions
A @dfn{variable} is a name that can hold a value. Although any
variable can be set by the user, certain variables that exist
specifically so that users can change them are called @dfn{user
A @dfn{variable} is a name that can hold a value. Although nearly
all variables can be set by the user, certain variables exist
specifically so that users can change them; these are called @dfn{user
options}. Ordinary variables and user options are described using a
format like that for functions except that there are no arguments.

View file

@ -373,6 +373,20 @@ or @code{beep} to report errors.
An error message should start with a capital letter but should not end
with a period.
@item
A question asked in the minibuffer with @code{y-or-n-p} or
@code{yes-or-no-p} should start with a capital letter and end with
@samp{? }.
@item
When you mention a default value in a minibuffer prompt,
put it and the word @samp{default} inside parentheses.
It should look like this:
@example
Enter the answer: (default 42)
@end example
@item
In @code{interactive}, if you use a Lisp expression to produce a list
of arguments, don't try to provide the ``correct'' default values for

View file

@ -1,3 +1,12 @@
2005-09-05 Chong Yidong <cyd@stupidchicken.com>
* custom.texi (Custom Themes): New node.
2005-09-03 Richard M. Stallman <rms@gnu.org>
* search.texi (Search Case): Mention vars that control
case-fold-search for various operations.
2005-08-30 Carsten Dominik <dominik@science.uva.nl>
* org.texi: Version 3.15.

View file

@ -199,6 +199,8 @@ the active fields and other features.
* 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.
@end menu
@node Customization Groups
@ -652,6 +654,60 @@ changes. Use @kbd{M-x customize-saved} to look at the options that
you have saved. Use @kbd{M-x customize-customized} to look at the
options that you have set but not saved.
@node Custom Themes
@subsection Customization Themes
@cindex custom themes
@dfn{Custom themes} are collections of customized options that can be
enabled or disabled as a unit. You can use Custom themes to switch
quickly and easily between various collections of settings, and to
transfer such collections from one computer to another.
@findex customize-create-theme
To define a Custom theme, use the command
@kbd{M-x customize-create-theme}, which brings up a buffer named
@samp{*New Custom Theme*}. At the top of the buffer is an editable
field where you can specify the name of the theme. To add a
customization option to the theme, click on the @samp{INS} button to
open up a field where you can insert the name of the option. The
current value of that option is applied to the theme. After adding as
many options as you like, click on @samp{Done} to save the Custom
theme.
@vindex custom-theme-directory
Saving a Custom theme named @var{foo} writes its definition into the
file @file{@var{foo}-theme.el}, in the directory @file{~/.emacs.d/}
(you can specify the directory by setting
@code{custom-theme-directory}).
@findex load-theme
@findex enable-theme
@findex disable-theme
You can load the themes you've previously defined with the command
@code{load-theme}. It prompts for a theme name in the minibuffer,
then loads that theme if it isn't already loaded. It also
@dfn{enables} the theme, which means putting its settings into effect.
An enabled theme can be @dfn{disabled} with the command
@kbd{M-x disable-theme}; this returns the options specified in the
theme to their original values. To re-enable the theme, use the
command @kbd{M-x enable-theme}.
To enable a Custom theme named @var{foo} whenever Emacs is started up,
add the line @code{(load-theme '@var{foo})} to your @file{.emacs} file
(@pxref{Init File}).
Enabling a custom theme does not disable the themes already enabled;
instead, they are all enabled together. If two enabled Custom themes
specify different values for an option, the last theme to be enabled
takes effect.
The options that you set in the ordinary customization buffer
(@pxref{Easy Customization}) are also considered part of a Custom
theme, called @samp{user}. The @samp{user} theme is always enabled,
and always takes precedence over all other enabled Custom themes.
Additionally, the @samp{user} theme is recorded in your @file{.emacs}
file, rather than a @file{user-theme.el} file.
@node Variables
@section Variables
@cindex variable

View file

@ -907,6 +907,12 @@ searches also, including those performed by the replace commands
(@pxref{Replace}) and the minibuffer history matching commands
(@pxref{Minibuffer History}).
Several related variables control case-sensitivity of searching and
matching for specific commands or activities. For instance,
@code{tags-case-fold-search} controls case sensitivity for
@code{find-tag}. To find these variables, do @kbd{M-x
apropos-variable @key{RET} case-fold-search @key{RET}}.
@node Replace
@section Replacement Commands
@cindex replacement

View file

@ -1,3 +1,13 @@
2005-09-03 Richard M. Stallman <rms@gnu.org>
* xdisp.c (redisplay_internal): Make UPDATED as long as needed.
(move_it_in_display_line_to): Stop after last char on line even
on a windowing terminal, if that's the specified stop position.
* fns.c (Fsort): Doc fix.
* editfns.c (Fpropertize): Don't insist that properties be symbols.
2005-09-01 Stefan Monnier <monnier@iro.umontreal.ca>
* dispnew.c (window_to_frame_hpos, update_window):

View file

@ -3260,10 +3260,7 @@ usage: (propertize STRING &rest PROPERTIES) */)
string = Fcopy_sequence (args[0]);
for (i = 1; i < nargs; i += 2)
{
CHECK_SYMBOL (args[i]);
properties = Fcons (args[i], Fcons (args[i + 1], properties));
}
properties = Fcons (args[i], Fcons (args[i + 1], properties));
Fadd_text_properties (make_number (0),
make_number (SCHARS (string)),

View file

@ -1894,7 +1894,7 @@ DEFUN ("sort", Fsort, Ssort, 2, 2, 0,
doc: /* Sort LIST, stably, comparing elements using PREDICATE.
Returns the sorted list. LIST is modified by side effects.
PREDICATE is called with two elements of LIST, and should return non-nil
if the first element is "less" than the second. */)
if the first element should sort before the second. */)
(list, predicate)
Lisp_Object list, predicate;
{

View file

@ -5999,6 +5999,8 @@ move_it_in_display_line_to (it, to_charpos, to_x, op)
glyphs have the same width. */
int single_glyph_width = it->pixel_width / it->nglyphs;
int new_x;
int x_before_this_char = x;
int hpos_before_this_char = it->hpos;
for (i = 0; i < it->nglyphs; ++i, x = new_x)
{
@ -6030,8 +6032,22 @@ move_it_in_display_line_to (it, to_charpos, to_x, op)
{
++it->hpos;
it->current_x = new_x;
/* The character's last glyph just barely fits
in this row. */
if (i == it->nglyphs - 1)
{
/* If this is the destination position,
return a position *before* it in this row,
now that we know it fits in this row. */
if (BUFFER_POS_REACHED_P ())
{
it->hpos = hpos_before_this_char;
it->current_x = x_before_this_char;
result = MOVE_POS_MATCH_OR_ZV;
break;
}
set_iterator_to_next (it, 1);
#ifdef HAVE_WINDOW_SYSTEM
if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it))
@ -10600,9 +10616,13 @@ redisplay_internal (preserve_echo_area)
if (consider_all_windows_p)
{
Lisp_Object tail, frame;
int i, n = 0, size = 50;
struct frame **updated
= (struct frame **) alloca (size * sizeof *updated);
int i, n = 0, size = 5;
struct frame **updated;
FOR_EACH_FRAME (tail, frame)
size++;
updated = (struct frame **) alloca (size * sizeof *updated);
/* Recompute # windows showing selected buffer. This will be
incremented each time such a window is displayed. */