aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaroly Lorentey2005-03-06 13:31:20 +0000
committerKaroly Lorentey2005-03-06 13:31:20 +0000
commita0d878a9ccbfb7c68dd7cfbe05c2b71b9bd5c830 (patch)
tree79ba80d6f6c4b787c60b36ebcd87c1b26f0906e1
parentab455350da7728b0f8e1daf92c084092d8a04c29 (diff)
parentbe6e87e51aaa3a114bc4ff2ceccbc7c9aa2b30d0 (diff)
downloademacs-a0d878a9ccbfb7c68dd7cfbe05c2b71b9bd5c830.tar.gz
emacs-a0d878a9ccbfb7c68dd7cfbe05c2b71b9bd5c830.zip
Merged from miles@gnu.org--gnu-2005 (patch 34-36, 142-158)
Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-142 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-143 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-144 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-145 (make-text-button): Default button type if not specified * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-146 quick-install-emacs: Use mkdir --verbose only when requested * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-147 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-148 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-149 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-150 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-151 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-152 Add info/dir to arch branch * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-153 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-154 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-155 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-156 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-157 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-158 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-34 Merge from emacs--cvs-trunk--0 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-35 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-36 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-303
-rw-r--r--.arch-inventory3
-rw-r--r--ChangeLog5
-rw-r--r--admin/ChangeLog6
-rw-r--r--admin/FOR-RELEASE5
-rwxr-xr-xadmin/quick-install-emacs9
-rwxr-xr-xconfigure35
-rw-r--r--configure.in21
-rw-r--r--etc/ChangeLog8
-rw-r--r--etc/DEBUG9
-rw-r--r--etc/NEWS14
-rw-r--r--info/.arch-inventory19
-rw-r--r--info/dir77
-rw-r--r--lib-src/ChangeLog4
-rw-r--r--lib-src/make-docfile.c2
-rw-r--r--lisp/ChangeLog144
-rw-r--r--lisp/button.el37
-rw-r--r--lisp/calendar/calendar.el10
-rw-r--r--lisp/calendar/diary-lib.el23
-rw-r--r--lisp/calendar/icalendar.el21
-rw-r--r--lisp/double.el1
-rw-r--r--lisp/emacs-lisp/copyright.el37
-rw-r--r--lisp/emacs-lisp/debug.el105
-rw-r--r--lisp/frame.el2
-rw-r--r--lisp/gnus/ChangeLog30
-rw-r--r--lisp/gnus/gnus-sum.el10
-rw-r--r--lisp/gnus/message.el39
-rw-r--r--lisp/gnus/nnweb.el14
-rw-r--r--lisp/ibuf-ext.el12
-rw-r--r--lisp/international/code-pages.el13
-rw-r--r--lisp/menu-bar.el13
-rw-r--r--lisp/progmodes/compile.el4
-rw-r--r--lisp/progmodes/gdb-ui.el51
-rw-r--r--lisp/simple.el46
-rw-r--r--lisp/startup.el10
-rw-r--r--lisp/textmodes/texinfmt.el9
-rw-r--r--lispref/ChangeLog29
-rw-r--r--lispref/debugging.texi120
-rw-r--r--lispref/edebug.texi4
-rw-r--r--mac/ChangeLog14
-rw-r--r--mac/INSTALL6
-rw-r--r--mac/inc/config.h2
-rw-r--r--mac/makefile.MPW45
-rw-r--r--mac/src/EmacsMPW.r14
-rw-r--r--man/ChangeLog34
-rw-r--r--man/calc.texi44
-rw-r--r--man/calendar.texi7
-rw-r--r--man/cmdargs.texi8
-rw-r--r--man/flymake.texi70
-rw-r--r--man/gnus.texi2
-rw-r--r--man/trouble.texi9
-rw-r--r--src/ChangeLog138
-rw-r--r--src/dispextern.h12
-rw-r--r--src/doc.c32
-rw-r--r--src/emacs.c21
-rw-r--r--src/fileio.c31
-rw-r--r--src/image.c8
-rw-r--r--src/keyboard.c7
-rw-r--r--src/mac.c98
-rw-r--r--src/macfns.c34
-rw-r--r--src/macgui.h18
-rw-r--r--src/macmenu.c4
-rw-r--r--src/macterm.c78
-rw-r--r--src/macterm.h7
-rw-r--r--src/s/vms.h9
-rw-r--r--src/s/vms4-4.h2
-rw-r--r--src/s/vms5-5.h2
-rw-r--r--src/xdisp.c34
67 files changed, 1307 insertions, 484 deletions
diff --git a/.arch-inventory b/.arch-inventory
index 8d55bbd3512..66aae859b87 100644
--- a/.arch-inventory
+++ b/.arch-inventory
@@ -1,9 +1,6 @@
1# Generated files 1# Generated files
2precious ^(config\.status|config\.cache)$ 2precious ^(config\.status|config\.cache)$
3 3
4# Build-in-place makes these directories, so just ignore them
5precious ^(info)$
6
7# Install-in-place makes these directories, so just ignore them 4# Install-in-place makes these directories, so just ignore them
8backup ^(bin|data|lock|site-lisp)$ 5backup ^(bin|data|lock|site-lisp)$
9 6
diff --git a/ChangeLog b/ChangeLog
index 9892f121f3a..5d9259e9369 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
12005-03-04 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2
3 * configure.in: Added --enable-asserts.
4 * configure: Regenerate.
5
12005-02-09 Kim F. Storm <storm@cua.dk> 62005-02-09 Kim F. Storm <storm@cua.dk>
2 7
3 Change release version from 21.4 to 22.1 throughout. 8 Change release version from 21.4 to 22.1 throughout.
diff --git a/admin/ChangeLog b/admin/ChangeLog
index dbc48dfa696..efcd9b2d5e5 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,9 @@
12005-03-02 Miles Bader <miles@gnu.org>
2
3 * quick-install-emacs: Only use the mkdir --verbose option if the
4 script's --verbose option was specified (this avoids problems with
5 default usage on systems where mkdir doesn't support that option).
6
12005-02-15 Jason Rumney <jasonr@gnu.org> 72005-02-15 Jason Rumney <jasonr@gnu.org>
2 8
3 * nt/makedist.bat: Do not rely on non-standard behaviour of 9 * nt/makedist.bat: Do not rely on non-standard behaviour of
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index e4d0795cc67..ca6f2d94724 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -37,9 +37,6 @@ invalid pointer from string_free_list.
37 37
38** Fix up url-ldap.el. 38** Fix up url-ldap.el.
39 39
40** url/*.el has lots of `(declare (special ...))' which
41are meaningless. What's that trying to do?
42
43* BUGS 40* BUGS
44 41
45** Ange-ftp should ignore irrelevant IPv6 errors: 42** Ange-ftp should ignore irrelevant IPv6 errors:
@@ -242,7 +239,7 @@ lispref/commands.texi "Luc Teirlinck" Chong Yidong
242lispref/compile.texi "Luc Teirlinck" Chong Yidong 239lispref/compile.texi "Luc Teirlinck" Chong Yidong
243lispref/control.texi "Luc Teirlinck" Chong Yidong 240lispref/control.texi "Luc Teirlinck" Chong Yidong
244lispref/customize.texi 241lispref/customize.texi
245lispref/debugging.texi Joakim Verona <joakim@verona.se> 242lispref/debugging.texi Joakim Verona <joakim@verona.se> Lute Kamstra
246lispref/display.texi 243lispref/display.texi
247lispref/edebug.texi 244lispref/edebug.texi
248lispref/elisp.texi "Luc Teirlinck" 245lispref/elisp.texi "Luc Teirlinck"
diff --git a/admin/quick-install-emacs b/admin/quick-install-emacs
index 16cd936a783..9a9d1203d96 100755
--- a/admin/quick-install-emacs
+++ b/admin/quick-install-emacs
@@ -19,15 +19,16 @@ VERBOSE=''
19 19
20me="`basename $0`" 20me="`basename $0`"
21 21
22# Install commands (these commands are also expected to understand the 22# Install commands (if the user specifies the `--verbose' option, it is
23# GNU -v (--verbose) option) 23# passed to these commands, so that feature only works if these commands
24# implement it too)
24LINK='cp -lf' 25LINK='cp -lf'
25COPY='cp -f' 26COPY='cp -f'
26REMOVE='rm -r' 27REMOVE='rm -r'
28MKDIR='mkdir -p'
27 29
28# Used to execute commands once once we create them 30# Used to execute commands once once we create them
29EXEC='sh' 31EXEC='sh'
30MKDIR='mkdir --verbose -p'
31 32
32NAWK=/usr/bin/nawk 33NAWK=/usr/bin/nawk
33 34
@@ -157,7 +158,7 @@ DST_INFO="$prefix/info"
157maybe_mkdir () 158maybe_mkdir ()
158{ 159{
159 if ! test -d "$1"; then 160 if ! test -d "$1"; then
160 $MKDIR "$1" 2>&1 | sed "s/^mkdir:/$me:/" 1>&2 161 $MKDIR $VERBOSE "$1" 2>&1 | sed "s/^mkdir:/$me:/" 1>&2
161 fi 162 fi
162} 163}
163 164
diff --git a/configure b/configure
index fbbe63f8c2d..eaa3396e826 100755
--- a/configure
+++ b/configure
@@ -856,6 +856,7 @@ Optional Features:
856 --enable-FEATURE[=ARG] include FEATURE [ARG=yes] 856 --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
857 --enable-carbon-app[=DIR] [DIR=/Application] 857 --enable-carbon-app[=DIR] [DIR=/Application]
858 specify install directory for Emacs.app on Mac OS X 858 specify install directory for Emacs.app on Mac OS X
859 --enable-asserts compile code with asserts enabled
859 --enable-maintainer-mode enable make rules and dependencies not useful 860 --enable-maintainer-mode enable make rules and dependencies not useful
860 (and sometimes confusing) to the casual installer 861 (and sometimes confusing) to the casual installer
861 --disable-largefile omit support for large files 862 --disable-largefile omit support for large files
@@ -1520,6 +1521,14 @@ if test "${enable_carbon_app+set}" = set; then
1520 carbon_appdir_x=${enableval} 1521 carbon_appdir_x=${enableval}
1521fi; 1522fi;
1522 1523
1524# Check whether --enable-asserts or --disable-asserts was given.
1525if test "${enable_asserts+set}" = set; then
1526 enableval="$enable_asserts"
1527 USE_XASSERTS=$enableval
1528else
1529 USE_XASSERTS=no
1530fi;
1531
1523# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. 1532# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
1524if test "${enable_maintainer_mode+set}" = set; then 1533if test "${enable_maintainer_mode+set}" = set; then
1525 enableval="$enable_maintainer_mode" 1534 enableval="$enable_maintainer_mode"
@@ -21976,28 +21985,14 @@ echo " Does Emacs use -lpng? ${HAVE_PNG}"
21976echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}" 21985echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}"
21977echo 21986echo
21978 21987
21979if test "$emacs_cv_randomheap" = warn; then 21988if test $USE_XASSERTS = yes; then
21980 { echo "$as_me:$LINENO: WARNING: 21989 echo " Compiling with asserts turned on."
21981********************************************************************** 21990 CFLAGS="$CFLAGS -DXASSERTS=1"
21982 21991 CPPFLAGS="$CPPFLAGS -DXASSERTS=1"
21983Heap start address is randomized and no workaround is known. 21992 echo
21984Emacs will probably dump core when temacs is run in the build phase. 21993fi
21985Maybe exec-shield is turned on. Read about exec-shield in \`etc/PROBLEMS'
21986for further information.
21987
21988**********************************************************************
21989" >&5
21990echo "$as_me: WARNING:
21991**********************************************************************
21992 21994
21993Heap start address is randomized and no workaround is known.
21994Emacs will probably dump core when temacs is run in the build phase.
21995Maybe exec-shield is turned on. Read about exec-shield in \`etc/PROBLEMS'
21996for further information.
21997 21995
21998**********************************************************************
21999" >&2;}
22000fi
22001 21996
22002# Remove any trailing slashes in these variables. 21997# Remove any trailing slashes in these variables.
22003test "${prefix}" != NONE && 21998test "${prefix}" != NONE &&
diff --git a/configure.in b/configure.in
index 0be1a465962..a23b28f0cf8 100644
--- a/configure.in
+++ b/configure.in
@@ -125,6 +125,11 @@ AC_ARG_ENABLE(carbon-app,
125 specify install directory for Emacs.app on Mac OS X]], 125 specify install directory for Emacs.app on Mac OS X]],
126[ carbon_appdir_x=${enableval}]) 126[ carbon_appdir_x=${enableval}])
127 127
128AC_ARG_ENABLE(asserts,
129[ --enable-asserts compile code with asserts enabled],
130 USE_XASSERTS=$enableval,
131 USE_XASSERTS=no)
132
128AC_ARG_ENABLE(maintainer-mode, 133AC_ARG_ENABLE(maintainer-mode,
129[ --enable-maintainer-mode enable make rules and dependencies not useful 134[ --enable-maintainer-mode enable make rules and dependencies not useful
130 (and sometimes confusing) to the casual installer], 135 (and sometimes confusing) to the casual installer],
@@ -3096,18 +3101,14 @@ echo " Does Emacs use -lpng? ${HAVE_PNG}"
3096echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}" 3101echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}"
3097echo 3102echo
3098 3103
3099if test "$emacs_cv_randomheap" = warn; then 3104if test $USE_XASSERTS = yes; then
3100 AC_MSG_WARN([ 3105 echo " Compiling with asserts turned on."
3101********************************************************************** 3106 CFLAGS="$CFLAGS -DXASSERTS=1"
3107 CPPFLAGS="$CPPFLAGS -DXASSERTS=1"
3108 echo
3109fi
3102 3110
3103Heap start address is randomized and no workaround is known.
3104Emacs will probably dump core when temacs is run in the build phase.
3105Maybe exec-shield is turned on. Read about exec-shield in `etc/PROBLEMS'
3106for further information.
3107 3111
3108**********************************************************************
3109])
3110fi
3111 3112
3112# Remove any trailing slashes in these variables. 3113# Remove any trailing slashes in these variables.
3113[test "${prefix}" != NONE && 3114[test "${prefix}" != NONE &&
diff --git a/etc/ChangeLog b/etc/ChangeLog
index e357de8121a..3636682432a 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,11 @@
12005-03-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * NEWS: Mention Carbon build on Mac OS 9.
4
52005-03-01 David Kastrup <dak@gnu.org>
6
7 * DEBUG: Add information about `-fno-crossjumping' for GCC.
8
12005-02-14 Lute Kamstra <lute@gnu.org> 92005-02-14 Lute Kamstra <lute@gnu.org>
2 10
3 * TODO: Remove battery.el entry (DONE). 11 * TODO: Remove battery.el entry (DONE).
diff --git a/etc/DEBUG b/etc/DEBUG
index b242d1d028d..fe3bde0c3b8 100644
--- a/etc/DEBUG
+++ b/etc/DEBUG
@@ -1,5 +1,5 @@
1Debugging GNU Emacs 1Debugging GNU Emacs
2Copyright (c) 1985, 2000, 2001 Free Software Foundation, Inc. 2Copyright (c) 1985, 2000, 2001, 2005 Free Software Foundation, Inc.
3 3
4 Permission is granted to anyone to make or distribute verbatim copies 4 Permission is granted to anyone to make or distribute verbatim copies
5 of this document as received, in any medium, provided that the 5 of this document as received, in any medium, provided that the
@@ -20,6 +20,13 @@ document.]
20where the executable was made. That directory has a .gdbinit file 20where the executable was made. That directory has a .gdbinit file
21that defines various "user-defined" commands for debugging Emacs. 21that defines various "user-defined" commands for debugging Emacs.
22 22
23** When you are trying to analyze failed assertions, it will be
24essential to compile Emacs either completely without optimizations or
25at least (when using GCC) with the -fno-crossjumping option. Failure
26to do so may make the compiler recycle the same abort call for all
27assertions in a given function, rendering the stack backtrace useless
28for identifying the specific failed assertion.
29
23** It is a good idea to run Emacs under GDB (or some other suitable 30** It is a good idea to run Emacs under GDB (or some other suitable
24debugger) *all the time*. Then, when Emacs crashes, you will be able 31debugger) *all the time*. Then, when Emacs crashes, you will be able
25to debug the live process, not just a core dump. (This is especially 32to debug the live process, not just a core dump. (This is especially
diff --git a/etc/NEWS b/etc/NEWS
index f1d17ef58bf..039cf316ff4 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -89,6 +89,10 @@ See the files mac/README and mac/INSTALL for build instructions.
89--- 89---
90** Support for GNU/Linux systems on X86-64 machines was added. 90** Support for GNU/Linux systems on X86-64 machines was added.
91 91
92** Mac OS 9 port now uses the Carbon API by default. You can also
93create non-Carbon build by specifying `NonCarbon' as a target. See
94the files mac/README and mac/INSTALL for build instructions.
95
92--- 96---
93** A French translation of the `Emacs Survival Guide' is available. 97** A French translation of the `Emacs Survival Guide' is available.
94 98
@@ -99,6 +103,12 @@ types any more. Add -DUSE_LISP_UNION_TYPE if you want union types.
99 103
100* Changes in Emacs 22.1 104* Changes in Emacs 22.1
101 105
106** C-u M-x goto-line now switches to the most recent previous buffer,
107and goes to the specified line in that buffer.
108
109When goto-line starts to execute, if there's a number in the buffer at
110point then it acts as the default argument for the minibuffer.
111
102** Emacs now responds to mouse-clicks on the mode-line, header-line and 112** Emacs now responds to mouse-clicks on the mode-line, header-line and
103display margin, when run in an xterm. 113display margin, when run in an xterm.
104 114
@@ -280,6 +290,10 @@ This is like using -q --no-site-file, but in addition it also disables
280the menu-bar, the tool-bar, the scroll-bars, tool tips, the blinking 290the menu-bar, the tool-bar, the scroll-bars, tool tips, the blinking
281cursor, and the fancy startup screen. 291cursor, and the fancy startup screen.
282 292
293+++
294** New command line option -nbc or --no-blinking-cursor disables
295the blinking cursor on graphical terminals.
296
283** C-h v and C-h f commands now include a hyperlink to the C source for 297** C-h v and C-h f commands now include a hyperlink to the C source for
284variables and functions defined in C (if the C source is available). 298variables and functions defined in C (if the C source is available).
285 299
diff --git a/info/.arch-inventory b/info/.arch-inventory
new file mode 100644
index 00000000000..31f45f86485
--- /dev/null
+++ b/info/.arch-inventory
@@ -0,0 +1,19 @@
1# Only two real source files: "dir", and this file, ".arch-inventory"
2source ^(dir|\.arch-inventory)$
3
4# Everything else is generated at compile time. Unfortunately, the "backup"
5# category overrides the "source" category, so we have to have horrible
6# regexp that matches everything _except_ "dir"...
7
8# 1 or 2 characters long
9backup ^[-_.a-zA-Z0-9][-_.a-zA-Z0-9]?$
10# 4 or more characters long
11backup ^[-_.a-zA-Z0-9][-_.a-zA-Z0-9][-_.a-zA-Z0-9][-_.a-zA-Z0-9]+$
12# 3 chars long, but 1st char not "d"
13backup ^[-_.abce-zA-Z0-9][-_.a-zA-Z0-9][-_.a-zA-Z0-9]$
14# 3 chars long, but 2nd char not "i"
15backup ^[-_.a-zA-Z0-9][-_.a-hj-zA-Z0-9][-_.a-zA-Z0-9]$
16# 3 chars long, but 3rd char not "r"
17backup ^[-_.a-zA-Z0-9][-_.a-zA-Z0-9][-_.a-qs-zA-Z0-9]$
18
19# arch-tag: 60144ab9-cdc1-45b6-8193-b9683c80ec86
diff --git a/info/dir b/info/dir
new file mode 100644
index 00000000000..f0019507481
--- /dev/null
+++ b/info/dir
@@ -0,0 +1,77 @@
1-*- Text -*-
2This is the file .../info/dir, which contains the topmost node of the
3Info hierarchy. The first time you invoke Info you start off
4looking at that node, which is (dir)Top.
5
6File: dir Node: Top This is the top of the INFO tree
7
8The Info Directory
9******************
10
11 The Info Directory is the top-level menu of major Info topics.
12 Type "d" in Info to return to the Info Directory. Type "q" to exit Info.
13 Type "?" for a list of Info commands, or "h" to visit an Info tutorial.
14 Type "m" to choose a menu item--for instance,
15 "mEmacs<Return>" visits the Emacs manual.
16 In Emacs Info, you can click mouse button 2 on a menu item
17 or cross reference to follow it to its target.
18 Each menu line that starts with a * is a topic you can select with "m".
19 Every third topic has a red * to help pick the right number to type.
20
21* Menu:
22
23* Info: (info). How to use the documentation browsing system.
24
25Emacs
26* Emacs: (emacs). The extensible self-documenting text editor.
27* Emacs FAQ: (efaq). Frequently Asked Questions about Emacs.
28* Emacs Lisp Introduction: (eintr).
29 A simple introduction to Emacs Lisp programming.
30* Elisp: (elisp). The Emacs Lisp Reference Manual.
31
32* CL: (cl). Partial Common Lisp support for Emacs Lisp.
33* Dired-X: (dired-x). Dired Extra Features.
34* Ediff: (ediff). A visual interface for comparing and merging programs.
35* Emacs-Xtra: (emacs-xtra). Specialized Emacs features.
36* Org Mode: (org). Outline-based notes management and organizer.
37* PCL-CVS: (pcl-cvs). Emacs front-end to CVS.
38* Speedbar: (speedbar). File/Tag summarizing utility.
39
40* Ada mode: (ada-mode). Emacs mode for editing Ada code.
41* CC mode: (ccmode). Emacs mode for editing C, C++, Objective-C,
42 Java, Pike, and IDL code.
43* Ebrowse: (ebrowse). A C++ class browser for Emacs.
44* Flymake: (flymake). An on-the-fly syntax checker for Emacs.
45* IDLWAVE: (idlwave). Major mode and shell for IDL and WAVE/CL files.
46
47* Gnus: (gnus). The news reader Gnus.
48* Message: (message). Mail and news composition mode that goes with Gnus.
49* MH-E: (mh-e). Emacs interface to the MH mail system.
50* MIME: (emacs-mime). Emacs MIME de/composition library.
51* PGG: (pgg). Emacs interface to various PGP implementations.
52* SC: (sc). Supercite lets you cite parts of messages you're
53 replying to, in flexible ways.
54* SMTP: (smtpmail). Emacs library for sending mail via SMTP.
55* Sieve: (sieve). Managing Sieve scripts in Emacs.
56
57* Autotype: (autotype). Convenient features for text that you enter frequently
58 in Emacs.
59* Calc: (calc). Advanced desk calculator and mathematical tool.
60* Eshell: (eshell). A command shell implemented in Emacs Lisp.
61* EUDC: (eudc). An Emacs client for directory servers (LDAP, PH).
62* Forms: (forms). Emacs package for editing data bases
63 by filling in forms.
64* RefTeX: (reftex). Emacs support for LaTeX cross-references and citations.
65* SES: (ses). Simple Emacs Spreadsheet
66* Tramp: (tramp). Transparent Remote (file) Access, Multiple Protocol.
67 Edit remote files via a remote shell (rsh,
68 ssh, telnet).
69* URL: (url). URL loading package.
70* Widget: (widget). The "widget" package used by the Emacs Customization
71 facility.
72* WoMan: (woman). Browse UN*X Manual Pages "Wo (without) Man".
73
74* VIPER: (viper). The newest Emacs VI-emulation mode.
75 (also, A VI Plan for Emacs Rescue
76 or the VI PERil.)
77* VIP: (vip). An older VI-emulation for Emacs.
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 4ffa38482cf..0978e8835ca 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,7 @@
12005-03-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * make-docfile.c: Undo previous change.
4
12005-02-04 Andreas Schwab <schwab@suse.de> 52005-02-04 Andreas Schwab <schwab@suse.de>
2 6
3 * movemail.c (fatal): Accept third parameter and pass down to 7 * movemail.c (fatal): Accept third parameter and pass down to
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
index 02ddbabe7a7..e502061b759 100644
--- a/lib-src/make-docfile.c
+++ b/lib-src/make-docfile.c
@@ -43,11 +43,11 @@ Boston, MA 02111-1307, USA. */
43#undef chdir 43#undef chdir
44 44
45#include <stdio.h> 45#include <stdio.h>
46#include <stdlib.h>
47#ifdef MSDOS 46#ifdef MSDOS
48#include <fcntl.h> 47#include <fcntl.h>
49#endif /* MSDOS */ 48#endif /* MSDOS */
50#ifdef WINDOWSNT 49#ifdef WINDOWSNT
50#include <stdlib.h>
51#include <fcntl.h> 51#include <fcntl.h>
52#include <direct.h> 52#include <direct.h>
53#endif /* WINDOWSNT */ 53#endif /* WINDOWSNT */
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 7c3842ea3a5..d65a446a376 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,7 +1,147 @@
12005-03-05 Luc Teirlinck <teirllm@auburn.edu>
2
3 * simple.el (goto-line): Remove unbalanced final parenthesis.
4
52005-03-05 Richard M. Stallman <rms@gnu.org>
6
7 * simple.el (goto-line): Use a number at point as the default.
8 With C-u as arg, switch buffers.
9
102005-03-05 Juri Linkov <juri@jurta.org>
11
12 * frame.el (blink-cursor-mode): Replace `emacs-quick-startup'
13 with `no-blinking-cursor'.
14
15 * startup.el (no-blinking-cursor): New defvar.
16 (command-line): Add `--no-blinking-cursor' to longopts.
17 Set `no-blinking-cursor' to t for command line arguments
18 -Q, -nbc, --no-blinking-cursor. Replace `emacs-quick-startup'
19 with `no-blinking-cursor' in the condition for calling
20 `blink-cursor-mode'.
21
222005-03-04 Luc Teirlinck <teirllm@auburn.edu>
23
24 * menu-bar.el (menu-bar-make-mm-toggle): Doc fix.
25 (menu-bar-options-save): Add blink-cursor-mode.
26 (menu-bar-options-menu): Add blink-cursor-mode.
27
282005-03-04 Ulf Jasper <ulf.jasper@web.de>
29
30 * calendar/icalendar.el (icalendar-version): Increase to 0.11.
31 (icalendar-export-file, icalendar-export-region)
32 (icalendar-import-file, icalendar-import-buffer): Add autoload
33 cookies.
34 (icalendar--convert-ical-to-diary): Fix problem with DURATION.
35
362005-03-04 Lute Kamstra <lute@gnu.org>
37
38 * emacs-lisp/debug.el (debugger-step-after-exit): Make it a
39 defvar.
40 (debug-function-list): Ditto.
41
422005-03-04 Robert J. Chassell <bob@rattlesnake.com>
43
44 * textmodes/texinfmt.el (texinfo-append-refill):
45 Redefine the types of line to which @refill
46 is not appended by replacing a search for `@refill\\|@bye' with
47 `@refill\\|^[ \t]*@'. The intent is to solve both the `@end
48 itemize@refill' bug and the unfilled long lines bug.
49 (texinfmt-version): update number and date.
50
512005-03-04 Reiner Steib <Reiner.Steib@gmx.de>
52
53 * international/code-pages.el (windows-1250, windows-125[2-8])
54 (iso-8859-10, -13, -16, georgian-ps): Add autoload cookies.
55
562005-03-03 Stefan Monnier <monnier@iro.umontreal.ca>
57
58 * frame.el (blink-cursor-mode): `emacs-quick-startup' may not be
59 bound yet.
60
612005-03-02 Romain Francoise <romain@orebokech.com>
62
63 * ibuf-ext.el (ibuffer-filter-disable): Move back to the current
64 buffer after removing limits.
65 (ibuffer-pop-filter): Ditto.
66 Update copyright.
67
682005-03-02 Miles Bader <miles@gnu.org>
69
70 * button.el (make-text-button): If the user doesn't specify a
71 type, use the default. Rewrite to use `add-text-properties' and
72 plist functions.
73
742005-03-01 Lute Kamstra <lute@gnu.org>
75
76 * emacs-lisp/debug.el (inhibit-debug-on-entry): Add docstring.
77 (debugger-jumping-flag): New var.
78 (debug-entry-code): Use it.
79 (debugger-jump): Use debugger-jumping-flag and add
80 debugger-reenable to post-command-hook.
81 (debugger-reenable): Use debugger-jumping-flag and remove itself
82 from post-command-hook.
83 (debug, debug-on-entry, cancel-debug-on-entry): Remove call to
84 debugger-reenable.
85
862005-03-01 Robert J. Chassell <bob@rattlesnake.com>
87
88 * textmodes/texinfmt.el (texinfo-no-refill-regexp): Comment out
89 inclusion of "itemize\\|", which may be unnecessary, is certainly
90 inelegant, and stops refilling in itemize lists when formatting
91 Japanese Texinfo files to Info.
92 Update copyright to 2005.
93
942005-03-01 Nick Roberts <nickrob@snap.net.nz>
95
96 * progmodes/gdb-ui.el (gdb-get-location): Use a warning instead
97 of an error if GDB can't find the source file.
98
992005-03-01 Glenn Morris <gmorris@ast.cam.ac.uk>
100
101 * calendar/calendar.el (redraw-calendar): Work from any buffer,
102 not just the calendar.
103
104 * calendar/diary-lib.el (mark-diary-entries): Remove any old marks
105 first.
106 (diary-redraw-calendar): New function.
107 (make-diary-entry): Add diary-redraw-calendar to local
108 write-contents-functions. Turn off selective display before
109 inserting in diary.
110
1112005-03-01 Kim F. Storm <storm@cua.dk>
112
113 * emacs-lisp/copyright.el (copyright-fix-years): New command.
114
1152005-03-01 Lute Kamstra <lute@gnu.org>
116
117 * emacs-lisp/debug.el (debug-on-entry-1): Reimplement to make sure
118 that debug-entry-code can be safely removed from a function while
119 this code is being evaluated. Revert the 2005-02-27 change as the
120 new implementation no longer requires it. Make sure that a
121 function body containing just a string is not mistaken for a
122 docstring.
123 (debug): Skip one more frame in case of debug on entry.
124 (debugger-setup-buffer): Delete one more frame line in case of
125 debug on entry.
126 (debugger-frame-number): Update to use the new text introduced by
127 the 1999-11-03 change. Skip one more frame in case of debug on entry.
128
1292005-02-28 Kim F. Storm <storm@cua.dk>
130
131 * double.el (double-translate-key): Call force-window-update after
132 read-event to avoid crash in redisplay.
133
1342005-02-28 Stefan Monnier <monnier@iro.umontreal.ca>
135
136 * emacs-lisp/debug.el (inhibit-debug-on-entry): New var.
137 (debug): Use it. Move the inhibit-trace earlier.
138 (debug-entry-code): New const.
139 (debug-on-entry-1): Use it.
140
12005-02-28 Chong Yidong" <cyd@stupidchicken.com> (tiny change) 1412005-02-28 Chong Yidong" <cyd@stupidchicken.com> (tiny change)
2 142
3 * international/utf-16.el (ccl-encode-mule-utf-16le): Fix 143 * international/utf-16.el (ccl-encode-mule-utf-16le):
4 BUFFER_MAGNIFICATION to 2. 144 Fix BUFFER_MAGNIFICATION to 2.
5 (ccl-encode-mule-utf-16be): Likewise. 145 (ccl-encode-mule-utf-16be): Likewise.
6 146
72005-02-28 Kenichi Handa <handa@m17n.org> 1472005-02-28 Kenichi Handa <handa@m17n.org>
diff --git a/lisp/button.el b/lisp/button.el
index 5f9b5094e6c..78008f06db2 100644
--- a/lisp/button.el
+++ b/lisp/button.el
@@ -1,6 +1,6 @@
1;;; button.el --- clickable buttons 1;;; button.el --- clickable buttons
2;; 2;;
3;; Copyright (C) 2001 Free Software Foundation, Inc. 3;; Copyright (C) 2001, 2005 Free Software Foundation, Inc.
4;; 4;;
5;; Author: Miles Bader <miles@gnu.org> 5;; Author: Miles Bader <miles@gnu.org>
6;; Keywords: extensions 6;; Keywords: extensions
@@ -298,24 +298,23 @@ large numbers of buttons can also be somewhat faster using
298`make-text-button'. 298`make-text-button'.
299 299
300Also see `insert-text-button'." 300Also see `insert-text-button'."
301 (let (prop val) 301 (let ((type-entry
302 (while properties 302 (or (plist-member properties 'type)
303 (setq prop (pop properties)) 303 (plist-member properties :type))))
304 (setq val (pop properties)) 304 ;; Disallow setting the `category' property directly.
305 ;; Note that all the following code is basically equivalent to 305 (when (plist-get properties 'category)
306 ;; `button-put', but we can do it much more efficiently since we 306 (error "Button `category' property may not be set directly"))
307 ;; already have BEG and END. 307 (if (null type-entry)
308 (cond ((memq prop '(type :type)) 308 ;; The user didn't specify a `type' property, use the default.
309 ;; We translate a `type' property into a `category' 309 (setq properties (cons 'category (cons 'default-button properties)))
310 ;; property, since that's what's actually used by 310 ;; The user did specify a `type' property. Translate it into a
311 ;; text-properties for inheritance. 311 ;; `category' property, which is what's actually used by
312 (setq prop 'category) 312 ;; text-properties for inheritance.
313 (setq val (button-category-symbol val))) 313 (setcar type-entry 'category)
314 ((eq prop 'category) 314 (setcar (cdr type-entry)
315 ;; Disallow setting the `category' property directly. 315 (button-category-symbol (car (cdr type-entry))))))
316 (error "Button `category' property may not be set directly"))) 316 ;; Now add all the text properties at once
317 ;; Add the property. 317 (add-text-properties beg end properties)
318 (put-text-property beg end prop val)))
319 ;; Return something that can be used to get at the button. 318 ;; Return something that can be used to get at the button.
320 beg) 319 beg)
321 320
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
index 291452db080..66ee1875a23 100644
--- a/lisp/calendar/calendar.el
+++ b/lisp/calendar/calendar.el
@@ -2169,11 +2169,13 @@ the inserted text. Value is always t."
2169 t) 2169 t)
2170 2170
2171(defun redraw-calendar () 2171(defun redraw-calendar ()
2172 "Redraw the calendar display." 2172 "Redraw the calendar display, if `calendar-buffer' is live."
2173 (interactive) 2173 (interactive)
2174 (let ((cursor-date (calendar-cursor-to-nearest-date))) 2174 (if (get-buffer calendar-buffer)
2175 (generate-calendar-window displayed-month displayed-year) 2175 (with-current-buffer calendar-buffer
2176 (calendar-cursor-to-visible-date cursor-date))) 2176 (let ((cursor-date (calendar-cursor-to-nearest-date)))
2177 (generate-calendar-window displayed-month displayed-year)
2178 (calendar-cursor-to-visible-date cursor-date)))))
2177 2179
2178(defcustom calendar-debug-sexp nil 2180(defcustom calendar-debug-sexp nil
2179 "*Turn debugging on when evaluating a sexp in the diary or holiday list." 2181 "*Turn debugging on when evaluating a sexp in the diary or holiday list."
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
index 5fbae2500d7..97dc1dd0a71 100644
--- a/lisp/calendar/diary-lib.el
+++ b/lisp/calendar/diary-lib.el
@@ -1,6 +1,6 @@
1;;; diary-lib.el --- diary functions 1;;; diary-lib.el --- diary functions
2 2
3;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1995, 2003, 2004 3;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1995, 2003, 2004, 2005
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
@@ -841,6 +841,10 @@ Each entry in the diary file visible in the calendar window is marked.
841After the entries are marked, the hooks `nongregorian-diary-marking-hook' and 841After the entries are marked, the hooks `nongregorian-diary-marking-hook' and
842`mark-diary-entries-hook' are run." 842`mark-diary-entries-hook' are run."
843 (interactive) 843 (interactive)
844 ;; To remove any deleted diary entries.
845 (when mark-diary-entries-in-calendar
846 (setq mark-diary-entries-in-calendar nil)
847 (redraw-calendar))
844 (let ((marking-diary-entries t) 848 (let ((marking-diary-entries t)
845 file-glob-attrs marks) 849 file-glob-attrs marks)
846 (save-excursion 850 (save-excursion
@@ -1647,11 +1651,26 @@ Do nothing if DATE or STRING is nil."
1647 (append diary-entries-list 1651 (append diary-entries-list
1648 (list (list date string specifier marker globcolor)))))) 1652 (list (list date string specifier marker globcolor))))))
1649 1653
1654(defun diary-redraw-calendar ()
1655 "If `calendar-buffer' is live and diary entries are marked, redraw it."
1656 (and mark-diary-entries-in-calendar
1657 (redraw-calendar))
1658 ;; Return value suitable for `write-contents-functions'.
1659 nil)
1660
1650(defun make-diary-entry (string &optional nonmarking file) 1661(defun make-diary-entry (string &optional nonmarking file)
1651 "Insert a diary entry STRING which may be NONMARKING in FILE. 1662 "Insert a diary entry STRING which may be NONMARKING in FILE.
1652If omitted, NONMARKING defaults to nil and FILE defaults to `diary-file'." 1663If omitted, NONMARKING defaults to nil and FILE defaults to
1664`diary-file'. Adds `diary-redraw-calendar' to
1665`write-contents-functions' for FILE, so that the calendar will be
1666redrawn with the new entry marked, if necessary."
1653 (let ((pop-up-frames (window-dedicated-p (selected-window)))) 1667 (let ((pop-up-frames (window-dedicated-p (selected-window))))
1654 (find-file-other-window (substitute-in-file-name (or file diary-file)))) 1668 (find-file-other-window (substitute-in-file-name (or file diary-file))))
1669 (add-hook 'write-contents-functions 'diary-redraw-calendar nil t)
1670 (when selective-display
1671 (subst-char-in-region (point-min) (point-max) ?\^M ?\n t)
1672 (setq selective-display nil)
1673 (kill-local-variable 'mode-line-format))
1655 (widen) 1674 (widen)
1656 (goto-char (point-max)) 1675 (goto-char (point-max))
1657 (when (let ((case-fold-search t)) 1676 (when (let ((case-fold-search t))
diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
index fe127be3990..320a6aa0f72 100644
--- a/lisp/calendar/icalendar.el
+++ b/lisp/calendar/icalendar.el
@@ -90,7 +90,7 @@
90 90
91;;; Code: 91;;; Code:
92 92
93(defconst icalendar-version 0.10 93(defconst icalendar-version 0.11
94 "Version number of icalendar.el.") 94 "Version number of icalendar.el.")
95 95
96;; ====================================================================== 96;; ======================================================================
@@ -415,8 +415,10 @@ FIXME: multiple comma-separated values should be allowed!"
415 "Return ISODURATIONSTRING in format like `decode-time'. 415 "Return ISODURATIONSTRING in format like `decode-time'.
416Converts from ISO-8601 to Emacs representation. If ISODURATIONSTRING 416Converts from ISO-8601 to Emacs representation. If ISODURATIONSTRING
417specifies UTC time (trailing letter Z) the decoded time is given in 417specifies UTC time (trailing letter Z) the decoded time is given in
418the local time zone! FIXME: TZID-attributes are ignored....! FIXME: 418the local time zone!
419multiple comma-separated values should be allowed!" 419
420FIXME: TZID-attributes are ignored....!
421FIXME: multiple comma-separated values should be allowed!"
420 (if isodurationstring 422 (if isodurationstring
421 (save-match-data 423 (save-match-data
422 (string-match 424 (string-match
@@ -672,7 +674,7 @@ would be \"pm\"."
672;; Export -- convert emacs-diary to icalendar 674;; Export -- convert emacs-diary to icalendar
673;; ====================================================================== 675;; ======================================================================
674 676
675;; User function 677;;;###autoload
676(defun icalendar-export-file (diary-filename ical-filename) 678(defun icalendar-export-file (diary-filename ical-filename)
677 "Export diary file to iCalendar format. 679 "Export diary file to iCalendar format.
678All diary entries in the file DIARY-FILENAME are converted to iCalendar 680All diary entries in the file DIARY-FILENAME are converted to iCalendar
@@ -686,7 +688,7 @@ Finto iCalendar file: ")
686(defalias 'icalendar-convert-diary-to-ical 'icalendar-export-file) 688(defalias 'icalendar-convert-diary-to-ical 'icalendar-export-file)
687(make-obsolete 'icalendar-convert-diary-to-ical 'icalendar-export-file) 689(make-obsolete 'icalendar-convert-diary-to-ical 'icalendar-export-file)
688 690
689;; User function 691;;;###autoload
690(defun icalendar-export-region (min max ical-filename) 692(defun icalendar-export-region (min max ical-filename)
691 "Export region in diary file to iCalendar format. 693 "Export region in diary file to iCalendar format.
692All diary entries in the region from MIN to MAX in the current buffer are 694All diary entries in the region from MIN to MAX in the current buffer are
@@ -1112,7 +1114,7 @@ FExport diary data into iCalendar file: ")
1112;; Import -- convert icalendar to emacs-diary 1114;; Import -- convert icalendar to emacs-diary
1113;; ====================================================================== 1115;; ======================================================================
1114 1116
1115;; User function 1117;;;###autoload
1116(defun icalendar-import-file (ical-filename diary-filename 1118(defun icalendar-import-file (ical-filename diary-filename
1117 &optional non-marking) 1119 &optional non-marking)
1118 "Import a iCalendar file and append to a diary file. 1120 "Import a iCalendar file and append to a diary file.
@@ -1129,7 +1131,7 @@ p")
1129 (set-buffer (find-file ical-filename)) 1131 (set-buffer (find-file ical-filename))
1130 (icalendar-import-buffer diary-filename t non-marking))) 1132 (icalendar-import-buffer diary-filename t non-marking)))
1131 1133
1132;; User function 1134;;;###autoload
1133(defun icalendar-import-buffer (&optional diary-file do-not-ask 1135(defun icalendar-import-buffer (&optional diary-file do-not-ask
1134 non-marking) 1136 non-marking)
1135 "Extract iCalendar events from current buffer. 1137 "Extract iCalendar events from current buffer.
@@ -1423,10 +1425,7 @@ written into the buffer ` *icalendar-errors*'."
1423 ((not (string= start-d end-d)) 1425 ((not (string= start-d end-d))
1424 (icalendar--dmsg "non-recurring event") 1426 (icalendar--dmsg "non-recurring event")
1425 (let ((ds (icalendar--datetime-to-diary-date dtstart)) 1427 (let ((ds (icalendar--datetime-to-diary-date dtstart))
1426 (de (icalendar--datetime-to-diary-date 1428 (de (icalendar--datetime-to-diary-date dtend)))
1427 (icalendar--decode-isodatetime
1428 (icalendar--get-event-property e 'DTEND)
1429 -1))))
1430 (setq diary-string 1429 (setq diary-string
1431 (format "%%%%(and (diary-block %s %s))" 1430 (format "%%%%(and (diary-block %s %s))"
1432 ds de))) 1431 ds de)))
diff --git a/lisp/double.el b/lisp/double.el
index fc931992bd1..c9c27203344 100644
--- a/lisp/double.el
+++ b/lisp/double.el
@@ -116,6 +116,7 @@ but not `C-u X' or `ESC X' since the X is not the prefix key."
116 ;; End of generated event. See if he will repeat it... 116 ;; End of generated event. See if he will repeat it...
117 (let ((new (double-read-event prompt)) 117 (let ((new (double-read-event prompt))
118 (entry (assoc double-last-event double-map))) 118 (entry (assoc double-last-event double-map)))
119 (force-window-update (selected-window))
119 (if (eq new double-last-event) 120 (if (eq new double-last-event)
120 (progn 121 (progn
121 (setq unread-command-events 122 (setq unread-command-events
diff --git a/lisp/emacs-lisp/copyright.el b/lisp/emacs-lisp/copyright.el
index 3d160f54606..0be9d139fd2 100644
--- a/lisp/emacs-lisp/copyright.el
+++ b/lisp/emacs-lisp/copyright.el
@@ -1,6 +1,6 @@
1;;; copyright.el --- update the copyright notice in current buffer 1;;; copyright.el --- update the copyright notice in current buffer
2 2
3;; Copyright (C) 1991, 92, 93, 94, 95, 1998, 2001, 2003, 2004 3;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1998, 2001, 2003, 2004, 2005
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Daniel Pfeiffer <occitan@esperanto.org> 6;; Author: Daniel Pfeiffer <occitan@esperanto.org>
@@ -178,6 +178,41 @@ version \\([0-9]+\\), or (at"
178 178
179 179
180;;;###autoload 180;;;###autoload
181(defun copyright-fix-years ()
182 "Convert 2 digit years to 4 digit years.
183Uses heuristic: year >= 50 means 19xx, < 50 means 20xx."
184 (interactive)
185 (widen)
186 (goto-char (point-min))
187 (if (re-search-forward copyright-regexp (+ (point) copyright-limit) t)
188 (let ((s (match-beginning 2)) (e (make-marker))
189 last)
190 (set-marker e (1+ (match-end 2)))
191 (goto-char s)
192 (while (and (< (point) (marker-position e))
193 (re-search-forward "\\([^0-9]\\)\\([0-9]+\\)[^0-9]"
194 (marker-position e) t))
195 (let ((p (point))
196 (sep (match-string 1))
197 (year (string-to-number (match-string 2))))
198 (goto-char (1+ (match-beginning 0)))
199 (unless (= (char-syntax (string-to-char sep)) ?\s)
200 (insert " "))
201 (if (< year 100)
202 (insert (if (>= year 50) "19" "20")))
203 (goto-char p)
204 (setq last p)))
205 (when last
206 (goto-char last)
207 (let ((fill-prefix " "))
208 (fill-region s last))
209 )
210 (set-marker e nil)
211 (copyright-update nil t))
212 (message "No copyright message")
213 (goto-char (point-min))))
214
215;;;###autoload
181(define-skeleton copyright 216(define-skeleton copyright
182 "Insert a copyright by $ORGANIZATION notice at cursor." 217 "Insert a copyright by $ORGANIZATION notice at cursor."
183 "Company: " 218 "Company: "
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el
index 58fb3b4a1b8..ab197e8e119 100644
--- a/lisp/emacs-lisp/debug.el
+++ b/lisp/emacs-lisp/debug.el
@@ -25,7 +25,7 @@
25 25
26;;; Commentary: 26;;; Commentary:
27 27
28;; This is a major mode documented in the Emacs manual. 28;; This is a major mode documented in the Emacs Lisp manual.
29 29
30;;; Code: 30;;; Code:
31 31
@@ -51,15 +51,11 @@ the middle is discarded, and just the beginning and end are displayed."
51 :group 'debugger 51 :group 'debugger
52 :version "21.1") 52 :version "21.1")
53 53
54(defcustom debug-function-list nil 54(defvar debug-function-list nil
55 "List of functions currently set for debug on entry." 55 "List of functions currently set for debug on entry.")
56 :type '(repeat function)
57 :group 'debugger)
58 56
59(defcustom debugger-step-after-exit nil 57(defvar debugger-step-after-exit nil
60 "Non-nil means \"single-step\" after the debugger exits." 58 "Non-nil means \"single-step\" after the debugger exits.")
61 :type 'boolean
62 :group 'debugger)
63 59
64(defvar debugger-value nil 60(defvar debugger-value nil
65 "This is the value for the debugger to return, when it returns.") 61 "This is the value for the debugger to return, when it returns.")
@@ -93,6 +89,21 @@ This is to optimize `debugger-make-xrefs'.")
93(defvar debugger-outer-inhibit-redisplay) 89(defvar debugger-outer-inhibit-redisplay)
94(defvar debugger-outer-cursor-in-echo-area) 90(defvar debugger-outer-cursor-in-echo-area)
95 91
92(defvar inhibit-debug-on-entry nil
93 "Non-nil means that debug-on-entry is disabled.")
94
95(defvar debugger-jumping-flag nil
96 "Non-nil means that debug-on-entry is disabled.
97This variable is used by `debugger-jump' and `debugger-reenable'.")
98
99;; When you change this, you may also need to change the number of
100;; frames that the debugger skips.
101(defconst debug-entry-code
102 '(if (or inhibit-debug-on-entry debugger-jumping-flag)
103 nil
104 (debug 'debug))
105 "Code added to a function to cause it to call the debugger upon entry.")
106
96;;;###autoload 107;;;###autoload
97(setq debugger 'debug) 108(setq debugger 'debug)
98;;;###autoload 109;;;###autoload
@@ -147,6 +158,8 @@ first will be printed into the backtrace buffer."
147 (setq overriding-terminal-local-map nil) 158 (setq overriding-terminal-local-map nil)
148 ;; Don't let these magic variables affect the debugger itself. 159 ;; Don't let these magic variables affect the debugger itself.
149 (let ((last-command nil) this-command track-mouse 160 (let ((last-command nil) this-command track-mouse
161 (inhibit-trace t)
162 (inhibit-debug-on-entry t)
150 unread-command-events 163 unread-command-events
151 unread-post-input-method-events 164 unread-post-input-method-events
152 last-input-event last-command-event last-nonmenu-event 165 last-input-event last-command-event last-nonmenu-event
@@ -185,12 +198,11 @@ first will be printed into the backtrace buffer."
185 (message "%s" (buffer-string)) 198 (message "%s" (buffer-string))
186 (kill-emacs)) 199 (kill-emacs))
187 (if (eq (car debugger-args) 'debug) 200 (if (eq (car debugger-args) 'debug)
188 ;; Skip the frames for backtrace-debug, byte-code, and debug. 201 ;; Skip the frames for backtrace-debug, byte-code,
189 (backtrace-debug 3 t)) 202 ;; and debug-entry-code.
190 (debugger-reenable) 203 (backtrace-debug 4 t))
191 (message "") 204 (message "")
192 (let ((inhibit-trace t) 205 (let ((standard-output nil)
193 (standard-output nil)
194 (buffer-read-only t)) 206 (buffer-read-only t))
195 (message "") 207 (message "")
196 ;; Make sure we unbind buffer-read-only in the right buffer. 208 ;; Make sure we unbind buffer-read-only in the right buffer.
@@ -250,7 +262,9 @@ That buffer should be current already."
250 (delete-region (point) 262 (delete-region (point)
251 (progn 263 (progn
252 (search-forward "\n debug(") 264 (search-forward "\n debug(")
253 (forward-line 1) 265 (forward-line (if (eq (car debugger-args) 'debug)
266 2 ; Remove debug-entry-code frame.
267 1))
254 (point))) 268 (point)))
255 (insert "Debugger entered") 269 (insert "Debugger entered")
256 ;; lambda is for debug-on-call when a function call is next. 270 ;; lambda is for debug-on-call when a function call is next.
@@ -395,25 +409,17 @@ will be used, such as in a debug on exit from a frame."
395 "Continue to exit from this frame, with all debug-on-entry suspended." 409 "Continue to exit from this frame, with all debug-on-entry suspended."
396 (interactive) 410 (interactive)
397 (debugger-frame) 411 (debugger-frame)
398 ;; Turn off all debug-on-entry functions 412 (setq debugger-jumping-flag t)
399 ;; but leave them in the list. 413 (add-hook 'post-command-hook 'debugger-reenable)
400 (let ((list debug-function-list))
401 (while list
402 (fset (car list)
403 (debug-on-entry-1 (car list) (symbol-function (car list)) nil))
404 (setq list (cdr list))))
405 (message "Continuing through this frame") 414 (message "Continuing through this frame")
406 (exit-recursive-edit)) 415 (exit-recursive-edit))
407 416
408(defun debugger-reenable () 417(defun debugger-reenable ()
409 "Turn all debug-on-entry functions back on." 418 "Turn all debug-on-entry functions back on.
410 (let ((list debug-function-list)) 419This function is put on `post-command-hook' by `debugger-jump' and
411 (while list 420removes itself from that hook."
412 (or (consp (symbol-function (car list))) 421 (setq debugger-jumping-flag nil)
413 (debug-convert-byte-code (car list))) 422 (remove-hook 'post-command-hook 'debugger-reenable))
414 (fset (car list)
415 (debug-on-entry-1 (car list) (symbol-function (car list)) t))
416 (setq list (cdr list)))))
417 423
418(defun debugger-frame-number () 424(defun debugger-frame-number ()
419 "Return number of frames in backtrace before the one point points at." 425 "Return number of frames in backtrace before the one point points at."
@@ -423,14 +429,13 @@ will be used, such as in a debug on exit from a frame."
423 (count 0)) 429 (count 0))
424 (while (not (eq (cadr (backtrace-frame count)) 'debug)) 430 (while (not (eq (cadr (backtrace-frame count)) 'debug))
425 (setq count (1+ count))) 431 (setq count (1+ count)))
432 ;; Skip debug-entry-code frame.
433 (when (member '(debug (quote debug)) (cdr (backtrace-frame (1+ count))))
434 (setq count (1+ count)))
426 (goto-char (point-min)) 435 (goto-char (point-min))
427 (if (or (equal (buffer-substring (point) (+ (point) 6)) 436 (when (looking-at "Debugger entered--\\(Lisp error\\|returning value\\):")
428 "Signal") 437 (goto-char (match-end 0))
429 (equal (buffer-substring (point) (+ (point) 6)) 438 (forward-sexp 1))
430 "Return"))
431 (progn
432 (search-forward ":")
433 (forward-sexp 1)))
434 (forward-line 1) 439 (forward-line 1)
435 (while (progn 440 (while (progn
436 (forward-char 2) 441 (forward-char 2)
@@ -476,8 +481,6 @@ Applies to the frame whose line point is on in the backtrace."
476 (insert ? ))) 481 (insert ? )))
477 (beginning-of-line)) 482 (beginning-of-line))
478 483
479
480
481(put 'debugger-env-macro 'lisp-indent-function 0) 484(put 'debugger-env-macro 'lisp-indent-function 0)
482(defmacro debugger-env-macro (&rest body) 485(defmacro debugger-env-macro (&rest body)
483 "Run BODY in original environment." 486 "Run BODY in original environment."
@@ -626,7 +629,6 @@ which must be written in Lisp, not predefined.
626Use \\[cancel-debug-on-entry] to cancel the effect of this command. 629Use \\[cancel-debug-on-entry] to cancel the effect of this command.
627Redefining FUNCTION also cancels it." 630Redefining FUNCTION also cancels it."
628 (interactive "aDebug on entry (to function): ") 631 (interactive "aDebug on entry (to function): ")
629 (debugger-reenable)
630 ;; Handle a function that has been aliased to some other function. 632 ;; Handle a function that has been aliased to some other function.
631 (if (and (subrp (symbol-function function)) 633 (if (and (subrp (symbol-function function))
632 (eq (cdr (subr-arity (symbol-function function))) 'unevalled)) 634 (eq (cdr (subr-arity (symbol-function function))) 'unevalled))
@@ -657,7 +659,6 @@ If argument is nil or an empty string, cancel for all functions."
657 (mapcar 'symbol-name debug-function-list) 659 (mapcar 'symbol-name debug-function-list)
658 nil t nil))) 660 nil t nil)))
659 (if name (intern name))))) 661 (if name (intern name)))))
660 (debugger-reenable)
661 (if (and function (not (string= function ""))) 662 (if (and function (not (string= function "")))
662 (progn 663 (progn
663 (let ((f (debug-on-entry-1 function (symbol-function function) nil))) 664 (let ((f (debug-on-entry-1 function (symbol-function function) nil)))
@@ -698,22 +699,18 @@ If argument is nil or an empty string, cancel for all functions."
698 (debug-on-entry-1 function (cdr defn) flag) 699 (debug-on-entry-1 function (cdr defn) flag)
699 (or (eq (car defn) 'lambda) 700 (or (eq (car defn) 'lambda)
700 (error "%s not user-defined Lisp function" function)) 701 (error "%s not user-defined Lisp function" function))
701 (let ((tail (cddr defn))) 702 (let ((tail (cdr defn)))
702 ;; Skip the docstring. 703 ;; Skip the docstring.
703 (if (stringp (car tail)) (setq tail (cdr tail))) 704 (when (and (stringp (cadr tail)) (cddr tail))
705 (setq tail (cdr tail)))
704 ;; Skip the interactive form. 706 ;; Skip the interactive form.
705 (if (eq 'interactive (car-safe (car tail))) (setq tail (cdr tail))) 707 (when (eq 'interactive (car-safe (cadr tail)))
706 (unless (eq flag (equal (car tail) '(debug 'debug))) 708 (setq tail (cdr tail)))
707 ;; If the function has no body, add nil as a body element. 709 (unless (eq flag (equal (cadr tail) debug-entry-code))
708 (when (null tail)
709 (setq tail (list nil))
710 (nconc defn tail))
711 ;; Add/remove debug statement as needed. 710 ;; Add/remove debug statement as needed.
712 (if (not flag) 711 (if flag
713 (progn (setcar tail (cadr tail)) 712 (setcdr tail (cons debug-entry-code (cdr tail)))
714 (setcdr tail (cddr tail))) 713 (setcdr tail (cddr tail))))
715 (setcdr tail (cons (car tail) (cdr tail)))
716 (setcar tail '(debug 'debug))))
717 defn)))) 714 defn))))
718 715
719(defun debugger-list-functions () 716(defun debugger-list-functions ()
diff --git a/lisp/frame.el b/lisp/frame.el
index 0fa10babf12..25cc5aa38c8 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -1341,7 +1341,7 @@ Note that this command is effective only when Emacs
1341displays through a window system, because then Emacs does its own 1341displays through a window system, because then Emacs does its own
1342cursor display. On a text-only terminal, this is not implemented." 1342cursor display. On a text-only terminal, this is not implemented."
1343 :init-value (not (or noninteractive 1343 :init-value (not (or noninteractive
1344 emacs-quick-startup 1344 (if (boundp 'no-blinking-cursor) no-blinking-cursor)
1345 (eq system-type 'ms-dos) 1345 (eq system-type 'ms-dos)
1346 (not (memq initial-window-system '(x w32))))) 1346 (not (memq initial-window-system '(x w32)))))
1347 :group 'cursor 1347 :group 'cursor
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 7ade8548764..76d4cb419cb 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,11 +1,37 @@
12005-03-04 Reiner Steib <Reiner.Steib@gmx.de>
2
3 * message.el: Don't autoload former message-utils variables.
4 (message-strip-subject-trailing-was): Changed doc string.
5
6 * nnweb.el: Fixes for `gnus-group-make-web-group'.
7 (nnweb-type-definition): Don't add "hl=en" in `address'. Added
8 `base'.
9 (nnweb-google-search): Add "hl=en" here.
10 (nnweb-google-parse-1, nnweb-google-create-mapping): Don't
11 hardcode URL.
12
132005-03-03 Reiner Steib <Reiner.Steib@gmx.de>
14
15 * message.el (message-get-reply-headers, message-followup):
16 Mention related variables `message-use-followup-to' and
17 `message-use-mail-followup-to', in the information buffer.
18
19 * nnweb.el (nnweb-type-definition): Use groups.google.de instead
20 of broken groups(-beta).google.com.
21
222005-03-01 Stefan Monnier <monnier@iro.umontreal.ca>
23
24 * gnus-sum.el (gnus-summary-exit): Undo last change and fix it in
25 a more conservative way.
26
12005-02-27 Arne J,Ax(Brgensen <arne@arnested.dk> 272005-02-27 Arne J,Ax(Brgensen <arne@arnested.dk>
2 28
3 * mm-decode.el (mm-dissect-buffer): Pass the from field on to 29 * mm-decode.el (mm-dissect-buffer): Pass the from field on to
4 `mm-dissect-multipart' and receive the from field as an (optional) 30 `mm-dissect-multipart' and receive the from field as an (optional)
5 argument from `mm-dissect-multipart'. 31 argument from `mm-dissect-multipart'.
6 (mm-dissect-multipart): Receive the from field as an argument and 32 (mm-dissect-multipart): Receive the from field as an argument and
7 pass it on when we call `mm-dissect-buffer' on MIME parts. Fixes 33 pass it on when we call `mm-dissect-buffer' on MIME parts.
8 verification/decryption of signed/encrypted MIME parts. 34 Fixes verification/decryption of signed/encrypted MIME parts.
9 35
102005-02-26 Stefan Monnier <monnier@iro.umontreal.ca> 362005-02-26 Stefan Monnier <monnier@iro.umontreal.ca>
11 37
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 73ac963bd3b..ea8f7e063fe 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -6680,11 +6680,13 @@ If FORCE (the prefix), also save the .newsrc file(s)."
6680 (set-buffer gnus-group-buffer) 6680 (set-buffer gnus-group-buffer)
6681 (if quit-config 6681 (if quit-config
6682 (gnus-handle-ephemeral-exit quit-config) 6682 (gnus-handle-ephemeral-exit quit-config)
6683 (goto-char group-point)
6684 ;; If gnus-group-buffer is already displayed, make sure we also move
6685 ;; the cursor in the window that displays it.
6686 (let ((win (get-buffer-window (current-buffer) 0)))
6687 (if win (set-window-point win (point))))
6683 (unless leave-hidden 6688 (unless leave-hidden
6684 (gnus-configure-windows 'group 'force)) 6689 (gnus-configure-windows 'group 'force)))
6685 ;; Move point after calling gnus-configure-windows to make sure it
6686 ;; moves the window's point as well.
6687 (goto-char group-point))
6688 ;; Clear the current group name. 6690 ;; Clear the current group name.
6689 (unless quit-config 6691 (unless quit-config
6690 (setq gnus-newsgroup-name nil))))) 6692 (setq gnus-newsgroup-name nil)))))
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index e30e9a6b123..e579084474e 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -335,11 +335,8 @@ few false positives here."
335 :link '(custom-manual "(message)Message Headers") 335 :link '(custom-manual "(message)Message Headers")
336 :type 'regexp) 336 :type 'regexp)
337 337
338;; Fixme: Why are all these things autoloaded?
339
340;;; marking inserted text 338;;; marking inserted text
341 339
342;;;###autoload
343(defcustom message-mark-insert-begin 340(defcustom message-mark-insert-begin
344 "--8<---------------cut here---------------start------------->8---\n" 341 "--8<---------------cut here---------------start------------->8---\n"
345 "How to mark the beginning of some inserted text." 342 "How to mark the beginning of some inserted text."
@@ -348,7 +345,6 @@ few false positives here."
348 :link '(custom-manual "(message)Insertion Variables") 345 :link '(custom-manual "(message)Insertion Variables")
349 :group 'message-various) 346 :group 'message-various)
350 347
351;;;###autoload
352(defcustom message-mark-insert-end 348(defcustom message-mark-insert-end
353 "--8<---------------cut here---------------end--------------->8---\n" 349 "--8<---------------cut here---------------end--------------->8---\n"
354 "How to mark the end of some inserted text." 350 "How to mark the end of some inserted text."
@@ -357,9 +353,7 @@ few false positives here."
357 :link '(custom-manual "(message)Insertion Variables") 353 :link '(custom-manual "(message)Insertion Variables")
358 :group 'message-various) 354 :group 'message-various)
359 355
360;;;###autoload 356(defcustom message-archive-header "X-No-Archive: Yes\n"
361(defcustom message-archive-header
362 "X-No-Archive: Yes\n"
363 "Header to insert when you don't want your article to be archived. 357 "Header to insert when you don't want your article to be archived.
364Archives \(such as groups.google.com\) respect this header." 358Archives \(such as groups.google.com\) respect this header."
365 :version "22.1" 359 :version "22.1"
@@ -367,7 +361,6 @@ Archives \(such as groups.google.com\) respect this header."
367 :link '(custom-manual "(message)Header Commands") 361 :link '(custom-manual "(message)Header Commands")
368 :group 'message-various) 362 :group 'message-various)
369 363
370;;;###autoload
371(defcustom message-archive-note 364(defcustom message-archive-note
372 "X-No-Archive: Yes - save http://groups.google.com/" 365 "X-No-Archive: Yes - save http://groups.google.com/"
373 "Note to insert why you wouldn't want this posting archived. 366 "Note to insert why you wouldn't want this posting archived.
@@ -385,7 +378,6 @@ If nil, don't insert any text in the body."
385 "Old target for cross-posts or follow-ups.") 378 "Old target for cross-posts or follow-ups.")
386(make-variable-buffer-local 'message-cross-post-old-target) 379(make-variable-buffer-local 'message-cross-post-old-target)
387 380
388;;;###autoload
389(defcustom message-cross-post-default t 381(defcustom message-cross-post-default t
390 "When non-nil `message-cross-post-followup-to' will perform a crosspost. 382 "When non-nil `message-cross-post-followup-to' will perform a crosspost.
391If nil, `message-cross-post-followup-to' will only do a followup. Note that 383If nil, `message-cross-post-followup-to' will only do a followup. Note that
@@ -395,25 +387,19 @@ you can explicitly override this setting by calling
395 :type 'boolean 387 :type 'boolean
396 :group 'message-various) 388 :group 'message-various)
397 389
398;;;###autoload 390(defcustom message-cross-post-note "Crosspost & Followup-To: "
399(defcustom message-cross-post-note
400 "Crosspost & Followup-To: "
401 "Note to insert before signature to notify of cross-post and follow-up." 391 "Note to insert before signature to notify of cross-post and follow-up."
402 :version "22.1" 392 :version "22.1"
403 :type 'string 393 :type 'string
404 :group 'message-various) 394 :group 'message-various)
405 395
406;;;###autoload 396(defcustom message-followup-to-note "Followup-To: "
407(defcustom message-followup-to-note
408 "Followup-To: "
409 "Note to insert before signature to notify of follow-up only." 397 "Note to insert before signature to notify of follow-up only."
410 :version "22.1" 398 :version "22.1"
411 :type 'string 399 :type 'string
412 :group 'message-various) 400 :group 'message-various)
413 401
414;;;###autoload 402(defcustom message-cross-post-note-function 'message-cross-post-insert-note
415(defcustom message-cross-post-note-function
416 'message-cross-post-insert-note
417 "Function to use to insert note about Crosspost or Followup-To. 403 "Function to use to insert note about Crosspost or Followup-To.
418The function will be called with four arguments. The function should not only 404The function will be called with four arguments. The function should not only
419insert a note, but also ensure old notes are deleted. See the documentation 405insert a note, but also ensure old notes are deleted. See the documentation
@@ -1766,7 +1752,7 @@ see `message-narrow-to-headers-or-head'."
1766;;; Start of functions adopted from `message-utils.el'. 1752;;; Start of functions adopted from `message-utils.el'.
1767 1753
1768(defun message-strip-subject-trailing-was (subject) 1754(defun message-strip-subject-trailing-was (subject)
1769 "Remove trailing \"(Was: <old subject>)\" from SUBJECT lines. 1755 "Remove trailing \"(was: <old subject>)\" from SUBJECT lines.
1770Leading \"Re: \" is not stripped by this function. Use the function 1756Leading \"Re: \" is not stripped by this function. Use the function
1771`message-strip-subject-re' for this." 1757`message-strip-subject-re' for this."
1772 (let* ((query message-subject-trailing-was-query) 1758 (let* ((query message-subject-trailing-was-query)
@@ -5675,7 +5661,10 @@ because discussions that are spread over several lists tend to be
5675fragmented and very difficult to follow. 5661fragmented and very difficult to follow.
5676 5662
5677Also, some source/announcement lists are not intended for discussion; 5663Also, some source/announcement lists are not intended for discussion;
5678responses here are directed to other addresses."))) 5664responses here are directed to other addresses.
5665
5666You may customize the variable `message-use-mail-followup-to', if you
5667want to get rid of this query permanently.")))
5679 (setq recipients (concat ", " mft))) 5668 (setq recipients (concat ", " mft)))
5680 (to-address 5669 (to-address
5681 (setq recipients (concat ", " to-address)) 5670 (setq recipients (concat ", " to-address))
@@ -5871,7 +5860,10 @@ You should normally obey the Followup-To: header.
5871`Followup-To: poster' sends your response via e-mail instead of news. 5860`Followup-To: poster' sends your response via e-mail instead of news.
5872 5861
5873A typical situation where `Followup-To: poster' is used is when the poster 5862A typical situation where `Followup-To: poster' is used is when the poster
5874does not read the newsgroup, so he wouldn't see any replies sent to it.")) 5863does not read the newsgroup, so he wouldn't see any replies sent to it.
5864
5865You may customize the variable `message-use-followup-to', if you
5866want to get rid of this query permanently."))
5875 (progn 5867 (progn
5876 (setq message-this-is-news nil) 5868 (setq message-this-is-news nil)
5877 (cons 'To (or mrt reply-to from ""))) 5869 (cons 'To (or mrt reply-to from "")))
@@ -5894,7 +5886,10 @@ because discussions that are spread over several newsgroup tend to
5894be fragmented and very difficult to follow. 5886be fragmented and very difficult to follow.
5895 5887
5896Also, some source/announcement newsgroups are not intended for discussion; 5888Also, some source/announcement newsgroups are not intended for discussion;
5897responses here are directed to other newsgroups.")) 5889responses here are directed to other newsgroups.
5890
5891You may customize the variable `message-use-followup-to', if you
5892want to get rid of this query permanently."))
5898 (cons 'Newsgroups followup-to) 5893 (cons 'Newsgroups followup-to)
5899 (cons 'Newsgroups newsgroups)))))) 5894 (cons 'Newsgroups newsgroups))))))
5900 (posted-to 5895 (posted-to
diff --git a/lisp/gnus/nnweb.el b/lisp/gnus/nnweb.el
index 063a1c8f376..89a4a739792 100644
--- a/lisp/gnus/nnweb.el
+++ b/lisp/gnus/nnweb.el
@@ -54,11 +54,12 @@ Valid types include `google', `dejanews', and `gmane'.")
54(defvar nnweb-type-definition 54(defvar nnweb-type-definition
55 '((google 55 '((google
56 (article . ignore) 56 (article . ignore)
57 (id . "http://groups.google.com/groups?selm=%s&output=gplain") 57 (id . "http://groups.google.de/groups?selm=%s&output=gplain")
58 (reference . identity) 58 (reference . identity)
59 (map . nnweb-google-create-mapping) 59 (map . nnweb-google-create-mapping)
60 (search . nnweb-google-search) 60 (search . nnweb-google-search)
61 (address . "http://groups.google.com/groups") 61 (address . "http://groups.google.de/groups")
62 (base . "http://groups.google.de")
62 (identifier . nnweb-google-identity)) 63 (identifier . nnweb-google-identity))
63 (dejanews ;; alias of google 64 (dejanews ;; alias of google
64 (article . ignore) 65 (article . ignore)
@@ -67,6 +68,7 @@ Valid types include `google', `dejanews', and `gmane'.")
67 (map . nnweb-google-create-mapping) 68 (map . nnweb-google-create-mapping)
68 (search . nnweb-google-search) 69 (search . nnweb-google-search)
69 (address . "http://groups.google.com/groups") 70 (address . "http://groups.google.com/groups")
71 (base . "http://groups.google.com")
70 (identifier . nnweb-google-identity)) 72 (identifier . nnweb-google-identity))
71 (gmane 73 (gmane
72 (article . nnweb-gmane-wash-article) 74 (article . nnweb-gmane-wash-article)
@@ -349,7 +351,7 @@ Valid types include `google', `dejanews', and `gmane'.")
349 "a href=/groups\\(\\?[^ \">]*selm=\\([^ &\">]+\\)\\)" nil t) 351 "a href=/groups\\(\\?[^ \">]*selm=\\([^ &\">]+\\)\\)" nil t)
350 (setq mid (match-string 2) 352 (setq mid (match-string 2)
351 url (format 353 url (format
352 "http://groups.google.com/groups?selm=%s&output=gplain" mid)) 354 (nnweb-definition 'id) mid))
353 (narrow-to-region (search-forward ">" nil t) 355 (narrow-to-region (search-forward ">" nil t)
354 (search-forward "</a>" nil t)) 356 (search-forward "</a>" nil t))
355 (mm-url-remove-markup) 357 (mm-url-remove-markup)
@@ -420,7 +422,7 @@ Valid types include `google', `dejanews', and `gmane'.")
420 (>= i nnweb-max-hits)) 422 (>= i nnweb-max-hits))
421 (setq more nil) 423 (setq more nil)
422 ;; Yup, there are more articles 424 ;; Yup, there are more articles
423 (setq more (concat "http://groups.google.com" (match-string 1))) 425 (setq more (concat (nnweb-definition 'base) (match-string 1)))
424 (when more 426 (when more
425 (erase-buffer) 427 (erase-buffer)
426 (mm-url-insert more)))) 428 (mm-url-insert more))))
@@ -435,9 +437,9 @@ Valid types include `google', `dejanews', and `gmane'.")
435 "?" 437 "?"
436 (mm-url-encode-www-form-urlencoded 438 (mm-url-encode-www-form-urlencoded
437 `(("q" . ,search) 439 `(("q" . ,search)
438 ("num". "100") 440 ("num" . "100")
439 ("hq" . "") 441 ("hq" . "")
440 ("hl" . "") 442 ("hl" . "en")
441 ("lr" . "") 443 ("lr" . "")
442 ("safe" . "off") 444 ("safe" . "off")
443 ("sites" . "groups"))))) 445 ("sites" . "groups")))))
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el
index bed4330d0c2..e2e5d251371 100644
--- a/lisp/ibuf-ext.el
+++ b/lisp/ibuf-ext.el
@@ -1,6 +1,6 @@
1;;; ibuf-ext.el --- extensions for ibuffer 1;;; ibuf-ext.el --- extensions for ibuffer
2 2
3;; Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Colin Walters <walters@verbum.org> 5;; Author: Colin Walters <walters@verbum.org>
6;; Maintainer: John Paul Wallington <jpw@gnu.org> 6;; Maintainer: John Paul Wallington <jpw@gnu.org>
@@ -753,7 +753,10 @@ of replacing the current filters."
753 "Disable all filters currently in effect in this buffer." 753 "Disable all filters currently in effect in this buffer."
754 (interactive) 754 (interactive)
755 (setq ibuffer-filtering-qualifiers nil) 755 (setq ibuffer-filtering-qualifiers nil)
756 (ibuffer-update nil t)) 756 (let ((buf (ibuffer-current-buffer)))
757 (ibuffer-update nil t)
758 (when buf
759 (ibuffer-jump-to-buffer (buffer-name buf)))))
757 760
758;;;###autoload 761;;;###autoload
759(defun ibuffer-pop-filter () 762(defun ibuffer-pop-filter ()
@@ -762,7 +765,10 @@ of replacing the current filters."
762 (when (null ibuffer-filtering-qualifiers) 765 (when (null ibuffer-filtering-qualifiers)
763 (error "No filters in effect")) 766 (error "No filters in effect"))
764 (pop ibuffer-filtering-qualifiers) 767 (pop ibuffer-filtering-qualifiers)
765 (ibuffer-update nil t)) 768 (let ((buf (ibuffer-current-buffer)))
769 (ibuffer-update nil t)
770 (when buf
771 (ibuffer-jump-to-buffer (buffer-name buf)))))
766 772
767(defun ibuffer-push-filter (qualifier) 773(defun ibuffer-push-filter (qualifier)
768 "Add QUALIFIER to `ibuffer-filtering-qualifiers'." 774 "Add QUALIFIER to `ibuffer-filtering-qualifiers'."
diff --git a/lisp/international/code-pages.el b/lisp/international/code-pages.el
index 0f8cdbf5713..cc4e1766145 100644
--- a/lisp/international/code-pages.el
+++ b/lisp/international/code-pages.el
@@ -1,6 +1,6 @@
1;;; code-pages.el --- coding systems for assorted codepages -*-coding: utf-8;-*- 1;;; code-pages.el --- coding systems for assorted codepages -*-coding: utf-8;-*-
2 2
3;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. 3;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Dave Love <fx@gnu.org> 5;; Author: Dave Love <fx@gnu.org>
6;; Keywords: i18n 6;; Keywords: i18n
@@ -2440,6 +2440,7 @@ Return an updated `non-iso-charset-alist'."
2440 nil 2440 nil
2441 nil]) 2441 nil])
2442 2442
2443;;;###autoload(autoload-coding-system 'windows-1250 '(require 'code-pages))
2443(cp-make-coding-system 2444(cp-make-coding-system
2444 windows-1250 2445 windows-1250
2445 [?\€ 2446 [?\€
@@ -2571,6 +2572,7 @@ Return an updated `non-iso-charset-alist'."
2571 ?\Å£ 2572 ?\Å£
2572 ?\Ë™]) 2573 ?\Ë™])
2573 2574
2575;;;###autoload(autoload-coding-system 'windows-1253 '(require 'code-pages))
2574(cp-make-coding-system 2576(cp-make-coding-system
2575 windows-1253 2577 windows-1253
2576 [?\€ 2578 [?\€
@@ -2703,6 +2705,7 @@ Return an updated `non-iso-charset-alist'."
2703 nil] 2705 nil]
2704 nil ?g) ;; Greek 2706 nil ?g) ;; Greek
2705 2707
2708;;;###autoload(autoload-coding-system 'windows-1254 '(require 'code-pages))
2706(cp-make-coding-system 2709(cp-make-coding-system
2707 windows-1254 2710 windows-1254
2708 [?\€ 2711 [?\€
@@ -2835,6 +2838,7 @@ Return an updated `non-iso-charset-alist'."
2835 ?\ÿ]) 2838 ?\ÿ])
2836 2839
2837;; yi_US 2840;; yi_US
2841;;;###autoload(autoload-coding-system 'windows-1255 '(require 'code-pages))
2838(cp-make-coding-system 2842(cp-make-coding-system
2839 windows-1255 2843 windows-1255
2840 [?\€ 2844 [?\€
@@ -2967,6 +2971,7 @@ Return an updated `non-iso-charset-alist'."
2967 nil] 2971 nil]
2968 nil ?h) ;; Hebrew 2972 nil ?h) ;; Hebrew
2969 2973
2974;;;###autoload(autoload-coding-system 'windows-1256 '(require 'code-pages))
2970(cp-make-coding-system 2975(cp-make-coding-system
2971 windows-1256 2976 windows-1256
2972 [?\€ 2977 [?\€
@@ -3099,6 +3104,7 @@ Return an updated `non-iso-charset-alist'."
3099 ?\Û’] 3104 ?\Û’]
3100 nil ?a) ;; Arabic 3105 nil ?a) ;; Arabic
3101 3106
3107;;;###autoload(autoload-coding-system 'windows-1257 '(require 'code-pages))
3102(cp-make-coding-system 3108(cp-make-coding-system
3103 windows-1257 3109 windows-1257
3104 [?\€ 3110 [?\€
@@ -3230,6 +3236,7 @@ Return an updated `non-iso-charset-alist'."
3230 ?\ž 3236 ?\ž
3231 nil]) 3237 nil])
3232 3238
3239;;;###autoload(autoload-coding-system 'windows-1258 '(require 'code-pages))
3233(cp-make-coding-system 3240(cp-make-coding-system
3234 windows-1258 3241 windows-1258
3235 [?\€ 3242 [?\€
@@ -3652,6 +3659,7 @@ Return an updated `non-iso-charset-alist'."
3652;; ISO 8859-16 was primarily designed for single-byte encoding the Romanian 3659;; ISO 8859-16 was primarily designed for single-byte encoding the Romanian
3653;; language. The UTF-8 charset is the preferred and in today's MIME software 3660;; language. The UTF-8 charset is the preferred and in today's MIME software
3654;; more widely implemented encoding suitable for Romanian. 3661;; more widely implemented encoding suitable for Romanian.
3662;;;###autoload(autoload-coding-system 'iso-8859-16 '(require 'code-pages))
3655(cp-make-coding-system 3663(cp-make-coding-system
3656 iso-latin-10 ; consistent with, e.g. Latin-1 3664 iso-latin-10 ; consistent with, e.g. Latin-1
3657 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil 3665 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
@@ -3823,6 +3831,7 @@ Return an updated `non-iso-charset-alist'."
3823 ?6) 3831 ?6)
3824(define-coding-system-alias 'arabic-iso-8bit 'iso-8859-6) 3832(define-coding-system-alias 'arabic-iso-8bit 'iso-8859-6)
3825 3833
3834;;;###autoload(autoload-coding-system 'iso-8859-10 '(require 'code-pages))
3826(cp-make-coding-system 3835(cp-make-coding-system
3827 iso-latin-6 3836 iso-latin-6
3828 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil 3837 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
@@ -3929,6 +3938,7 @@ Return an updated `non-iso-charset-alist'."
3929(define-coding-system-alias 'latin-6 'iso-latin-6) 3938(define-coding-system-alias 'latin-6 'iso-latin-6)
3930 3939
3931;; used by lt_LT, lv_LV, mi_NZ 3940;; used by lt_LT, lv_LV, mi_NZ
3941;;;###autoload(autoload-coding-system 'iso-8859-13 '(require 'code-pages))
3932(cp-make-coding-system 3942(cp-make-coding-system
3933 iso-latin-7 3943 iso-latin-7
3934 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil 3944 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
@@ -4039,6 +4049,7 @@ Return an updated `non-iso-charset-alist'."
4039;; Fixme: check on the C1 characters which libiconv includes. They 4049;; Fixme: check on the C1 characters which libiconv includes. They
4040;; are reproduced below, but are probably wrong. I can't find an 4050;; are reproduced below, but are probably wrong. I can't find an
4041;; official definition of georgian-ps. 4051;; official definition of georgian-ps.
4052;;;###autoload(autoload-coding-system 'georgian-ps '(require 'code-pages))
4042(cp-make-coding-system 4053(cp-make-coding-system
4043 georgian-ps ; used by glibc for ka_GE 4054 georgian-ps ; used by glibc for ka_GE
4044 [?\€ 4055 [?\€
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 1c95e54dc5c..093969d5725 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -590,7 +590,7 @@ Do the same for the keys of the same name."
590(defmacro menu-bar-make-mm-toggle (fname doc help &optional props) 590(defmacro menu-bar-make-mm-toggle (fname doc help &optional props)
591 "Make a menu-item for a global minor mode toggle. 591 "Make a menu-item for a global minor mode toggle.
592FNAME is the minor mode's name (variable and function). 592FNAME is the minor mode's name (variable and function).
593DOC is the text to use the menu entry. 593DOC is the text to use for the menu entry.
594HELP is the text to use for the tooltip. 594HELP is the text to use for the tooltip.
595PROPS are additional properties." 595PROPS are additional properties."
596 `'(menu-item ,doc ,fname 596 `'(menu-item ,doc ,fname
@@ -637,7 +637,8 @@ by \"Save Options\" in Custom buffers.")
637 ;; These are set with menu-bar-make-mm-toggle, which does not 637 ;; These are set with menu-bar-make-mm-toggle, which does not
638 ;; put on a customized-value property. 638 ;; put on a customized-value property.
639 (dolist (elt '(line-number-mode column-number-mode cua-mode show-paren-mode 639 (dolist (elt '(line-number-mode column-number-mode cua-mode show-paren-mode
640 transient-mark-mode global-font-lock-mode)) 640 transient-mark-mode global-font-lock-mode
641 blink-cursor-mode))
641 (and (customize-mark-to-save elt) 642 (and (customize-mark-to-save elt)
642 (setq need-save t))) 643 (setq need-save t)))
643 ;; These are set with `customize-set-variable'. 644 ;; These are set with `customize-set-variable'.
@@ -959,6 +960,14 @@ by \"Save Options\" in Custom buffers.")
959 "Enter Lisp debugger when an error is signaled")) 960 "Enter Lisp debugger when an error is signaled"))
960(define-key menu-bar-options-menu [debugger-separator] 961(define-key menu-bar-options-menu [debugger-separator]
961 '("--")) 962 '("--"))
963
964(define-key menu-bar-options-menu [blink-cursor-mode]
965 (menu-bar-make-mm-toggle blink-cursor-mode
966 "Blinking Cursor"
967 "Whether the cursor blinks (Blink Cursor mode)"))
968(define-key menu-bar-options-menu [cursor-separator]
969 '("--"))
970
962(define-key menu-bar-options-menu [toggle-auto-compression] 971(define-key menu-bar-options-menu [toggle-auto-compression]
963 '(menu-item "Automatic File De/compression" 972 '(menu-item "Automatic File De/compression"
964 auto-compression-mode 973 auto-compression-mode
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 79a6b4b43be..457177d7c4c 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -514,6 +514,10 @@ Faces `compilation-error-face', `compilation-warning-face',
514 (and (cdr type) (match-end (cdr type)) compilation-info-face) 514 (and (cdr type) (match-end (cdr type)) compilation-info-face)
515 compilation-error-face)) 515 compilation-error-face))
516 516
517;; Internal function for calculating the text properties of a directory
518;; change message. The directory property is important, because it is
519;; the stack of nested enter-messages. Relative filenames on the following
520;; lines are relative to the top of the stack.
517(defun compilation-directory-properties (idx leave) 521(defun compilation-directory-properties (idx leave)
518 (if leave (setq leave (match-end leave))) 522 (if leave (setq leave (match-end leave)))
519 ;; find previous stack, and push onto it, or if `leave' pop it 523 ;; find previous stack, and push onto it, or if `leave' pop it
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 5fdf77c29d8..00da2e70dd7 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -880,8 +880,7 @@ sink to `user' in `gdb-stopping', that is fine."
880 "An annotation handler for `post-prompt'. 880 "An annotation handler for `post-prompt'.
881This begins the collection of output from the current command if that 881This begins the collection of output from the current command if that
882happens to be appropriate." 882happens to be appropriate."
883 (if (not gdb-pending-triggers) 883 (unless gdb-pending-triggers
884 (progn
885 (gdb-get-current-frame) 884 (gdb-get-current-frame)
886 (gdb-invalidate-frames) 885 (gdb-invalidate-frames)
887 (gdb-invalidate-breakpoints) 886 (gdb-invalidate-breakpoints)
@@ -897,7 +896,7 @@ happens to be appropriate."
897 (setq gdb-var-changed t) ; force update 896 (setq gdb-var-changed t) ; force update
898 (dolist (var gdb-var-list) 897 (dolist (var gdb-var-list)
899 (setcar (nthcdr 5 var) nil)) 898 (setcar (nthcdr 5 var) nil))
900 (gdb-var-update))))) 899 (gdb-var-update))))
901 (let ((sink gdb-output-sink)) 900 (let ((sink gdb-output-sink))
902 (cond 901 (cond
903 ((eq sink 'user) t) 902 ((eq sink 'user) t)
@@ -1211,14 +1210,13 @@ static char *magick[] = {
1211 (goto-line (string-to-number line)) 1210 (goto-line (string-to-number line))
1212 (gdb-put-breakpoint-icon (eq flag ?y) bptno))) 1211 (gdb-put-breakpoint-icon (eq flag ?y) bptno)))
1213 (gdb-enqueue-input 1212 (gdb-enqueue-input
1214 (list (concat gdb-server-prefix "list " 1213 (list (concat "list "
1215 (match-string-no-properties 1) ":1\n") 1214 (match-string-no-properties 1) ":1\n")
1216 'ignore)) 1215 'ignore))
1217 (gdb-enqueue-input 1216 (gdb-enqueue-input
1218 (list (concat gdb-server-prefix "info source\n") 1217 (list "info source\n"
1219 `(lambda () 1218 `(lambda () (gdb-get-location
1220 (gdb-get-location 1219 ,bptno ,line ,flag)))))))))))
1221 ,bptno ,line ,flag)))))))))))
1222 (end-of-line))))) 1220 (end-of-line)))))
1223 (if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom))) 1221 (if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom)))
1224 1222
@@ -2108,22 +2106,29 @@ buffers."
2108 "Find the directory containing the relevant source file. 2106 "Find the directory containing the relevant source file.
2109Put in buffer and place breakpoint icon." 2107Put in buffer and place breakpoint icon."
2110 (goto-char (point-min)) 2108 (goto-char (point-min))
2111 (if (search-forward "Located in " nil t) 2109 (catch 'file-not-found
2112 (if (looking-at "\\S-*") 2110 (if (search-forward "Located in " nil t)
2113 (push (cons bptno (match-string 0)) gdb-location-list)) 2111 (if (looking-at "\\S-*")
2114 (gdb-resync) 2112 (push (cons bptno (match-string 0)) gdb-location-list))
2115 (push (cons bptno "File not found") gdb-location-list) 2113 (gdb-resync)
2116 (error "Cannot find source file for breakpoint location. 2114 (push (cons bptno "File not found") gdb-location-list)
2115 (if (eq window-system 'x)
2116 (x-popup-dialog
2117 t '("Cannot find source file for breakpoint location.\n\
2118Add directory to search path for source files using the GDB command, dir."
2119 ("Ok" . nil)))
2120 (message "Cannot find source file for breakpoint location.\n\
2117Add directory to search path for source files using the GDB command, dir.")) 2121Add directory to search path for source files using the GDB command, dir."))
2118 (with-current-buffer 2122 (throw 'file-not-found nil))
2119 (find-file-noselect (match-string 0)) 2123 (with-current-buffer
2120 (save-current-buffer 2124 (find-file-noselect (match-string 0))
2121 (set (make-local-variable 'gud-minor-mode) 'gdba) 2125 (save-current-buffer
2122 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map)) 2126 (set (make-local-variable 'gud-minor-mode) 'gdba)
2123 ;; only want one breakpoint icon at each location 2127 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map))
2124 (save-excursion 2128 ;; only want one breakpoint icon at each location
2125 (goto-line (string-to-number line)) 2129 (save-excursion
2126 (gdb-put-breakpoint-icon (eq flag ?y) bptno)))) 2130 (goto-line (string-to-number line))
2131 (gdb-put-breakpoint-icon (eq flag ?y) bptno)))))
2127 2132
2128(add-hook 'find-file-hook 'gdb-find-file-hook) 2133(add-hook 'find-file-hook 'gdb-find-file-hook)
2129 2134
diff --git a/lisp/simple.el b/lisp/simple.el
index be9bded5382..0b40d53b756 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -733,10 +733,48 @@ that uses or sets the mark."
733 733
734;; Counting lines, one way or another. 734;; Counting lines, one way or another.
735 735
736(defun goto-line (arg) 736(defun goto-line (arg &optional buffer)
737 "Goto line ARG, counting from line 1 at beginning of buffer." 737 "Goto line ARG, counting from line 1 at beginning of buffer.
738 (interactive "NGoto line: ") 738Normally, move point in the curren buffer.
739 (setq arg (prefix-numeric-value arg)) 739With just C-u as argument, move point in the most recently displayed
740other buffer, and switch to it.
741
742If there's a number in the buffer at point, it is the default for ARG."
743 (interactive
744 (if (and current-prefix-arg (not (consp current-prefix-arg)))
745 (list (prefix-numeric-value current-prefix-arg))
746 ;; Look for a default, a number in the buffer at point.
747 (let* ((default
748 (save-excursion
749 (skip-chars-backward "0-9")
750 (if (looking-at "[0-9]")
751 (buffer-substring-no-properties
752 (point)
753 (progn (skip-chars-forward "0-9")
754 (point))))))
755 ;; Decide if we're switching buffers.
756 (buffer
757 (if (consp current-prefix-arg)
758 (other-buffer (current-buffer) t)))
759 (buffer-prompt
760 (if buffer
761 (concat " in " (buffer-name buffer))
762 "")))
763 ;; Read the argument, offering that number (if any) as default.
764 (list (read-from-minibuffer (format (if default "Goto line%s (%s): "
765 "Goto line%s: ")
766 buffer-prompt
767 default)
768 nil nil t
769 'minibuffer-history
770 default)
771 buffer))))
772 ;; Switch to the desired buffer, one way or another.
773 (if buffer
774 (let ((window (get-buffer-window buffer)))
775 (if window (select-window window)
776 (switch-to-buffer-other-window buffer))))
777 ;; Move to the specified line number in that buffer.
740 (save-restriction 778 (save-restriction
741 (widen) 779 (widen)
742 (goto-char 1) 780 (goto-char 1)
diff --git a/lisp/startup.el b/lisp/startup.el
index b66ceb38ea1..b16cfdeb0c9 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -290,6 +290,8 @@ from being initialized."
290 290
291(defvar normal-top-level-add-subdirs-inode-list nil) 291(defvar normal-top-level-add-subdirs-inode-list nil)
292 292
293(defvar no-blinking-cursor nil)
294
293(defvar pure-space-overflow nil 295(defvar pure-space-overflow nil
294 "Non-nil if building Emacs overflowed pure space.") 296 "Non-nil if building Emacs overflowed pure space.")
295 297
@@ -674,7 +676,8 @@ opening the first frame (e.g. open a connection to the server).")
674 ;; does things. 676 ;; does things.
675 (while (and (not done) args) 677 (while (and (not done) args)
676 (let* ((longopts '(("--no-init-file") ("--no-site-file") ("--user") 678 (let* ((longopts '(("--no-init-file") ("--no-site-file") ("--user")
677 ("--debug-init") ("--iconic") ("--icon-type"))) 679 ("--debug-init") ("--iconic") ("--icon-type")
680 ("--no-blinking-cursor")))
678 (argi (pop args)) 681 (argi (pop args))
679 (orig-argi argi) 682 (orig-argi argi)
680 argval) 683 argval)
@@ -697,6 +700,7 @@ opening the first frame (e.g. open a connection to the server).")
697 ((equal argi "-Q") 700 ((equal argi "-Q")
698 (setq init-file-user nil 701 (setq init-file-user nil
699 site-run-file nil 702 site-run-file nil
703 no-blinking-cursor t
700 emacs-quick-startup t) 704 emacs-quick-startup t)
701 (push '(vertical-scroll-bars . nil) initial-frame-alist)) 705 (push '(vertical-scroll-bars . nil) initial-frame-alist))
702 ((member argi '("-q" "-no-init-file")) 706 ((member argi '("-q" "-no-init-file"))
@@ -712,6 +716,8 @@ opening the first frame (e.g. open a connection to the server).")
712 (push '(visibility . icon) initial-frame-alist)) 716 (push '(visibility . icon) initial-frame-alist))
713 ((member argi '("-icon-type" "-i" "-itype")) 717 ((member argi '("-icon-type" "-i" "-itype"))
714 (push '(icon-type . t) default-frame-alist)) 718 (push '(icon-type . t) default-frame-alist))
719 ((member argi '("-nbc" "-no-blinking-cursor"))
720 (setq no-blinking-cursor t))
715 ;; Push the popped arg back on the list of arguments. 721 ;; Push the popped arg back on the list of arguments.
716 (t 722 (t
717 (push argi args) 723 (push argi args)
@@ -747,7 +753,7 @@ opening the first frame (e.g. open a connection to the server).")
747 ;; you should also change the corresponding expression in the 753 ;; you should also change the corresponding expression in the
748 ;; defcustom in frame.el, or Custom will be badly confused. 754 ;; defcustom in frame.el, or Custom will be badly confused.
749 (unless (or noninteractive 755 (unless (or noninteractive
750 emacs-quick-startup 756 no-blinking-cursor
751 (eq system-type 'ms-dos) 757 (eq system-type 'ms-dos)
752 (not (memq initial-window-system '(x w32)))) 758 (not (memq initial-window-system '(x w32))))
753 (blink-cursor-mode 1)) 759 (blink-cursor-mode 1))
diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el
index 470f4d4a1bd..e478169c250 100644
--- a/lisp/textmodes/texinfmt.el
+++ b/lisp/textmodes/texinfmt.el
@@ -1,7 +1,7 @@
1;;; texinfmt.el --- format Texinfo files into Info files 1;;; texinfmt.el --- format Texinfo files into Info files
2 2
3;; Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 3;; Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993,
4;; 1994, 1995, 1996, 1997, 1998, 2000, 2001 4;; 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2005
5;; Free Software Foundation, Inc. 5;; Free Software Foundation, Inc.
6 6
7;; Maintainer: Robert J. Chassell <bug-texinfo@gnu.org> 7;; Maintainer: Robert J. Chassell <bug-texinfo@gnu.org>
@@ -37,7 +37,7 @@
37 (defmacro defcustom (var value doc &rest ignore) 37 (defmacro defcustom (var value doc &rest ignore)
38 `(defvar ,var ,value ,doc))) 38 `(defvar ,var ,value ,doc)))
39 39
40(defvar texinfmt-version "2.40 of 6 Dec 2002") 40(defvar texinfmt-version "2.41 of 1 Mar 2005")
41 41
42(defun texinfmt-version (&optional here) 42(defun texinfmt-version (&optional here)
43 "Show the version of texinfmt.el in the minibuffer. 43 "Show the version of texinfmt.el in the minibuffer.
@@ -486,7 +486,8 @@ if large. You can use Info-split to do this manually."
486 ;; I don't know if this causes other problems. 486 ;; I don't know if this causes other problems.
487 ;; I suspect itemized lists don't get filled properly and a 487 ;; I suspect itemized lists don't get filled properly and a
488 ;; more precise fix is required. Bob 488 ;; more precise fix is required. Bob
489 "itemize\\|" 489 ;; commented out on 2005 Feb 28 by Bob
490 ;; "itemize\\|"
490 "direntry\\|" 491 "direntry\\|"
491 "lisp\\|" 492 "lisp\\|"
492 "smalllisp\\|" 493 "smalllisp\\|"
@@ -636,7 +637,7 @@ Do not append @refill to paragraphs containing @w{TEXT} or @*."
636 (forward-char 1) 637 (forward-char 1)
637 (unless (re-search-backward "@c[ \t\n]\\|@comment[ \t\n]" line-beg t) 638 (unless (re-search-backward "@c[ \t\n]\\|@comment[ \t\n]" line-beg t)
638 (forward-char -1)) 639 (forward-char -1))
639 (unless (re-search-backward "@refill\\|@bye" line-beg t) 640 (unless (re-search-backward "@refill\\|^[ \t]*@" line-beg t)
640 (insert "@refill"))) 641 (insert "@refill")))
641 (forward-line 1)))))) 642 (forward-line 1))))))
642 643
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index de0294cffa9..105fbec9a7d 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,32 @@
12005-03-05 Richard M. Stallman <rms@gnu.org>
2
3 * debugging.texi (Error Debugging): Remove stack-trace-on-error.
4
52005-03-04 Lute Kamstra <lute@gnu.org>
6
7 * debugging.texi (Error Debugging): Document stack-trace-on-error.
8
92005-03-03 Lute Kamstra <lute@gnu.org>
10
11 * edebug.texi (Instrumenting Macro Calls): Fix typo.
12
132005-03-01 Lute Kamstra <lute@gnu.org>
14
15 * debugging.texi (Debugger Commands): Update `j'.
16
172005-02-28 Lute Kamstra <lute@gnu.org>
18
19 * debugging.texi (Debugging): Fix typo.
20 (Error Debugging): Document eval-expression-debug-on-error.
21 (Function Debugging): Update example.
22 (Using Debugger): Mention starred stack frames.
23 (Debugger Commands): Document `j' and `l'.
24 (Invoking the Debugger): `d' and `j' exit recursive edit too.
25 Update the messages that the debugger displays.
26 (Internals of Debugger): Add cross reference. Update example.
27 (Excess Open): Minor improvement.
28 (Excess Close): Minor improvement.
29
12005-02-26 Richard M. Stallman <rms@gnu.org> 302005-02-26 Richard M. Stallman <rms@gnu.org>
2 31
3 * tips.texi (Coding Conventions): Clarify. 32 * tips.texi (Coding Conventions): Clarify.
diff --git a/lispref/debugging.texi b/lispref/debugging.texi
index e893b77ed84..07dfe18f283 100644
--- a/lispref/debugging.texi
+++ b/lispref/debugging.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, 1998, 1999 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2005
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/debugging 6@setfilename ../info/debugging
@@ -14,7 +14,7 @@ depending on what you are doing with the program when the problem appears.
14@item 14@item
15If the problem occurs when you run the program, you can use a Lisp 15If the problem occurs when you run the program, you can use a Lisp
16debugger to investigate what is happening during execution. In addition 16debugger to investigate what is happening during execution. In addition
17to the ordinary debugger, Emacs comes with a source level debugger, 17to the ordinary debugger, Emacs comes with a source-level debugger,
18Edebug. This chapter describes both of them. 18Edebug. This chapter describes both of them.
19 19
20@item 20@item
@@ -117,6 +117,15 @@ the error. The easiest way is usually to set
117@code{debug-ignored-errors} to @code{nil}. 117@code{debug-ignored-errors} to @code{nil}.
118@end defopt 118@end defopt
119 119
120@defopt eval-expression-debug-on-error
121If you set this variable to a non-@code{nil} value, then
122@code{debug-on-error} will be set to @code{t} when evaluating with the
123command @code{eval-expression}. If
124@code{eval-expression-debug-on-error} is @code{nil}, then the value of
125@code{debug-on-error} is not changed. @xref{Lisp Eval,, Evaluating
126Emacs-Lisp Expressions, emacs, The GNU Emacs Manual}.
127@end defopt
128
120@defopt debug-on-signal 129@defopt debug-on-signal
121Normally, errors that are caught by @code{condition-case} never run the 130Normally, errors that are caught by @code{condition-case} never run the
122debugger, even if @code{debug-on-error} is non-@code{nil}. In other 131debugger, even if @code{debug-on-error} is non-@code{nil}. In other
@@ -240,14 +249,12 @@ Here's an example to illustrate use of this function:
240 249
241@group 250@group
242------ Buffer: *Backtrace* ------ 251------ Buffer: *Backtrace* ------
243Entering: 252Debugger entered--entering a function:
244* fact(3) 253* fact(3)
245 eval-region(4870 4878 t) 254 eval((fact 3))
246 byte-code("...") 255 eval-last-sexp-1(nil)
247 eval-last-sexp(nil) 256 eval-last-sexp(nil)
248 (let ...) 257 call-interactively(eval-last-sexp)
249 eval-insert-last-sexp(nil)
250* call-interactively(eval-insert-last-sexp)
251------ Buffer: *Backtrace* ------ 258------ Buffer: *Backtrace* ------
252@end group 259@end group
253 260
@@ -317,7 +324,9 @@ moving point to the line describing that frame. (A stack frame is the
317place where the Lisp interpreter records information about a particular 324place where the Lisp interpreter records information about a particular
318invocation of a function.) The frame whose line point is on is 325invocation of a function.) The frame whose line point is on is
319considered the @dfn{current frame}. Some of the debugger commands 326considered the @dfn{current frame}. Some of the debugger commands
320operate on the current frame. 327operate on the current frame. If a line starts with a star, that means
328that exiting that frame will call the debugger again. This is useful
329for examining the return value of a function.
321 330
322 If a function name is underlined, that means the debugger knows 331 If a function name is underlined, that means the debugger knows
323where its source code is located. You can click @kbd{Mouse-2} on that 332where its source code is located. You can click @kbd{Mouse-2} on that
@@ -328,8 +337,6 @@ assumptions about how many stack frames are used for the debugger
328itself. These assumptions are false if the debugger is running 337itself. These assumptions are false if the debugger is running
329interpreted. 338interpreted.
330 339
331@need 3000
332
333@node Debugger Commands 340@node Debugger Commands
334@subsection Debugger Commands 341@subsection Debugger Commands
335@cindex debugger command list 342@cindex debugger command list
@@ -378,6 +385,11 @@ Don't enter the debugger when the current frame is exited. This
378cancels a @kbd{b} command on that frame. The visible effect is to 385cancels a @kbd{b} command on that frame. The visible effect is to
379remove the star from the line in the backtrace buffer. 386remove the star from the line in the backtrace buffer.
380 387
388@item j
389Flag the current frame like @kbd{b}. Then continue execution like
390@kbd{c}, but temporarily disable break-on-entry for all functions that
391are set up to do so by @code{debug-on-entry}.
392
381@item e 393@item e
382Read a Lisp expression in the minibuffer, evaluate it, and print the 394Read a Lisp expression in the minibuffer, evaluate it, and print the
383value in the echo area. The debugger alters certain important 395value in the echo area. The debugger alters certain important
@@ -410,6 +422,13 @@ used as the value of that frame. It is also useful if you call
410effect as @kbd{c}, and the specified return value does not matter. 422effect as @kbd{c}, and the specified return value does not matter.
411 423
412You can't use @kbd{r} when the debugger was entered due to an error. 424You can't use @kbd{r} when the debugger was entered due to an error.
425
426@item l
427Display a list of functions that will invoke the debugger when called.
428This is a list of functions that are set to break on entry by means of
429@code{debug-on-entry}. @strong{Warning:} if you redefine such a
430function and thus cancel the effect of @code{debug-on-entry}, it may
431erroneously show up in this list.
413@end table 432@end table
414 433
415@node Invoking the Debugger 434@node Invoking the Debugger
@@ -425,10 +444,10 @@ recursive entry to the debugger, etc.), and fills it with information
425about the stack of Lisp function calls. It then enters a recursive 444about the stack of Lisp function calls. It then enters a recursive
426edit, showing the backtrace buffer in Debugger mode. 445edit, showing the backtrace buffer in Debugger mode.
427 446
428The Debugger mode @kbd{c} and @kbd{r} commands exit the recursive edit; 447The Debugger mode @kbd{c}, @kbd{d}, @kbd{j}, and @kbd{r} commands exit
429then @code{debug} switches back to the previous buffer and returns to 448the recursive edit; then @code{debug} switches back to the previous
430whatever called @code{debug}. This is the only way the function 449buffer and returns to whatever called @code{debug}. This is the only
431@code{debug} can return to its caller. 450way the function @code{debug} can return to its caller.
432 451
433The use of the @var{debugger-args} is that @code{debug} displays the 452The use of the @var{debugger-args} is that @code{debug} displays the
434rest of its arguments at the top of the @samp{*Backtrace*} buffer, so 453rest of its arguments at the top of the @samp{*Backtrace*} buffer, so
@@ -443,41 +462,41 @@ is a table of these special values:
443@table @code 462@table @code
444@item lambda 463@item lambda
445@cindex @code{lambda} in debug 464@cindex @code{lambda} in debug
446A first argument of @code{lambda} means @code{debug} was called because 465A first argument of @code{lambda} means @code{debug} was called
447of entry to a function when @code{debug-on-next-call} was 466because of entry to a function when @code{debug-on-next-call} was
448non-@code{nil}. The debugger displays @samp{Entering:} as a line of 467non-@code{nil}. The debugger displays @samp{Debugger
449text at the top of the buffer. 468entered--entering a function:} as a line of text at the top of the
469buffer.
450 470
451@item debug 471@item debug
452@code{debug} as first argument indicates a call to @code{debug} because 472@code{debug} as first argument indicates a call to @code{debug}
453of entry to a function that was set to debug on entry. The debugger 473because of entry to a function that was set to debug on entry. The
454displays @samp{Entering:}, just as in the @code{lambda} case. It also 474debugger displays @samp{Debugger entered--entering a function:}, just
455marks the stack frame for that function so that it will invoke the 475as in the @code{lambda} case. It also marks the stack frame for that
456debugger when exited. 476function so that it will invoke the debugger when exited.
457 477
458@item t 478@item t
459When the first argument is @code{t}, this indicates a call to 479When the first argument is @code{t}, this indicates a call to
460@code{debug} due to evaluation of a list form when 480@code{debug} due to evaluation of a list form when
461@code{debug-on-next-call} is non-@code{nil}. The debugger displays the 481@code{debug-on-next-call} is non-@code{nil}. The debugger displays
462following as the top line in the buffer: 482@samp{Debugger entered--beginning evaluation of function call form:}
463 483as the top line in the buffer.
464@smallexample
465Beginning evaluation of function call form:
466@end smallexample
467 484
468@item exit 485@item exit
469When the first argument is @code{exit}, it indicates the exit of a stack 486When the first argument is @code{exit}, it indicates the exit of a
470frame previously marked to invoke the debugger on exit. The second 487stack frame previously marked to invoke the debugger on exit. The
471argument given to @code{debug} in this case is the value being returned 488second argument given to @code{debug} in this case is the value being
472from the frame. The debugger displays @samp{Return value:} in the top 489returned from the frame. The debugger displays @samp{Debugger
473line of the buffer, followed by the value being returned. 490entered--returning value:} in the top line of the buffer, followed by
491the value being returned.
474 492
475@item error 493@item error
476@cindex @code{error} in debug 494@cindex @code{error} in debug
477When the first argument is @code{error}, the debugger indicates that 495When the first argument is @code{error}, the debugger indicates that
478it is being entered because an error or @code{quit} was signaled and not 496it is being entered because an error or @code{quit} was signaled and
479handled, by displaying @samp{Signaling:} followed by the error signaled 497not handled, by displaying @samp{Debugger entered--Lisp error:}
480and any arguments to @code{signal}. For example, 498followed by the error signaled and any arguments to @code{signal}.
499For example,
481 500
482@example 501@example
483@group 502@group
@@ -487,7 +506,7 @@ and any arguments to @code{signal}. For example,
487 506
488@group 507@group
489------ Buffer: *Backtrace* ------ 508------ Buffer: *Backtrace* ------
490Signaling: (arith-error) 509Debugger entered--Lisp error: (arith-error)
491 /(1 0) 510 /(1 0)
492... 511...
493------ Buffer: *Backtrace* ------ 512------ Buffer: *Backtrace* ------
@@ -522,7 +541,7 @@ some kind of debugger. The default value of the variable is
522 541
523The first argument that Lisp hands to the function indicates why it 542The first argument that Lisp hands to the function indicates why it
524was called. The convention for arguments is detailed in the description 543was called. The convention for arguments is detailed in the description
525of @code{debug}. 544of @code{debug} (@pxref{Invoking the Debugger}).
526@end defvar 545@end defvar
527 546
528@deffn Command backtrace 547@deffn Command backtrace
@@ -567,17 +586,14 @@ forms are elided.
567 (save-excursion ...) 586 (save-excursion ...)
568 (let ...) 587 (let ...)
569 (with-output-to-temp-buffer ...) 588 (with-output-to-temp-buffer ...)
570 eval-region(1973 2142 #<buffer *scratch*>) 589 eval((with-output-to-temp-buffer ...))
571 byte-code("... for eval-print-last-sexp ...") 590 eval-last-sexp-1(nil)
572@group 591@group
573 eval-print-last-sexp(nil) 592 eval-last-sexp(nil)
574* call-interactively(eval-print-last-sexp) 593 call-interactively(eval-last-sexp)
575----------- Buffer: backtrace-output ------------ 594----------- Buffer: backtrace-output ------------
576@end group 595@end group
577@end smallexample 596@end smallexample
578
579The character @samp{*} indicates a frame whose debug-on-exit flag is
580set.
581@end deffn 597@end deffn
582 598
583@ignore @c Not worth mentioning 599@ignore @c Not worth mentioning
@@ -687,8 +703,8 @@ find the mismatch.)
687 703
688 The first step is to find the defun that is unbalanced. If there is 704 The first step is to find the defun that is unbalanced. If there is
689an excess open parenthesis, the way to do this is to go to the end of 705an excess open parenthesis, the way to do this is to go to the end of
690the file and type @kbd{C-u C-M-u}. This will move you to the beginning 706the file and type @kbd{C-u C-M-u}. This will move you to the
691of the defun that is unbalanced. 707beginning of the first defun that is unbalanced.
692 708
693 The next step is to determine precisely what is wrong. There is no 709 The next step is to determine precisely what is wrong. There is no
694way to be sure of this except by studying the program, but often the 710way to be sure of this except by studying the program, but often the
@@ -719,9 +735,9 @@ anything.
719@node Excess Close 735@node Excess Close
720@subsection Excess Close Parentheses 736@subsection Excess Close Parentheses
721 737
722 To deal with an excess close parenthesis, first go to the beginning of 738 To deal with an excess close parenthesis, first go to the beginning
723the file, then type @kbd{C-u -1 C-M-u} to find the end of the unbalanced 739of the file, then type @kbd{C-u -1 C-M-u} to find the end of the first
724defun. 740unbalanced defun.
725 741
726 Then find the actual matching close parenthesis by typing @kbd{C-M-f} 742 Then find the actual matching close parenthesis by typing @kbd{C-M-f}
727at the beginning of that defun. This will leave you somewhere short of 743at the beginning of that defun. This will leave you somewhere short of
diff --git a/lispref/edebug.texi b/lispref/edebug.texi
index bcd7eba5b6f..835ddf91e94 100644
--- a/lispref/edebug.texi
+++ b/lispref/edebug.texi
@@ -1,6 +1,6 @@
1@comment -*-texinfo-*- 1@comment -*-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) 1992, 1993, 1994, 1998, 1999 Free Software Foundation, Inc. 3@c Copyright (C) 1992, 1993, 1994, 1998, 1999, 2005 Free Software Foundation, Inc.
4@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
5 5
6@c This file can also be used by an independent Edebug User 6@c This file can also be used by an independent Edebug User
@@ -1082,7 +1082,7 @@ the @code{for} example macro (@pxref{Argument Evaluation}).
1082(defmacro for (var from init to final do &rest body) 1082(defmacro for (var from init to final do &rest body)
1083 "Execute a simple \"for\" loop. 1083 "Execute a simple \"for\" loop.
1084For example, (for i from 1 to 10 do (print i))." 1084For example, (for i from 1 to 10 do (print i))."
1085 (declare (edebug symbolp "from" form "to" form "do" &rest form)) 1085 (declare (debug symbolp "from" form "to" form "do" &rest form))
1086 ...) 1086 ...)
1087@end example 1087@end example
1088 1088
diff --git a/mac/ChangeLog b/mac/ChangeLog
index a12d8bc4673..a0083af7e43 100644
--- a/mac/ChangeLog
+++ b/mac/ChangeLog
@@ -1,3 +1,17 @@
12005-03-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * INSTALL: Mention new target `NonCarbon'.
4
52005-03-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6
7 * makefile.MPW (NonCarbon): New target. The target `Emacs' is now
8 used for the Carbon build that defines HAVE_CARBON.
9
10 * inc/config.h (HAVE_STDLIB_H): Define to 1.
11
12 * src/EmacsMPW.r (SIZE): Increase preferred memory size to 32MB.
13 [HAVE_CARBON] (crfg): New resource for extra stack space.
14
12004-12-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 152004-12-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2 16
3 * makefile.MPW: Add dependencies for fringe.c.x, image.c.x, and 17 * makefile.MPW: Add dependencies for fringe.c.x, image.c.x, and
diff --git a/mac/INSTALL b/mac/INSTALL
index 88306ae0573..4463b8f32e2 100644
--- a/mac/INSTALL
+++ b/mac/INSTALL
@@ -182,6 +182,12 @@ makefile.mpw. I.e., execute the commands
182 make Emacs -f makefile.MPW > Emacs.MakeScript 182 make Emacs -f makefile.MPW > Emacs.MakeScript
183 Emacs.MakeScript 183 Emacs.MakeScript
184 184
185The above commands create an executable that uses the Carbon API. The
186non-Carbon version can also be created by replacing all the
187occurrences of `Emacs' above with `NonCarbon'. Not that the
188non-Carbon version does not support some features such as file
189dialogs, drag-and-drop, and unicode menus.
190
185To build Emacs using CodeWarrior, start up the CodeWarrior IDE, choose 191To build Emacs using CodeWarrior, start up the CodeWarrior IDE, choose
186File->Import Project... and select the file cw6-mcp.xml. When 192File->Import Project... and select the file cw6-mcp.xml. When
187prompted to save the project, navigate to same directory as the file 193prompted to save the project, navigate to same directory as the file
diff --git a/mac/inc/config.h b/mac/inc/config.h
index 4f9d36c030c..c996cce4bfd 100644
--- a/mac/inc/config.h
+++ b/mac/inc/config.h
@@ -184,7 +184,7 @@ Boston, MA 02111-1307, USA. */
184/* #undef HAVE_TERMIOS_H */ 184/* #undef HAVE_TERMIOS_H */
185#define HAVE_LIMITS_H 1 185#define HAVE_LIMITS_H 1
186#define HAVE_STRING_H 1 186#define HAVE_STRING_H 1
187/* #undef HAVE_STDLIB_H */ 187#define HAVE_STDLIB_H 1
188/* #undef HAVE_TERMCAP_H */ 188/* #undef HAVE_TERMCAP_H */
189/* #undef HAVE_TERM_H */ 189/* #undef HAVE_TERM_H */
190/* #undef HAVE_STDIO_EXT_H */ 190/* #undef HAVE_STDIO_EXT_H */
diff --git a/mac/makefile.MPW b/mac/makefile.MPW
index 870052996b7..bd7ced4a14f 100644
--- a/mac/makefile.MPW
+++ b/mac/makefile.MPW
@@ -21,7 +21,8 @@
21# Boston, MA 02111-1307, USA. */ 21# Boston, MA 02111-1307, USA. */
22# 22#
23# Defines the following targets: 23# Defines the following targets:
24# Emacs (default) - normal Emacs build. 24# Emacs (default) - normal Carbon Emacs build.
25# NonCarbon - non-Carbon Emacs build.
25# Clean - remove all object and executable files to prepare for a fresh build. 26# Clean - remove all object and executable files to prepare for a fresh build.
26# Doc - generate the "DOC" file in ~emacs/etc/. 27# Doc - generate the "DOC" file in ~emacs/etc/.
27# Make-DocFile - build the make-docfile tool, utility for generating "DOC". 28# Make-DocFile - build the make-docfile tool, utility for generating "DOC".
@@ -38,7 +39,9 @@ Lisp = ::lisp: # emacs's lisp directory
38Make-DocFileDir = {Lib-Src} # directory containing make-docfile tool 39Make-DocFileDir = {Lib-Src} # directory containing make-docfile tool
39 40
40Makefile = makefile.MPW # self reference 41Makefile = makefile.MPW # self reference
42NonCarbonMakeOut = NonCarbon.MakeOut # temporary file for non-Carbon build script
41 43
44CarbonOption = -d HAVE_CARBON
42SymOption = # -sym on # remove hash mark before "-sym on" to enable source debugging 45SymOption = # -sym on # remove hash mark before "-sym on" to enable source debugging
43OptOption = # -opt speed # alternatively set to -opt off or -opt size 46OptOption = # -opt speed # alternatively set to -opt off or -opt size
44 47
@@ -47,7 +50,7 @@ OptOption = # -opt speed # alternatively set to -opt off or -opt size
47PPCCOptions = {SymOption} {OptOption} -noMapCR -enum int -alloca ¶ 50PPCCOptions = {SymOption} {OptOption} -noMapCR -enum int -alloca ¶
48 -typecheck relaxed -w off ¶ 51 -typecheck relaxed -w off ¶
49 -includes unix -i {Includes},{Src} ¶ 52 -includes unix -i {Includes},{Src} ¶
50 -d emacs=1 -d HAVE_CONFIG_H -d MAC_OS -d MAC_OS8 53 -d emacs=1 -d HAVE_CONFIG_H -d MAC_OS -d MAC_OS8 {CarbonOption}
51 54
52LinkOptions = {SymOption} -d 55LinkOptions = {SymOption} -d
53 56
@@ -132,29 +135,42 @@ MacObjects = ¶
132 "{Src}macmenu.c.x" ¶ 135 "{Src}macmenu.c.x" ¶
133 "{Src}macterm.c.x" 136 "{Src}macterm.c.x"
134 137
138StdLibraries = ¶
139 "{SharedLibraries}CarbonLib" ¶
140 "{SharedLibraries}StdCLib" ¶
141 "{PPCLibraries}StdCRuntime.o" ¶
142 "{PPCLibraries}PPCCRuntime.o"
143
144NonCarbonLibs = ¶
145 "{SharedLibraries}InterfaceLib" ¶
146 "{SharedLibraries}StdCLib" ¶
147 "{SharedLibraries}MathLib" ¶
148 "{SharedLibraries}AppleScriptLib" ¶
149 "{SharedLibraries}TextEncodingConverter" ¶
150 "{SharedLibraries}AppearanceLib" ¶
151 "{SharedLibraries}QuickTimeLib" ¶
152 "{PPCLibraries}StdCRuntime.o" ¶
153 "{PPCLibraries}PPCCRuntime.o" ¶
154 "{PPCLibraries}PPCToolLibs.o"
155
135# The next two are the dependency rules for building Emacs. 156# The next two are the dependency rules for building Emacs.
136 157
137Emacs ÄÄ {Makefile} {DocTarget}DOC {EmacsObjects} {MacObjects} 158Emacs ÄÄ {Makefile} {DocTarget}DOC {EmacsObjects} {MacObjects}
138 PPCLink ¶ 159 PPCLink ¶
139 {LinkOptions} ¶ 160 {LinkOptions} ¶
140 {EmacsObjects} {MacObjects} ¶ 161 {EmacsObjects} {MacObjects} ¶
141 "{SharedLibraries}InterfaceLib" ¶ 162 {StdLibraries} ¶
142 "{SharedLibraries}StdCLib" ¶
143 "{SharedLibraries}MathLib" ¶
144 "{SharedLibraries}AppleScriptLib" ¶
145 "{SharedLibraries}TextEncodingConverter" ¶
146 "{SharedLibraries}AppearanceLib" ¶
147 "{SharedLibraries}QuickTimeLib" ¶
148 "{PPCLibraries}StdCRuntime.o" ¶
149 "{PPCLibraries}PPCCRuntime.o" ¶
150 "{PPCLibraries}PPCToolLibs.o" ¶
151 -o "{EmacsTarget}" 163 -o "{EmacsTarget}"
152 164
153Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r 165Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r
154 Rez -a "{Source}"Emacs.maclf.r -o "{EmacsTarget}" 166 Rez {CarbonOption} -a "{Source}"Emacs.maclf.r -o "{EmacsTarget}"
155 Rez -a "{Source}"EmacsMPW.maclf.r -o "{EmacsTarget}" 167 Rez {CarbonOption} -a "{Source}"EmacsMPW.maclf.r -o "{EmacsTarget}"
156 SetFile "{EmacsTarget}" -t APPL -c 'EMAx' -a B 168 SetFile "{EmacsTarget}" -t APPL -c 'EMAx' -a B
157 169
170NonCarbon Ä
171 Make -f "{Makefile}" -d CarbonOption="" -d StdLibraries='{NonCarbonLibs}' > "{NonCarbonMakeOut}"
172 "{NonCarbonMakeOut}"
173
158# Rez cannot handle files with Unix style end lines at all. So generate 174# Rez cannot handle files with Unix style end lines at all. So generate
159# them. It does not hurt if Emacs.r and EmacsMPW.r already have Mac end 175# them. It does not hurt if Emacs.r and EmacsMPW.r already have Mac end
160# lines. 176# lines.
@@ -951,6 +967,7 @@ Clean Ä
951 Delete -i stdout stderr 967 Delete -i stdout stderr
952 Delete -i {Make-DocFile-Objects} {Make-DocFileDir}make-docfile 968 Delete -i {Make-DocFile-Objects} {Make-DocFileDir}make-docfile
953 Delete -i "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r 969 Delete -i "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r
970 Delete -i "{NonCarbonMakeOut}"
954 971
955DistClean Ä Clean 972DistClean Ä Clean
956 Delete -i "Emacs CW"Å 973 Delete -i "Emacs CW"Å
diff --git a/mac/src/EmacsMPW.r b/mac/src/EmacsMPW.r
index ad49ab3b76d..7db45ca4f80 100644
--- a/mac/src/EmacsMPW.r
+++ b/mac/src/EmacsMPW.r
@@ -42,6 +42,18 @@ resource 'SIZE' (-1) {
42 reserved, 42 reserved,
43 reserved, 43 reserved,
44 reserved, 44 reserved,
45 16777216, 45 33554432,
46 16777216 46 16777216
47}; 47};
48
49#ifdef HAVE_CARBON
50resource 'cfrg' (0) {
51 {
52 kPowerPCCFragArch, kIsCompleteCFrag, kNoVersionNum, kNoVersionNum,
53 311296, /* 48K (default) + 256K (EXTRA_STACK_ALLOC in macterm.c) */
54 kNoAppSubFolder,
55 kApplicationCFrag, kDataForkCFragLocator, kZeroOffset, kCFragGoesToEOF,
56 "",
57 }
58};
59#endif
diff --git a/man/ChangeLog b/man/ChangeLog
index 0571628041c..6e6b48ddd8d 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,37 @@
12005-03-05 Thien-Thi Nguyen <ttn@gnu.org>
2
3 * flymake.texi: Refill and tweak style in @lisp blocks.
4
52005-03-05 Juri Linkov <juri@jurta.org>
6
7 * cmdargs.texi (Emacs Invocation): Add cindex
8 "invocation (command line arguments)"
9 (Misc X): Add -nbc, --no-blinking-cursor.
10
112005-03-04 Ulf Jasper <ulf.jasper@web.de>
12
13 * calendar.texi (iCalendar): No need to require it now.
14
152005-03-03 Reiner Steib <Reiner.Steib@gmx.de>
16
17 * gnus.texi (Slow/Expensive Connection): Don't abbreviate "very".
18
192005-03-03 Nick Roberts <nickrob@snap.net.nz>
20
21 * trouble.texi (Contributing): Mention Savannah. Direct users to
22 emacs-devel.
23
242005-03-01 Glenn Morris <gmorris@ast.cam.ac.uk>
25
26 * calendar.texi (Adding to Diary): Mention redrawing of calendar
27 window.
28
292005-03-01 Jay Belanger <belanger@truman.edu>
30
31 * calc.texi (Trigonometric and Hyperbolic Functions):
32 Mention additional functions.
33 (Algebraic Simplifications): Mention additional simplifications.
34
12005-02-27 Matt Hodges <MPHodges@member.fsf.org> 352005-02-27 Matt Hodges <MPHodges@member.fsf.org>
2 36
3 * calendar.texi (General Calendar): Document binding of 37 * calendar.texi (General Calendar): Document binding of
diff --git a/man/calc.texi b/man/calc.texi
index a816f1559a6..72c243c3558 100644
--- a/man/calc.texi
+++ b/man/calc.texi
@@ -18473,6 +18473,25 @@ With the Inverse flag [@code{arcsincos}], this command takes a two-element
18473vector as an argument and computes @code{arctan2} of the elements. 18473vector as an argument and computes @code{arctan2} of the elements.
18474(This command does not accept the Hyperbolic flag.) 18474(This command does not accept the Hyperbolic flag.)
18475 18475
18476@pindex calc-sec
18477@tindex sec
18478@pindex calc-csc
18479@tindex csc
18480@pindex calc-cot
18481@tindex cot
18482@pindex calc-sech
18483@tindex sech
18484@pindex calc-csch
18485@tindex csch
18486@pindex calc-coth
18487@tindex coth
18488The remaining trigonometric functions, @code{calc-sec} [@code{sec}],
18489@code{calc-csc} [@code{csc}] and @code{calc-sec} [@code{sec}], are also
18490available. With the Hyperbolic flag, these compute their hyperbolic
18491counterparts, which are also available separately as @code{calc-sech}
18492[@code{sech}], @code{calc-csch} [@code{csch}] and @code{calc-sech}
18493[@code{sech}]. (These commmands do not accept the Inverse flag.)
18494
18476@node Advanced Math Functions, Branch Cuts, Trigonometric and Hyperbolic Functions, Scientific Functions 18495@node Advanced Math Functions, Branch Cuts, Trigonometric and Hyperbolic Functions, Scientific Functions
18477@section Advanced Mathematical Functions 18496@section Advanced Mathematical Functions
18478 18497
@@ -22730,18 +22749,27 @@ declared to be an integer.
22730\bigskip 22749\bigskip
22731@end tex 22750@end tex
22732 22751
22733Trigonometric functions are simplified in several ways. First, 22752Trigonometric functions are simplified in several ways. Whenever a
22734@expr{@tfn{sin}(@tfn{arcsin}(x))} is simplified to @expr{x}, and 22753products of two trigonometric functions can be replaced by a single
22735similarly for @code{cos} and @code{tan}. If the argument to 22754function, the replacement is made; for example,
22736@code{sin} is negative-looking, it is simplified to 22755@expr{@tfn{tan}(x) @tfn{cos}(x)} is simplified to @expr{@tfn{sin}(x)}.
22737@expr{-@tfn{sin}(x),}, and similarly for @code{cos} and @code{tan}. 22756Reciprocals of trigonometric functions are replaced by their reciprocal
22738Finally, certain special values of the argument are recognized; 22757function; for example, @expr{1/@tfn{sec}(x)} is simplified to
22739@pxref{Trigonometric and Hyperbolic Functions}. 22758@expr{@tfn{cos}(x)}. The corresponding simplifications for the
22740 22759hyperbolic functions are also handled.
22760
22761Trigonometric functions of their inverse functions are
22762simplified. The expression @expr{@tfn{sin}(@tfn{arcsin}(x))} is
22763simplified to @expr{x}, and similarly for @code{cos} and @code{tan}.
22741Trigonometric functions of inverses of different trigonometric 22764Trigonometric functions of inverses of different trigonometric
22742functions can also be simplified, as in @expr{@tfn{sin}(@tfn{arccos}(x))} 22765functions can also be simplified, as in @expr{@tfn{sin}(@tfn{arccos}(x))}
22743to @expr{@tfn{sqrt}(1 - x^2)}. 22766to @expr{@tfn{sqrt}(1 - x^2)}.
22744 22767
22768If the argument to @code{sin} is negative-looking, it is simplified to
22769@expr{-@tfn{sin}(x)}, and similarly for @code{cos} and @code{tan}.
22770Finally, certain special values of the argument are recognized;
22771@pxref{Trigonometric and Hyperbolic Functions}.
22772
22745Hyperbolic functions of their inverses and of negative-looking 22773Hyperbolic functions of their inverses and of negative-looking
22746arguments are also handled, as are exponentials of inverse 22774arguments are also handled, as are exponentials of inverse
22747hyperbolic functions. 22775hyperbolic functions.
diff --git a/man/calendar.texi b/man/calendar.texi
index bbbeec53017..e0d6577780f 100644
--- a/man/calendar.texi
+++ b/man/calendar.texi
@@ -1206,7 +1206,10 @@ make a nonmarking diary entry, give a numeric argument to the command.
1206For example, @kbd{C-u i w} makes a nonmarking weekly diary entry. 1206For example, @kbd{C-u i w} makes a nonmarking weekly diary entry.
1207 1207
1208 When you modify the diary file, be sure to save the file before 1208 When you modify the diary file, be sure to save the file before
1209exiting Emacs. 1209exiting Emacs. Saving the diary file after using any of the above
1210insertion commands will automatically update the diary marks in the
1211calendar window, if appropriate. You can use the command
1212@code{redraw-calendar} to force an update at any time.
1210 1213
1211@node Special Diary Entries 1214@node Special Diary Entries
1212@subsection Special Diary Entries 1215@subsection Special Diary Entries
@@ -1403,8 +1406,6 @@ Exporting of diary files into iCalendar files should work correctly for
1403most diary entries. Please note that @file{icalendar.el} is work in 1406most diary entries. Please note that @file{icalendar.el} is work in
1404progress, so usage may evolve in future. 1407progress, so usage may evolve in future.
1405 1408
1406 To activate the package, use @code{(require 'icalendar)}.
1407
1408@findex icalendar-import-buffer 1409@findex icalendar-import-buffer
1409 The command @code{icalendar-import-buffer} extracts 1410 The command @code{icalendar-import-buffer} extracts
1410iCalendar data from the current buffer and adds it to your (default) 1411iCalendar data from the current buffer and adds it to your (default)
diff --git a/man/cmdargs.texi b/man/cmdargs.texi
index a8b34e4095d..15ffa5c778b 100644
--- a/man/cmdargs.texi
+++ b/man/cmdargs.texi
@@ -9,6 +9,7 @@
9@cindex options (command line) 9@cindex options (command line)
10@cindex switches (command line) 10@cindex switches (command line)
11@cindex startup (command line arguments) 11@cindex startup (command line arguments)
12@cindex invocation (command line arguments)
12 13
13 GNU Emacs supports command line arguments to request various actions 14 GNU Emacs supports command line arguments to request various actions
14when invoking Emacs. These are for compatibility with other editors and 15when invoking Emacs. These are for compatibility with other editors and
@@ -1211,6 +1212,13 @@ Enable vertical scroll bars.
1211@opindex --line-spacing 1212@opindex --line-spacing
1212@cindex line spacing, command-line argument 1213@cindex line spacing, command-line argument
1213Specify @var{pixels} as additional space to put between lines, in pixels. 1214Specify @var{pixels} as additional space to put between lines, in pixels.
1215
1216@item -nbc
1217@opindex -nbc
1218@itemx --no-blinking-cursor
1219@opindex --no-blinking-cursor
1220@cindex blinking cursor disable, command-line argument
1221Disable the blinking cursor on graphical terminals.
1214@end table 1222@end table
1215 1223
1216 The @samp{--xrm} option (@pxref{Resources}) specifies additional 1224 The @samp{--xrm} option (@pxref{Resources}) specifies additional
diff --git a/man/flymake.texi b/man/flymake.texi
index c505be21b6e..9db7551b18c 100644
--- a/man/flymake.texi
+++ b/man/flymake.texi
@@ -419,19 +419,16 @@ checking.
419First, we write the @code{init-function}: 419First, we write the @code{init-function}:
420 420
421@lisp 421@lisp
422(defun flymake-perl-init(buffer) 422(defun flymake-perl-init (buffer)
423 (let* ((temp-file (flymake-init-create-temp-buffer-copy 423 (let* ((temp-file (flymake-init-create-temp-buffer-copy
424 buffer 424 buffer 'flymake-create-temp-inplace))
425 'flymake-create-temp-inplace)) 425 (local-file (concat (flymake-build-relative-path
426 (local-file (concat (flymake-build-relative-path 426 (file-name-directory
427 (file-name-directory 427 (buffer-file-name
428 (buffer-file-name 428 (current-buffer)))
429 (current-buffer))) 429 (file-name-directory temp-file))
430 (file-name-directory temp-file)) 430 (file-name-nondirectory temp-file))))
431 (file-name-nondirectory temp-file)))) 431 (list "perl" (list "-wc " local-file))))
432 (list "perl" (list "-wc " local-file))
433 )
434)
435@end lisp 432@end lisp
436 433
437@code{flymake-perl-init} creates a temporary copy of the buffer 434@code{flymake-perl-init} creates a temporary copy of the buffer
@@ -444,11 +441,11 @@ Next, we add a new entry to the
444 441
445@lisp 442@lisp
446(setq flymake-allowed-file-name-masks 443(setq flymake-allowed-file-name-masks
447 (cons '(".+\\.pl$" 444 (cons '(".+\\.pl$"
448 flymake-perl-init 445 flymake-perl-init
449 flymake-simple-cleanup 446 flymake-simple-cleanup
450 flymake-get-real-file-name) 447 flymake-get-real-file-name)
451 flymake-allowed-file-name-masks)) 448 flymake-allowed-file-name-masks))
452@end lisp 449@end lisp
453 450
454Note that we use standard @code{cleanup-function} and 451Note that we use standard @code{cleanup-function} and
@@ -458,8 +455,9 @@ Finally, we add an entry to @code{flymake-err-line-patterns}:
458 455
459@lisp 456@lisp
460(setq flymake-err-line-patterns 457(setq flymake-err-line-patterns
461 (cons '("\\(.*\\) at \\([^ \n]+\\) line \\([0-9]+\\)[,.\n]" 2 3 nil 1) 458 (cons '("\\(.*\\) at \\([^ \n]+\\) line \\([0-9]+\\)[,.\n]"
462 flymake-err-line-patterns)) 459 2 3 nil 1)
460 flymake-err-line-patterns))
463@end lisp 461@end lisp
464 462
465@node Example -- Configuring a tool called via make 463@node Example -- Configuring a tool called via make
@@ -475,11 +473,11 @@ functions for @code{make}. We just add a new entry to the
475 473
476@lisp 474@lisp
477(setq flymake-allowed-file-name-masks 475(setq flymake-allowed-file-name-masks
478 (cons '(".+\\.c$" 476 (cons '(".+\\.c$"
479 flymake-simple-make-init 477 flymake-simple-make-init
480 flymake-simple-cleanup 478 flymake-simple-cleanup
481 flymake-get-real-file-name) 479 flymake-get-real-file-name)
482 flymake-allowed-file-name-masks)) 480 flymake-allowed-file-name-masks))
483@end lisp 481@end lisp
484 482
485@code{flymake-simple-make-init} builds the following @code{make} 483@code{flymake-simple-make-init} builds the following @code{make}
@@ -487,12 +485,11 @@ command line:
487 485
488@lisp 486@lisp
489(list "make" 487(list "make"
490 (list "-s" 488 (list "-s" "-C"
491 "-C" 489 base-dir
492 base-dir 490 (concat "CHK_SOURCES=" source)
493 (concat "CHK_SOURCES=" source) 491 "SYNTAX_CHECK_MODE=1"
494 "SYNTAX_CHECK_MODE=1" 492 "check-syntax"))
495 "check-syntax"))
496@end lisp 493@end lisp
497 494
498@code{base-dir} is a directory containing @code{Makefile}, see @ref{Locating the buildfile}. 495@code{base-dir} is a directory containing @code{Makefile}, see @ref{Locating the buildfile}.
@@ -748,12 +745,11 @@ Flymake also provides an alternative command for starting compilation,
748@code{flymake-compile}: 745@code{flymake-compile}:
749 746
750@lisp 747@lisp
751(defun flymake-compile() 748(defun flymake-compile ()
752 "kill all flymake syntax checks, start compilation" 749 "Kill all flymake syntax checks then start compilation."
753 (interactive) 750 (interactive)
754 (flymake-stop-all-syntax-checks) 751 (flymake-stop-all-syntax-checks)
755 (call-interactively 'compile) 752 (call-interactively 'compile))
756)
757@end lisp 753@end lisp
758 754
759It just kills all the active syntax check processes before calling 755It just kills all the active syntax check processes before calling
diff --git a/man/gnus.texi b/man/gnus.texi
index d2812890a1c..3a98f64baa1 100644
--- a/man/gnus.texi
+++ b/man/gnus.texi
@@ -26688,7 +26688,7 @@ Gnus has to get from the @acronym{NNTP} server.
26688 26688
26689@item gnus-read-active-file 26689@item gnus-read-active-file
26690Set this to @code{nil}, which will inhibit Gnus from requesting the 26690Set this to @code{nil}, which will inhibit Gnus from requesting the
26691entire active file from the server. This file is often v. large. You 26691entire active file from the server. This file is often very large. You
26692also have to set @code{gnus-check-new-newsgroups} and 26692also have to set @code{gnus-check-new-newsgroups} and
26693@code{gnus-check-bogus-newsgroups} to @code{nil} to make sure that Gnus 26693@code{gnus-check-bogus-newsgroups} to @code{nil} to make sure that Gnus
26694doesn't suddenly decide to fetch the active file anyway. 26694doesn't suddenly decide to fetch the active file anyway.
diff --git a/man/trouble.texi b/man/trouble.texi
index ac9697eeeb5..df6a2763f3f 100644
--- a/man/trouble.texi
+++ b/man/trouble.texi
@@ -1037,17 +1037,22 @@ form that is clearly safe to install.
1037 1037
1038If you would like to help pretest Emacs releases to assure they work 1038If you would like to help pretest Emacs releases to assure they work
1039well, or if you would like to work on improving Emacs, please contact 1039well, or if you would like to work on improving Emacs, please contact
1040the maintainers at @email{bug-gnu-emacs@@gnu.org}. A pretester 1040the maintainers at @email{emacs-devel@@gnu.org}. A pretester
1041should be prepared to investigate bugs as well as report them. If you'd 1041should be prepared to investigate bugs as well as report them. If you'd
1042like to work on improving Emacs, please ask for suggested projects or 1042like to work on improving Emacs, please ask for suggested projects or
1043suggest your own ideas. 1043suggest your own ideas.
1044 1044
1045If you have already written an improvement, please tell us about it. If 1045If you have already written an improvement, please tell us about it. If
1046you have not yet started work, it is useful to contact 1046you have not yet started work, it is useful to contact
1047@email{bug-gnu-emacs@@gnu.org} before you start; it might be 1047@email{emacs-devel@@gnu.org} before you start; it might be
1048possible to suggest ways to make your extension fit in better with the 1048possible to suggest ways to make your extension fit in better with the
1049rest of Emacs. 1049rest of Emacs.
1050 1050
1051The development version of Emacs can be downloaded from the CVS
1052repository where it is actively maintained by a group of developers.
1053See the Emacs project page http://savannah.gnu.org/projects/emacs/ for
1054details.
1055
1051@node Service, Copying, Contributing, Top 1056@node Service, Copying, Contributing, Top
1052@section How To Get Help with GNU Emacs 1057@section How To Get Help with GNU Emacs
1053 1058
diff --git a/src/ChangeLog b/src/ChangeLog
index 56833a341a4..dc48d647216 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,6 +1,115 @@
12005-03-05 Juri Linkov <juri@jurta.org>
2
3 * emacs.c (USAGE1): Replace Info node name "command arguments"
4 with "emacs invocation".
5 (USAGE3): Fix usage of `--color=MODE' which actually doesn't
6 allow arguments `--color' and `MODE' to be separated by space.
7 Add --no-blinking-cursor, -nbc.
8 (standard_args): Add -nbc, --no-blinking-cursor.
9
102005-03-04 Thien-Thi Nguyen <ttn@gnu.org>
11
12 * s/vms.h: Define NO_HYPHENS_IN_FILENAMES.
13 * s/vms4-4.h, s/vms5-5.h: Undefine NO_HYPHENS_IN_FILENAMES.
14 * fileio.c (Fexpand_file_name) [VMS]:
15 Use NO_HYPHENS_IN_FILENAMES, not VMS4_4.
16 * doc.c (munge_doc_file_name) [VMS]: Likewise.
17 (Fsnarf_documentation): Call munge_doc_file_name.
18
192005-03-04 Thien-Thi Nguyen <ttn@gnu.org>
20
21 * s/vms.h (FILE_SYSTEM_CASE): New macro.
22 * fileio.c (Fexpand_file_name) [VMS]: Don't upcase the name
23 "manually"; this is now handled generally via FILE_SYSTEM_CASE.
24
252005-03-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
26
27 * emacs.c (main): Change `#ifdef HAVE_CARBON' to `#if
28 defined (MAC_OSX) && defined (HAVE_CARBON)'.
29
30 * image.c [!MAC_OSX && TARGET_API_MAC_CARBON]: Include
31 QuickTime.h.
32
33 * mac.c [!MAC_OSX && HAVE_CARBON]: Include Carbon.h.
34 [!MAC_OSX] (select) [TARGET_API_MAC_CARBON]: Use ReceiveNextEvent.
35 (posix_pathname_to_fsspec, fsspec_to_posix_pathname): New
36 functions.
37 (mac_clear_font_name_table): Move extern to macterm.h.
38
39 * macfns.c (install_window_handler): Move extern to macterm.h.
40 (Fx_file_dialog): Check STRINGP (default_filename) to see it is
41 valid. Don't check !NILP (dir) because it is already checked with
42 CHECK_STRING.
43 (Fx_file_dialog) [!MAC_OSX]: Use FSSpec instead of FSRef for
44 specifying the default location and obtaining the selected
45 filename.
46
47 * macgui.h [!MAC_OSX && HAVE_CARBON]: Include Carbon.h.
48
49 * macmenu.c [TARGET_API_MAC_CARBON]: Don't include headers that
50 are included via Carbon.h.
51
52 * macterm.c [TARGET_API_MAC_CARBON && !MAC_OSX]: Define
53 USE_CARBON_EVENTS to 1.
54 (qd) [__MRC__ && TARGET_API_MAC_CARBON]: Don't declare.
55 (x_free_frame_resources): Call remove_window_handler for
56 non-tooltip windows.
57 [TARGET_API_MAC_CARBON]: Don't include headers that are included
58 via Carbon.h.
59 [TARGET_API_MAC_CARBON] (mac_do_track_dragUPP)
60 (mac_do_receive_dragUPP): New variables.
61 (mac_handle_service_event, init_service_handler): Put declarations
62 and definitions in #ifdef MAC_OSX.
63 (install_window_handler) [TARGET_API_MAC_CARBON]: Create UPPs for
64 drag-and-drop handler functions and register them.
65 (remove_window_handler): New function.
66 (do_ae_open_documents, mac_do_receive_drag) [!MAC_OSX]: Use
67 fsspec_to_posix_pathname.
68 (main): Change #if !TARGET_API_MAC_CARBON to #ifdef MAC_OS8.
69 (XTread_socket) [!MAC_OSX]: Don't pass keyboard events to TSM.
70 [MAC_OS8] (make_mac_terminal_frame) [TARGET_API_MAC_CARBON]: Set
71 default cursors.
72 (mac_initialize) [USE_CARBON_EVENTS && !MAC_OSX] : Don't call
73 init_service_handler or init_quit_char_handler.
74 (mac_initialize) [!MAC_OSX]: Don't call MakeMeTheFrontProcess.
75
76 * macterm.h (install_window_handler, remove_window_handler)
77 (posix_pathname_to_fsspec, fsspec_to_posix_pathname)
78 (mac_clear_font_name_table): New externs.
79
802005-03-03 Thien-Thi Nguyen <ttn@gnu.org>
81
82 * fileio.c (FILE_SYSTEM_CASE): Define macro if not already defined.
83 (Ffile_name_directory): Use FILE_SYSTEM_CASE unconditionally.
84 (Fexpand_file_name): Likewise.
85
862005-03-03 Thien-Thi Nguyen <ttn@gnu.org>
87
88 * emacs.c (Fkill_emacs): Use EXIT_SUCCESS;
89 no longer special-case VMS. Add bogus return value.
90
912005-03-02 Kim F. Storm <storm@cua.dk>
92
93 * dispextern.h (XASSERTS): Define to 0 if not already defined.
94 (xassert) [!XASSERTS]: Define dummy version.
95
962005-03-02 Kim F. Storm <storm@cua.dk>
97
98 * xdisp.c (redisplay_window): YABX (yet another bogus xassert).
99 Reported by David Kastrup.
100
1012005-03-01 Ehud Karni <ehud@unix.mvs.co.il>
102
103 * xdisp.c (get_next_display_element): Fix control and escape
104 glyph from display vector.
105
1062005-03-01 Stefan Monnier <monnier@iro.umontreal.ca>
107
108 * keyboard.c (Fposn_at_x_y): Check integerness of X and Y.
109
12005-02-27 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 1102005-02-27 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2 111
3 * gtkutil.c (xg_resize_outer_widget): Removed unneeded call to 112 * gtkutil.c (xg_resize_outer_widget): Remove unneeded call to
4 gtk_window_resize and x_wm_set_size_hint. 113 gtk_window_resize and x_wm_set_size_hint.
5 114
62005-02-25 Kim F. Storm <storm@cua.dk> 1152005-02-25 Kim F. Storm <storm@cua.dk>
@@ -30,7 +139,7 @@
30 * window.c (window_scroll_pixel_based): When scrolling backwards, 139 * window.c (window_scroll_pixel_based): When scrolling backwards,
31 handle partial visible line at end of window even when we hit PT. 140 handle partial visible line at end of window even when we hit PT.
32 141
332005-02-21 Stefan <monnier@iro.umontreal.ca> 1422005-02-21 Stefan Monnier <monnier@iro.umontreal.ca>
34 143
35 * keymap.h: Declare Fcurrent_active_maps, used in doc.c. 144 * keymap.h: Declare Fcurrent_active_maps, used in doc.c.
36 145
@@ -88,8 +197,7 @@
88 (Fx_window_property): Likewise. 197 (Fx_window_property): Likewise.
89 198
90 * xselect.c (Fx_disown_selection_internal): Use union of struct 199 * xselect.c (Fx_disown_selection_internal): Use union of struct
91 input_event and struct selection_input_event to avoid aliasing 200 input_event and struct selection_input_event to avoid aliasing issues.
92 issues.
93 201
94 * xterm.c (handle_one_xevent): Use union of struct input_event and 202 * xterm.c (handle_one_xevent): Use union of struct input_event and
95 struct selection_input_event to avoid aliasing issues. 203 struct selection_input_event to avoid aliasing issues.
@@ -118,21 +226,20 @@
118 clipboard operations and delayed rendering. 226 clipboard operations and delayed rendering.
119 227
120 Drop last_clipboard_text and related code, keep track of 228 Drop last_clipboard_text and related code, keep track of
121 ownership via clipboard_owner instead. Drop old #if0 229 ownership via clipboard_owner instead. Drop old #if0 sections.
122 sections.
123 230
124 (DEFAULT_LCID, ANSICP, OEMCP, QUNICODE, QANSICP, QOEMCP) 231 (DEFAULT_LCID, ANSICP, OEMCP, QUNICODE, QANSICP, QOEMCP)
125 (clipboard_owner, modifying_clipboard, cfg_coding_system) 232 (clipboard_owner, modifying_clipboard, cfg_coding_system)
126 (cfg_codepage, cfg_lcid, cfg_clipboard_type, current_text) 233 (cfg_codepage, cfg_lcid, cfg_clipboard_type, current_text)
127 (current_coding_system, current_requires_encoding) 234 (current_coding_system, current_requires_encoding)
128 (current_num_nls, current_clipboard_type, current_lcid): New 235 (current_num_nls, current_clipboard_type, current_lcid):
129 static variables. 236 New static variables.
130 237
131 (convert_to_handle_as_ascii, convert_to_handle_as_coded) 238 (convert_to_handle_as_ascii, convert_to_handle_as_coded)
132 (render, render_all, run_protected, lisp_error_handler) 239 (render, render_all, run_protected, lisp_error_handler)
133 (owner_callback, create_owner, setup_config) 240 (owner_callback, create_owner, setup_config)
134 (enum_locale_callback, cp_from_locale, coding_from_cp): New 241 (enum_locale_callback, cp_from_locale, coding_from_cp):
135 local functions. 242 New local functions.
136 243
137 (term_w32select, globals_of_w32select): New global functions. 244 (term_w32select, globals_of_w32select): New global functions.
138 245
@@ -332,8 +439,7 @@
332 (casify_region): Fix loop condition, args to replace_range_2, and 439 (casify_region): Fix loop condition, args to replace_range_2, and
333 update opoint_byte. 440 update opoint_byte.
334 441
335 * insdel.c (replace_range_2): Fix bugs in adjusting markers and 442 * insdel.c (replace_range_2): Fix bugs in adjusting markers and point.
336 point.
337 443
3382005-02-01 Kim F. Storm <storm@cua.dk> 4442005-02-01 Kim F. Storm <storm@cua.dk>
339 445
@@ -761,7 +867,7 @@
761 [TARGET_API_MAC_CARBON] (mac_do_track_drag): Likewise. 867 [TARGET_API_MAC_CARBON] (mac_do_track_drag): Likewise.
762 Reject only when there are no filename items. Set background color 868 Reject only when there are no filename items. Set background color
763 before (un)highlighting the window below the dragged items. 869 before (un)highlighting the window below the dragged items.
764 (XTread_socket) [!USE_CARBON_EVENTS]: Don't call do_window_update. 870 (XTread_socket) [USE_CARBON_EVENTS]: Don't call do_window_update.
765 871
7662005-01-05 Romain Francoise <romain@orebokech.com> 8722005-01-05 Romain Francoise <romain@orebokech.com>
767 873
@@ -11015,9 +11121,9 @@
11015 These changes were in part based upon suggestions made by Peter 11121 These changes were in part based upon suggestions made by Peter
11016 'Luna' Runestig [peter@runestig.com]. 11122 'Luna' Runestig [peter@runestig.com].
11017 11123
11018 * w32.c (g_b_init_is_windows_9x, g_b_init_open_process_token, 11124 * w32.c (g_b_init_is_windows_9x, g_b_init_open_process_token)
11019 g_b_init_get_token_information, g_b_init_lookup_account_sid, 11125 (g_b_init_get_token_information, g_b_init_lookup_account_sid)
11020 g_b_init_get_sid_identifier_authority ): Add several static 11126 (g_b_init_get_sid_identifier_authority ): Add several static
11021 global variables. 11127 global variables.
11022 11128
11023 * w32.c (globals_of_w32): New function. Used to initialize those 11129 * w32.c (globals_of_w32): New function. Used to initialize those
diff --git a/src/dispextern.h b/src/dispextern.h
index 5401fecedd5..60f24feef5b 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -119,6 +119,13 @@ enum window_part
119#define GLYPH_DEBUG 0 119#define GLYPH_DEBUG 0
120#endif 120#endif
121 121
122/* If XASSERTS is non-zero, additional consistency checks are activated.
123 Turn it off by defining the macro XASSERTS to zero. */
124
125#ifndef XASSERTS
126#define XASSERTS 0
127#endif
128
122/* Macros to include code only if GLYPH_DEBUG != 0. */ 129/* Macros to include code only if GLYPH_DEBUG != 0. */
123 130
124#if GLYPH_DEBUG 131#if GLYPH_DEBUG
@@ -127,8 +134,11 @@ enum window_part
127#define IF_DEBUG(X) (void) 0 134#define IF_DEBUG(X) (void) 0
128#endif 135#endif
129 136
130/* Maybe move this inside the above `#ifdef GLYPH_DEBUG' for release. */ 137#if XASSERTS
131#define xassert(X) do {if (!(X)) abort ();} while (0) 138#define xassert(X) do {if (!(X)) abort ();} while (0)
139#else
140#define xassert(X) (void) 0
141#endif
132 142
133/* Macro for displaying traces of redisplay. If Emacs was compiled 143/* Macro for displaying traces of redisplay. If Emacs was compiled
134 with GLYPH_DEBUG != 0, the variable trace_redisplay_p can be set to 144 with GLYPH_DEBUG != 0, the variable trace_redisplay_p can be set to
diff --git a/src/doc.c b/src/doc.c
index 0d1ab394647..d3e58f4b6cb 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -58,26 +58,24 @@ static Lisp_Object Vbuild_files;
58extern Lisp_Object Voverriding_local_map; 58extern Lisp_Object Voverriding_local_map;
59 59
60/* For VMS versions with limited file name syntax, 60/* For VMS versions with limited file name syntax,
61 convert the name to something VMS will allow. */ 61 convert the name to something VMS will allow. */
62static void 62static void
63munge_doc_file_name (name) 63munge_doc_file_name (name)
64 char *name; 64 char *name;
65{ 65{
66#ifdef VMS 66#ifdef VMS
67#ifndef VMS4_4 67#ifndef NO_HYPHENS_IN_FILENAMES
68 /* For VMS versions with limited file name syntax, 68 extern char * sys_translate_unix (char *ufile);
69 convert the name to something VMS will allow. */ 69 strcpy (name, sys_translate_unix (name));
70 p = name; 70#else /* NO_HYPHENS_IN_FILENAMES */
71 char *p = name;
71 while (*p) 72 while (*p)
72 { 73 {
73 if (*p == '-') 74 if (*p == '-')
74 *p = '_'; 75 *p = '_';
75 p++; 76 p++;
76 } 77 }
77#endif /* not VMS4_4 */ 78#endif /* NO_HYPHENS_IN_FILENAMES */
78#ifdef VMS4_4
79 strcpy (name, sys_translate_unix (name));
80#endif /* VMS4_4 */
81#endif /* VMS */ 79#endif /* VMS */
82} 80}
83 81
@@ -607,21 +605,7 @@ the same file name is found in the `doc-directory'. */)
607 strcpy (name, SDATA (Vdoc_directory)); 605 strcpy (name, SDATA (Vdoc_directory));
608 } 606 }
609 strcat (name, SDATA (filename)); /*** Add this line ***/ 607 strcat (name, SDATA (filename)); /*** Add this line ***/
610#ifdef VMS 608 munge_doc_file_name (name);
611#ifndef VMS4_4
612 /* For VMS versions with limited file name syntax,
613 convert the name to something VMS will allow. */
614 p = name;
615 while (*p)
616 {
617 if (*p == '-')
618 *p = '_';
619 p++;
620 }
621#else /* VMS4_4 */
622 strcpy (name, sys_translate_unix (name));
623#endif /* VMS4_4 */
624#endif /* VMS */
625 609
626 /* Vbuild_files is nil when temacs is run, and non-nil after that. */ 610 /* Vbuild_files is nil when temacs is run, and non-nil after that. */
627 if (NILP (Vbuild_files)) 611 if (NILP (Vbuild_files))
diff --git a/src/emacs.c b/src/emacs.c
index 159a162d649..d83adc989eb 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -251,7 +251,7 @@ Run Emacs, the extensible, customizable, self-documenting real-time\n\
251display editor. The recommended way to start Emacs for normal editing\n\ 251display editor. The recommended way to start Emacs for normal editing\n\
252is with no options at all.\n\ 252is with no options at all.\n\
253\n\ 253\n\
254Run M-x info RET m emacs RET m command arguments RET inside Emacs to\n\ 254Run M-x info RET m emacs RET m emacs invocation RET inside Emacs to\n\
255read the main documentation for these command-line arguments.\n\ 255read the main documentation for these command-line arguments.\n\
256\n\ 256\n\
257Initialization options:\n\ 257Initialization options:\n\
@@ -297,7 +297,7 @@ Display options:\n\
297--background-color, -bg COLOR window background color\n\ 297--background-color, -bg COLOR window background color\n\
298--border-color, -bd COLOR main border color\n\ 298--border-color, -bd COLOR main border color\n\
299--border-width, -bw WIDTH width of main border\n\ 299--border-width, -bw WIDTH width of main border\n\
300--color MODE color mode for character terminals;\n\ 300--color, --color=MODE color mode for character terminals;\n\
301 MODE defaults to `auto', and can also\n\ 301 MODE defaults to `auto', and can also\n\
302 be `never', `auto', `always',\n\ 302 be `never', `auto', `always',\n\
303 or a mode name like `ansi8'\n\ 303 or a mode name like `ansi8'\n\
@@ -314,6 +314,7 @@ Display options:\n\
314--line-spacing, -lsp PIXELS additional space to put between lines\n\ 314--line-spacing, -lsp PIXELS additional space to put between lines\n\
315--mouse-color, -ms COLOR mouse cursor color in Emacs window\n\ 315--mouse-color, -ms COLOR mouse cursor color in Emacs window\n\
316--name NAME title for initial Emacs frame\n\ 316--name NAME title for initial Emacs frame\n\
317--no-blinking-cursor, -nbc disable blinking cursor\n\
317--reverse-video, -r, -rv switch foreground and background\n\ 318--reverse-video, -r, -rv switch foreground and background\n\
318--title, -T TITLE title for initial Emacs frame\n\ 319--title, -T TITLE title for initial Emacs frame\n\
319--vertical-scroll-bars, -vb enable vertical scroll bars\n\ 320--vertical-scroll-bars, -vb enable vertical scroll bars\n\
@@ -1483,7 +1484,7 @@ main (argc, argv
1483 init_ntproc (); /* must precede init_editfns. */ 1484 init_ntproc (); /* must precede init_editfns. */
1484#endif 1485#endif
1485 1486
1486#ifdef HAVE_CARBON 1487#if defined (MAC_OSX) && defined (HAVE_CARBON)
1487 if (initialized) 1488 if (initialized)
1488 init_mac_osx_environment (); 1489 init_mac_osx_environment ();
1489#endif 1490#endif
@@ -1627,12 +1628,12 @@ main (argc, argv
1627 syms_of_fontset (); 1628 syms_of_fontset ();
1628#endif /* HAVE_NTGUI */ 1629#endif /* HAVE_NTGUI */
1629 1630
1630#ifdef HAVE_CARBON 1631#if defined (MAC_OSX) && defined (HAVE_CARBON)
1631 syms_of_macterm (); 1632 syms_of_macterm ();
1632 syms_of_macfns (); 1633 syms_of_macfns ();
1633 syms_of_macmenu (); 1634 syms_of_macmenu ();
1634 syms_of_fontset (); 1635 syms_of_fontset ();
1635#endif /* HAVE_CARBON */ 1636#endif /* MAC_OSX && HAVE_CARBON */
1636 1637
1637#ifdef SYMS_SYSTEM 1638#ifdef SYMS_SYSTEM
1638 SYMS_SYSTEM; 1639 SYMS_SYSTEM;
@@ -1824,6 +1825,7 @@ struct standard_args standard_args[] =
1824 { "-ib", "--internal-border", 10, 1 }, 1825 { "-ib", "--internal-border", 10, 1 },
1825 { "-ms", "--mouse-color", 10, 1 }, 1826 { "-ms", "--mouse-color", 10, 1 },
1826 { "-cr", "--cursor-color", 10, 1 }, 1827 { "-cr", "--cursor-color", 10, 1 },
1828 { "-nbc", "--no-blinking-cursor", 10, 0 },
1827 { "-fn", "--font", 10, 1 }, 1829 { "-fn", "--font", 10, 1 },
1828 { "-font", 0, 10, 1 }, 1830 { "-font", 0, 10, 1 },
1829 { "-fs", "--fullscreen", 10, 0 }, 1831 { "-fs", "--fullscreen", 10, 0 },
@@ -2052,14 +2054,9 @@ all of which are called before Emacs is actually killed. */)
2052 if (STRINGP (Vauto_save_list_file_name)) 2054 if (STRINGP (Vauto_save_list_file_name))
2053 unlink (SDATA (Vauto_save_list_file_name)); 2055 unlink (SDATA (Vauto_save_list_file_name));
2054 2056
2055 exit (INTEGERP (arg) ? XINT (arg) 2057 exit (INTEGERP (arg) ? XINT (arg) : EXIT_SUCCESS);
2056#ifdef VMS
2057 : 1
2058#else
2059 : 0
2060#endif
2061 );
2062 /* NOTREACHED */ 2058 /* NOTREACHED */
2059 return 0;
2063} 2060}
2064 2061
2065 2062
diff --git a/src/fileio.c b/src/fileio.c
index 12360c677f8..3212c51d096 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -150,6 +150,10 @@ extern int use_file_dialog;
150# define lstat stat 150# define lstat stat
151#endif 151#endif
152 152
153#ifndef FILE_SYSTEM_CASE
154#define FILE_SYSTEM_CASE(filename) (filename)
155#endif
156
153/* Nonzero during writing of auto-save files */ 157/* Nonzero during writing of auto-save files */
154int auto_saving; 158int auto_saving;
155 159
@@ -415,9 +419,7 @@ on VMS, perhaps instead a string ending in `:', `]' or `>'. */)
415 if (!NILP (handler)) 419 if (!NILP (handler))
416 return call2 (handler, Qfile_name_directory, filename); 420 return call2 (handler, Qfile_name_directory, filename);
417 421
418#ifdef FILE_SYSTEM_CASE
419 filename = FILE_SYSTEM_CASE (filename); 422 filename = FILE_SYSTEM_CASE (filename);
420#endif
421 beg = SDATA (filename); 423 beg = SDATA (filename);
422#ifdef DOS_NT 424#ifdef DOS_NT
423 beg = strcpy (alloca (strlen (beg) + 1), beg); 425 beg = strcpy (alloca (strlen (beg) + 1), beg);
@@ -1122,14 +1124,7 @@ See also the function `substitute-in-file-name'. */)
1122 UNGCPRO; 1124 UNGCPRO;
1123 } 1125 }
1124 1126
1125#ifdef VMS
1126 /* Filenames on VMS are always upper case. */
1127 name = Fupcase (name);
1128#endif
1129#ifdef FILE_SYSTEM_CASE
1130 name = FILE_SYSTEM_CASE (name); 1127 name = FILE_SYSTEM_CASE (name);
1131#endif
1132
1133 nm = SDATA (name); 1128 nm = SDATA (name);
1134 1129
1135#ifdef DOS_NT 1130#ifdef DOS_NT
@@ -1229,23 +1224,23 @@ See also the function `substitute-in-file-name'. */)
1229 slash = p; 1224 slash = p;
1230 } 1225 }
1231 if (p[0] == '-') 1226 if (p[0] == '-')
1232#ifndef VMS4_4 1227#ifdef NO_HYPHENS_IN_FILENAMES
1233 /* VMS pre V4.4,convert '-'s in filenames. */
1234 if (lbrack == rbrack) 1228 if (lbrack == rbrack)
1235 { 1229 {
1236 if (dots < 2) /* this is to allow negative version numbers */ 1230 /* Avoid clobbering negative version numbers. */
1231 if (dots < 2)
1237 p[0] = '_'; 1232 p[0] = '_';
1238 } 1233 }
1239 else 1234 else
1240#endif /* VMS4_4 */ 1235#endif /* NO_HYPHENS_IN_FILENAMES */
1241 if (lbrack > rbrack && 1236 if (lbrack > rbrack &&
1242 ((p[-1] == '.' || p[-1] == '[' || p[-1] == '<') && 1237 ((p[-1] == '.' || p[-1] == '[' || p[-1] == '<') &&
1243 (p[1] == '.' || p[1] == ']' || p[1] == '>'))) 1238 (p[1] == '.' || p[1] == ']' || p[1] == '>')))
1244 lose = 1; 1239 lose = 1;
1245#ifndef VMS4_4 1240#ifdef NO_HYPHENS_IN_FILENAMES
1246 else 1241 else
1247 p[0] = '_'; 1242 p[0] = '_';
1248#endif /* VMS4_4 */ 1243#endif /* NO_HYPHENS_IN_FILENAMES */
1249 /* count open brackets, reset close bracket pointer */ 1244 /* count open brackets, reset close bracket pointer */
1250 if (p[0] == '[' || p[0] == '<') 1245 if (p[0] == '[' || p[0] == '<')
1251 lbrack++, brack = 0; 1246 lbrack++, brack = 0;
@@ -1625,12 +1620,12 @@ See also the function `substitute-in-file-name'. */)
1625 } 1620 }
1626 else 1621 else
1627 { 1622 {
1628#ifndef VMS4_4 1623#ifdef NO_HYPHENS_IN_FILENAMES
1629 if (*p == '-' && 1624 if (*p == '-' &&
1630 o[-1] != '[' && o[-1] != '<' && o[-1] != '.' && 1625 o[-1] != '[' && o[-1] != '<' && o[-1] != '.' &&
1631 p[1] != ']' && p[1] != '>' && p[1] != '.') 1626 p[1] != ']' && p[1] != '>' && p[1] != '.')
1632 *p = '_'; 1627 *p = '_';
1633#endif /* VMS4_4 */ 1628#endif /* NO_HYPHENS_IN_FILENAMES */
1634 *o++ = *p++; 1629 *o++ = *p++;
1635 } 1630 }
1636#else /* not VMS */ 1631#else /* not VMS */
@@ -6387,7 +6382,7 @@ and `read-file-name-function'. */)
6387 { 6382 {
6388 Lisp_Object val1 = double_dollars (val); 6383 Lisp_Object val1 = double_dollars (val);
6389 tem = Fsymbol_value (Qfile_name_history); 6384 tem = Fsymbol_value (Qfile_name_history);
6390 if (history_delete_duplicates) 6385 if (history_delete_duplicates)
6391 XSETCDR (tem, Fdelete (val1, XCDR(tem))); 6386 XSETCDR (tem, Fdelete (val1, XCDR(tem)));
6392 XSETCAR (tem, val1); 6387 XSETCAR (tem, val1);
6393 } 6388 }
diff --git a/src/image.c b/src/image.c
index 9c2f6962b6e..0e48b1d2bcb 100644
--- a/src/image.c
+++ b/src/image.c
@@ -88,15 +88,19 @@ typedef struct w32_bitmap_record Bitmap_Record;
88#include <alloca.h> 88#include <alloca.h>
89#include <sys/param.h> 89#include <sys/param.h>
90#endif 90#endif
91#if TARGET_API_MAC_CARBON
91#ifdef MAC_OSX 92#ifdef MAC_OSX
92#include <QuickTime/QuickTime.h> 93#include <QuickTime/QuickTime.h>
93#else /* not MAC_OSX */ 94#else /* not MAC_OSX */
95#include <QuickTime.h>
96#endif /* not MAC_OSX */
97#else /* not TARGET_API_MAC_CARBON */
94#include <Windows.h> 98#include <Windows.h>
95#include <Gestalt.h> 99#include <Gestalt.h>
96#include <TextUtils.h> 100#include <TextUtils.h>
97#include <ImageCompression.h> 101#include <ImageCompression.h>
98#include <QuickTimeComponents.h> 102#include <QuickTimeComponents.h>
99#endif /* not MAC_OSX */ 103#endif /* not TARGET_API_MAC_CARBON */
100 104
101/* MAC_TODO : Color tables on Mac. */ 105/* MAC_TODO : Color tables on Mac. */
102#undef COLOR_TABLE_SUPPORT 106#undef COLOR_TABLE_SUPPORT
diff --git a/src/keyboard.c b/src/keyboard.c
index 42255dfbd91..3da16b82271 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -1,6 +1,6 @@
1/* Keyboard and mouse input; editor command loop. 1/* Keyboard and mouse input; editor command loop.
2 Copyright (C) 1985,86,87,88,89,93,94,95,96,97,99,2000,01,02,03,04 2 Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995, 1996, 1997,
3 Free Software Foundation, Inc. 3 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -10660,6 +10660,9 @@ The `posn-' functions access elements of such lists. */)
10660 (x, y, frame_or_window, whole) 10660 (x, y, frame_or_window, whole)
10661 Lisp_Object x, y, frame_or_window, whole; 10661 Lisp_Object x, y, frame_or_window, whole;
10662{ 10662{
10663 CHECK_NATNUM (x);
10664 CHECK_NATNUM (y);
10665
10663 if (NILP (frame_or_window)) 10666 if (NILP (frame_or_window))
10664 frame_or_window = selected_window; 10667 frame_or_window = selected_window;
10665 10668
diff --git a/src/mac.c b/src/mac.c
index cce1b858cb3..44d763562b0 100644
--- a/src/mac.c
+++ b/src/mac.c
@@ -25,20 +25,8 @@ Boston, MA 02111-1307, USA. */
25#include <stdio.h> 25#include <stdio.h>
26#include <errno.h> 26#include <errno.h>
27#include <time.h> 27#include <time.h>
28#include <utime.h>
29#include <dirent.h>
30#include <sys/types.h>
31#include <sys/stat.h>
32#include <string.h>
33#include <pwd.h>
34#include <grp.h>
35#include <sys/param.h>
36#include <stdlib.h>
37#include <fcntl.h>
38#if __MWERKS__
39#include <unistd.h>
40#endif
41 28
29#ifdef HAVE_CARBON
42#ifdef MAC_OSX 30#ifdef MAC_OSX
43#undef mktime 31#undef mktime
44#undef DEBUG 32#undef DEBUG
@@ -57,7 +45,12 @@ Boston, MA 02111-1307, USA. */
57#define realloc unexec_realloc 45#define realloc unexec_realloc
58#undef init_process 46#undef init_process
59#define init_process emacs_init_process 47#define init_process emacs_init_process
60#else /* not MAC_OSX */ 48#else /* not MAC_OSX */
49#undef SIGHUP
50#define OLDP2C 1
51#include <Carbon.h>
52#endif /* not MAC_OSX */
53#else /* not HAVE_CARBON */
61#include <Files.h> 54#include <Files.h>
62#include <MacTypes.h> 55#include <MacTypes.h>
63#include <TextUtils.h> 56#include <TextUtils.h>
@@ -69,7 +62,24 @@ Boston, MA 02111-1307, USA. */
69#include <OSA.h> 62#include <OSA.h>
70#include <AppleScript.h> 63#include <AppleScript.h>
71#include <Scrap.h> 64#include <Scrap.h>
72#endif /* not MAC_OSX */ 65#include <Events.h>
66#include <Processes.h>
67#include <EPPC.h>
68#endif /* not HAVE_CARBON */
69
70#include <utime.h>
71#include <dirent.h>
72#include <sys/types.h>
73#include <sys/stat.h>
74#include <string.h>
75#include <pwd.h>
76#include <grp.h>
77#include <sys/param.h>
78#include <stdlib.h>
79#include <fcntl.h>
80#if __MWERKS__
81#include <unistd.h>
82#endif
73 83
74#include "lisp.h" 84#include "lisp.h"
75#include "process.h" 85#include "process.h"
@@ -812,8 +822,6 @@ sys_fopen (const char *name, const char *mode)
812} 822}
813 823
814 824
815#include <Events.h>
816
817long target_ticks = 0; 825long target_ticks = 0;
818 826
819#ifdef __MRC__ 827#ifdef __MRC__
@@ -856,7 +864,24 @@ select (n, rfds, wfds, efds, timeout)
856 struct timeval *timeout; 864 struct timeval *timeout;
857{ 865{
858#if TARGET_API_MAC_CARBON 866#if TARGET_API_MAC_CARBON
859 return 1; 867 OSErr err;
868 EventTimeout timeout_sec =
869 (timeout
870 ? (EMACS_SECS (*timeout) * kEventDurationSecond
871 + EMACS_USECS (*timeout) * kEventDurationMicrosecond)
872 : kEventDurationForever);
873
874 if (FD_ISSET (0, rfds))
875 {
876 BLOCK_INPUT;
877 err = ReceiveNextEvent (0, NULL, timeout_sec, kEventLeaveInQueue, NULL);
878 UNBLOCK_INPUT;
879 if (err == noErr)
880 return 1;
881 else
882 FD_ZERO (rfds);
883 }
884 return 0;
860#else /* not TARGET_API_MAC_CARBON */ 885#else /* not TARGET_API_MAC_CARBON */
861 EventRecord e; 886 EventRecord e;
862 UInt32 sleep_time = EMACS_SECS (*timeout) * 60 + 887 UInt32 sleep_time = EMACS_SECS (*timeout) * 60 +
@@ -1421,6 +1446,39 @@ path_from_vol_dir_name (char *path, int man_path_len, short vol_ref_num,
1421 return 1; /* success */ 1446 return 1; /* success */
1422} 1447}
1423 1448
1449
1450OSErr
1451posix_pathname_to_fsspec (ufn, fs)
1452 const char *ufn;
1453 FSSpec *fs;
1454{
1455 Str255 mac_pathname;
1456
1457 if (posix_to_mac_pathname (ufn, mac_pathname, sizeof (mac_pathname)) == 0)
1458 return fnfErr;
1459 else
1460 {
1461 c2pstr (mac_pathname);
1462 return FSMakeFSSpec (0, 0, mac_pathname, fs);
1463 }
1464}
1465
1466OSErr
1467fsspec_to_posix_pathname (fs, ufn, ufnbuflen)
1468 const FSSpec *fs;
1469 char *ufn;
1470 int ufnbuflen;
1471{
1472 char mac_pathname[MAXPATHLEN];
1473
1474 if (path_from_vol_dir_name (mac_pathname, sizeof (mac_pathname) - 1,
1475 fs->vRefNum, fs->parID, fs->name)
1476 && mac_to_posix_pathname (mac_pathname, ufn, ufnbuflen))
1477 return noErr;
1478 else
1479 return fnfErr;
1480}
1481
1424#ifndef MAC_OSX 1482#ifndef MAC_OSX
1425 1483
1426int 1484int
@@ -1899,9 +1957,6 @@ uname (struct utsname *name)
1899} 1957}
1900 1958
1901 1959
1902#include <Processes.h>
1903#include <EPPC.h>
1904
1905/* Event class of HLE sent to subprocess. */ 1960/* Event class of HLE sent to subprocess. */
1906const OSType kEmacsSubprocessSend = 'ESND'; 1961const OSType kEmacsSubprocessSend = 'ESND';
1907 1962
@@ -2770,7 +2825,6 @@ and t is the same as `SECONDARY'. */)
2770 return Qnil; 2825 return Qnil;
2771} 2826}
2772 2827
2773extern void mac_clear_font_name_table P_ ((void));
2774 2828
2775DEFUN ("mac-clear-font-name-table", Fmac_clear_font_name_table, Smac_clear_font_name_table, 0, 0, 0, 2829DEFUN ("mac-clear-font-name-table", Fmac_clear_font_name_table, Smac_clear_font_name_table, 0, 0, 0,
2776 doc: /* Clear the font name table. */) 2830 doc: /* Clear the font name table. */)
diff --git a/src/macfns.c b/src/macfns.c
index 26d63ec99af..d90344dc1d0 100644
--- a/src/macfns.c
+++ b/src/macfns.c
@@ -2294,8 +2294,6 @@ XParseGeometry (string, x, y, width, height)
2294 2294
2295/* Create and set up the Mac window for frame F. */ 2295/* Create and set up the Mac window for frame F. */
2296 2296
2297extern OSErr install_window_handler (WindowPtr);
2298
2299static void 2297static void
2300mac_window (f) 2298mac_window (f)
2301 struct frame *f; 2299 struct frame *f;
@@ -4356,7 +4354,7 @@ If ONLY-DIR-P is non-nil, the user can only select directories. */)
4356 options.actionButtonLabel = CFSTR ("Ok"); 4354 options.actionButtonLabel = CFSTR ("Ok");
4357 options.windowTitle = CFSTR ("Enter name"); 4355 options.windowTitle = CFSTR ("Enter name");
4358 4356
4359 if (!NILP(default_filename)) 4357 if (STRINGP (default_filename))
4360 { 4358 {
4361 Lisp_Object utf8 = ENCODE_UTF_8 (default_filename); 4359 Lisp_Object utf8 = ENCODE_UTF_8 (default_filename);
4362 char *begPtr = SDATA(utf8); 4360 char *begPtr = SDATA(utf8);
@@ -4381,22 +4379,29 @@ If ONLY-DIR-P is non-nil, the user can only select directories. */)
4381 } 4379 }
4382 4380
4383 /* Set the default location and continue*/ 4381 /* Set the default location and continue*/
4384 if (status == noErr) { 4382 if (status == noErr)
4385 if (!NILP(dir)) { 4383 {
4386 FSRef defLoc;
4387 AEDesc defLocAed; 4384 AEDesc defLocAed;
4385#ifdef MAC_OSX
4386 FSRef defLoc;
4388 status = FSPathMakeRef(SDATA(ENCODE_FILE(dir)), &defLoc, NULL); 4387 status = FSPathMakeRef(SDATA(ENCODE_FILE(dir)), &defLoc, NULL);
4388#else
4389 FSSpec defLoc;
4390 status = posix_pathname_to_fsspec (SDATA (ENCODE_FILE (dir)), &defLoc);
4391#endif
4389 if (status == noErr) 4392 if (status == noErr)
4390 { 4393 {
4394#ifdef MAC_OSX
4391 AECreateDesc(typeFSRef, &defLoc, sizeof(FSRef), &defLocAed); 4395 AECreateDesc(typeFSRef, &defLoc, sizeof(FSRef), &defLocAed);
4396#else
4397 AECreateDesc(typeFSS, &defLoc, sizeof(FSSpec), &defLocAed);
4398#endif
4392 NavCustomControl(dialogRef, kNavCtlSetLocation, (void*) &defLocAed); 4399 NavCustomControl(dialogRef, kNavCtlSetLocation, (void*) &defLocAed);
4393 AEDisposeDesc(&defLocAed); 4400 AEDisposeDesc(&defLocAed);
4394 } 4401 }
4402 status = NavDialogRun(dialogRef);
4395 } 4403 }
4396 4404
4397 status = NavDialogRun(dialogRef);
4398 }
4399
4400 if (saveName) CFRelease(saveName); 4405 if (saveName) CFRelease(saveName);
4401 if (message) CFRelease(message); 4406 if (message) CFRelease(message);
4402 4407
@@ -4413,11 +4418,22 @@ If ONLY-DIR-P is non-nil, the user can only select directories. */)
4413 { 4418 {
4414 NavReplyRecord reply; 4419 NavReplyRecord reply;
4415 AEDesc aed; 4420 AEDesc aed;
4421#ifdef MAC_OSX
4416 FSRef fsRef; 4422 FSRef fsRef;
4423#else
4424 FSSpec fs;
4425#endif
4417 status = NavDialogGetReply(dialogRef, &reply); 4426 status = NavDialogGetReply(dialogRef, &reply);
4427
4428#ifdef MAC_OSX
4418 AECoerceDesc(&reply.selection, typeFSRef, &aed); 4429 AECoerceDesc(&reply.selection, typeFSRef, &aed);
4419 AEGetDescData(&aed, (void *) &fsRef, sizeof (FSRef)); 4430 AEGetDescData(&aed, (void *) &fsRef, sizeof (FSRef));
4420 FSRefMakePath(&fsRef, (UInt8 *) filename, sizeof (filename)); 4431 FSRefMakePath(&fsRef, (UInt8 *) filename, sizeof (filename));
4432#else
4433 AECoerceDesc (&reply.selection, typeFSS, &aed);
4434 AEGetDescData (&aed, (void *) &fs, sizeof (FSSpec));
4435 fsspec_to_posix_pathname (&fs, filename, sizeof (filename) - 1);
4436#endif
4421 AEDisposeDesc(&aed); 4437 AEDisposeDesc(&aed);
4422 if (reply.saveFileName) 4438 if (reply.saveFileName)
4423 { 4439 {
diff --git a/src/macgui.h b/src/macgui.h
index cb157bb8c25..6a961318b76 100644
--- a/src/macgui.h
+++ b/src/macgui.h
@@ -29,10 +29,11 @@ typedef char * XrmDatabase; /* fix later */
29 29
30typedef unsigned long Time; 30typedef unsigned long Time;
31 31
32#if MAC_OSX 32#ifdef HAVE_CARBON
33#undef Z
34#ifdef MAC_OSX
33#undef mktime 35#undef mktime
34#undef DEBUG 36#undef DEBUG
35#undef Z
36#undef free 37#undef free
37#undef malloc 38#undef malloc
38#undef realloc 39#undef realloc
@@ -44,8 +45,6 @@ typedef unsigned long Time;
44#include <Carbon/Carbon.h> 45#include <Carbon/Carbon.h>
45#undef mktime 46#undef mktime
46#define mktime emacs_mktime 47#define mktime emacs_mktime
47#undef Z
48#define Z (current_buffer->text->z)
49#undef free 48#undef free
50#define free unexec_free 49#define free unexec_free
51#undef malloc 50#undef malloc
@@ -59,12 +58,19 @@ typedef unsigned long Time;
59#undef init_process 58#undef init_process
60#define init_process emacs_init_process 59#define init_process emacs_init_process
61#undef INFINITY 60#undef INFINITY
62#else 61#else /* not MAC_OSX */
62#undef SIGHUP
63#define OLDP2C 1
64#include <Carbon.h>
65#endif /* not MAC_OSX */
66#undef Z
67#define Z (current_buffer->text->z)
68#else /* not HAVE_CARBON */
63#include <QuickDraw.h> /* for WindowPtr */ 69#include <QuickDraw.h> /* for WindowPtr */
64#include <QDOffscreen.h> /* for GWorldPtr */ 70#include <QDOffscreen.h> /* for GWorldPtr */
65#include <Windows.h> 71#include <Windows.h>
66#include <Gestalt.h> 72#include <Gestalt.h>
67#endif 73#endif /* not HAVE_CARBON */
68 74
69typedef WindowPtr Window; 75typedef WindowPtr Window;
70typedef GWorldPtr Pixmap; 76typedef GWorldPtr Pixmap;
diff --git a/src/macmenu.c b/src/macmenu.c
index f0696a49774..35615cc3796 100644
--- a/src/macmenu.c
+++ b/src/macmenu.c
@@ -35,7 +35,7 @@ Boston, MA 02111-1307, USA. */
35#include "charset.h" 35#include "charset.h"
36#include "coding.h" 36#include "coding.h"
37 37
38#ifndef MAC_OSX 38#if !TARGET_API_MAC_CARBON
39#include <MacTypes.h> 39#include <MacTypes.h>
40#include <Menus.h> 40#include <Menus.h>
41#include <QuickDraw.h> 41#include <QuickDraw.h>
@@ -47,7 +47,7 @@ Boston, MA 02111-1307, USA. */
47#if defined (__MRC__) || (__MSL__ >= 0x6000) 47#if defined (__MRC__) || (__MSL__ >= 0x6000)
48#include <ControlDefinitions.h> 48#include <ControlDefinitions.h>
49#endif 49#endif
50#endif /* not MAC_OSX */ 50#endif /* not TARGET_API_MAC_CARBON */
51 51
52/* This may include sys/types.h, and that somehow loses 52/* This may include sys/types.h, and that somehow loses
53 if this is not done before the other system files. */ 53 if this is not done before the other system files. */
diff --git a/src/macterm.c b/src/macterm.c
index 21effb23cfa..a98d4ae5eb4 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -34,12 +34,12 @@ Boston, MA 02111-1307, USA. */
34#include <alloca.h> 34#include <alloca.h>
35#endif 35#endif
36 36
37#ifdef MAC_OSX 37#if TARGET_API_MAC_CARBON
38/* USE_CARBON_EVENTS determines if the Carbon Event Manager is used to 38/* USE_CARBON_EVENTS determines if the Carbon Event Manager is used to
39 obtain events from the event queue. If set to 0, WaitNextEvent is 39 obtain events from the event queue. If set to 0, WaitNextEvent is
40 used instead. */ 40 used instead. */
41#define USE_CARBON_EVENTS 1 41#define USE_CARBON_EVENTS 1
42#else /* not MAC_OSX */ 42#else /* not TARGET_API_MAC_CARBON */
43#include <Quickdraw.h> 43#include <Quickdraw.h>
44#include <ToolUtils.h> 44#include <ToolUtils.h>
45#include <Sound.h> 45#include <Sound.h>
@@ -58,7 +58,7 @@ Boston, MA 02111-1307, USA. */
58#if __profile__ 58#if __profile__
59#include <profiler.h> 59#include <profiler.h>
60#endif 60#endif
61#endif /* not MAC_OSX */ 61#endif /* not TARGET_API_MAC_CARBON */
62 62
63#include "systty.h" 63#include "systty.h"
64#include "systime.h" 64#include "systime.h"
@@ -245,7 +245,7 @@ extern XrmDatabase x_load_resources P_ ((Display *, char *, char *, char *));
245 245
246extern int inhibit_window_system; 246extern int inhibit_window_system;
247 247
248#if __MRC__ 248#if __MRC__ && !TARGET_API_MAC_CARBON
249QDGlobals qd; /* QuickDraw global information structure. */ 249QDGlobals qd; /* QuickDraw global information structure. */
250#endif 250#endif
251 251
@@ -5574,6 +5574,9 @@ x_free_frame_resources (f)
5574 5574
5575 BLOCK_INPUT; 5575 BLOCK_INPUT;
5576 5576
5577 if (wp != tip_window)
5578 remove_window_handler (wp);
5579
5577 DisposeWindow (wp); 5580 DisposeWindow (wp);
5578 if (wp == tip_window) 5581 if (wp == tip_window)
5579 /* Neither WaitNextEvent nor ReceiveNextEvent receives `window 5582 /* Neither WaitNextEvent nor ReceiveNextEvent receives `window
@@ -7078,7 +7081,7 @@ x_find_ccl_program (fontp)
7078 7081
7079/* The Mac Event loop code */ 7082/* The Mac Event loop code */
7080 7083
7081#ifndef MAC_OSX 7084#if !TARGET_API_MAC_CARBON
7082#include <Events.h> 7085#include <Events.h>
7083#include <Quickdraw.h> 7086#include <Quickdraw.h>
7084#include <Balloons.h> 7087#include <Balloons.h>
@@ -7099,7 +7102,7 @@ x_find_ccl_program (fontp)
7099#if __MWERKS__ 7102#if __MWERKS__
7100#include <unix.h> 7103#include <unix.h>
7101#endif 7104#endif
7102#endif /* ! MAC_OSX */ 7105#endif /* ! TARGET_API_MAC_CARBON */
7103 7106
7104#define M_APPLE 128 7107#define M_APPLE 128
7105#define I_ABOUT 1 7108#define I_ABOUT 1
@@ -7200,12 +7203,16 @@ static pascal OSErr do_ae_quit_application (AppleEvent *, AppleEvent *, long);
7200/* Drag and Drop */ 7203/* Drag and Drop */
7201static pascal OSErr mac_do_track_drag (DragTrackingMessage, WindowPtr, void*, DragReference); 7204static pascal OSErr mac_do_track_drag (DragTrackingMessage, WindowPtr, void*, DragReference);
7202static pascal OSErr mac_do_receive_drag (WindowPtr, void*, DragReference); 7205static pascal OSErr mac_do_receive_drag (WindowPtr, void*, DragReference);
7206static DragTrackingHandlerUPP mac_do_track_dragUPP = NULL;
7207static DragReceiveHandlerUPP mac_do_receive_dragUPP = NULL;
7203#endif 7208#endif
7204 7209
7205#if USE_CARBON_EVENTS 7210#if USE_CARBON_EVENTS
7211#ifdef MAC_OSX
7206/* Preliminary Support for the OSX Services Menu */ 7212/* Preliminary Support for the OSX Services Menu */
7207static OSStatus mac_handle_service_event (EventHandlerCallRef,EventRef,void*); 7213static OSStatus mac_handle_service_event (EventHandlerCallRef,EventRef,void*);
7208static void init_service_handler (); 7214static void init_service_handler ();
7215#endif
7209/* Window Event Handler */ 7216/* Window Event Handler */
7210static pascal OSStatus mac_handle_window_event (EventHandlerCallRef, 7217static pascal OSStatus mac_handle_window_event (EventHandlerCallRef,
7211 EventRef, void *); 7218 EventRef, void *);
@@ -7844,7 +7851,7 @@ init_required_apple_events ()
7844} 7851}
7845 7852
7846#if USE_CARBON_EVENTS 7853#if USE_CARBON_EVENTS
7847 7854#ifdef MAC_OSX
7848void 7855void
7849init_service_handler () 7856init_service_handler ()
7850{ 7857{
@@ -7940,7 +7947,7 @@ mac_handle_service_event (EventHandlerCallRef callRef,
7940 } 7947 }
7941 return err; 7948 return err;
7942} 7949}
7943 7950#endif
7944 7951
7945static pascal OSStatus 7952static pascal OSStatus
7946mac_handle_window_event (next_handler, event, data) 7953mac_handle_window_event (next_handler, event, data)
@@ -8037,14 +8044,30 @@ install_window_handler (window)
8037 NULL, NULL); 8044 NULL, NULL);
8038#endif 8045#endif
8039#if TARGET_API_MAC_CARBON 8046#if TARGET_API_MAC_CARBON
8047 if (mac_do_track_dragUPP == NULL)
8048 mac_do_track_dragUPP = NewDragTrackingHandlerUPP (mac_do_track_drag);
8049 if (mac_do_receive_dragUPP == NULL)
8050 mac_do_receive_dragUPP = NewDragReceiveHandlerUPP (mac_do_receive_drag);
8051
8040 if (err == noErr) 8052 if (err == noErr)
8041 err = InstallTrackingHandler (mac_do_track_drag, window, NULL); 8053 err = InstallTrackingHandler (mac_do_track_dragUPP, window, NULL);
8042 if (err == noErr) 8054 if (err == noErr)
8043 err = InstallReceiveHandler (mac_do_receive_drag, window, NULL); 8055 err = InstallReceiveHandler (mac_do_receive_dragUPP, window, NULL);
8044#endif 8056#endif
8045 return err; 8057 return err;
8046} 8058}
8047 8059
8060void
8061remove_window_handler (window)
8062 WindowPtr window;
8063{
8064#if TARGET_API_MAC_CARBON
8065 if (mac_do_track_dragUPP)
8066 RemoveTrackingHandler (mac_do_track_dragUPP, window);
8067 if (mac_do_receive_dragUPP)
8068 RemoveReceiveHandler (mac_do_receive_dragUPP, window);
8069#endif
8070}
8048 8071
8049/* Open Application Apple Event */ 8072/* Open Application Apple Event */
8050static pascal OSErr 8073static pascal OSErr
@@ -8123,9 +8146,9 @@ do_ae_open_documents(AppleEvent *message, AppleEvent *reply, long refcon)
8123 /* AE file list is one based so just use that for indexing here. */ 8146 /* AE file list is one based so just use that for indexing here. */
8124 for (i = 1; i <= num_files_to_open; i++) 8147 for (i = 1; i <= num_files_to_open; i++)
8125 { 8148 {
8149 char unix_path_name[MAXPATHLEN];
8126#ifdef MAC_OSX 8150#ifdef MAC_OSX
8127 FSRef fref; 8151 FSRef fref;
8128 char unix_path_name[MAXPATHLEN];
8129 8152
8130 err = AEGetNthPtr (&the_desc, i, typeFSRef, &keyword, 8153 err = AEGetNthPtr (&the_desc, i, typeFSRef, &keyword,
8131 &actual_type, &fref, sizeof (FSRef), 8154 &actual_type, &fref, sizeof (FSRef),
@@ -8137,15 +8160,13 @@ do_ae_open_documents(AppleEvent *message, AppleEvent *reply, long refcon)
8137 == noErr) 8160 == noErr)
8138#else 8161#else
8139 FSSpec fs; 8162 FSSpec fs;
8140 Str255 path_name, unix_path_name;
8141 8163
8142 err = AEGetNthPtr(&the_desc, i, typeFSS, &keyword, &actual_type, 8164 err = AEGetNthPtr(&the_desc, i, typeFSS, &keyword, &actual_type,
8143 (Ptr) &fs, sizeof (fs), &actual_size); 8165 (Ptr) &fs, sizeof (fs), &actual_size);
8144 if (err != noErr) continue; 8166 if (err != noErr) continue;
8145 8167
8146 if (path_from_vol_dir_name (path_name, 255, fs.vRefNum, fs.parID, 8168 if (fsspec_to_posix_pathname (&fs, unix_path_name,
8147 fs.name) && 8169 sizeof (unix_path_name) - 1) == noErr)
8148 mac_to_posix_pathname (path_name, unix_path_name, 255))
8149#endif 8170#endif
8150 /* x-dnd functions expect undecoded filenames. */ 8171 /* x-dnd functions expect undecoded filenames. */
8151 drag_and_drop_file_list = 8172 drag_and_drop_file_list =
@@ -8264,10 +8285,9 @@ mac_do_receive_drag (WindowPtr window, void *handlerRefCon,
8264 { 8285 {
8265#ifdef MAC_OSX 8286#ifdef MAC_OSX
8266 FSRef fref; 8287 FSRef fref;
8267 char unix_path_name[MAXPATHLEN];
8268#else
8269 Str255 path_name, unix_path_name;
8270#endif 8288#endif
8289 char unix_path_name[MAXPATHLEN];
8290
8271 GetFlavorData (theDrag, theItem, flavorTypeHFS, &data, &size, 0L); 8291 GetFlavorData (theDrag, theItem, flavorTypeHFS, &data, &size, 0L);
8272#ifdef MAC_OSX 8292#ifdef MAC_OSX
8273 /* Use Carbon routines, otherwise it converts the file name 8293 /* Use Carbon routines, otherwise it converts the file name
@@ -8275,9 +8295,8 @@ mac_do_receive_drag (WindowPtr window, void *handlerRefCon,
8275 FSpMakeFSRef (&data.fileSpec, &fref); 8295 FSpMakeFSRef (&data.fileSpec, &fref);
8276 if (! FSRefMakePath (&fref, unix_path_name, sizeof (unix_path_name))); 8296 if (! FSRefMakePath (&fref, unix_path_name, sizeof (unix_path_name)));
8277#else 8297#else
8278 if (path_from_vol_dir_name (path_name, 255, data.fileSpec.vRefNum, 8298 if (fsspec_to_posix_pathname (&data.fileSpec, unix_path_name,
8279 data.fileSpec.parID, data.fileSpec.name) && 8299 sizeof (unix_path_name) - 1) == noErr)
8280 mac_to_posix_pathname (path_name, unix_path_name, 255))
8281#endif 8300#endif
8282 /* x-dnd functions expect undecoded filenames. */ 8301 /* x-dnd functions expect undecoded filenames. */
8283 drag_and_drop_file_list = 8302 drag_and_drop_file_list =
@@ -8374,7 +8393,7 @@ profiler_exit_proc ()
8374 hints and prompts in the minibuffer after the user stops typing for 8393 hints and prompts in the minibuffer after the user stops typing for
8375 a wait, etc. */ 8394 a wait, etc. */
8376 8395
8377#if !TARGET_API_MAC_CARBON 8396#ifdef MAC_OS8
8378#undef main 8397#undef main
8379int 8398int
8380main (void) 8399main (void)
@@ -8956,7 +8975,7 @@ XTread_socket (sd, expected, hold_quit)
8956 int keycode = (er.message & keyCodeMask) >> 8; 8975 int keycode = (er.message & keyCodeMask) >> 8;
8957 int xkeysym; 8976 int xkeysym;
8958 8977
8959#if USE_CARBON_EVENTS 8978#if USE_CARBON_EVENTS && defined (MAC_OSX)
8960 /* When using Carbon Events, we need to pass raw keyboard 8979 /* When using Carbon Events, we need to pass raw keyboard
8961 events to the TSM ourselves. If TSM handles it, it 8980 events to the TSM ourselves. If TSM handles it, it
8962 will pass back noErr, otherwise it will pass back 8981 will pass back noErr, otherwise it will pass back
@@ -9265,12 +9284,21 @@ make_mac_terminal_frame (struct frame *f)
9265 f->output_data.mac->mouse_pixel = 0xff00ff; 9284 f->output_data.mac->mouse_pixel = 0xff00ff;
9266 f->output_data.mac->cursor_foreground_pixel = 0x0000ff; 9285 f->output_data.mac->cursor_foreground_pixel = 0x0000ff;
9267 9286
9287#if TARGET_API_MAC_CARBON
9288 f->output_data.mac->text_cursor = kThemeIBeamCursor;
9289 f->output_data.mac->nontext_cursor = kThemeArrowCursor;
9290 f->output_data.mac->modeline_cursor = kThemeArrowCursor;
9291 f->output_data.mac->hand_cursor = kThemePointingHandCursor;
9292 f->output_data.mac->hourglass_cursor = kThemeWatchCursor;
9293 f->output_data.mac->horizontal_drag_cursor = kThemeResizeLeftRightCursor;
9294#else
9268 f->output_data.mac->text_cursor = GetCursor (iBeamCursor); 9295 f->output_data.mac->text_cursor = GetCursor (iBeamCursor);
9269 f->output_data.mac->nontext_cursor = &arrow_cursor; 9296 f->output_data.mac->nontext_cursor = &arrow_cursor;
9270 f->output_data.mac->modeline_cursor = &arrow_cursor; 9297 f->output_data.mac->modeline_cursor = &arrow_cursor;
9271 f->output_data.mac->hand_cursor = &arrow_cursor; 9298 f->output_data.mac->hand_cursor = &arrow_cursor;
9272 f->output_data.mac->hourglass_cursor = GetCursor (watchCursor); 9299 f->output_data.mac->hourglass_cursor = GetCursor (watchCursor);
9273 f->output_data.mac->horizontal_drag_cursor = &arrow_cursor; 9300 f->output_data.mac->horizontal_drag_cursor = &arrow_cursor;
9301#endif
9274 9302
9275 FRAME_FONTSET (f) = -1; 9303 FRAME_FONTSET (f) = -1;
9276 f->output_data.mac->explicit_parent = 0; 9304 f->output_data.mac->explicit_parent = 0;
@@ -9806,7 +9834,7 @@ mac_initialize ()
9806#if TARGET_API_MAC_CARBON 9834#if TARGET_API_MAC_CARBON
9807 init_required_apple_events (); 9835 init_required_apple_events ();
9808 9836
9809#if USE_CARBON_EVENTS 9837#if USE_CARBON_EVENTS && defined (MAC_OSX)
9810 init_service_handler (); 9838 init_service_handler ();
9811 9839
9812 init_quit_char_handler (); 9840 init_quit_char_handler ();
@@ -9814,9 +9842,11 @@ mac_initialize ()
9814 9842
9815 DisableMenuCommand (NULL, kHICommandQuit); 9843 DisableMenuCommand (NULL, kHICommandQuit);
9816 9844
9845#ifdef MAC_OSX
9817 if (!inhibit_window_system) 9846 if (!inhibit_window_system)
9818 MakeMeTheFrontProcess (); 9847 MakeMeTheFrontProcess ();
9819#endif 9848#endif
9849#endif
9820 UNBLOCK_INPUT; 9850 UNBLOCK_INPUT;
9821} 9851}
9822 9852
diff --git a/src/macterm.h b/src/macterm.h
index c1aa61e962b..42d79eb3577 100644
--- a/src/macterm.h
+++ b/src/macterm.h
@@ -604,10 +604,17 @@ extern void XSetWindowBackground P_ ((Display *, WindowPtr, unsigned long));
604extern void mac_draw_line_to_pixmap P_ ((Display *, Pixmap, GC, int, int, 604extern void mac_draw_line_to_pixmap P_ ((Display *, Pixmap, GC, int, int,
605 int, int)); 605 int, int));
606extern void mac_unload_font P_ ((struct mac_display_info *, XFontStruct *)); 606extern void mac_unload_font P_ ((struct mac_display_info *, XFontStruct *));
607extern OSErr install_window_handler P_ ((WindowPtr));
608extern void remove_window_handler P_ ((WindowPtr));
607 609
608#define FONT_TYPE_FOR_UNIBYTE(font, ch) 0 610#define FONT_TYPE_FOR_UNIBYTE(font, ch) 0
609#define FONT_TYPE_FOR_MULTIBYTE(font, ch) 0 611#define FONT_TYPE_FOR_MULTIBYTE(font, ch) 0
610 612
613/* Defined in mac.c. */
614
615extern OSErr posix_pathname_to_fsspec P_ ((const char *, FSSpec *));
616extern OSErr fsspec_to_posix_pathname P_ ((const FSSpec *, char *, int));
617extern void mac_clear_font_name_table P_ ((void));
611#if TARGET_API_MAC_CARBON 618#if TARGET_API_MAC_CARBON
612extern CFStringRef cfstring_create_with_utf8_cstring P_ ((const char *)); 619extern CFStringRef cfstring_create_with_utf8_cstring P_ ((const char *));
613#endif 620#endif
diff --git a/src/s/vms.h b/src/s/vms.h
index dc7877eaa67..1338cdb5718 100644
--- a/src/s/vms.h
+++ b/src/s/vms.h
@@ -109,6 +109,11 @@ Boston, MA 02111-1307, USA. */
109 your system and must be used only through an encapsulation 109 your system and must be used only through an encapsulation
110 (Which you should place, by convention, in sysdep.c). */ 110 (Which you should place, by convention, in sysdep.c). */
111 111
112/* In olden days, VMS filenames did not support hyphen (i.e., the "-"
113 character). You can #undef this in vmsX-Y.h for newer versions. */
114
115#define NO_HYPHENS_IN_FILENAMES
116
112/* Do you have the sharable library bug? If you link with a sharable 117/* Do you have the sharable library bug? If you link with a sharable
113 library that contains psects with the NOSHR attribute and also refer to 118 library that contains psects with the NOSHR attribute and also refer to
114 those psects in your program, the linker give you a private version of 119 those psects in your program, the linker give you a private version of
@@ -135,6 +140,10 @@ Boston, MA 02111-1307, USA. */
135 140
136/* #define READ_SYSUAF */ 141/* #define READ_SYSUAF */
137 142
143/* Traditionally, filenames on VMS are always upper case. */
144
145#define FILE_SYSTEM_CASE Fupcase
146
138/* On VMS these have a different name */ 147/* On VMS these have a different name */
139 148
140#define index strchr 149#define index strchr
diff --git a/src/s/vms4-4.h b/src/s/vms4-4.h
index 0abd8259143..7491f5c8f80 100644
--- a/src/s/vms4-4.h
+++ b/src/s/vms4-4.h
@@ -1,5 +1,7 @@
1#include "vms.h" 1#include "vms.h"
2#define VMS4_4 2#define VMS4_4
3 3
4#undef NO_HYPHENS_IN_FILENAMES
5
4/* arch-tag: 2e65c7ad-0d17-45a0-b4cb-3e76c72ea9d5 6/* arch-tag: 2e65c7ad-0d17-45a0-b4cb-3e76c72ea9d5
5 (do not change this comment) */ 7 (do not change this comment) */
diff --git a/src/s/vms5-5.h b/src/s/vms5-5.h
index ac0ba9461a2..83b08b42813 100644
--- a/src/s/vms5-5.h
+++ b/src/s/vms5-5.h
@@ -2,6 +2,8 @@
2#define VMS5_5 2#define VMS5_5
3#define VMS4_4 3#define VMS4_4
4 4
5#undef NO_HYPHENS_IN_FILENAMES
6
5/* The bug that SHARABLE_LIB_BUG fixes is gone in version 5.5 of VMS. 7/* The bug that SHARABLE_LIB_BUG fixes is gone in version 5.5 of VMS.
6 And defining it causes lossage because sys_errlist has a different 8 And defining it causes lossage because sys_errlist has a different
7 number of elements. */ 9 number of elements. */
diff --git a/src/xdisp.c b/src/xdisp.c
index 5e17a7e3ca5..2b69e885954 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -5083,11 +5083,12 @@ get_next_display_element (it)
5083 display. Then, set IT->dpvec to these glyphs. */ 5083 display. Then, set IT->dpvec to these glyphs. */
5084 GLYPH g; 5084 GLYPH g;
5085 int ctl_len; 5085 int ctl_len;
5086 int face_id, lface_id; 5086 int face_id, lface_id = 0 ;
5087 GLYPH escape_glyph; 5087 GLYPH escape_glyph;
5088 5088
5089 if (it->c < 128 && it->ctl_arrow_p) 5089 if (it->c < 128 && it->ctl_arrow_p)
5090 { 5090 {
5091 g = '^'; /* default glyph for Control */
5091 /* Set IT->ctl_chars[0] to the glyph for `^'. */ 5092 /* Set IT->ctl_chars[0] to the glyph for `^'. */
5092 if (it->dp 5093 if (it->dp
5093 && INTEGERP (DISP_CTRL_GLYPH (it->dp)) 5094 && INTEGERP (DISP_CTRL_GLYPH (it->dp))
@@ -5095,19 +5096,18 @@ get_next_display_element (it)
5095 { 5096 {
5096 g = XINT (DISP_CTRL_GLYPH (it->dp)); 5097 g = XINT (DISP_CTRL_GLYPH (it->dp));
5097 lface_id = FAST_GLYPH_FACE (g); 5098 lface_id = FAST_GLYPH_FACE (g);
5098 if (lface_id) 5099 }
5099 { 5100 if (lface_id)
5100 g = FAST_GLYPH_CHAR (g); 5101 {
5101 face_id = merge_faces (it->f, Qt, lface_id, 5102 g = FAST_GLYPH_CHAR (g);
5102 it->face_id); 5103 face_id = merge_faces (it->f, Qt, lface_id,
5103 } 5104 it->face_id);
5104 } 5105 }
5105 else 5106 else
5106 { 5107 {
5107 /* Merge the escape-glyph face into the current face. */ 5108 /* Merge the escape-glyph face into the current face. */
5108 face_id = merge_faces (it->f, Qescape_glyph, 0, 5109 face_id = merge_faces (it->f, Qescape_glyph, 0,
5109 it->face_id); 5110 it->face_id);
5110 g = '^';
5111 } 5111 }
5112 5112
5113 XSETINT (it->ctl_chars[0], g); 5113 XSETINT (it->ctl_chars[0], g);
@@ -5117,25 +5117,25 @@ get_next_display_element (it)
5117 goto display_control; 5117 goto display_control;
5118 } 5118 }
5119 5119
5120 escape_glyph = '\\'; /* default for Octal display */
5120 if (it->dp 5121 if (it->dp
5121 && INTEGERP (DISP_ESCAPE_GLYPH (it->dp)) 5122 && INTEGERP (DISP_ESCAPE_GLYPH (it->dp))
5122 && GLYPH_CHAR_VALID_P (XFASTINT (DISP_ESCAPE_GLYPH (it->dp)))) 5123 && GLYPH_CHAR_VALID_P (XFASTINT (DISP_ESCAPE_GLYPH (it->dp))))
5123 { 5124 {
5124 escape_glyph = XFASTINT (DISP_ESCAPE_GLYPH (it->dp)); 5125 escape_glyph = XFASTINT (DISP_ESCAPE_GLYPH (it->dp));
5125 lface_id = FAST_GLYPH_FACE (escape_glyph); 5126 lface_id = FAST_GLYPH_FACE (escape_glyph);
5126 if (lface_id) 5127 }
5127 { 5128 if (lface_id)
5128 escape_glyph = FAST_GLYPH_CHAR (escape_glyph); 5129 {
5129 face_id = merge_faces (it->f, Qt, lface_id, 5130 escape_glyph = FAST_GLYPH_CHAR (escape_glyph);
5130 it->face_id); 5131 face_id = merge_faces (it->f, Qt, lface_id,
5131 } 5132 it->face_id);
5132 } 5133 }
5133 else 5134 else
5134 { 5135 {
5135 /* Merge the escape-glyph face into the current face. */ 5136 /* Merge the escape-glyph face into the current face. */
5136 face_id = merge_faces (it->f, Qescape_glyph, 0, 5137 face_id = merge_faces (it->f, Qescape_glyph, 0,
5137 it->face_id); 5138 it->face_id);
5138 escape_glyph = '\\';
5139 } 5139 }
5140 5140
5141 if (it->c == 0x8a0 || it->c == 0x8ad) 5141 if (it->c == 0x8a0 || it->c == 0x8ad)
@@ -12284,7 +12284,11 @@ redisplay_window (window, just_this_one_p)
12284 { 12284 {
12285 init_iterator (&it, w, PT, PT_BYTE, NULL, DEFAULT_FACE_ID); 12285 init_iterator (&it, w, PT, PT_BYTE, NULL, DEFAULT_FACE_ID);
12286 move_it_vertically_backward (&it, 0); 12286 move_it_vertically_backward (&it, 0);
12287#if 0
12288 /* I think this assert is bogus if buffer contains
12289 invisible text or images. KFS. */
12287 xassert (IT_CHARPOS (it) <= PT); 12290 xassert (IT_CHARPOS (it) <= PT);
12291#endif
12288 it.current_y = 0; 12292 it.current_y = 0;
12289 } 12293 }
12290 12294