aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaroly Lorentey2004-01-26 21:22:42 +0000
committerKaroly Lorentey2004-01-26 21:22:42 +0000
commit465fc071a1aa48e87f37bff460410eec921eaa53 (patch)
treef7a4de710324c8bfa0c06079259384e8b59d71bb
parentd5188e3f1303543ddbe5c230bf93ab6a8fe66de5 (diff)
parent41b867eaceb6bfab6be4ed62a2d4dd9cf1be62e3 (diff)
downloademacs-465fc071a1aa48e87f37bff460410eec921eaa53.tar.gz
emacs-465fc071a1aa48e87f37bff460410eec921eaa53.zip
Merged in changes from CVS HEAD
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-53 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-54 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-55 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-56 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-70
-rw-r--r--ChangeLog6
-rw-r--r--etc/GNU12
-rw-r--r--etc/NEWS5
-rw-r--r--lib-src/ChangeLog5
-rw-r--r--lib-src/emacsclient.c4
-rw-r--r--lisp/ChangeLog23
-rw-r--r--lisp/mail/rmail-spam-filter.el114
-rw-r--r--lisp/man.el2
-rw-r--r--lisp/progmodes/f90.el15
-rw-r--r--lisp/progmodes/fortran.el99
-rw-r--r--lispref/strings.texi52
-rwxr-xr-xmake-dist2
-rw-r--r--man/ChangeLog6
-rw-r--r--man/emacs.texi11
-rw-r--r--src/ChangeLog15
-rw-r--r--src/alloc.c5
-rw-r--r--src/editfns.c39
-rw-r--r--src/print.c5
-rw-r--r--src/window.c3
19 files changed, 276 insertions, 147 deletions
diff --git a/ChangeLog b/ChangeLog
index 3dd7f76f945..05ce35671f2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
12004-01-25 Jerome Marant <jmarant@free.fr> (tiny change)
2
3 * make-dist (lispref): Do include lispref/index.texi.
4
12004-01-06 Eric Hanchrow <offby1@blarg.net> (tiny change) 52004-01-06 Eric Hanchrow <offby1@blarg.net> (tiny change)
2 6
3 * make-dist (tempdir): Include cursors in nt/icons 7 * make-dist (tempdir): Include cursors in nt/icons
@@ -14,7 +18,7 @@
142003-12-24 Andreas Schwab <schwab@suse.de> 182003-12-24 Andreas Schwab <schwab@suse.de>
15 19
16 * configure.in: Check for <sys/socket.h>. Include it before 20 * configure.in: Check for <sys/socket.h>. Include it before
17 including <net/if.h>. Move check for <net/if.h> before it's use. 21 including <net/if.h>. Move check for <net/if.h> before its use.
18 22
192003-12-24 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 232003-12-24 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
20 24
diff --git a/etc/GNU b/etc/GNU
index f85e6d7a254..1df59f049ee 100644
--- a/etc/GNU
+++ b/etc/GNU
@@ -1,4 +1,4 @@
1Copyright (C) 1985, 1993 Free Software Foundation, Inc. 1Copyright (C) 1985, 1993, 2003 Free Software Foundation, Inc.
2 2
3 Permission is granted to anyone to make or distribute verbatim copies 3 Permission is granted to anyone to make or distribute verbatim copies
4of this document, in any medium, provided that the copyright notice and 4of this document, in any medium, provided that the copyright notice and
@@ -341,7 +341,7 @@ that.)
341other people's lives; and it is usually used to make their lives more 341other people's lives; and it is usually used to make their lives more
342difficult. 342difficult.
343 343
344 People who have studied the issue of intellectual property rights 344 People who have studied the issue of intellectual property rights(6)
345carefully (such as lawyers) say that there is no intrinsic right to 345carefully (such as lawyers) say that there is no intrinsic right to
346intellectual property. The kinds of supposed intellectual property 346intellectual property. The kinds of supposed intellectual property
347rights that the government recognizes were created by specific acts of 347rights that the government recognizes were created by specific acts of
@@ -530,3 +530,11 @@ this way. Have you done your part?
530 (5) A group of computer companies recently pooled funds to support 530 (5) A group of computer companies recently pooled funds to support
531maintenance of the GNU C Compiler. 531maintenance of the GNU C Compiler.
532 532
533 (6) In the 80s I had not yet realized how confusing it was to speak
534of "the issue" of "intellectual property". That term is obviously
535biased; more subtle is the fact that it lumps together various
536disparate laws which raise very different issues. Nowadays I urge
537people to reject the term "intellectual property" entirely, lest it
538lead others to suppose this is one coherent issue. The way to be
539clear is to to discuss patents, copyrights, and trademarks separately.
540See http://www.gnu.org/philosophy/words-to-avoid.html. \ No newline at end of file
diff --git a/etc/NEWS b/etc/NEWS
index 46e667a47c1..79cae43174a 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1791,6 +1791,11 @@ configuration files.
1791* Lisp Changes in Emacs 21.4 1791* Lisp Changes in Emacs 21.4
1792 1792
1793+++ 1793+++
1794** The flags, width, and precision options for %-specifications in function
1795`format' are now documented. Some flags that were accepted but not
1796implemented (such as "*") are no longer accepted.
1797
1798+++
1794** New function `delete-dups' destructively removes `equal' duplicates 1799** New function `delete-dups' destructively removes `equal' duplicates
1795from a list. Of several `equal' occurrences of an element in the list, 1800from a list. Of several `equal' occurrences of an element in the list,
1796the last one is kept. 1801the last one is kept.
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 6aa96d2cc91..3e66cba3563 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,8 @@
12004-01-24 Richard M. Stallman <rms@gnu.org>
2
3 * emacsclient.c (main): Restore errno from saved_errno,
4 so the error message comes from socket_status.
5
12004-01-08 Andreas Schwab <schwab@suse.de> 62004-01-08 Andreas Schwab <schwab@suse.de>
2 7
3 * emacsclient.c (main): Save errno from socket_status. 8 * emacsclient.c (main): Save errno from socket_status.
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index 9ab9dc30a62..d70be8c7491 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -473,12 +473,14 @@ main (argc, argv)
473 that init_editfns uses to set the global Vuser_full_name. */ 473 that init_editfns uses to set the global Vuser_full_name. */
474 474
475 char *user_name = (char *) getenv ("LOGNAME"); 475 char *user_name = (char *) getenv ("LOGNAME");
476
476 if (!user_name) 477 if (!user_name)
477 user_name = (char *) getenv ("USER"); 478 user_name = (char *) getenv ("USER");
478 479
479 if (user_name) 480 if (user_name)
480 { 481 {
481 struct passwd *pw = getpwnam (user_name); 482 struct passwd *pw = getpwnam (user_name);
483
482 if (pw && (pw->pw_uid != geteuid ())) 484 if (pw && (pw->pw_uid != geteuid ()))
483 { 485 {
484 /* We're running under su, apparently. */ 486 /* We're running under su, apparently. */
@@ -497,6 +499,8 @@ main (argc, argv)
497 sock_status = socket_status (server.sun_path); 499 sock_status = socket_status (server.sun_path);
498 saved_errno = errno; 500 saved_errno = errno;
499 } 501 }
502 else
503 errno = saved_errno;
500 } 504 }
501 } 505 }
502 506
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c64f0d17698..1f5aece0510 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,26 @@
12004-01-25 Glenn Morris <gmorris@ast.cam.ac.uk>
2
3 * progmodes/fortran.el (fortran-break-before-delimiters): Doc fix.
4 (fortran-break-delimiters-re, fortran-no-break-re): New defconsts.
5 (fortran-fill): When filling a string, adjust re-search-backward
6 argument for special case of string just on fill-column.
7 When filling non-string, allow one extra char if
8 fortran-break-before-delimiters is non-nil. Suggested by
9 Michael Hagemann <michael.hagemann@unibas.ch>.
10 Use fortran-break-delimiters-re and fortran-no-break-re to
11 correctly handle cases such as "**".
12
13 * progmodes/f90.el (f90-break-delimiters): Doc fix.
14 (f90-no-break-re): Add some extra tokens. Doc fix.
15
162004-01-24 Thien-Thi Nguyen <ttn@gnu.org>
17
18 * mail/rmail-spam-filter.el:
19 Use two semicolons as Commentary line prefix.
20 Add ";;; Code:" stylized comment.
21 Delete end-of-line whitespace.
22 Wrap (require 'cl) with `eval-when-compile'.
23
12004-01-23 Benjamin Rutt <brutt@bloomington.in.us> 242004-01-23 Benjamin Rutt <brutt@bloomington.in.us>
2 25
3 * vc.el (vc-annotate): Fix improper use of `make-local-variable' 26 * vc.el (vc-annotate): Fix improper use of `make-local-variable'
diff --git a/lisp/mail/rmail-spam-filter.el b/lisp/mail/rmail-spam-filter.el
index bb13eac55db..d5a45fe5d87 100644
--- a/lisp/mail/rmail-spam-filter.el
+++ b/lisp/mail/rmail-spam-filter.el
@@ -1,6 +1,6 @@
1;;; rmail-spam-filter.el --- spam filter for rmail, the emacs mail reader. 1;;; rmail-spam-filter.el --- spam filter for RMAIL
2 2
3;; Copyright (C) 2002 3;; Copyright (C) 2002
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5;; Keywords: email, spam, filter, rmail 5;; Keywords: email, spam, filter, rmail
6;; Author: Eli Tziperman <eli@beach.weizmann.ac.il> 6;; Author: Eli Tziperman <eli@beach.weizmann.ac.il>
@@ -23,62 +23,64 @@
23;; Boston, MA 02111-1307, USA. 23;; Boston, MA 02111-1307, USA.
24 24
25;;; Commentary: 25;;; Commentary:
26;;; -----------
27 26
28;;; Automatically recognize and delete junk email before it is 27;; Automatically recognize and delete junk email before it is
29;;; displayed in rmail/rmail-summary. Spam emails are defined by 28;; displayed in rmail/rmail-summary. Spam emails are defined by
30;;; specifying one or more of the sender, subject and contents. 29;; specifying one or more of the sender, subject and contents.
31;;; URL: http://www.weizmann.ac.il/~eli/Downloads/rmail-spam-filter/ 30;; URL: http://www.weizmann.ac.il/~eli/Downloads/rmail-spam-filter/
32 31
33;;; Usage: 32;; Usage:
34;;; ------ 33;; ------
35 34
36;;; put in your .emacs: 35;; put in your .emacs:
37 36
38;;; (load "rmail-spam-filter.el") 37;; (load "rmail-spam-filter.el")
39 38
40;;; and use customize (in rmail-spam-filter group) to: 39;; and use customize (in rmail-spam-filter group) to:
41 40
42;;; (*) turn on the variable rmail-use-spam-filter, 41;; (*) turn on the variable rmail-use-spam-filter,
43 42
44;;; (*) specify in variable rmail-spam-definitions-alist what sender, 43;; (*) specify in variable rmail-spam-definitions-alist what sender,
45;;; subject and contents make an email be considered spam. 44;; subject and contents make an email be considered spam.
46 45
47;;; in addition, you may: 46;; in addition, you may:
48 47
49;;; (*) Block future mail with the subject or sender of a message 48;; (*) Block future mail with the subject or sender of a message
50;;; while reading it in RMAIL: just click on the "Spam" item on the 49;; while reading it in RMAIL: just click on the "Spam" item on the
51;;; menubar, and add the subject or sender to the list of spam 50;; menubar, and add the subject or sender to the list of spam
52;;; definitions using the mouse and the appropriate menu item. Â  You 51;; definitions using the mouse and the appropriate menu item. Â  You
53;;; need to later also save the list of spam definitions using the 52;; need to later also save the list of spam definitions using the
54;;; same menu item, or alternatively, see variable 53;; same menu item, or alternatively, see variable
55;;; `rmail-spam-filter-autosave-newly-added-spam-definitions'. 54;; `rmail-spam-filter-autosave-newly-added-spam-definitions'.
56 55
57;;; (*) specify if blind-cc'ed mail (no "To:" header field) is to be 56;; (*) specify if blind-cc'ed mail (no "To:" header field) is to be
58;;; treated as spam (variable rmail-spam-no-blind-cc; Thanks to Ethan 57;; treated as spam (variable rmail-spam-no-blind-cc; Thanks to Ethan
59;;; Brown <ethan@gso.saic.com> for this). 58;; Brown <ethan@gso.saic.com> for this).
60 59
61;;; (*) specify if rmail-spam-filter should ignore case of spam 60;; (*) specify if rmail-spam-filter should ignore case of spam
62;;; definitions (variable rmail-spam-filter-ignore-case; Thanks to 61;; definitions (variable rmail-spam-filter-ignore-case; Thanks to
63;;; Ethan Brown <ethan@gso.saic.com> for the suggestion). 62;; Ethan Brown <ethan@gso.saic.com> for the suggestion).
64 63
65;;; (*) Specify a "white-list" of trusted senders. If any 64;; (*) Specify a "white-list" of trusted senders. If any
66;;; rmail-spam-white-list string matches a substring of the "From" 65;; rmail-spam-white-list string matches a substring of the "From"
67;;; header, the message is flagged as a valid, non-spam message (Ethan 66;; header, the message is flagged as a valid, non-spam message (Ethan
68;;; Brown <ethan@gso.saic.com>). 67;; Brown <ethan@gso.saic.com>).
69 68
70;;; (*) rmail spam filter also works with bbdb to prevent spam senders 69;; (*) rmail spam filter also works with bbdb to prevent spam senders
71;;; from entering into the .bbdb file. See variable 70;; from entering into the .bbdb file. See variable
72;;; "rmail-spam-filter-auto-delete-spam-bbdb-entries". This is done 71;; "rmail-spam-filter-auto-delete-spam-bbdb-entries". This is done
73;;; in two ways: (a) bbdb is made not to auto-create entries for 72;; in two ways: (a) bbdb is made not to auto-create entries for
74;;; messages that are deleted by the rmail-spam-filter, (b) when a 73;; messages that are deleted by the rmail-spam-filter, (b) when a
75;;; message is deleted in rmail, the user is offered to delete the 74;; message is deleted in rmail, the user is offered to delete the
76;;; sender's bbdb entry as well _if_ it was created at the same day. 75;; sender's bbdb entry as well _if_ it was created at the same day.
76
77;;; Code:
77 78
78(require 'rmail) 79(require 'rmail)
79 80
80;; For find-if and other cool common lisp functions we may want to use. (EDB) 81;; For find-if and other cool common lisp functions we may want to use. (EDB)
81(require 'cl) 82(eval-when-compile
83 (require 'cl))
82 84
83(defgroup rmail-spam-filter nil 85(defgroup rmail-spam-filter nil
84 "Spam filter for RMAIL, the mail reader for Emacs." 86 "Spam filter for RMAIL, the mail reader for Emacs."
@@ -120,7 +122,7 @@ spam, as one of the fields of `rmail-spam-definitions-alist'"
120 "*Seconds to wait after display of message that spam was found." 122 "*Seconds to wait after display of message that spam was found."
121 :type 'number 123 :type 'number
122 :group 'rmail-spam-filter ) 124 :group 'rmail-spam-filter )
123 125
124(defcustom rmail-spam-filter-auto-delete-spam-bbdb-entries nil 126(defcustom rmail-spam-filter-auto-delete-spam-bbdb-entries nil
125 "*Non-nil to make sure no entries are made in bbdb for spam emails. 127 "*Non-nil to make sure no entries are made in bbdb for spam emails.
126This is done in two ways: (1) bbdb is made not to auto-create entries 128This is done in two ways: (1) bbdb is made not to auto-create entries
@@ -161,7 +163,7 @@ of the spam definitions. The strings that specify spam subject,
161sender, etc, may be regexp. For example, to specify that the subject 163sender, etc, may be regexp. For example, to specify that the subject
162may be either 'this is spam' or 'another spam', use the regexp: 'this 164may be either 'this is spam' or 'another spam', use the regexp: 'this
163is spam\|another spam' (without the single quotes)." 165is spam\|another spam' (without the single quotes)."
164 :type '(repeat 166 :type '(repeat
165 (list :format "%v" 167 (list :format "%v"
166 (cons :format "%v" :value (from . "") 168 (cons :format "%v" :value (from . "")
167 (const :format "" from) 169 (const :format "" from)
@@ -177,7 +179,7 @@ is spam\|another spam' (without the single quotes)."
177 (string :tag "Contents" "")) 179 (string :tag "Contents" ""))
178 (cons :format "%v" :value (action . output-and-delete) 180 (cons :format "%v" :value (action . output-and-delete)
179 (const :format "" action) 181 (const :format "" action)
180 (choice :tag "Action selection" 182 (choice :tag "Action selection"
181 (const :tag "output to spam folder and delete" output-and-delete) 183 (const :tag "output to spam folder and delete" output-and-delete)
182 (const :tag "delete spam" delete-spam) 184 (const :tag "delete spam" delete-spam)
183 )) 185 ))
@@ -208,7 +210,7 @@ it from rmail file. Called for each new message retrieved by
208 (save-current-msg) 210 (save-current-msg)
209 (rmail-spam-filter-saved-bbdb/mail_auto_create_p nil) 211 (rmail-spam-filter-saved-bbdb/mail_auto_create_p nil)
210 ) 212 )
211 213
212 ;; make sure bbdb does not create entries for messages while spam 214 ;; make sure bbdb does not create entries for messages while spam
213 ;; filter is scanning the rmail file: 215 ;; filter is scanning the rmail file:
214 (setq rmail-spam-filter-saved-bbdb/mail_auto_create_p 'bbdb/mail_auto_create_p) 216 (setq rmail-spam-filter-saved-bbdb/mail_auto_create_p 'bbdb/mail_auto_create_p)
@@ -236,7 +238,7 @@ it from rmail file. Called for each new message retrieved by
236 238
237 ;;; do we want to ignore case in spam definitions: 239 ;;; do we want to ignore case in spam definitions:
238 (setq case-fold-search rmail-spam-filter-ignore-case) 240 (setq case-fold-search rmail-spam-filter-ignore-case)
239 241
240 ;; Check for blind CC condition. Set vars such that while 242 ;; Check for blind CC condition. Set vars such that while
241 ;; loop will be bypassed and spam condition will trigger (EDB) 243 ;; loop will be bypassed and spam condition will trigger (EDB)
242 (if (and rmail-spam-no-blind-cc 244 (if (and rmail-spam-no-blind-cc
@@ -245,7 +247,7 @@ it from rmail file. Called for each new message retrieved by
245 (setq exit-while-loop t) 247 (setq exit-while-loop t)
246 (setq maybe-spam t) 248 (setq maybe-spam t)
247 (setq this-is-a-spam-email t))) 249 (setq this-is-a-spam-email t)))
248 250
249 ;; Check white list, and likewise cause while loop 251 ;; Check white list, and likewise cause while loop
250 ;; bypass. (EDB) 252 ;; bypass. (EDB)
251 (if (find-if '(lambda (white-str) 253 (if (find-if '(lambda (white-str)
@@ -255,7 +257,7 @@ it from rmail file. Called for each new message retrieved by
255 (setq exit-while-loop t) 257 (setq exit-while-loop t)
256 (setq maybe-spam nil) 258 (setq maybe-spam nil)
257 (setq this-is-a-spam-email nil))) 259 (setq this-is-a-spam-email nil)))
258 260
259 ;; scan all elements of the list rmail-spam-definitions-alist 261 ;; scan all elements of the list rmail-spam-definitions-alist
260 (while (and 262 (while (and
261 (< num-element num-spam-definition-elements) 263 (< num-element num-spam-definition-elements)
@@ -277,7 +279,7 @@ it from rmail file. Called for each new message retrieved by
277 279
278 ;; start scanning incoming message: 280 ;; start scanning incoming message:
279 ;;--------------------------------- 281 ;;---------------------------------
280 282
281 ;; if sender field is not specified in message being 283 ;; if sender field is not specified in message being
282 ;; scanned, AND if "from" field does not appear in spam 284 ;; scanned, AND if "from" field does not appear in spam
283 ;; definitions for this element, this may still be spam 285 ;; definitions for this element, this may still be spam
@@ -585,7 +587,7 @@ it from rmail file. Called for each new message retrieved by
585 587
586(defun rmail-bbdb-auto-delete-spam-entries () 588(defun rmail-bbdb-auto-delete-spam-entries ()
587 "When deleting a message in RMAIL, check to see if the bbdb entry 589 "When deleting a message in RMAIL, check to see if the bbdb entry
588was created today, and if it was, prompt to delete it too. This function 590was created today, and if it was, prompt to delete it too. This function
589needs to be called via the `rmail-delete-message-hook' like this: 591needs to be called via the `rmail-delete-message-hook' like this:
590\(add-hook 'rmail-delete-message-hook 'rmail-bbdb-auto-delete-spam-entries)" 592\(add-hook 'rmail-delete-message-hook 'rmail-bbdb-auto-delete-spam-entries)"
591 (interactive) 593 (interactive)
@@ -604,14 +606,14 @@ needs to be called via the `rmail-delete-message-hook' like this:
604 "Make sure senderes of rmail messages marked as deleted are not added to bbdb. 606 "Make sure senderes of rmail messages marked as deleted are not added to bbdb.
605Need to add this as a hook like this: 607Need to add this as a hook like this:
606\(setq bbdb/mail-auto-create-p 'rmail-spam-filter-bbdb-dont-create-entries-for-spam) 608\(setq bbdb/mail-auto-create-p 'rmail-spam-filter-bbdb-dont-create-entries-for-spam)
607and this is also used in conjunction with rmail-bbdb-auto-delete-spam-entries. 609and this is also used in conjunction with rmail-bbdb-auto-delete-spam-entries.
608More doc: rmail-bbdb-auto-delete-spam-entries will delete newly created bbdb 610More doc: rmail-bbdb-auto-delete-spam-entries will delete newly created bbdb
609entries of mail that is deleted. However, if one scrolls back to the deleted 611entries of mail that is deleted. However, if one scrolls back to the deleted
610messages, then the sender is again added to the bbdb. This function 612messages, then the sender is again added to the bbdb. This function
611prevents this. Also, don't create entries for messages in the `rmail-spam-file'." 613prevents this. Also, don't create entries for messages in the `rmail-spam-file'."
612 (interactive) 614 (interactive)
613 (not 615 (not
614 ;; don't create a bbdb entry if one of the following conditions is satisfied: 616 ;; don't create a bbdb entry if one of the following conditions is satisfied:
615 (or 617 (or
616 ;; 1) looking at a deleted message: 618 ;; 1) looking at a deleted message:
617 (rmail-message-deleted-p rmail-current-message) 619 (rmail-message-deleted-p rmail-current-message)
@@ -631,4 +633,4 @@ prevents this. Also, don't create entries for messages in the `rmail-spam-file'
631(provide 'rmail-spam-filter) 633(provide 'rmail-spam-filter)
632 634
633;;; arch-tag: 03e1d45d-b72f-4dd7-8f04-e7fd78249746 635;;; arch-tag: 03e1d45d-b72f-4dd7-8f04-e7fd78249746
634;;; rmail-spam-filter ends here 636;;; rmail-spam-filter.el ends here
diff --git a/lisp/man.el b/lisp/man.el
index 61131db20be..faf153bc4c4 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -801,7 +801,7 @@ Same for the ANSI bold and normal escape sequences."
801 ;; Try to recognize common forms of cross references. 801 ;; Try to recognize common forms of cross references.
802 (Man-highlight-references) 802 (Man-highlight-references)
803 (Man-softhyphen-to-minus) 803 (Man-softhyphen-to-minus)
804 (message "%s man page made up" Man-arguments)) 804 (message "%s man page formatted" Man-arguments))
805 805
806(defun Man-highlight-references () 806(defun Man-highlight-references ()
807 "Highlight the references on mouse-over. 807 "Highlight the references on mouse-over.
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
index a3f44743514..11553a1fdb6 100644
--- a/lisp/progmodes/f90.el
+++ b/lisp/progmodes/f90.el
@@ -1,6 +1,6 @@
1;;; f90.el --- Fortran-90 mode (free format) 1;;; f90.el --- Fortran-90 mode (free format)
2 2
3;; Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc. 3;; Copyright (C) 1995, 1996, 1997, 2000, 2004 Free Software Foundation, Inc.
4 4
5;; Author: Torbj\"orn Einarsson <Torbjorn.Einarsson@era.ericsson.se> 5;; Author: Torbj\"orn Einarsson <Torbjorn.Einarsson@era.ericsson.se>
6;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> 6;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk>
@@ -224,7 +224,10 @@ whether to blink the matching beginning."
224 :group 'f90) 224 :group 'f90)
225 225
226(defcustom f90-break-delimiters "[-+\\*/><=,% \t]" 226(defcustom f90-break-delimiters "[-+\\*/><=,% \t]"
227 "*Regexp holding list of delimiters at which lines may be broken." 227 "*Regexp matching delimiter characters at which lines may be broken.
228There are certain tokens comprised entirely of characters
229matching this regexp that should not be split, and these are
230specified by the constant `f90-no-break-re'."
228 :type 'regexp 231 :type 'regexp
229 :group 'f90) 232 :group 'f90)
230 233
@@ -574,8 +577,12 @@ Can be overridden by the value of `font-lock-maximum-decoration'.")
574 "Regexp matching the definition of a derived type.") 577 "Regexp matching the definition of a derived type.")
575 578
576(defconst f90-no-break-re 579(defconst f90-no-break-re
577 (regexp-opt '("**" "//" "=>") 'paren) 580 (regexp-opt '("**" "//" "=>" ">=" "<=" "==" "/=") 'paren)
578 "Regexp specifying where not to break lines when filling.") 581 "Regexp specifying where not to break lines when filling.
582This regexp matches certain tokens comprised entirely of
583characters matching the regexp `f90-break-delimiters' that should
584not be split by filling. Each element is assumed to be two
585characters long.")
579 586
580(defvar f90-cache-position nil 587(defvar f90-cache-position nil
581 "Temporary position used to speed up region operations.") 588 "Temporary position used to speed up region operations.")
diff --git a/lisp/progmodes/fortran.el b/lisp/progmodes/fortran.el
index 39e74a8dc1f..f23eabe6e9c 100644
--- a/lisp/progmodes/fortran.el
+++ b/lisp/progmodes/fortran.el
@@ -1,6 +1,6 @@
1;;; fortran.el --- Fortran mode for GNU Emacs 1;;; fortran.el --- Fortran mode for GNU Emacs
2 2
3;; Copyright (c) 1986, 93, 94, 95, 97, 98, 99, 2000, 01, 2003 3;; Copyright (c) 1986, 93, 94, 95, 97, 98, 99, 2000, 01, 03, 04
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Michael D. Prange <prange@erl.mit.edu> 6;; Author: Michael D. Prange <prange@erl.mit.edu>
@@ -237,10 +237,25 @@ See the variable `fortran-column-ruler-fixed' for fixed format mode."
237 237
238(defcustom fortran-break-before-delimiters t 238(defcustom fortran-break-before-delimiters t
239 "*Non-nil causes filling to break lines before delimiters. 239 "*Non-nil causes filling to break lines before delimiters.
240Delimiters are whitespace, commas, quotes, and operators." 240Delimiters are characters matching the regexp `fortran-break-delimiters-re'."
241 :type 'boolean 241 :type 'boolean
242 :group 'fortran) 242 :group 'fortran)
243 243
244(defconst fortran-break-delimiters-re "[-+*/><=, \t]"
245 "Regexp matching delimiter characters at which lines may be broken.
246There are certain tokens comprised entirely of characters
247matching this regexp that should not be split, and these are
248specified by the constant `fortran-no-break-re'.")
249
250;; The ">=", etc F77 extensions are supported by g77.
251(defconst fortran-no-break-re
252 (regexp-opt '("**" "//" "=>" ">=" "<=" "==" "/=") 'paren)
253 "Regexp specifying where not to break lines when filling.
254This regexp matches certain tokens comprised entirely of
255characters matching the regexp `fortran-break-delimiters-re' that should
256not be split by filling. Each element is assumed to be two
257characters long.")
258
244(defcustom fortran-mode-hook nil 259(defcustom fortran-mode-hook nil
245 "Hook run when entering Fortran mode." 260 "Hook run when entering Fortran mode."
246 :type 'hook 261 :type 'hook
@@ -1646,56 +1661,68 @@ If ALL is nil, only match comments that start in column > 0."
1646 (bol (line-beginning-position)) 1661 (bol (line-beginning-position))
1647 (eol (line-end-position)) 1662 (eol (line-end-position))
1648 (bos (min eol (+ bol (fortran-current-line-indentation)))) 1663 (bos (min eol (+ bol (fortran-current-line-indentation))))
1664 ;; If in a string at fill-column, break it either before the
1665 ;; initial quote, or at fill-col (if string is too long).
1649 (quote 1666 (quote
1650 (save-excursion 1667 (save-excursion
1651 (goto-char bol) 1668 (goto-char bol)
1652 ;; OK to break quotes on comment lines. 1669 ;; OK to break quotes on comment lines.
1653 (unless (looking-at fortran-comment-line-start-skip) 1670 (unless (looking-at fortran-comment-line-start-skip)
1654 (let (fcpoint start) 1671 (let (fcpoint start)
1655 (move-to-column fill-column) 1672 (move-to-column fill-column)
1656 (when (fortran-is-in-string-p (setq fcpoint (point))) 1673 (when (fortran-is-in-string-p (setq fcpoint (point)))
1657 (save-excursion 1674 (save-excursion
1658 (re-search-backward "\\S\"\\s\"\\S\"" bol t) 1675 (re-search-backward "\\S\"\\s\"\\S\"?" bol t)
1659 (setq start 1676 (setq start
1660 (if fortran-break-before-delimiters 1677 (if fortran-break-before-delimiters
1661 (point) 1678 (point)
1662 (1+ (point))))) 1679 (1+ (point)))))
1663 (if (re-search-forward "\\S\"\\s\"\\S\"" eol t) 1680 (if (re-search-forward "\\S\"\\s\"\\S\"" eol t)
1664 (backward-char 2)) 1681 (backward-char 2))
1665 ;; If the current string is longer than 72 - 6 chars, 1682 ;; If the current string is longer than 72 - 6 chars,
1666 ;; break it at the fill column (else infinite loop). 1683 ;; break it at the fill column (else infinite loop).
1667 (if (> (- (point) start) 1684 (if (> (- (point) start)
1668 (- fill-column 6 fortran-continuation-indent)) 1685 (- fill-column 6 fortran-continuation-indent))
1669 fcpoint 1686 fcpoint
1670 start)))))) 1687 start))))))
1671 ;; Decide where to split the line. If a position for a quoted 1688 ;; Decide where to split the line. If a position for a quoted
1672 ;; string was found above then use that, else break the line 1689 ;; string was found above then use that, else break the line
1673 ;; before the last delimiter. 1690 ;; before/after the last delimiter.
1674 ;; Delimiters are whitespace, commas, and operators.
1675 ;; Will break before a pair of *'s.
1676 (fill-point 1691 (fill-point
1677 (or quote 1692 (or quote
1678 (save-excursion 1693 (save-excursion
1679 (move-to-column (1+ fill-column)) 1694 ;; If f-b-b-d is t, have an extra column to play with,
1680 ;; GM Make this a defcustom as in f90-mode? Add ", (? 1695 ;; since delimiter gets shifted to new line.
1681 (skip-chars-backward "^ \t\n,'+-/*=)" 1696 (move-to-column (if fortran-break-before-delimiters
1682;;; (if fortran-break-before-delimiters 1697 (1+ fill-column)
1683;;; "^ \t\n,'+-/*=" "^ \t\n,'+-/*=)") 1698 fill-column))
1684 ) 1699 (let ((repeat t))
1685 (when (<= (point) (1+ bos)) 1700 (while repeat
1701 (setq repeat nil)
1702 ;; Adapted from f90-find-breakpoint.
1703 (re-search-backward fortran-break-delimiters-re
1704 (line-beginning-position))
1705 (if (not fortran-break-before-delimiters)
1706 (if (looking-at fortran-no-break-re)
1707 ;; Deal with cases such as "**" split over
1708 ;; fill-col. Simpler alternative would be
1709 ;; to start from (1- fill-column) above.
1710 (if (> (+ 2 (current-column)) fill-column)
1711 (setq repeat t)
1712 (forward-char 2))
1713 (forward-char 1))
1714 (backward-char)
1715 (or (looking-at fortran-no-break-re)
1716 (forward-char)))))
1717 ;; Line indented beyond fill-column?
1718 (when (<= (point) bos)
1686 (move-to-column (1+ fill-column)) 1719 (move-to-column (1+ fill-column))
1687 ;; What is this doing??? 1720 ;; What is this doing???
1688 (or (re-search-forward "[\t\n,'+-/*)=]" eol t) 1721 (or (re-search-forward "[\t\n,'+-/*)=]" eol t)
1689 (goto-char bol))) 1722 (goto-char bol)))
1690 (if (bolp) 1723 (if (bolp)
1691 (re-search-forward "[ \t]" opoint t) 1724 (re-search-forward "[ \t]" opoint t))
1692 (backward-char) 1725 (point)))))
1693 (if (looking-at "\\s\"")
1694 (forward-char)
1695 (skip-chars-backward " \t\*")))
1696 (if fortran-break-before-delimiters
1697 (point)
1698 (1+ (point)))))))
1699 ;; If we are in an in-line comment, don't break unless the 1726 ;; If we are in an in-line comment, don't break unless the
1700 ;; line of code is longer than it should be. Otherwise 1727 ;; line of code is longer than it should be. Otherwise
1701 ;; break the line at the column computed above. 1728 ;; break the line at the column computed above.
diff --git a/lispref/strings.texi b/lispref/strings.texi
index 7cc182cc058..60a74313a85 100644
--- a/lispref/strings.texi
+++ b/lispref/strings.texi
@@ -798,19 +798,18 @@ operation} error.
798@cindex numeric prefix 798@cindex numeric prefix
799@cindex field width 799@cindex field width
800@cindex padding 800@cindex padding
801 All the specification characters allow an optional numeric prefix 801 All the specification characters allow an optional ``width'', which
802between the @samp{%} and the character. The optional numeric prefix 802is a digit-string between the @samp{%} and the character. If the
803defines the minimum width for the object. If the printed 803printed representation of the object contains fewer characters than
804representation of the object contains fewer characters than this, then 804this width, then it is padded. The padding is on the left if the
805it is padded. The padding is on the left if the prefix is positive 805prefix is positive (or starts with zero) and on the right if the
806(or starts with zero) and on the right if the prefix is negative. The 806prefix is negative. The padding character is normally a space, but if
807padding character is normally a space, but if the numeric prefix 807the width starts with a zero, zeros are used for padding. Some of
808starts with a zero, zeros are used for padding. Some of these 808these conventions are ignored for specification characters for which
809conventions are ignored for specification characters for which they do 809they do not make sense. That is, %s, %S and %c accept a width
810not make sense. That is, %s, %S and %c accept a numeric prefix
811starting with 0, but still pad with @emph{spaces} on the left. Also, 810starting with 0, but still pad with @emph{spaces} on the left. Also,
812%% accepts a numeric prefix, but ignores it. Here are some examples 811%% accepts a width, but ignores it. Here are some examples of
813of padding: 812padding:
814 813
815@example 814@example
816(format "%06d is padded on the left with zeros" 123) 815(format "%06d is padded on the left with zeros" 123)
@@ -820,10 +819,9 @@ of padding:
820 @result{} "123 is padded on the right" 819 @result{} "123 is padded on the right"
821@end example 820@end example
822 821
823 @code{format} never truncates an object's printed representation, no 822If the width is too small, @code{format} does not truncate the
824matter what width you specify. Thus, you can use a numeric prefix to 823object's printed representation. Thus, you can use a width to specify
825specify a minimum spacing between columns with no risk of losing 824a minimum spacing between columns with no risk of losing information.
826information.
827 825
828 In the following three examples, @samp{%7s} specifies a minimum width 826 In the following three examples, @samp{%7s} specifies a minimum width
829of 7. In the first case, the string inserted in place of @samp{%7s} has 827of 7. In the first case, the string inserted in place of @samp{%7s} has
@@ -851,6 +849,28 @@ not truncated. In the third case, the padding is on the right.
851@end group 849@end group
852@end smallexample 850@end smallexample
853 851
852 All the specification characters allow an optional ``precision''
853before the character (after the width, if present). The precision is
854a decimal-point @samp{.} followed by a digit-string. For the
855floating-point specifications (%e, %f, %g), the precision specifies
856how many decimal places to show; if zero, the decimal-point itself is
857also omitted. For %s and %S, the precision truncates the string to
858the given width, so @code{"%.3s"} shows only the first three
859characters of the representation for @var{object}. Precision is
860ignored for other specification characters.
861
862Immediately after the % and before the optional width and precision,
863you can put certain ``flag'' characters.
864
865A space @var{" "} inserts a space for positive numbers (otherwise
866nothing is inserted for positive numbers). This flag is ignored
867except for %d, %e, %f, %g.
868
869The flag @var{"#"} indicates ``alternate form''. For %o it ensures
870that the result begins with a 0. For %x and %X the result is prefixed
871with ``0x'' or ``0X''. For %e, %f, and %g a decimal point is always
872shown even if the precision is zero.
873
854@node Case Conversion 874@node Case Conversion
855@comment node-name, next, previous, up 875@comment node-name, next, previous, up
856@section Case Conversion in Lisp 876@section Case Conversion in Lisp
diff --git a/make-dist b/make-dist
index 945d39c916d..93a5a5a2e88 100755
--- a/make-dist
+++ b/make-dist
@@ -615,7 +615,7 @@ echo "Making links to \`man'"
615 615
616echo "Making links to \`lispref'" 616echo "Making links to \`lispref'"
617(cd lispref 617(cd lispref
618 ln `ls -1 *.texi | grep -v index.texi` ../${tempdir}/lispref 618 ln `ls -1 *.texi` ../${tempdir}/lispref
619 ln *.aux *.cps *.fns *.kys *.vrs index.*perm ../${tempdir}/lispref 619 ln *.aux *.cps *.fns *.kys *.vrs index.*perm ../${tempdir}/lispref
620 ln *.txt *.el spellfile permute-index tindex.pl ../${tempdir}/lispref 620 ln *.txt *.el spellfile permute-index tindex.pl ../${tempdir}/lispref
621 test -f README && ln README ../${tempdir}/lispref 621 test -f README && ln README ../${tempdir}/lispref
diff --git a/man/ChangeLog b/man/ChangeLog
index a4a4b3024d4..0cb867e5af1 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,9 @@
12004-01-24 Richard M. Stallman <rms@gnu.org>
2
3 * emacs.texi (Acknowledgments): Renamed from Acknowledgements.
4 Include it only @ifnotinfo. Patch the preceding and following
5 node headers to point to each other.
6
12004-01-11 Glenn Morris <gmorris@ast.cam.ac.uk> 72004-01-11 Glenn Morris <gmorris@ast.cam.ac.uk>
2 8
3 * calendar.texi (Appointments): Update section. 9 * calendar.texi (Appointments): Update section.
diff --git a/man/emacs.texi b/man/emacs.texi
index 541f4efd16c..d932dd04200 100644
--- a/man/emacs.texi
+++ b/man/emacs.texi
@@ -115,7 +115,6 @@ and Sending Mail and Registers and Minibuffer.
115 115
116@menu 116@menu
117* Distrib:: How to get the latest Emacs distribution. 117* Distrib:: How to get the latest Emacs distribution.
118* Acknowledgements:: Contributors to GNU Emacs.
119* Copying:: The GNU General Public License gives you permission 118* Copying:: The GNU General Public License gives you permission
120 to redistribute GNU Emacs on certain terms; 119 to redistribute GNU Emacs on certain terms;
121 it also explains that there is no warranty. 120 it also explains that there is no warranty.
@@ -902,7 +901,7 @@ all GNU Emacs features. We don't try to describe VMS usage in this
902manual. @xref{MS-DOS}, for information about using Emacs on MS-DOS. 901manual. @xref{MS-DOS}, for information about using Emacs on MS-DOS.
903@end iftex 902@end iftex
904 903
905@node Distrib, Acknowledgements, Top, Top 904@node Distrib, Copying, Top, Top
906@unnumbered Distribution 905@unnumbered Distribution
907 906
908GNU Emacs is @dfn{free software}; this means that everyone is free to 907GNU Emacs is @dfn{free software}; this means that everyone is free to
@@ -956,8 +955,9 @@ company policy is unsympathetic to the idea of donating to charity, you
956might instead suggest ordering a CD-ROM from the Foundation 955might instead suggest ordering a CD-ROM from the Foundation
957occasionally, or subscribing to periodic updates. 956occasionally, or subscribing to periodic updates.
958 957
959@node Acknowledgements, Copying, Distrib, Top 958@ifnotinfo
960@section Acknowledgements 959@node Acknowledgments, Copying, Distrib, Top
960@section Acknowledgments
961 961
962Contributors to GNU Emacs include Per Abrahamsen, Jay K. Adams, Joe 962Contributors to GNU Emacs include Per Abrahamsen, Jay K. Adams, Joe
963Arceneaux, Boaz Ben-Zvi, Jim Blandy, Terrence Brannon, Frank Bresz, 963Arceneaux, Boaz Ben-Zvi, Jim Blandy, Terrence Brannon, Frank Bresz,
@@ -1000,8 +1000,9 @@ Warsaw, Morten Welinder, Joseph Brian Wells, Rodney Whitby, Ed
1000Wilkinson, Mike Williams, Steven A. Wood, Dale R. Worley, Felix 1000Wilkinson, Mike Williams, Steven A. Wood, Dale R. Worley, Felix
1001S. T. Wu, Tom Wurgler, Eli Zaretskii, Jamie Zawinski, Ian T. Zimmermann, 1001S. T. Wu, Tom Wurgler, Eli Zaretskii, Jamie Zawinski, Ian T. Zimmermann,
1002Reto Zimmermann, and Neal Ziring. 1002Reto Zimmermann, and Neal Ziring.
1003@end ifnotinfo
1003 1004
1004@node Copying, GNU Free Documentation License, Acknowledgements, Top 1005@node Copying, GNU Free Documentation License, Distrib, Top
1005@unnumbered GNU GENERAL PUBLIC LICENSE 1006@unnumbered GNU GENERAL PUBLIC LICENSE
1006@center Version 2, June 1991 1007@center Version 2, June 1991
1007 1008
diff --git a/src/ChangeLog b/src/ChangeLog
index a15f25fbde8..a71cb27cf33 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,18 @@
12004-01-26 Andreas Schwab <schwab@suse.de>
2
3 * print.c (print_preprocess): Declare size as EMACS_INT to not
4 lose bits.
5 (print_object): Likewise.
6 * alloc.c (Fpurecopy): Likewise.
7
82004-01-25 Luc Teirlinck <teirllm@auburn.edu>
9
10 * window.c (Fwindow_minibuffer_p): Doc fix.
11
122004-01-24 Jonathan Yavner <jyavner@member.fsf.org>
13
14 * editfns.c (Fformat): Make both passes accept the same set of flags.
15
12004-01-23 Kenichi Handa <handa@m17n.org> 162004-01-23 Kenichi Handa <handa@m17n.org>
2 17
3 * fns.c (Fmd5): If OBJECT is a buffer different from the current 18 * fns.c (Fmd5): If OBJECT is a buffer different from the current
diff --git a/src/alloc.c b/src/alloc.c
index 4afcab2c20a..723d664cbe0 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -4231,12 +4231,13 @@ Does not copy symbols. Copies strings without text properties. */)
4231 else if (COMPILEDP (obj) || VECTORP (obj)) 4231 else if (COMPILEDP (obj) || VECTORP (obj))
4232 { 4232 {
4233 register struct Lisp_Vector *vec; 4233 register struct Lisp_Vector *vec;
4234 register int i, size; 4234 register int i;
4235 EMACS_INT size;
4235 4236
4236 size = XVECTOR (obj)->size; 4237 size = XVECTOR (obj)->size;
4237 if (size & PSEUDOVECTOR_FLAG) 4238 if (size & PSEUDOVECTOR_FLAG)
4238 size &= PSEUDOVECTOR_SIZE_MASK; 4239 size &= PSEUDOVECTOR_SIZE_MASK;
4239 vec = XVECTOR (make_pure_vector ((EMACS_INT) size)); 4240 vec = XVECTOR (make_pure_vector (size));
4240 for (i = 0; i < size; i++) 4241 for (i = 0; i < size; i++)
4241 vec->contents[i] = Fpurecopy (XVECTOR (obj)->contents[i]); 4242 vec->contents[i] = Fpurecopy (XVECTOR (obj)->contents[i]);
4242 if (COMPILEDP (obj)) 4243 if (COMPILEDP (obj))
diff --git a/src/editfns.c b/src/editfns.c
index a636c35a464..d3039ca0273 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -3193,6 +3193,10 @@ It may contain %-sequences meaning to substitute the next argument.
3193 The argument used for %d, %o, %x, %e, %f, %g or %c must be a number. 3193 The argument used for %d, %o, %x, %e, %f, %g or %c must be a number.
3194Use %% to put a single % into the output. 3194Use %% to put a single % into the output.
3195 3195
3196The basic structure of a %-sequence is
3197 % <flags> <width> <precision> character
3198where flags is [- #0]+, width is [0-9]+, and precision is .[0-9]+
3199
3196usage: (format STRING &rest OBJECTS) */) 3200usage: (format STRING &rest OBJECTS) */)
3197 (nargs, args) 3201 (nargs, args)
3198 int nargs; 3202 int nargs;
@@ -3300,7 +3304,7 @@ usage: (format STRING &rest OBJECTS) */)
3300 3304
3301 where 3305 where
3302 3306
3303 flags ::= [#-* 0]+ 3307 flags ::= [- #0]+
3304 field-width ::= [0-9]+ 3308 field-width ::= [0-9]+
3305 precision ::= '.' [0-9]* 3309 precision ::= '.' [0-9]*
3306 3310
@@ -3312,14 +3316,7 @@ usage: (format STRING &rest OBJECTS) */)
3312 digits to print after the '.' for floats, or the max. 3316 digits to print after the '.' for floats, or the max.
3313 number of chars to print from a string. */ 3317 number of chars to print from a string. */
3314 3318
3315 /* NOTE the handling of specifiers here differs in some ways 3319 while (index ("-0# ", *format))
3316 from the libc model. There are bugs in this code that lead
3317 to incorrect formatting when flags recognized by C but
3318 neither parsed nor rejected here are used. Further
3319 revisions will be made soon. */
3320
3321 /* incorrect list of flags to skip; will be fixed */
3322 while (index ("-*# 0", *format))
3323 ++format; 3320 ++format;
3324 3321
3325 if (*format >= '0' && *format <= '9') 3322 if (*format >= '0' && *format <= '9')
@@ -3403,7 +3400,7 @@ usage: (format STRING &rest OBJECTS) */)
3403 if (*format == 'c') 3400 if (*format == 'c')
3404 { 3401 {
3405 if (! SINGLE_BYTE_CHAR_P (XINT (args[n])) 3402 if (! SINGLE_BYTE_CHAR_P (XINT (args[n]))
3406 /* Note: No one can remeber why we have to treat 3403 /* Note: No one can remember why we have to treat
3407 the character 0 as a multibyte character here. 3404 the character 0 as a multibyte character here.
3408 But, until it causes a real problem, let's 3405 But, until it causes a real problem, let's
3409 don't change it. */ 3406 don't change it. */
@@ -3494,17 +3491,19 @@ usage: (format STRING &rest OBJECTS) */)
3494 discarded[format - format_start] = 1; 3491 discarded[format - format_start] = 1;
3495 format++; 3492 format++;
3496 3493
3497 /* Process a numeric arg and skip it. */ 3494 while (index("-0# ", *format))
3498 /* NOTE atoi is the wrong thing to use here; will be fixed */ 3495 {
3496 if (*format == '-')
3497 {
3498 negative = 1;
3499 }
3500 discarded[format - format_start] = 1;
3501 ++format;
3502 }
3503
3499 minlen = atoi (format); 3504 minlen = atoi (format);
3500 if (minlen < 0) 3505
3501 minlen = - minlen, negative = 1; 3506 while ((*format >= '0' && *format <= '9') || *format == '.')
3502
3503 /* NOTE the parsing here is not consistent with the first
3504 pass, and neither attempt is what we want to do. Will be
3505 fixed. */
3506 while ((*format >= '0' && *format <= '9')
3507 || *format == '-' || *format == ' ' || *format == '.')
3508 { 3507 {
3509 discarded[format - format_start] = 1; 3508 discarded[format - format_start] = 1;
3510 format++; 3509 format++;
diff --git a/src/print.c b/src/print.c
index 597345c129c..89690fe5399 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1276,7 +1276,8 @@ static void
1276print_preprocess (obj) 1276print_preprocess (obj)
1277 Lisp_Object obj; 1277 Lisp_Object obj;
1278{ 1278{
1279 int i, size; 1279 int i;
1280 EMACS_INT size;
1280 1281
1281 loop: 1282 loop:
1282 if (STRINGP (obj) || CONSP (obj) || VECTORP (obj) 1283 if (STRINGP (obj) || CONSP (obj) || VECTORP (obj)
@@ -1891,7 +1892,7 @@ print_object (obj, printcharfun, escapeflag)
1891 } 1892 }
1892 else 1893 else
1893 { 1894 {
1894 int size = XVECTOR (obj)->size; 1895 EMACS_INT size = XVECTOR (obj)->size;
1895 if (COMPILEDP (obj)) 1896 if (COMPILEDP (obj))
1896 { 1897 {
1897 PRINTCHAR ('#'); 1898 PRINTCHAR ('#');
diff --git a/src/window.c b/src/window.c
index 14defa74257..363c8d0eaff 100644
--- a/src/window.c
+++ b/src/window.c
@@ -307,7 +307,8 @@ used by that frame. */)
307} 307}
308 308
309DEFUN ("window-minibuffer-p", Fwindow_minibuffer_p, Swindow_minibuffer_p, 0, 1, 0, 309DEFUN ("window-minibuffer-p", Fwindow_minibuffer_p, Swindow_minibuffer_p, 0, 1, 0,
310 doc: /* Returns non-nil if WINDOW is a minibuffer window. */) 310 doc: /* Returns non-nil if WINDOW is a minibuffer window.
311WINDOW defaults to the selected window. */)
311 (window) 312 (window)
312 Lisp_Object window; 313 Lisp_Object window;
313{ 314{