aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiles Bader2004-07-28 07:05:52 +0000
committerMiles Bader2004-07-28 07:05:52 +0000
commit54685a78a73fcf2f53fd0e8a7a3c7478b8650f1b (patch)
tree998cde32667cb156ef66ceda314d53b168370588
parent6bb4a8bf9aaa63141ad7c12ab6b6ba9939050178 (diff)
parentb687047c72d2d13ced9ce55d38193b24ec722773 (diff)
downloademacs-54685a78a73fcf2f53fd0e8a7a3c7478b8650f1b.tar.gz
emacs-54685a78a73fcf2f53fd0e8a7a3c7478b8650f1b.zip
Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-26
Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-466 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-470 Update from CVS
-rw-r--r--lisp/ChangeLog57
-rw-r--r--lisp/autorevert.el2
-rw-r--r--lisp/font-lock.el5
-rw-r--r--lisp/frame.el12
-rw-r--r--lisp/imenu.el19
-rw-r--r--lisp/mail/rmail.el2
-rw-r--r--lisp/makefile.w32-in2
-rw-r--r--lisp/ps-print.el44
-rw-r--r--lisp/replace.el8
-rw-r--r--lisp/select.el23
-rw-r--r--lisp/simple.el7
-rw-r--r--lisp/subr.el6
-rw-r--r--lisp/term/tty-colors.el13
-rw-r--r--lisp/textmodes/flyspell.el2
-rw-r--r--lisp/wdired.el5
-rw-r--r--lispref/ChangeLog33
-rw-r--r--lispref/frames.texi197
-rw-r--r--lispref/macros.texi2
-rw-r--r--lispref/minibuf.texi1
-rw-r--r--lispref/windows.texi3
-rw-r--r--man/ChangeLog8
-rw-r--r--man/search.texi35
-rw-r--r--man/text.texi10
-rw-r--r--nt/makefile.w32-in4
-rw-r--r--src/ChangeLog46
-rw-r--r--src/abbrev.c4
-rw-r--r--src/alloc.c11
-rw-r--r--src/dispextern.h3
-rw-r--r--src/fileio.c2
-rw-r--r--src/frame.c18
-rw-r--r--src/keyboard.h1
-rw-r--r--src/window.c18
-rw-r--r--src/xdisp.c32
-rw-r--r--src/xfaces.c1
-rw-r--r--src/xfns.c24
35 files changed, 479 insertions, 181 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 3ece6ce0fb8..4f1d0859f65 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,11 +1,58 @@
12004-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * imenu.el (imenu-prev-index-position-function)
4 (imenu-extract-index-name-function, imenu-name-lookup-function)
5 (imenu--index-alist): Docstring redundancy fix.
6
72004-07-25 Lars Hansen <larsh@math.ku.dk>
8
9 * wdired.el (wdired-finish-edit): Require dired-aux before locally
10 binding dired-backup-overwrite.
11
122004-07-25 John Paul Wallington <jpw@gnu.org>
13
14 * subr.el (butlast, event-modifiers, event-basic-type): Doc fixes.
15
162004-07-24 Luc Teirlinck <teirllm@auburn.edu>
17
18 * term/tty-colors.el (tty-color-approximate): Doc fix.
19
20 * select.el (x-get-selection, x-set-selection): Doc fixes.
21
22 * frame.el (make-frame): Doc fix.
23
242004-07-24 Richard M. Stallman <rms@gnu.org>
25
26 * mail/rmail.el (rmail-mime-charset-pattern):
27 Don't include semicolon in the charset value.
28
29 * replace.el (occur-next-error): Call set-window-point.
30 (occur-engine): Handle negative NLINES.
31
322004-07-23 Luc Teirlinck <teirllm@auburn.edu>
33
34 * frame.el (modify-all-frames-parameters): Minor doc fix.
35 (set-frame-configuration): Doc fix.
36
372004-07-23 Matt Hodges <matt@stchem.bham.ac.uk> (tiny change)
38
39 * simple.el (completion-setup-function): Compute the common parts
40 and the first difference place correctly when
41 partial-completion-mode is on.
42
12004-07-22 Vinicius Jose Latorre <viniciusjl@ig.com.br> 432004-07-22 Vinicius Jose Latorre <viniciusjl@ig.com.br>
2 44
3 * ps-print.el: Doc fix. Improve the DSC compliance of the generated 45 * ps-print.el: Doc fix.
4 PostScript. Suggested by Michael Piotrowski <mxp@dynalabs.de>.
5 (ps-print-version): New version 6.6.5. 46 (ps-print-version): New version 6.6.5.
6 (ps-printing-region): Doc fix. 47 (ps-printing-region): Doc fix.
7 (ps-generate-string-list): Comment fix. 48 (ps-generate-string-list): Comment fix.
8 (ps-message-log-max, ps-begin-file): Code fix. 49 (ps-message-log-max): Code fix.
50
51
522004-07-22 Michael Piotrowski <mxp@dynalabs.de> (tiny change)
53
54 * ps-print.el (ps-begin-file): Improve the DSC compliance of the
55 generated PostScript.
9 56
102004-07-22 Kim F. Storm <storm@cua.dk> 572004-07-22 Kim F. Storm <storm@cua.dk>
11 58
@@ -38,8 +85,8 @@
38 85
392004-07-17 Kai Grossjohann <kai.grossjohann@gmx.net> 862004-07-17 Kai Grossjohann <kai.grossjohann@gmx.net>
40 87
41 * net/tramp.el (tramp-handle-verify-visited-file-modtime): New 88 * net/tramp.el (tramp-handle-verify-visited-file-modtime):
42 docstring. From Luc Teirlinck. 89 New docstring. From Luc Teirlinck.
43 90
442004-07-17 Luc Teirlinck <teirllm@auburn.edu> 912004-07-17 Luc Teirlinck <teirllm@auburn.edu>
45 92
diff --git a/lisp/autorevert.el b/lisp/autorevert.el
index ef438eb4b97..796ebaa27c8 100644
--- a/lisp/autorevert.el
+++ b/lisp/autorevert.el
@@ -1,6 +1,6 @@
1;;; autorevert.el --- revert buffers when files on disk change 1;;; autorevert.el --- revert buffers when files on disk change
2 2
3;; Copyright (C) 1997, 1998, 1999, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1997, 1998, 1999, 2001, 2004 Free Software Foundation, Inc.
4 4
5;; Author: Anders Lindgren <andersl@andersl.com> 5;; Author: Anders Lindgren <andersl@andersl.com>
6;; Keywords: convenience 6;; Keywords: convenience
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 6e46676c871..04b22fd0280 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -358,8 +358,9 @@ Each element in a user-level keywords list should have one of these forms:
358 (eval . FORM) 358 (eval . FORM)
359 359
360where MATCHER can be either the regexp to search for, or the function name to 360where MATCHER can be either the regexp to search for, or the function name to
361call to make the search (called with one argument, the limit of the search) and 361call to make the search (called with one argument, the limit of the search;
362return non-nil if it succeeds (and set `match-data' appropriately). 362it should return non-nil, move point, and set `match-data' appropriately iff
363it succeeds; like `re-search-forward' would).
363MATCHER regexps can be generated via the function `regexp-opt'. 364MATCHER regexps can be generated via the function `regexp-opt'.
364 365
365FORM is an expression, whose value should be a keyword element, evaluated when 366FORM is an expression, whose value should be a keyword element, evaluated when
diff --git a/lisp/frame.el b/lisp/frame.el
index 521938cfc18..a364d7f491b 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -520,7 +520,7 @@ React to settings of `default-frame-alist', `initial-frame-alist' there."
520;;;; Creation of additional frames, and other frame miscellanea 520;;;; Creation of additional frames, and other frame miscellanea
521 521
522(defun modify-all-frames-parameters (alist) 522(defun modify-all-frames-parameters (alist)
523 "Modify all current and future frames parameters according to ALIST. 523 "Modify all current and future frames' parameters according to ALIST.
524This changes `default-frame-alist' and possibly `initial-frame-alist'. 524This changes `default-frame-alist' and possibly `initial-frame-alist'.
525See help of `modify-frame-parameters' for more information." 525See help of `modify-frame-parameters' for more information."
526 (let (element) ;; temp 526 (let (element) ;; temp
@@ -612,7 +612,13 @@ You cannot specify either `width' or `height', you must use neither or both.
612 612
613Before the frame is created (via `frame-creation-function'), functions on the 613Before the frame is created (via `frame-creation-function'), functions on the
614hook `before-make-frame-hook' are run. After the frame is created, functions 614hook `before-make-frame-hook' are run. After the frame is created, functions
615on `after-make-frame-functions' are run with one arg, the newly created frame." 615on `after-make-frame-functions' are run with one arg, the newly created frame.
616
617This function itself does not make the new frame the selected frame.
618The previously selected frame remains selected. However, the
619window system may select the new frame for its own reasons, for
620instance if the frame appears under the mouse pointer and your
621setup is for focus to follow the pointer."
616 (interactive) 622 (interactive)
617 (run-hooks 'before-make-frame-hook) 623 (run-hooks 'before-make-frame-hook)
618 (let ((frame (funcall frame-creation-function parameters))) 624 (let ((frame (funcall frame-creation-function parameters)))
@@ -789,6 +795,8 @@ where
789 "Restore the frames to the state described by CONFIGURATION. 795 "Restore the frames to the state described by CONFIGURATION.
790Each frame listed in CONFIGURATION has its position, size, window 796Each frame listed in CONFIGURATION has its position, size, window
791configuration, and other parameters set as specified in CONFIGURATION. 797configuration, and other parameters set as specified in CONFIGURATION.
798However, this function does not restore deleted frames.
799
792Ordinarily, this function deletes all existing frames not 800Ordinarily, this function deletes all existing frames not
793listed in CONFIGURATION. But if optional second argument NODELETE 801listed in CONFIGURATION. But if optional second argument NODELETE
794is given and non-nil, the unwanted frames are iconified instead." 802is given and non-nil, the unwanted frames are iconified instead."
diff --git a/lisp/imenu.el b/lisp/imenu.el
index e0b57440fd8..238adfe9505 100644
--- a/lisp/imenu.el
+++ b/lisp/imenu.el
@@ -1,6 +1,7 @@
1;;; imenu.el --- framework for mode-specific buffer indexes 1;;; imenu.el --- framework for mode-specific buffer indexes
2 2
3;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2003 Free Software Foundation, Inc. 3;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2003, 2004
4;; Free Software Foundation, Inc.
4 5
5;; Author: Ake Stenhoff <etxaksf@aom.ericsson.se> 6;; Author: Ake Stenhoff <etxaksf@aom.ericsson.se>
6;; Lars Lindberg <lli@sypro.cap.se> 7;; Lars Lindberg <lli@sypro.cap.se>
@@ -255,9 +256,7 @@ to a function that will find the next index, looking backwards in the
255file. 256file.
256 257
257The function should leave point at the place to be connected to the 258The function should leave point at the place to be connected to the
258index and it should return nil when it doesn't find another index. 259index and it should return nil when it doesn't find another index.")
259
260This variable is local in all buffers.")
261;;;###autoload 260;;;###autoload
262(make-variable-buffer-local 'imenu-prev-index-position-function) 261(make-variable-buffer-local 'imenu-prev-index-position-function)
263 262
@@ -267,9 +266,7 @@ This variable is local in all buffers.")
267 266
268This function is called after `imenu-prev-index-position-function' 267This function is called after `imenu-prev-index-position-function'
269finds a position for an index item, with point at that position. 268finds a position for an index item, with point at that position.
270It should return the name for that index item. 269It should return the name for that index item.")
271
272This variable is local in all buffers.")
273;;;###autoload 270;;;###autoload
274(make-variable-buffer-local 'imenu-extract-index-name-function) 271(make-variable-buffer-local 'imenu-extract-index-name-function)
275 272
@@ -283,9 +280,7 @@ non-nil if they match.
283If nil, comparison is done with `string='. 280If nil, comparison is done with `string='.
284Set this to some other function for more advanced comparisons, 281Set this to some other function for more advanced comparisons,
285such as \"begins with\" or \"name matches and number of 282such as \"begins with\" or \"name matches and number of
286arguments match\". 283arguments match\".")
287
288This variable is local in all buffers.")
289;;;###autoload 284;;;###autoload
290(make-variable-buffer-local 'imenu-name-lookup-function) 285(make-variable-buffer-local 'imenu-name-lookup-function)
291 286
@@ -453,9 +448,7 @@ The function in this variable is called when selecting a normal index-item.")
453 "The buffer index computed for this buffer in Imenu. 448 "The buffer index computed for this buffer in Imenu.
454Simple elements in the alist look like (INDEX-NAME . INDEX-POSITION). 449Simple elements in the alist look like (INDEX-NAME . INDEX-POSITION).
455Special elements look like (INDEX-NAME INDEX-POSITION FUNCTION ARGUMENTS...). 450Special elements look like (INDEX-NAME INDEX-POSITION FUNCTION ARGUMENTS...).
456A nested sub-alist element looks like (INDEX-NAME SUB-ALIST). 451A nested sub-alist element looks like (INDEX-NAME SUB-ALIST).")
457
458This variable is local in all buffers, once set.")
459 452
460(make-variable-buffer-local 'imenu--index-alist) 453(make-variable-buffer-local 'imenu--index-alist)
461 454
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index 5fa4f34bbb8..8a4a3674b73 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -484,7 +484,7 @@ the variable `rmail-mime-feature'.")
484 484
485;;;###autoload 485;;;###autoload
486(defvar rmail-mime-charset-pattern 486(defvar rmail-mime-charset-pattern
487 "^content-type:[ ]*text/plain;[ \t\n]*charset=\"?\\([^ \t\n\"]+\\)\"?" 487 "^content-type:[ ]*text/plain;[ \t\n]*charset=\"?\\([^ \t\n\";]+\\)\"?"
488 "Regexp to match MIME-charset specification in a header of message. 488 "Regexp to match MIME-charset specification in a header of message.
489The first parenthesized expression should match the MIME-charset name.") 489The first parenthesized expression should match the MIME-charset name.")
490 490
diff --git a/lisp/makefile.w32-in b/lisp/makefile.w32-in
index 826cf89bfec..b2694bc2b78 100644
--- a/lisp/makefile.w32-in
+++ b/lisp/makefile.w32-in
@@ -209,7 +209,7 @@ loaddefs.el-CMD:
209 echo (autoload 'define-derived-mode "derived")>> $@ 209 echo (autoload 'define-derived-mode "derived")>> $@
210 echo (autoload 'encoded-kbd-mode "encoded-kb")>> $@ 210 echo (autoload 'encoded-kbd-mode "encoded-kb")>> $@
211 echo (defvar cvs-global-menu nil)>> $@ 211 echo (defvar cvs-global-menu nil)>> $@
212 echo. >> $@ 212 echo ;;; >> $@
213 echo ;;; Local Variables:>> $@ 213 echo ;;; Local Variables:>> $@
214 echo ;;; version-control: never>> $@ 214 echo ;;; version-control: never>> $@
215 echo ;;; no-byte-compile: t>> $@ 215 echo ;;; no-byte-compile: t>> $@
diff --git a/lisp/ps-print.el b/lisp/ps-print.el
index eff1b25fe42..293fb7e1143 100644
--- a/lisp/ps-print.el
+++ b/lisp/ps-print.el
@@ -5544,17 +5544,15 @@ XSTART YSTART are the relative position for the first page in a sheet.")
5544 (setq ps-background-all-pages (nreverse ps-background-all-pages) 5544 (setq ps-background-all-pages (nreverse ps-background-all-pages)
5545 ps-background-pages (nreverse ps-background-pages)) 5545 ps-background-pages (nreverse ps-background-pages))
5546 5546
5547 (ps-output "\n" ps-print-prologue-1) 5547 (ps-output "\n" ps-print-prologue-1
5548 5548 "\n/printGlobalBackground{\n")
5549 (ps-output "\n/printGlobalBackground{\n")
5550 (mapcar 'ps-output ps-background-all-pages) 5549 (mapcar 'ps-output ps-background-all-pages)
5551 (ps-output "}def\n/printLocalBackground{\n}def\n")
5552
5553 (ps-output "\n%%EndProlog\n\n%%BeginSetup\n")
5554
5555 (ps-output 5550 (ps-output
5551 "}def\n/printLocalBackground{\n}def\n"
5552 "\n%%EndProlog\n\n%%BeginSetup\n"
5556 "\n%%IncludeResource: font Times-Roman" 5553 "\n%%IncludeResource: font Times-Roman"
5557 "\n%%IncludeResource: font Times-Italic\n%%IncludeResource: font " 5554 "\n%%IncludeResource: font Times-Italic"
5555 "\n%%IncludeResource: font "
5558 (mapconcat 'identity 5556 (mapconcat 'identity
5559 (ps-remove-duplicates 5557 (ps-remove-duplicates
5560 (append (ps-fonts 'ps-font-for-text) 5558 (append (ps-fonts 'ps-font-for-text)
@@ -5563,22 +5561,20 @@ XSTART YSTART are the relative position for the first page in a sheet.")
5563 (ps-font 'ps-font-for-footer 'normal) 5561 (ps-font 'ps-font-for-footer 'normal)
5564 (ps-font 'ps-font-for-footer 'bold)))) 5562 (ps-font 'ps-font-for-footer 'bold))))
5565 "\n%%IncludeResource: font ") 5563 "\n%%IncludeResource: font ")
5566 "\n") 5564 ;; Header/line number fonts
5567 5565 (format "\n/h0 %s(%s)cvn DefFont\n" ; /h0 14/Helvetica-Bold DefFont
5568 ;; Header/line number fonts 5566 ps-header-title-font-size-internal
5569 (ps-output (format "/h0 %s(%s)cvn DefFont\n" ; /h0 14/Helvetica-Bold DefFont 5567 (ps-font 'ps-font-for-header 'bold))
5570 ps-header-title-font-size-internal 5568 (format "/h1 %s(%s)cvn DefFont\n" ; /h1 12/Helvetica DefFont
5571 (ps-font 'ps-font-for-header 'bold)) 5569 ps-header-font-size-internal
5572 (format "/h1 %s(%s)cvn DefFont\n" ; /h1 12/Helvetica DefFont 5570 (ps-font 'ps-font-for-header 'normal))
5573 ps-header-font-size-internal 5571 (format "/L0 %s(%s)cvn DefFont\n" ; /L0 6/Times-Italic DefFont
5574 (ps-font 'ps-font-for-header 'normal)) 5572 (ps-get-font-size 'ps-line-number-font-size)
5575 (format "/L0 %s(%s)cvn DefFont\n" ; /L0 6/Times-Italic DefFont 5573 ps-line-number-font)
5576 (ps-get-font-size 'ps-line-number-font-size) 5574 (format "/H0 %s(%s)cvn DefFont\n" ; /H0 12/Helvetica DefFont
5577 ps-line-number-font) 5575 ps-footer-font-size-internal
5578 (format "/H0 %s(%s)cvn DefFont\n" ; /H0 12/Helvetica DefFont 5576 (ps-font 'ps-font-for-footer 'normal))
5579 ps-footer-font-size-internal 5577 "\n\n% ---- These lines must be kept together because...
5580 (ps-font 'ps-font-for-footer 'normal))
5581 "\n\n% ---- These lines must be kept together because...
5582 5578
5583/h0 F 5579/h0 F
5584/HeaderTitleLineHeight FontHeight def 5580/HeaderTitleLineHeight FontHeight def
diff --git a/lisp/replace.el b/lisp/replace.el
index f81c6f53914..f09868cc6d3 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -732,6 +732,8 @@ Compatibility function for \\[next-error] invocations."
732 #'previous-single-property-change 732 #'previous-single-property-change
733 #'next-single-property-change) 733 #'next-single-property-change)
734 "No more matches") 734 "No more matches")
735 ;; In case the *Occur* buffer is visible in a nonselected window.
736 (set-window-point (get-buffer-window (current-buffer)) (point))
735 (occur-mode-goto-occurrence)) 737 (occur-mode-goto-occurrence))
736 738
737 739
@@ -1009,9 +1011,11 @@ See also `multi-occur'."
1009 ;; concatenate them all together. 1011 ;; concatenate them all together.
1010 (apply #'concat 1012 (apply #'concat
1011 (nconc 1013 (nconc
1012 (occur-engine-add-prefix (nreverse (cdr (occur-accumulate-lines (- (1+ nlines)) keep-props)))) 1014 (occur-engine-add-prefix (nreverse (cdr (occur-accumulate-lines (- (1+ (abs nlines))) keep-props))))
1013 (list out-line) 1015 (list out-line)
1014 (occur-engine-add-prefix (cdr (occur-accumulate-lines (1+ nlines) keep-props)))))))) 1016 (if (> nlines 0)
1017 (occur-engine-add-prefix
1018 (cdr (occur-accumulate-lines (1+ nlines) keep-props)))))))))
1015 ;; Actually insert the match display data 1019 ;; Actually insert the match display data
1016 (with-current-buffer out-buf 1020 (with-current-buffer out-buf
1017 (let ((beg (point)) 1021 (let ((beg (point))
diff --git a/lisp/select.el b/lisp/select.el
index c095ea50c44..565ddd7d22e 100644
--- a/lisp/select.el
+++ b/lisp/select.el
@@ -3,7 +3,7 @@
3;; Maintainer: FSF 3;; Maintainer: FSF
4;; Keywords: internal 4;; Keywords: internal
5 5
6;; Copyright (c) 1993, 1994 Free Software Foundation, Inc. 6;; Copyright (c) 1993, 1994, 2004 Free Software Foundation, Inc.
7;; Based partially on earlier release by Lucid. 7;; Based partially on earlier release by Lucid.
8 8
9;; This file is part of GNU Emacs. 9;; This file is part of GNU Emacs.
@@ -35,7 +35,11 @@ The argument TYPE (default `PRIMARY') says which selection,
35and the argument DATA-TYPE (default `STRING') says 35and the argument DATA-TYPE (default `STRING') says
36how to convert the data. 36how to convert the data.
37 37
38TYPE may be `SECONDARY' or `CLIPBOARD', in addition to `PRIMARY'. 38TYPE may be any symbol \(but nil stands for `PRIMARY'). However,
39only a few symbols are commonly used. They conventionally have
40all upper-case names. The most often used ones, in addition to
41`PRIMARY', are `SECONDARY' and `CLIPBOARD'.
42
39DATA-TYPE is usually `STRING', but can also be one of the symbols 43DATA-TYPE is usually `STRING', but can also be one of the symbols
40in `selection-converter-alist', which see." 44in `selection-converter-alist', which see."
41 (let ((data (x-get-selection-internal (or type 'PRIMARY) 45 (let ((data (x-get-selection-internal (or type 'PRIMARY)
@@ -57,9 +61,11 @@ in `selection-converter-alist', which see."
57 61
58(defun x-set-selection (type data) 62(defun x-set-selection (type data)
59 "Make an X Windows selection of type TYPE and value DATA. 63 "Make an X Windows selection of type TYPE and value DATA.
60The argument TYPE (default `PRIMARY') says which selection, 64The argument TYPE (nil means `PRIMARY') says which selection, and
61and DATA specifies the contents. DATA may be a string, 65DATA specifies the contents. TYPE must be a symbol. \(It can also
62a symbol, an integer (or a cons of two integers or list of two integers). 66be a string, which stands for the symbol with that name, but this
67is considered obsolete.) DATA may be a string, a symbol, an
68integer (or a cons of two integers or list of two integers).
63 69
64The selection may also be a cons of two markers pointing to the same buffer, 70The selection may also be a cons of two markers pointing to the same buffer,
65or an overlay. In these cases, the selection is considered to be the text 71or an overlay. In these cases, the selection is considered to be the text
@@ -69,8 +75,11 @@ can alter the effective value of the selection.
69 75
70The data may also be a vector of valid non-vector selection values. 76The data may also be a vector of valid non-vector selection values.
71 77
72Interactively, the text of the region is used as the selection value 78The return value is DATA.
73if the prefix arg is set." 79
80Interactively, this command sets the primary selection. Without
81prefix argument, it reads the selection in the minibuffer. With
82prefix argument, it uses the text of the region as the selection value ."
74 (interactive (if (not current-prefix-arg) 83 (interactive (if (not current-prefix-arg)
75 (list 'PRIMARY (read-string "Set text for pasting: ")) 84 (list 'PRIMARY (read-string "Set text for pasting: "))
76 (list 'PRIMARY (buffer-substring (region-beginning) (region-end))))) 85 (list 'PRIMARY (buffer-substring (region-beginning) (region-end)))))
diff --git a/lisp/simple.el b/lisp/simple.el
index 547849740fa..1ffac99973c 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4313,6 +4313,13 @@ of the differing parts is, by contrast, slightly highlighted."
4313 (if minibuffer-completing-file-name 4313 (if minibuffer-completing-file-name
4314 (with-current-buffer mainbuf 4314 (with-current-buffer mainbuf
4315 (setq default-directory (file-name-directory mbuf-contents)))) 4315 (setq default-directory (file-name-directory mbuf-contents))))
4316 ;; If partial-completion-mode is on, point might not be after the
4317 ;; last character in the minibuffer.
4318 ;; FIXME: This still doesn't work if the text to be completed
4319 ;; starts with a `-'.
4320 (when (and partial-completion-mode (not (eobp)))
4321 (setq mbuf-contents
4322 (substring mbuf-contents 0 (- (point) (point-max)))))
4316 (with-current-buffer standard-output 4323 (with-current-buffer standard-output
4317 (completion-list-mode) 4324 (completion-list-mode)
4318 (make-local-variable 'completion-reference-buffer) 4325 (make-local-variable 'completion-reference-buffer)
diff --git a/lisp/subr.el b/lisp/subr.el
index 9ea9f01c551..354f911fe67 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -198,7 +198,7 @@ If N is bigger than the length of LIST, return LIST."
198 list)) 198 list))
199 199
200(defun butlast (list &optional n) 200(defun butlast (list &optional n)
201 "Returns a copy of LIST with the last N elements removed." 201 "Return a copy of LIST with the last N elements removed."
202 (if (and n (<= n 0)) list 202 (if (and n (<= n 0)) list
203 (nbutlast (copy-sequence list) n))) 203 (nbutlast (copy-sequence list) n)))
204 204
@@ -641,7 +641,7 @@ The normal global definition of the character C-x indirects to this keymap.")
641 (get (car obj) 'event-symbol-elements)))) 641 (get (car obj) 'event-symbol-elements))))
642 642
643(defun event-modifiers (event) 643(defun event-modifiers (event)
644 "Returns a list of symbols representing the modifier keys in event EVENT. 644 "Return a list of symbols representing the modifier keys in event EVENT.
645The elements of the list may include `meta', `control', 645The elements of the list may include `meta', `control',
646`shift', `hyper', `super', `alt', `click', `double', `triple', `drag', 646`shift', `hyper', `super', `alt', `click', `double', `triple', `drag',
647and `down'." 647and `down'."
@@ -670,7 +670,7 @@ and `down'."
670 list)))) 670 list))))
671 671
672(defun event-basic-type (event) 672(defun event-basic-type (event)
673 "Returns the basic type of the given event (all modifiers removed). 673 "Return the basic type of the given event (all modifiers removed).
674The value is a printing character (not upper case) or a symbol." 674The value is a printing character (not upper case) or a symbol."
675 (if (consp event) 675 (if (consp event)
676 (setq event (car event))) 676 (setq event (car event)))
diff --git a/lisp/term/tty-colors.el b/lisp/term/tty-colors.el
index 956d46738df..1de35822b39 100644
--- a/lisp/term/tty-colors.el
+++ b/lisp/term/tty-colors.el
@@ -864,15 +864,10 @@ of gray, thus the name."
864 (if (< mag 1) 0 (acos (/ (+ r g b) mag))))) 864 (if (< mag 1) 0 (acos (/ (+ r g b) mag)))))
865 865
866(defun tty-color-approximate (rgb &optional frame) 866(defun tty-color-approximate (rgb &optional frame)
867 "Given a list of 3 rgb values in RGB, find the color in `tty-color-alist' 867 "Find the color in `tty-color-alist' that best approximates RGB.
868which is the best approximation in the 3-dimensional RGB space, 868Value is a list of the form \(NAME INDEX R G B\).
869and return its description. 869The argument RGB should be an rgb value, that is, a list of three
870 870integers in the 0..65535 range.
871Value is a list of the form \(NAME INDEX R G B\). Note that the returned
872NAME is not necessarily the same string as the argument COLOR, because
873the latter might need to be approximated if it is not supported directly.
874
875Each value of the RGB triplet should be in the range 0..65535 range.
876FRAME defaults to the selected frame." 871FRAME defaults to the selected frame."
877 (let* ((color-list (tty-color-alist frame)) 872 (let* ((color-list (tty-color-alist frame))
878 (candidate (car color-list)) 873 (candidate (car color-list))
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index aff42866349..5238e131ab6 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -2,7 +2,7 @@
2 2
3;; Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc. 3;; Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
4 4
5;; Author: Manuel Serrano <Manuel.Serrano@unice.fr> 5;; Author: Manuel Serrano <Manuel.Serrano@sophia.inria.fr>
6;; Maintainer: FSF 6;; Maintainer: FSF
7;; Keywords: convenience 7;; Keywords: convenience
8 8
diff --git a/lisp/wdired.el b/lisp/wdired.el
index 30ba2a3cd45..928ecd65339 100644
--- a/lisp/wdired.el
+++ b/lisp/wdired.el
@@ -455,6 +455,11 @@ non-nil means return old filename."
455 (setq file-new (substitute-in-file-name file-new)) 455 (setq file-new (substitute-in-file-name file-new))
456 (if wdired-use-interactive-rename 456 (if wdired-use-interactive-rename
457 (wdired-search-and-rename file-ori file-new) 457 (wdired-search-and-rename file-ori file-new)
458 ;; If dired-rename-file autoloads dired-aux while
459 ;; dired-backup-overwrite is locally bound,
460 ;; dired-backup-overwrite won't be initialized.
461 ;; So we must ensure dired-aux is loaded.
462 (require 'dired-aux)
458 (condition-case err 463 (condition-case err
459 (let ((dired-backup-overwrite nil)) 464 (let ((dired-backup-overwrite nil))
460 (dired-rename-file file-ori file-new 465 (dired-rename-file file-ori file-new
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index 14b0fcb4606..146f2173864 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,36 @@
12004-07-24 Luc Teirlinck <teirllm@auburn.edu>
2
3 * frames.texi: Various changes in addition to:
4 (Creating Frames): Expand and clarify description of `make-frame'.
5 (Window Frame Parameters): Either none or both of the `icon-left'
6 and `icon-top' parameters must be specified. Put descriptions of
7 `menu-bar-lines' and `toolbar-lines' closer together and change
8 them accordingly.
9 (Frame Titles): `multiple-frames' is not guaranteed to be accurate
10 except while processing `frame-title-format' or `icon-title-format'.
11 (Deleting Frames): Correct description of `delete-frame'.
12 Non-nil return values of `frame-live-p' are like those of `framep'.
13 (Frames and Windows): mention return value of
14 `set-frame-selected-window'.
15 (Visibility of Frames): Mention `force' argument to
16 `make-frame-invisible'. `frame-visible-p' returns t for all
17 frames on text-only terminals.
18 (Frame Configurations): Restoring a frame configuration does not
19 restore deleted frames.
20 (Window System Selections): `x-set-selection' returns DATA.
21 (Resources): Add example.
22 (Display Feature Testing): Clarify descriptions of
23 `display-pixel-height', `display-pixel-width', `x-server-version'
24 and `x-server-vendor'.
25
26 * windows.texi (Choosing Window): Add anchor.
27 * minibuf.texi (Minibuffer Misc): Add anchor.
28
292004-07-23 John Paul Wallington <jpw@gnu.org>
30
31 * macros.texi (Defining Macros): Declaration keyword for setting
32 Edebug spec is `debug' not `edebug'.
33
12004-07-19 Luc Teirlinck <teirllm@auburn.edu> 342004-07-19 Luc Teirlinck <teirllm@auburn.edu>
2 35
3 * windows.texi: Various small changes in addition to: 36 * windows.texi: Various small changes in addition to:
diff --git a/lispref/frames.texi b/lispref/frames.texi
index 61522e3598c..6d7b956af64 100644
--- a/lispref/frames.texi
+++ b/lispref/frames.texi
@@ -79,8 +79,9 @@ controlling Emacs redisplay.
79To create a new frame, call the function @code{make-frame}. 79To create a new frame, call the function @code{make-frame}.
80 80
81@defun make-frame &optional alist 81@defun make-frame &optional alist
82This function creates a new frame. If you are using a supported window 82This function creates and returns a new frame, displaying the current
83system, it makes a window frame; otherwise, it makes a terminal frame. 83buffer. If you are using a supported window system, it makes a window
84frame; otherwise, it makes a terminal frame.
84 85
85The argument is an alist specifying frame parameters. Any parameters 86The argument is an alist specifying frame parameters. Any parameters
86not mentioned in @var{alist} default according to the value of the 87not mentioned in @var{alist} default according to the value of the
@@ -91,6 +92,12 @@ your system.
91The set of possible parameters depends in principle on what kind of 92The set of possible parameters depends in principle on what kind of
92window system Emacs uses to display its frames. @xref{Window Frame 93window system Emacs uses to display its frames. @xref{Window Frame
93Parameters}, for documentation of individual parameters you can specify. 94Parameters}, for documentation of individual parameters you can specify.
95
96This function itself does not make the new frame the selected frame.
97@xref{Input Focus}. The previously selected frame remains selected.
98However, the window system may select the new frame for its own reasons,
99for instance if the frame appears under the mouse pointer and your
100setup is for focus to follow the pointer.
94@end defun 101@end defun
95 102
96@defvar before-make-frame-hook 103@defvar before-make-frame-hook
@@ -138,9 +145,10 @@ names that they share a single keyboard, and it treats them as a single
138terminal. 145terminal.
139 146
140@deffn Command make-frame-on-display display &optional parameters 147@deffn Command make-frame-on-display display &optional parameters
141This creates a new frame on display @var{display}, taking the other 148This creates and returns a new frame on display @var{display}, taking
142frame parameters from @var{parameters}. Aside from the @var{display} 149the other frame parameters from @var{parameters}. Aside from the
143argument, it is like @code{make-frame} (@pxref{Creating Frames}). 150@var{display} argument, it is like @code{make-frame} (@pxref{Creating
151Frames}).
144@end deffn 152@end deffn
145 153
146@defun x-display-list 154@defun x-display-list
@@ -165,7 +173,7 @@ look like:
165"*BorderWidth: 3\n*InternalBorder: 2\n" 173"*BorderWidth: 3\n*InternalBorder: 2\n"
166@end example 174@end example
167 175
168@xref{Resources}. 176@xref{X Resources,, X Resources, emacs, The GNU Emacs Manual}.
169 177
170If @var{must-succeed} is non-@code{nil}, failure to open the connection 178If @var{must-succeed} is non-@code{nil}, failure to open the connection
171terminates Emacs. Otherwise, it is an ordinary Lisp error. 179terminates Emacs. Otherwise, it is an ordinary Lisp error.
@@ -207,9 +215,10 @@ frame.
207 215
208@defun frame-parameter frame parameter 216@defun frame-parameter frame parameter
209@tindex frame-parameter 217@tindex frame-parameter
210This function returns the value of the parameter named @var{parameter} 218This function returns the value of the parameter @var{parameter} (a
211of @var{frame}. If @var{frame} is @code{nil}, it returns the 219symbol) of @var{frame}. If @var{frame} is @code{nil}, it returns the
212selected frame's parameter. 220selected frame's parameter. If @var{frame} has no setting for
221@var{parameter}, this function returns @code{nil}.
213@end defun 222@end defun
214 223
215@defun frame-parameters &optional frame 224@defun frame-parameters &optional frame
@@ -230,8 +239,8 @@ frame.
230@defun modify-all-frames-parameters alist 239@defun modify-all-frames-parameters alist
231This function alters the frame parameters of all existing frames 240This function alters the frame parameters of all existing frames
232according to @var{alist}, then modifies @code{default-frame-alist} 241according to @var{alist}, then modifies @code{default-frame-alist}
233to apply the same parameter values to frames that will be created 242(and, if necessary, @code{initial-frame-alist}) to apply the same
234henceforth. 243parameter values to frames that will be created henceforth.
235@end defun 244@end defun
236 245
237@node Initial Parameters 246@node Initial Parameters
@@ -285,9 +294,12 @@ This is an alist specifying default values of frame parameters for all
285Emacs frames---the first frame, and subsequent frames. When using the X 294Emacs frames---the first frame, and subsequent frames. When using the X
286Window System, you can get the same results by means of X resources 295Window System, you can get the same results by means of X resources
287in many cases. 296in many cases.
297
298Setting this variable does not affect existing frames.
288@end defvar 299@end defvar
289 300
290See also @code{special-display-frame-alist}, in @ref{Choosing Window}. 301See also @code{special-display-frame-alist}. @xref{Definition of
302special-display-frame-alist}.
291 303
292If you use options that specify window appearance when you invoke Emacs, 304If you use options that specify window appearance when you invoke Emacs,
293they take effect by adding elements to @code{default-frame-alist}. One 305they take effect by adding elements to @code{default-frame-alist}. One
@@ -368,6 +380,10 @@ The screen position of the left edge @emph{of the frame's icon}, in
368pixels, counting from the left edge of the screen. This takes effect if 380pixels, counting from the left edge of the screen. This takes effect if
369and when the frame is iconified. 381and when the frame is iconified.
370 382
383If you specify a value for this parameter, then you must also specify
384a value for @code{icon-top} and vice versa. The window manager may
385ignore these two parameters.
386
371@item icon-top 387@item icon-top
372The screen position of the top edge @emph{of the frame's icon}, in 388The screen position of the top edge @emph{of the frame's icon}, in
373pixels, counting from the top edge of the screen. This takes effect if 389pixels, counting from the top edge of the screen. This takes effect if
@@ -528,8 +544,8 @@ The combined fringe widths must add up to an integral number of
528columns, so the actual default fringe widths for the frame may be 544columns, so the actual default fringe widths for the frame may be
529larger than the specified values. The extra width needed to reach an 545larger than the specified values. The extra width needed to reach an
530acceptable total is distributed evenly between the left and right 546acceptable total is distributed evenly between the left and right
531fringe. However, you can force one frame or the other to a precise 547fringe. However, you can force one fringe or the other to a precise
532width by specifying that width a negative integer. If both widths are 548width by specifying that width as a negative integer. If both widths are
533negative, only the left fringe gets the specified width. 549negative, only the left fringe gets the specified width.
534 550
535@item unsplittable 551@item unsplittable
@@ -541,10 +557,15 @@ The state of visibility of the frame. There are three possibilities:
541iconified. @xref{Visibility of Frames}. 557iconified. @xref{Visibility of Frames}.
542 558
543@item menu-bar-lines 559@item menu-bar-lines
544The number of lines to allocate at the top of the frame for a menu bar. 560The number of lines to allocate at the top of the frame for a menu
545The default is 1. @xref{Menu Bar}. (In Emacs versions that use the X 561bar. The default is 1. A value of @code{nil} means don't display a
546toolkit or GTK, there is only one menu bar line; all that matters about the 562menu bar. @xref{Menu Bar}. (The X toolkit and GTK allow at most one
547number you specify is whether it is greater than zero.) 563menu bar line; they treat larger values as 1.)
564
565@item tool-bar-lines
566The number of lines to use for the toolbar. A value of @code{nil} means
567don't display a tool bar. (GTK allows at most one tool bar line; it
568treats larger values as 1.)
548 569
549@item screen-gamma 570@item screen-gamma
550@cindex gamma correction 571@cindex gamma correction
@@ -557,7 +578,7 @@ Emacs, and in X windows generally, are calibrated to display properly
557on a monitor with that gamma value. If you specify 2.2 for 578on a monitor with that gamma value. If you specify 2.2 for
558@code{screen-gamma}, that means no correction is needed. Other values 579@code{screen-gamma}, that means no correction is needed. Other values
559request correction, designed to make the corrected colors appear on 580request correction, designed to make the corrected colors appear on
560your screen they way they would have appeared without correction on an 581your screen the way they would have appeared without correction on an
561ordinary monitor with a gamma value of 2.2. 582ordinary monitor with a gamma value of 2.2.
562 583
563If your monitor displays colors too light, you should specify a 584If your monitor displays colors too light, you should specify a
@@ -565,14 +586,14 @@ If your monitor displays colors too light, you should specify a
565that makes colors darker. A screen gamma value of 1.5 may give good 586that makes colors darker. A screen gamma value of 1.5 may give good
566results for LCD color displays. 587results for LCD color displays.
567 588
568@item tool-bar-lines
569The number of lines to use for the toolbar. A value of @code{nil} means
570don't display a tool bar. (In Emacs versions that use GTK, there is
571only one tool bar line; all that matters about the number you specify
572is whether it is greater than zero.)
573
574@item line-spacing 589@item line-spacing
575Additional space put below text lines in pixels (a positive integer). 590Additional space put below text lines, in pixels (a positive integer)
591
592@item wait-for-wm
593If non-@code{nil}, tell Xt to wait for the window manager to confirm
594geometry changes. Some window managers, including versions of Fvwm2
595and KDE, fail to confirm, so Xt hangs. Set this to @code{nil} to
596prevent hanging with those window managers.
576 597
577@ignore 598@ignore
578@item parent-id 599@item parent-id
@@ -637,12 +658,6 @@ equivalent to the @code{:foreground} attribute of the
637If non-@code{nil}, the color for the background of scroll bars. It is 658If non-@code{nil}, the color for the background of scroll bars. It is
638equivalent to the @code{:background} attribute of the 659equivalent to the @code{:background} attribute of the
639@code{scroll-bar} face. 660@code{scroll-bar} face.
640
641@item wait-for-wm
642If non-@code{nil}, tell Xt to wait for the window manager to confirm
643geometry changes. Some window managers, including versions of Fvwm2
644and KDE, fail to confirm, so Xt hangs. Set this to @code{nil} to
645prevent hanging with those window managers.
646@end table 661@end table
647 662
648@node Size and Position 663@node Size and Position
@@ -818,6 +833,10 @@ there are two or more frames (not counting minibuffer-only frames or
818invisible frames). The default value of @code{frame-title-format} uses 833invisible frames). The default value of @code{frame-title-format} uses
819@code{multiple-frames} so as to put the buffer name in the frame title 834@code{multiple-frames} so as to put the buffer name in the frame title
820only when there is more than one frame. 835only when there is more than one frame.
836
837The value of this variable is not guaranteed to be accurate except
838while processing @code{frame-title-format} or
839@code{icon-title-format}.
821@end defvar 840@end defvar
822 841
823@node Deleting Frames 842@node Deleting Frames
@@ -826,16 +845,14 @@ only when there is more than one frame.
826 845
827Frames remain potentially visible until you explicitly @dfn{delete} 846Frames remain potentially visible until you explicitly @dfn{delete}
828them. A deleted frame cannot appear on the screen, but continues to 847them. A deleted frame cannot appear on the screen, but continues to
829exist as a Lisp object until there are no references to it. There is no 848exist as a Lisp object until there are no references to it.
830way to cancel the deletion of a frame aside from restoring a saved frame
831configuration (@pxref{Frame Configurations}); this is similar to the
832way windows behave.
833 849
834@deffn Command delete-frame &optional frame force 850@deffn Command delete-frame &optional frame force
835@vindex delete-frame-functions 851@vindex delete-frame-functions
836This function deletes the frame @var{frame} after running the hook 852This function deletes the frame @var{frame}. Unless @var{frame} is a
837@code{delete-frame-functions} (each function gets one argument, 853tooltip, it first runs the hook @code{delete-frame-functions} (each
838@var{frame}). By default, @var{frame} is the selected frame. 854function gets one argument, @var{frame}). By default, @var{frame} is
855the selected frame.
839 856
840A frame cannot be deleted if its minibuffer is used by other frames. 857A frame cannot be deleted if its minibuffer is used by other frames.
841Normally, you cannot delete a frame if all other frames are invisible, 858Normally, you cannot delete a frame if all other frames are invisible,
@@ -844,7 +861,8 @@ but if the @var{force} is non-@code{nil}, then you are allowed to do so.
844 861
845@defun frame-live-p frame 862@defun frame-live-p frame
846The function @code{frame-live-p} returns non-@code{nil} if the frame 863The function @code{frame-live-p} returns non-@code{nil} if the frame
847@var{frame} has not been deleted. 864@var{frame} has not been deleted. The possible non-@code{nil} return
865values are like those of @code{framep}. @xref{Frames}.
848@end defun 866@end defun
849 867
850 Some window managers provide a command to delete a window. These work 868 Some window managers provide a command to delete a window. These work
@@ -929,29 +947,31 @@ frame also selects this window. You can get the frame's current
929selected window with @code{frame-selected-window}. 947selected window with @code{frame-selected-window}.
930 948
931@defun frame-selected-window &optional frame 949@defun frame-selected-window &optional frame
932This function returns the window on @var{frame} that is selected within 950This function returns the window on @var{frame} that is selected
933@var{frame}. If omitted or @code{nil}, @var{frame} defaults to the selected frame. 951within @var{frame}. If omitted or @code{nil}, @var{frame} defaults to
952the selected frame.
934@end defun 953@end defun
935 954
936@defun set-frame-selected-window frame window 955@defun set-frame-selected-window frame window
937This sets the selected window of frame @var{frame} to @var{window}. 956This sets the selected window of frame @var{frame} to @var{window}.
938If @var{frame} is @code{nil}, it operates on the selected frame. If 957If @var{frame} is @code{nil}, it operates on the selected frame. If
939@var{frame} is the selected frame, this makes @var{window} the 958@var{frame} is the selected frame, this makes @var{window} the
940selected window. 959selected window. This function returns @var{window}.
941@end defun 960@end defun
942 961
943 Conversely, selecting a window for Emacs with @code{select-window} also 962 Conversely, selecting a window for Emacs with @code{select-window} also
944makes that window selected within its frame. @xref{Selecting Windows}. 963makes that window selected within its frame. @xref{Selecting Windows}.
945 964
946 Another function that (usually) returns one of the windows in a given 965 Another function that (usually) returns one of the windows in a given
947frame is @code{minibuffer-window}. @xref{Minibuffer Misc}. 966frame is @code{minibuffer-window}. @xref{Definition of minibuffer-window}.
948 967
949@node Minibuffers and Frames 968@node Minibuffers and Frames
950@section Minibuffers and Frames 969@section Minibuffers and Frames
951 970
952Normally, each frame has its own minibuffer window at the bottom, which 971Normally, each frame has its own minibuffer window at the bottom, which
953is used whenever that frame is selected. If the frame has a minibuffer, 972is used whenever that frame is selected. If the frame has a minibuffer,
954you can get it with @code{minibuffer-window} (@pxref{Minibuffer Misc}). 973you can get it with @code{minibuffer-window} (@pxref{Definition of
974minibuffer-window}).
955 975
956However, you can also create a frame with no minibuffer. Such a frame 976However, you can also create a frame with no minibuffer. Such a frame
957must use the minibuffer window of some other frame. When you create the 977must use the minibuffer window of some other frame. When you create the
@@ -966,8 +986,9 @@ when you enter the minibuffer. If so, set the variable
966 986
967@defvar default-minibuffer-frame 987@defvar default-minibuffer-frame
968This variable specifies the frame to use for the minibuffer window, by 988This variable specifies the frame to use for the minibuffer window, by
969default. It is always local to the current terminal and cannot be 989default. It does not affect existing frames. It is always local to
970buffer-local. @xref{Multiple Displays}. 990the current terminal and cannot be buffer-local. @xref{Multiple
991Displays}.
971@end defvar 992@end defvar
972 993
973@node Input Focus 994@node Input Focus
@@ -1026,7 +1047,10 @@ function is not significant.
1026This function selects frame @var{frame}, temporarily disregarding the 1047This function selects frame @var{frame}, temporarily disregarding the
1027focus of the X server if any. The selection of @var{frame} lasts until 1048focus of the X server if any. The selection of @var{frame} lasts until
1028the next time the user does something to select a different frame, or 1049the next time the user does something to select a different frame, or
1029until the next time this function is called. The specified @var{frame} 1050until the next time this function is called. (If you are using a
1051window system, the previously selected frame may be restored as the
1052selected frame after return to the command loop, because it still may
1053have the window system's input focus.) The specified @var{frame}
1030becomes the selected frame, as explained above, and the terminal that 1054becomes the selected frame, as explained above, and the terminal that
1031@var{frame} is on becomes the selected terminal. This function 1055@var{frame} is on becomes the selected terminal. This function
1032returns @var{frame}, or @code{nil} if @var{frame} has been deleted. 1056returns @var{frame}, or @code{nil} if @var{frame} has been deleted.
@@ -1107,9 +1131,12 @@ This function makes frame @var{frame} visible. If you omit @var{frame},
1107it makes the selected frame visible. 1131it makes the selected frame visible.
1108@end deffn 1132@end deffn
1109 1133
1110@deffn Command make-frame-invisible &optional frame 1134@deffn Command make-frame-invisible &optional frame force
1111This function makes frame @var{frame} invisible. If you omit 1135This function makes frame @var{frame} invisible. If you omit
1112@var{frame}, it makes the selected frame invisible. 1136@var{frame}, it makes the selected frame invisible.
1137
1138Unless @var{force} is non-@code{nil}, this function refuses to make
1139@var{frame} invisible if all other frames are invisible..
1113@end deffn 1140@end deffn
1114 1141
1115@deffn Command iconify-frame &optional frame 1142@deffn Command iconify-frame &optional frame
@@ -1121,6 +1148,10 @@ iconifies the selected frame.
1121This returns the visibility status of frame @var{frame}. The value is 1148This returns the visibility status of frame @var{frame}. The value is
1122@code{t} if @var{frame} is visible, @code{nil} if it is invisible, and 1149@code{t} if @var{frame} is visible, @code{nil} if it is invisible, and
1123@code{icon} if it is iconified. 1150@code{icon} if it is iconified.
1151
1152On a text-only terminal, all frames are considered visible, whether
1153they are currently being displayed or not, and this function returns
1154@code{t} for all frames.
1124@end defun 1155@end defun
1125 1156
1126 The visibility status of a frame is also available as a frame 1157 The visibility status of a frame is also available as a frame
@@ -1155,6 +1186,7 @@ on the screen.
1155 1186
1156@deffn Command raise-frame &optional frame 1187@deffn Command raise-frame &optional frame
1157This function raises frame @var{frame} (default, the selected frame). 1188This function raises frame @var{frame} (default, the selected frame).
1189If @var{frame} is invisible or iconified, this makes it visible.
1158@end deffn 1190@end deffn
1159 1191
1160@deffn Command lower-frame &optional frame 1192@deffn Command lower-frame &optional frame
@@ -1185,7 +1217,8 @@ the current arrangement of frames and their contents.
1185 1217
1186@defun set-frame-configuration configuration &optional nodelete 1218@defun set-frame-configuration configuration &optional nodelete
1187This function restores the state of frames described in 1219This function restores the state of frames described in
1188@var{configuration}. 1220@var{configuration}. However, this function does not restore deleted
1221frames.
1189 1222
1190Ordinarily, this function deletes all existing frames not listed in 1223Ordinarily, this function deletes all existing frames not listed in
1191@var{configuration}. But if @var{nodelete} is non-@code{nil}, the 1224@var{configuration}. But if @var{nodelete} is non-@code{nil}, the
@@ -1467,7 +1500,7 @@ distinguished by @dfn{selection types}, represented in Emacs by
1467symbols. X clients including Emacs can read or set the selection for 1500symbols. X clients including Emacs can read or set the selection for
1468any given type. 1501any given type.
1469 1502
1470@defun x-set-selection type data 1503@deffn Command x-set-selection type data
1471This function sets a ``selection'' in the X server. It takes two 1504This function sets a ``selection'' in the X server. It takes two
1472arguments: a selection type @var{type}, and the value to assign to it, 1505arguments: a selection type @var{type}, and the value to assign to it,
1473@var{data}. If @var{data} is @code{nil}, it means to clear out the 1506@var{data}. If @var{data} is @code{nil}, it means to clear out the
@@ -1482,9 +1515,11 @@ selection values.
1482Each possible @var{type} has its own selection value, which changes 1515Each possible @var{type} has its own selection value, which changes
1483independently. The usual values of @var{type} are @code{PRIMARY}, 1516independently. The usual values of @var{type} are @code{PRIMARY},
1484@code{SECONDARY} and @code{CLIPBOARD}; these are symbols with upper-case 1517@code{SECONDARY} and @code{CLIPBOARD}; these are symbols with upper-case
1485names, in accord with X Window System conventions. The default is 1518names, in accord with X Window System conventions. If @var{type} is
1486@code{PRIMARY}. 1519@code{nil}, that stands for @code{PRIMARY}.
1487@end defun 1520
1521This function returns @var{data}.
1522@end deffn
1488 1523
1489@defun x-get-selection &optional type data-type 1524@defun x-get-selection &optional type data-type
1490This function accesses selections set up by Emacs or by other X 1525This function accesses selections set up by Emacs or by other X
@@ -1578,6 +1613,7 @@ and that name is still supported as an alias.
1578@tindex defined-colors 1613@tindex defined-colors
1579This function returns a list of the color names that are defined 1614This function returns a list of the color names that are defined
1580and supported on frame @var{frame} (default, the selected frame). 1615and supported on frame @var{frame} (default, the selected frame).
1616If @var{frame} does not support colors, the value is @code{nil}.
1581 1617
1582@findex x-defined-colors 1618@findex x-defined-colors
1583This function used to be called @code{x-defined-colors}, 1619This function used to be called @code{x-defined-colors},
@@ -1602,18 +1638,18 @@ The argument @var{color} must be a valid color name.
1602@tindex color-gray-p 1638@tindex color-gray-p
1603This returns @code{t} if @var{color} is a shade of gray, as defined on 1639This returns @code{t} if @var{color} is a shade of gray, as defined on
1604@var{frame}'s display. If @var{frame} is omitted or @code{nil}, the 1640@var{frame}'s display. If @var{frame} is omitted or @code{nil}, the
1605question applies to the selected frame. The argument @var{color} must 1641question applies to the selected frame. If @var{color} is not a valid
1606be a valid color name. 1642color name, this function returns @code{nil}.
1607@end defun 1643@end defun
1608 1644
1609@defun color-values color &optional frame 1645@defun color-values color &optional frame
1610@tindex color-values 1646@tindex color-values
1611This function returns a value that describes what @var{color} should 1647This function returns a value that describes what @var{color} should
1612ideally look like. If @var{color} is defined, the value is a list of 1648ideally look like on @var{frame}. If @var{color} is defined, the
1613three integers, which give the amount of red, the amount of green, and 1649value is a list of three integers, which give the amount of red, the
1614the amount of blue. Each integer ranges in principle from 0 to 65535, 1650amount of green, and the amount of blue. Each integer ranges in
1615but in practice no value seems to be above 65280. This kind 1651principle from 0 to 65535, but some displays may not use the full
1616of three-element list is called an @dfn{rgb value}. 1652range. This kind of three-element list is called an @dfn{rgb value}.
1617 1653
1618If @var{color} is not defined, the value is @code{nil}. 1654If @var{color} is not defined, the value is @code{nil}.
1619 1655
@@ -1658,8 +1694,7 @@ are used by Emacs.
1658 Several of these functions use or return @dfn{rgb values}. An rgb 1694 Several of these functions use or return @dfn{rgb values}. An rgb
1659value is a list of three integers, which give the amount of red, the 1695value is a list of three integers, which give the amount of red, the
1660amount of green, and the amount of blue. Each integer ranges in 1696amount of green, and the amount of blue. Each integer ranges in
1661principle from 0 to 65535, but in practice the largest value used is 1697principle from 0 to 65535, but some displays may not use the full range. .
166265280.
1663 1698
1664 These functions accept a display (either a frame or the name of a 1699 These functions accept a display (either a frame or the name of a
1665terminal) as an optional argument. We hope in the future to make Emacs 1700terminal) as an optional argument. We hope in the future to make Emacs
@@ -1701,13 +1736,14 @@ actually looks like.
1701@tindex tty-color-approximate 1736@tindex tty-color-approximate
1702This function finds the closest color, among the known colors supported 1737This function finds the closest color, among the known colors supported
1703for @var{display}, to that described by the rgb value @var{rgb}. 1738for @var{display}, to that described by the rgb value @var{rgb}.
1739The return value is an element of @code{tty-color-alist}.
1704@end defun 1740@end defun
1705 1741
1706@defun tty-color-translate color &optional display 1742@defun tty-color-translate color &optional display
1707@tindex tty-color-translate 1743@tindex tty-color-translate
1708This function finds the closest color to @var{color} among the known 1744This function finds the closest color to @var{color} among the known
1709colors supported for @var{display}. If the name @var{color} is not 1745colors supported for @var{display} and returns its index (an integer).
1710defined, the value is @code{nil}. 1746If the name @var{color} is not defined, the value is @code{nil}.
1711 1747
1712@var{color} can be an X-style @code{"#@var{xxxyyyzzz}"} specification 1748@var{color} can be an X-style @code{"#@var{xxxyyyzzz}"} specification
1713instead of an actual name. The format 1749instead of an actual name. The format
@@ -1747,6 +1783,29 @@ should look up. The default value is the name Emacs was invoked with,
1747or the value specified with the @samp{-name} or @samp{-rn} switches. 1783or the value specified with the @samp{-name} or @samp{-rn} switches.
1748@end defvar 1784@end defvar
1749 1785
1786To illustrate some of the above, suppose that you have the line:
1787
1788@example
1789xterm.vt100.background: yellow
1790@end example
1791
1792@noindent
1793in in your X resources file (usually named @file{~/.Xdefaults} or
1794@file{~/.Xresources}). Then:
1795
1796@example
1797@group
1798(let ((x-resource-class "XTerm") (x-resource-name "xterm"))
1799 (x-get-resource "vt100.background" "VT100.Background"))
1800 @result{} "yellow"
1801@end group
1802@group
1803(let ((x-resource-class "XTerm") (x-resource-name "xterm"))
1804 (x-get-resource "background" "VT100" "vt100" "Background"))
1805 @result{} "yellow"
1806@end group
1807@end example
1808
1750 @xref{X Resources,, X Resources, emacs, The GNU Emacs Manual}. 1809 @xref{X Resources,, X Resources, emacs, The GNU Emacs Manual}.
1751 1810
1752@node Display Feature Testing 1811@node Display Feature Testing
@@ -1854,6 +1913,7 @@ This function returns the number of screens associated with the display.
1854@defun display-pixel-height &optional display 1913@defun display-pixel-height &optional display
1855@tindex display-pixel-height 1914@tindex display-pixel-height
1856This function returns the height of the screen in pixels. 1915This function returns the height of the screen in pixels.
1916On a character terminal, it gives the height in characters.
1857@end defun 1917@end defun
1858 1918
1859@defun display-mm-height &optional display 1919@defun display-mm-height &optional display
@@ -1865,6 +1925,7 @@ or @code{nil} if Emacs cannot get that information.
1865@defun display-pixel-width &optional display 1925@defun display-pixel-width &optional display
1866@tindex display-pixel-width 1926@tindex display-pixel-width
1867This function returns the width of the screen in pixels. 1927This function returns the width of the screen in pixels.
1928On a character terminal, it gives the width in characters.
1868@end defun 1929@end defun
1869 1930
1870@defun display-mm-width &optional display 1931@defun display-mm-width &optional display
@@ -1918,11 +1979,13 @@ about X displays.
1918 1979
1919@defun x-server-version &optional display 1980@defun x-server-version &optional display
1920This function returns the list of version numbers of the X server 1981This function returns the list of version numbers of the X server
1921running the display. 1982running the display. The value is a list of three integers: the major
1983and minor version numbers, and the vendor-specific release number.
1922@end defun 1984@end defun
1923 1985
1924@defun x-server-vendor &optional display 1986@defun x-server-vendor &optional display
1925This function returns the vendor that provided the X server software. 1987This function returns the ``vendor'' that provided the X server software
1988(as a string).
1926@end defun 1989@end defun
1927 1990
1928@ignore 1991@ignore
diff --git a/lispref/macros.texi b/lispref/macros.texi
index e903a159c27..e28ab80ac6b 100644
--- a/lispref/macros.texi
+++ b/lispref/macros.texi
@@ -239,7 +239,7 @@ additional information about it. Two kinds of specification are
239currently supported: 239currently supported:
240 240
241@table @code 241@table @code
242@item (edebug @var{edebug-form-spec}) 242@item (debug @var{edebug-form-spec})
243Specify how to step through macro calls for Edebug. 243Specify how to step through macro calls for Edebug.
244@xref{Instrumenting Macro Calls}, for more details. 244@xref{Instrumenting Macro Calls}, for more details.
245 245
diff --git a/lispref/minibuf.texi b/lispref/minibuf.texi
index bf858eff475..c0ee5c85881 100644
--- a/lispref/minibuf.texi
+++ b/lispref/minibuf.texi
@@ -1773,6 +1773,7 @@ This function returns the currently active minibuffer window, or
1773@end defun 1773@end defun
1774 1774
1775@defun minibuffer-window &optional frame 1775@defun minibuffer-window &optional frame
1776@anchor{Definition of minibuffer-window}
1776This function returns the minibuffer window used for frame @var{frame}. 1777This function returns the minibuffer window used for frame @var{frame}.
1777If @var{frame} is @code{nil}, that stands for the current frame. Note 1778If @var{frame} is @code{nil}, that stands for the current frame. Note
1778that the minibuffer window used by a frame need not be part of that 1779that the minibuffer window used by a frame need not be part of that
diff --git a/lispref/windows.texi b/lispref/windows.texi
index a01dc79d1f1..0fdc6734181 100644
--- a/lispref/windows.texi
+++ b/lispref/windows.texi
@@ -1,6 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004
4@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
6@setfilename ../info/windows 6@setfilename ../info/windows
@@ -1089,6 +1089,7 @@ presumably the window was previously made by this function.
1089@end defun 1089@end defun
1090 1090
1091@defopt special-display-frame-alist 1091@defopt special-display-frame-alist
1092@anchor{Definition of special-display-frame-alist}
1092This variable holds frame parameters for 1093This variable holds frame parameters for
1093@code{special-display-popup-frame} to use when it creates a frame. 1094@code{special-display-popup-frame} to use when it creates a frame.
1094@end defopt 1095@end defopt
diff --git a/man/ChangeLog b/man/ChangeLog
index e4aba6ce722..a36b0c75fe4 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,11 @@
12004-07-24 Richard M. Stallman <rms@gnu.org>
2
3 * text.texi (Paragraphs): Update how paragraphs are separated
4 and the default for paragraph-separate.
5
6 * search.texi (Regexp Replace): Further update text for new
7 replacement operators.
8
12004-07-18 Luc Teirlinck <teirllm@auburn.edu> 92004-07-18 Luc Teirlinck <teirllm@auburn.edu>
2 10
3 * emacs-xtra.texi (Subdir switches): Dired does not remember the 11 * emacs-xtra.texi (Subdir switches): Dired does not remember the
diff --git a/man/search.texi b/man/search.texi
index 5fa130a2e50..c31bc60af62 100644
--- a/man/search.texi
+++ b/man/search.texi
@@ -1038,20 +1038,21 @@ text to replace with, you must enter @samp{\\}.
1038 You can also use Lisp expressions to calculate parts of the 1038 You can also use Lisp expressions to calculate parts of the
1039replacement string. To do this, write @samp{\,} followed by the 1039replacement string. To do this, write @samp{\,} followed by the
1040expression in the replacement string. Each replacement calculates the 1040expression in the replacement string. Each replacement calculates the
1041value of the expression, which ought to be a string, and uses it in 1041value of the expression and converts it to text without quoting (if
1042it's a string, this means using the string's contents), and uses it in
1042the replacement string in place of the expression itself. If the 1043the replacement string in place of the expression itself. If the
1043expression is a symbol, one space in the replacement string after the 1044expression is a symbol, one space in the replacement string after the
1044symbol name counts as part of the symbol name, so the value replaces 1045symbol name goes with the symbol name, so the value replaces them
1045them both. 1046both.
1046 1047
1047 Inside such an expression, @samp{\&} and @samp{\@var{n}} used as 1048 Inside such an expression, you can use some special sequences.
1048subexpressions refer respectively to the entire match as a string, and 1049@samp{\&} and @samp{\@var{n}} refer here, as usual, to the entire
1049to a submatch as a string. @var{n} may exceed 9 here, and the value 1050match as a string, and to a submatch as a string. @var{n} may be
1050of @samp{\@var{n}} is @code{nil} if subexpression @var{n} did not 1051multiple digits, and the value of @samp{\@var{n}} is @code{nil} if
1051match. You can also use @samp{\#&} and @samp{\#@var{n}} refer to 1052subexpression @var{n} did not match. You can also use @samp{\#&} and
1052those matches converted to numbers (this is valid when the match or 1053@samp{\#@var{n}} to refer to those matches as numbers (this is valid
1053submatch has the form of a number). @samp{\#} stands for the number 1054when the match or submatch has the form of a numeral). @samp{\#} here
1054of already-completed replacements. 1055too stands for the number of already-completed replacements.
1055 1056
1056 Repeating our example to exchange @samp{x} and @samp{y}, we can thus 1057 Repeating our example to exchange @samp{x} and @samp{y}, we can thus
1057do it also this way: 1058do it also this way:
@@ -1061,9 +1062,9 @@ M-x replace-regexp @key{RET} \(x\)\|y @key{RET}
1061\,(if \1 "y" "x") @key{RET} 1062\,(if \1 "y" "x") @key{RET}
1062@end example 1063@end example
1063 1064
1064 The @code{format} function (@pxref{Formatting Strings,,,elisp, GNU 1065 For computing replacement strings for @samp{\,}, the @code{format}
1065Emacs Lisp Reference Manual}) comes in handy for computing replacement 1066function is often useful (@pxref{Formatting Strings,,,elisp, GNU Emacs
1066strings for @samp{\,}. For example, to add consecutively numbered 1067Lisp Reference Manual}). For example, to add consecutively numbered
1067strings like @samp{ABC00042} to columns 73 @w{to 80} (unless they are 1068strings like @samp{ABC00042} to columns 73 @w{to 80} (unless they are
1068already occupied), you can use 1069already occupied), you can use
1069 1070
@@ -1074,8 +1075,8 @@ M-x replace-regexp @key{RET} ^.\@{0,72\@}$ @key{RET}
1074 1075
1075 If you want to enter part of the replacement string by hand each 1076 If you want to enter part of the replacement string by hand each
1076time, use @samp{\?} in the replacement string. Each replacement will 1077time, use @samp{\?} in the replacement string. Each replacement will
1077enter a recursive edit, with point at the position where the @samp{\?} 1078ask you to edit the replacement string in the minibuffer, putting
1078was. For example, 1079point where the @samp{\?} was. For example,
1079 1080
1080@example 1081@example
1081M-x replace-regexp @key{RET} \footnote@{ @key{RET} 1082M-x replace-regexp @key{RET} \footnote@{ @key{RET}
diff --git a/man/text.texi b/man/text.texi
index 45c7e504d8a..dbf990a2b57 100644
--- a/man/text.texi
+++ b/man/text.texi
@@ -264,10 +264,10 @@ Put point and mark around this or next paragraph (@code{mark-paragraph}).
264 @kbd{M-@{} moves to the beginning of the current or previous 264 @kbd{M-@{} moves to the beginning of the current or previous
265paragraph, while @kbd{M-@}} moves to the end of the current or next 265paragraph, while @kbd{M-@}} moves to the end of the current or next
266paragraph. Blank lines and text-formatter command lines separate 266paragraph. Blank lines and text-formatter command lines separate
267paragraphs and are not considered part of any paragraph. In Fundamental 267paragraphs and are not considered part of any paragraph. In Indented
268mode, but not in Text mode, an indented line also starts a new 268Text mode, but not in Text mode, an indented line also starts a new
269paragraph. (If a paragraph is preceded by a blank line, these commands 269paragraph. (If a paragraph is preceded by a blank line, these
270treat that blank line as the beginning of the paragraph.) 270commands treat that blank line as the beginning of the paragraph.)
271 271
272 In major modes for programs, paragraphs begin and end only at blank 272 In major modes for programs, paragraphs begin and end only at blank
273lines. This makes the paragraph commands continue to be useful even 273lines. This makes the paragraph commands continue to be useful even
@@ -300,7 +300,7 @@ example, blank lines). Lines that start a new paragraph and are
300contained in it must match only @code{paragraph-start}, not 300contained in it must match only @code{paragraph-start}, not
301@code{paragraph-separate}. For example, in Fundamental mode, 301@code{paragraph-separate}. For example, in Fundamental mode,
302@code{paragraph-start} is @w{@code{"[ \t\n\f]"}}, and 302@code{paragraph-start} is @w{@code{"[ \t\n\f]"}}, and
303@code{paragraph-separate} is @w{@code{"[ \t\f]*$"}}. 303@code{paragraph-separate} is @w{@code{"\f\\|[ \t]*$"}}.
304 304
305 Normally it is desirable for page boundaries to separate paragraphs. 305 Normally it is desirable for page boundaries to separate paragraphs.
306The default values of these variables recognize the usual separator for 306The default values of these variables recognize the usual separator for
diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in
index adbb3fd57b8..ec30853ed29 100644
--- a/nt/makefile.w32-in
+++ b/nt/makefile.w32-in
@@ -111,10 +111,10 @@ maybe-bootstrap: maybe-bootstrap-$(SHELLTYPE)
111doit: 111doit:
112 112
113maybe-bootstrap-CMD: doit 113maybe-bootstrap-CMD: doit
114 @echo. 114 @echo .
115 @if not EXIST ..\lisp\abbrev.elc echo Essential Lisp files seem to be missing. You should either 115 @if not EXIST ..\lisp\abbrev.elc echo Essential Lisp files seem to be missing. You should either
116 @if not EXIST ..\lisp\abbrev.elc echo do 'make bootstrap' or create 'lisp/abbrev.elc' somehow 116 @if not EXIST ..\lisp\abbrev.elc echo do 'make bootstrap' or create 'lisp/abbrev.elc' somehow
117 @echo. 117 @echo .
118 @if not EXIST ..\lisp\abbrev.elc exit -1 118 @if not EXIST ..\lisp\abbrev.elc exit -1
119 119
120maybe-bootstrap-SH: doit 120maybe-bootstrap-SH: doit
diff --git a/src/ChangeLog b/src/ChangeLog
index e51cdf554ce..d06be958790 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,49 @@
12004-07-27 Kim F. Storm <storm@cua.dk>
2
3 * xdisp.c (move_it_in_display_line_to): Check BUFFER_POS_REACHED_P after
4 we have ensured that the glyph fits on the current line (or returned
5 MOVE_LINE_CONTINUED otherwise).
6
72004-07-26 Kim F. Storm <storm@cua.dk>
8
9 * xdisp.c (move_it_in_display_line_to): If overflow-newline-into-fringe
10 is enabled, return MOVE_LINE_CONTINUED rather than MOVE_POS_MATCH_OR_ZV
11 if target position is at end of display line but char is not a newline.
12
132004-07-25 Richard M. Stallman <rms@gnu.org>
14
15 * window.c (coordinates_in_window): Return ON_SCROLL_BAR
16 instead of ON_VERTICAL_BORDER, when on scroll bar.
17 (Fcoordinates_in_window_p): Handle ON_SCROLL_BAR--return nil.
18
19 * dispextern.h (enum window_part): Add ON_SCROLL_BAR.
20
21 * window.c (Fcoordinates_in_window_p):
22 Take account of FRAME_INTERNAL_BORDER_WIDTH.
23
24 * alloc.c (check_cons_list): New function (contents commented out).
25
262004-07-24 Luc Teirlinck <teirllm@auburn.edu>
27
28 * xfaces.c (Fcolor_supported_p): Doc fix.
29
30 * frame.c (Fselect_frame, Fset_frame_selected_window)
31 (Fframe_visible_p, Fraise_frame): Doc fixes.
32
332004-07-24 Richard M. Stallman <rms@gnu.org>
34
35 * keyboard.h (not_single_kboard_state): Declared.
36
37 * fileio.c (Fwrite_region): Doc fix.
38
39 * window.c (Fwindow_at): Take account of FRAME_INTERNAL_BORDER_WIDTH.
40
41 * abbrev.c (Fexpand_abbrev): Run Qpre_abbrev_expand_hook
42 only when a real abbrev is present.
43
44 * xfns.c (x_icon_verify): New function.
45 (Fx_create_frame): Use it.
46
12004-07-22 Barry Fishman <barry_fishman@att.net> (tiny change) 472004-07-22 Barry Fishman <barry_fishman@att.net> (tiny change)
2 48
3 * s/gnu-linux.h: Use GC_MARK_STACK if __amd64__ is defined. 49 * s/gnu-linux.h: Use GC_MARK_STACK if __amd64__ is defined.
diff --git a/src/abbrev.c b/src/abbrev.c
index 086a58021fb..7e68011955d 100644
--- a/src/abbrev.c
+++ b/src/abbrev.c
@@ -248,8 +248,6 @@ Returns the abbrev symbol, if expansion took place. */)
248 248
249 value = Qnil; 249 value = Qnil;
250 250
251 Frun_hooks (1, &Qpre_abbrev_expand_hook);
252
253 wordstart = 0; 251 wordstart = 0;
254 if (!(BUFFERP (Vabbrev_start_location_buffer) 252 if (!(BUFFERP (Vabbrev_start_location_buffer)
255 && XBUFFER (Vabbrev_start_location_buffer) == current_buffer)) 253 && XBUFFER (Vabbrev_start_location_buffer) == current_buffer))
@@ -326,6 +324,8 @@ Returns the abbrev symbol, if expansion took place. */)
326 if (INTEGERP (sym) || NILP (SYMBOL_VALUE (sym))) 324 if (INTEGERP (sym) || NILP (SYMBOL_VALUE (sym)))
327 return value; 325 return value;
328 326
327 Frun_hooks (1, &Qpre_abbrev_expand_hook);
328
329 if (INTERACTIVE && !EQ (minibuf_window, selected_window)) 329 if (INTERACTIVE && !EQ (minibuf_window, selected_window))
330 { 330 {
331 /* Add an undo boundary, in case we are doing this for 331 /* Add an undo boundary, in case we are doing this for
diff --git a/src/alloc.c b/src/alloc.c
index 0e3e78bbac2..567b8c7a925 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -2395,6 +2395,17 @@ DEFUN ("cons", Fcons, Scons, 2, 2, 0,
2395 return val; 2395 return val;
2396} 2396}
2397 2397
2398/* Get an error now if there's any junk in the cons free list. */
2399void
2400check_cons_list ()
2401{
2402 struct Lisp_Cons *tail = cons_free_list;
2403
2404#if 0
2405 while (tail)
2406 tail = *(struct Lisp_Cons **)&tail->cdr;
2407#endif
2408}
2398 2409
2399/* Make a list of 2, 3, 4 or 5 specified objects. */ 2410/* Make a list of 2, 3, 4 or 5 specified objects. */
2400 2411
diff --git a/src/dispextern.h b/src/dispextern.h
index 11395cb7f00..43ebe5c24d0 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -99,7 +99,8 @@ enum window_part
99 ON_LEFT_FRINGE, 99 ON_LEFT_FRINGE,
100 ON_RIGHT_FRINGE, 100 ON_RIGHT_FRINGE,
101 ON_LEFT_MARGIN, 101 ON_LEFT_MARGIN,
102 ON_RIGHT_MARGIN 102 ON_RIGHT_MARGIN,
103 ON_SCROLL_BAR
103}; 104};
104 105
105/* Number of bits allocated to store fringe bitmap numbers. */ 106/* Number of bits allocated to store fringe bitmap numbers. */
diff --git a/src/fileio.c b/src/fileio.c
index bbc7d86c429..a22216040f3 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -4829,7 +4829,7 @@ instead of any buffer contents; END is ignored.
4829Optional fourth argument APPEND if non-nil means 4829Optional fourth argument APPEND if non-nil means
4830 append to existing file contents (if any). If it is an integer, 4830 append to existing file contents (if any). If it is an integer,
4831 seek to that offset in the file before writing. 4831 seek to that offset in the file before writing.
4832Optional fifth argument VISIT if t means 4832Optional fifth argument VISIT, if t or a string, means
4833 set the last-save-file-modtime of buffer to this file's modtime 4833 set the last-save-file-modtime of buffer to this file's modtime
4834 and mark buffer not modified. 4834 and mark buffer not modified.
4835If VISIT is a string, it is a second file name; 4835If VISIT is a string, it is a second file name;
diff --git a/src/frame.c b/src/frame.c
index 41b92e75dbb..d7da02db278 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -1,5 +1,5 @@
1/* Generic frame functions. 1/* Generic frame functions.
2 Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2003 2 Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2003, 2004
3 Free Software Foundation. 3 Free Software Foundation.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
@@ -733,7 +733,12 @@ DEFUN ("select-frame", Fselect_frame, Sselect_frame, 1, 2, "e",
733Subsequent editing commands apply to its selected window. 733Subsequent editing commands apply to its selected window.
734The selection of FRAME lasts until the next time the user does 734The selection of FRAME lasts until the next time the user does
735something to select a different frame, or until the next time this 735something to select a different frame, or until the next time this
736function is called. */) 736function is called. If you are using a window system, the previously
737selected frame may be restored as the selected frame after return to
738the command loop, because it still may have the window system's input
739focus. On a text-only terminal, the next redisplay will display FRAME.
740
741This function returns FRAME, or nil if FRAME has been deleted. */)
737 (frame, no_enter) 742 (frame, no_enter)
738 Lisp_Object frame, no_enter; 743 Lisp_Object frame, no_enter;
739{ 744{
@@ -861,6 +866,7 @@ If omitted, FRAME defaults to the currently selected frame. */)
861DEFUN ("set-frame-selected-window", Fset_frame_selected_window, 866DEFUN ("set-frame-selected-window", Fset_frame_selected_window,
862 Sset_frame_selected_window, 2, 2, 0, 867 Sset_frame_selected_window, 2, 2, 0,
863 doc: /* Set the selected window of frame object FRAME to WINDOW. 868 doc: /* Set the selected window of frame object FRAME to WINDOW.
869Return WINDOW.
864If FRAME is nil, the selected frame is used. 870If FRAME is nil, the selected frame is used.
865If FRAME is the selected frame, this makes WINDOW the selected window. */) 871If FRAME is the selected frame, this makes WINDOW the selected window. */)
866 (frame, window) 872 (frame, window)
@@ -1711,7 +1717,11 @@ DEFUN ("frame-visible-p", Fframe_visible_p, Sframe_visible_p,
1711 doc: /* Return t if FRAME is now \"visible\" (actually in use for display). 1717 doc: /* Return t if FRAME is now \"visible\" (actually in use for display).
1712A frame that is not \"visible\" is not updated and, if it works through 1718A frame that is not \"visible\" is not updated and, if it works through
1713a window system, it may not show at all. 1719a window system, it may not show at all.
1714Return the symbol `icon' if frame is visible only as an icon. */) 1720Return the symbol `icon' if frame is visible only as an icon.
1721
1722On a text-only terminal, all frames are considered visible, whether
1723they are currently being displayed or not, and this function returns t
1724for all frames. */)
1715 (frame) 1725 (frame)
1716 Lisp_Object frame; 1726 Lisp_Object frame;
1717{ 1727{
@@ -1751,7 +1761,7 @@ DEFUN ("visible-frame-list", Fvisible_frame_list, Svisible_frame_list,
1751 1761
1752DEFUN ("raise-frame", Fraise_frame, Sraise_frame, 0, 1, "", 1762DEFUN ("raise-frame", Fraise_frame, Sraise_frame, 0, 1, "",
1753 doc: /* Bring FRAME to the front, so it occludes any frames it overlaps. 1763 doc: /* Bring FRAME to the front, so it occludes any frames it overlaps.
1754If FRAME is invisible, make it visible. 1764If FRAME is invisible or iconified, make it visible.
1755If you don't specify a frame, the selected frame is used. 1765If you don't specify a frame, the selected frame is used.
1756If Emacs is displaying on an ordinary terminal or some other device which 1766If Emacs is displaying on an ordinary terminal or some other device which
1757doesn't support multiple overlapping frames, this function does nothing. */) 1767doesn't support multiple overlapping frames, this function does nothing. */)
diff --git a/src/keyboard.h b/src/keyboard.h
index d92f13a5059..4e14257359f 100644
--- a/src/keyboard.h
+++ b/src/keyboard.h
@@ -307,6 +307,7 @@ extern void echo_now P_ ((void));
307extern void init_kboard P_ ((KBOARD *)); 307extern void init_kboard P_ ((KBOARD *));
308extern void delete_kboard P_ ((KBOARD *)); 308extern void delete_kboard P_ ((KBOARD *));
309extern void single_kboard_state P_ ((void)); 309extern void single_kboard_state P_ ((void));
310extern void not_single_kboard_state P_ ((KBOARD *));
310extern void push_frame_kboard P_ ((struct frame *)); 311extern void push_frame_kboard P_ ((struct frame *));
311extern void pop_frame_kboard P_ ((void)); 312extern void pop_frame_kboard P_ ((void));
312extern void record_asynch_buffer_change P_ ((void)); 313extern void record_asynch_buffer_change P_ ((void));
diff --git a/src/window.c b/src/window.c
index 1b1cab13e7a..9c94a43c3cd 100644
--- a/src/window.c
+++ b/src/window.c
@@ -579,6 +579,8 @@ display margins, fringes, header line, and/or mode line. */)
579 if it is on the window's modeline, return ON_MODE_LINE; 579 if it is on the window's modeline, return ON_MODE_LINE;
580 if it is on the border between the window and its right sibling, 580 if it is on the border between the window and its right sibling,
581 return ON_VERTICAL_BORDER. 581 return ON_VERTICAL_BORDER.
582 if it is on a scroll bar,
583 return ON_SCROLL_BAR.
582 if it is on the window's top line, return ON_HEADER_LINE; 584 if it is on the window's top line, return ON_HEADER_LINE;
583 if it is in left or right fringe of the window, 585 if it is in left or right fringe of the window,
584 return ON_LEFT_FRINGE or ON_RIGHT_FRINGE, and convert *X and *Y 586 return ON_LEFT_FRINGE or ON_RIGHT_FRINGE, and convert *X and *Y
@@ -673,7 +675,7 @@ coordinates_in_window (w, x, y)
673 675
674 /* Outside any interesting column? */ 676 /* Outside any interesting column? */
675 if (*x < left_x || *x > right_x) 677 if (*x < left_x || *x > right_x)
676 return ON_VERTICAL_BORDER; 678 return ON_SCROLL_BAR;
677 679
678 lmargin_width = window_box_width (w, LEFT_MARGIN_AREA); 680 lmargin_width = window_box_width (w, LEFT_MARGIN_AREA);
679 rmargin_width = window_box_width (w, RIGHT_MARGIN_AREA); 681 rmargin_width = window_box_width (w, RIGHT_MARGIN_AREA);
@@ -783,8 +785,8 @@ If they are in the windows's left or right marginal areas, `left-margin'\n\
783 ly = Fcdr (coordinates); 785 ly = Fcdr (coordinates);
784 CHECK_NUMBER_OR_FLOAT (lx); 786 CHECK_NUMBER_OR_FLOAT (lx);
785 CHECK_NUMBER_OR_FLOAT (ly); 787 CHECK_NUMBER_OR_FLOAT (ly);
786 x = FRAME_PIXEL_X_FROM_CANON_X (f, lx); 788 x = FRAME_PIXEL_X_FROM_CANON_X (f, lx) + FRAME_INTERNAL_BORDER_WIDTH (f);
787 y = FRAME_PIXEL_Y_FROM_CANON_Y (f, ly); 789 y = FRAME_PIXEL_Y_FROM_CANON_Y (f, ly) + FRAME_INTERNAL_BORDER_WIDTH (f);
788 790
789 switch (coordinates_in_window (w, &x, &y)) 791 switch (coordinates_in_window (w, &x, &y))
790 { 792 {
@@ -818,6 +820,10 @@ If they are in the windows's left or right marginal areas, `left-margin'\n\
818 case ON_RIGHT_MARGIN: 820 case ON_RIGHT_MARGIN:
819 return Qright_margin; 821 return Qright_margin;
820 822
823 case ON_SCROLL_BAR:
824 /* Historically we are supposed to return nil in this case. */
825 return Qnil;
826
821 default: 827 default:
822 abort (); 828 abort ();
823 } 829 }
@@ -938,8 +944,10 @@ column 0. */)
938 CHECK_NUMBER_OR_FLOAT (y); 944 CHECK_NUMBER_OR_FLOAT (y);
939 945
940 return window_from_coordinates (f, 946 return window_from_coordinates (f,
941 FRAME_PIXEL_X_FROM_CANON_X (f, x), 947 (FRAME_PIXEL_X_FROM_CANON_X (f, x)
942 FRAME_PIXEL_Y_FROM_CANON_Y (f, y), 948 + FRAME_INTERNAL_BORDER_WIDTH (f)),
949 (FRAME_PIXEL_Y_FROM_CANON_Y (f, y)
950 + FRAME_INTERNAL_BORDER_WIDTH (f)),
943 0, 0, 0, 0); 951 0, 0, 0, 0);
944} 952}
945 953
diff --git a/src/xdisp.c b/src/xdisp.c
index 3a4ff4d2ac0..463889507e4 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -5750,9 +5750,13 @@ move_it_in_display_line_to (it, to_charpos, to_x, op)
5750 { 5750 {
5751 int x, i, ascent = 0, descent = 0; 5751 int x, i, ascent = 0, descent = 0;
5752 5752
5753 /* Stop when ZV or TO_CHARPOS reached. */ 5753 /* Stop when ZV reached.
5754 We used to stop here when TO_CHARPOS reached as well, but that is
5755 too soon if this glyph does not fit on this line. So we handle it
5756 explicitly below. */
5754 if (!get_next_display_element (it) 5757 if (!get_next_display_element (it)
5755 || BUFFER_POS_REACHED_P ()) 5758 || (it->truncate_lines_p
5759 && BUFFER_POS_REACHED_P ()))
5756 { 5760 {
5757 result = MOVE_POS_MATCH_OR_ZV; 5761 result = MOVE_POS_MATCH_OR_ZV;
5758 break; 5762 break;
@@ -5812,6 +5816,8 @@ move_it_in_display_line_to (it, to_charpos, to_x, op)
5812 /* We want to leave anything reaching TO_X to the caller. */ 5816 /* We want to leave anything reaching TO_X to the caller. */
5813 if ((op & MOVE_TO_X) && new_x > to_x) 5817 if ((op & MOVE_TO_X) && new_x > to_x)
5814 { 5818 {
5819 if (BUFFER_POS_REACHED_P ())
5820 goto buffer_pos_reached;
5815 it->current_x = x; 5821 it->current_x = x;
5816 result = MOVE_X_REACHED; 5822 result = MOVE_X_REACHED;
5817 break; 5823 break;
@@ -5839,12 +5845,19 @@ move_it_in_display_line_to (it, to_charpos, to_x, op)
5839#ifdef HAVE_WINDOW_SYSTEM 5845#ifdef HAVE_WINDOW_SYSTEM
5840 if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) 5846 if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it))
5841 { 5847 {
5842 if (!get_next_display_element (it) 5848 if (!get_next_display_element (it))
5843 || BUFFER_POS_REACHED_P ())
5844 { 5849 {
5845 result = MOVE_POS_MATCH_OR_ZV; 5850 result = MOVE_POS_MATCH_OR_ZV;
5846 break; 5851 break;
5847 } 5852 }
5853 if (BUFFER_POS_REACHED_P ())
5854 {
5855 if (ITERATOR_AT_END_OF_LINE_P (it))
5856 result = MOVE_POS_MATCH_OR_ZV;
5857 else
5858 result = MOVE_LINE_CONTINUED;
5859 break;
5860 }
5848 if (ITERATOR_AT_END_OF_LINE_P (it)) 5861 if (ITERATOR_AT_END_OF_LINE_P (it))
5849 { 5862 {
5850 result = MOVE_NEWLINE_OR_CR; 5863 result = MOVE_NEWLINE_OR_CR;
@@ -5866,6 +5879,8 @@ move_it_in_display_line_to (it, to_charpos, to_x, op)
5866 result = MOVE_LINE_CONTINUED; 5879 result = MOVE_LINE_CONTINUED;
5867 break; 5880 break;
5868 } 5881 }
5882 else if (BUFFER_POS_REACHED_P ())
5883 goto buffer_pos_reached;
5869 else if (new_x > it->first_visible_x) 5884 else if (new_x > it->first_visible_x)
5870 { 5885 {
5871 /* Glyph is visible. Increment number of glyphs that 5886 /* Glyph is visible. Increment number of glyphs that
@@ -5882,6 +5897,15 @@ move_it_in_display_line_to (it, to_charpos, to_x, op)
5882 if (result != MOVE_UNDEFINED) 5897 if (result != MOVE_UNDEFINED)
5883 break; 5898 break;
5884 } 5899 }
5900 else if (BUFFER_POS_REACHED_P ())
5901 {
5902 buffer_pos_reached:
5903 it->current_x = x;
5904 it->max_ascent = ascent;
5905 it->max_descent = descent;
5906 result = MOVE_POS_MATCH_OR_ZV;
5907 break;
5908 }
5885 else if ((op & MOVE_TO_X) && it->current_x >= to_x) 5909 else if ((op & MOVE_TO_X) && it->current_x >= to_x)
5886 { 5910 {
5887 /* Stop when TO_X specified and reached. This check is 5911 /* Stop when TO_X specified and reached. This check is
diff --git a/src/xfaces.c b/src/xfaces.c
index 6ee06ba5f76..0a81342e96d 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -1542,6 +1542,7 @@ DEFUN ("color-supported-p", Fcolor_supported_p,
1542 Scolor_supported_p, 1, 3, 0, 1542 Scolor_supported_p, 1, 3, 0,
1543 doc: /* Return non-nil if COLOR can be displayed on FRAME. 1543 doc: /* Return non-nil if COLOR can be displayed on FRAME.
1544BACKGROUND-P non-nil means COLOR is used as a background. 1544BACKGROUND-P non-nil means COLOR is used as a background.
1545Otherwise, this function tells whether it can be used as a foreground.
1545If FRAME is nil or omitted, use the selected frame. 1546If FRAME is nil or omitted, use the selected frame.
1546COLOR must be a valid color name. */) 1547COLOR must be a valid color name. */)
1547 (color, frame, background_p) 1548 (color, frame, background_p)
diff --git a/src/xfns.c b/src/xfns.c
index cdbce00fe4c..8d182a6788b 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -2613,6 +2613,28 @@ x_window (f)
2613#endif /* not USE_GTK */ 2613#endif /* not USE_GTK */
2614#endif /* not USE_X_TOOLKIT */ 2614#endif /* not USE_X_TOOLKIT */
2615 2615
2616/* Verify that the icon position args for this window are valid. */
2617
2618static void
2619x_icon_verify (f, parms)
2620 struct frame *f;
2621 Lisp_Object parms;
2622{
2623 Lisp_Object icon_x, icon_y;
2624
2625 /* Set the position of the icon. Note that twm groups all
2626 icons in an icon window. */
2627 icon_x = x_frame_get_and_record_arg (f, parms, Qicon_left, 0, 0, RES_TYPE_NUMBER);
2628 icon_y = x_frame_get_and_record_arg (f, parms, Qicon_top, 0, 0, RES_TYPE_NUMBER);
2629 if (!EQ (icon_x, Qunbound) && !EQ (icon_y, Qunbound))
2630 {
2631 CHECK_NUMBER (icon_x);
2632 CHECK_NUMBER (icon_y);
2633 }
2634 else if (!EQ (icon_x, Qunbound) || !EQ (icon_y, Qunbound))
2635 error ("Both left and top icon corners of icon must be specified");
2636}
2637
2616/* Handle the icon stuff for this window. Perhaps later we might 2638/* Handle the icon stuff for this window. Perhaps later we might
2617 want an x_set_icon_position which can be called interactively as 2639 want an x_set_icon_position which can be called interactively as
2618 well. */ 2640 well. */
@@ -3101,6 +3123,8 @@ This function is an internal primitive--use `make-frame' instead. */)
3101 tem = x_get_arg (dpyinfo, parms, Qunsplittable, 0, 0, RES_TYPE_BOOLEAN); 3123 tem = x_get_arg (dpyinfo, parms, Qunsplittable, 0, 0, RES_TYPE_BOOLEAN);
3102 f->no_split = minibuffer_only || EQ (tem, Qt); 3124 f->no_split = minibuffer_only || EQ (tem, Qt);
3103 3125
3126 x_icon_verify (f, parms);
3127
3104 /* Create the X widget or window. */ 3128 /* Create the X widget or window. */
3105#ifdef USE_X_TOOLKIT 3129#ifdef USE_X_TOOLKIT
3106 x_window (f, window_prompting, minibuffer_only); 3130 x_window (f, window_prompting, minibuffer_only);