aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaroly Lorentey2007-04-22 12:45:07 +0000
committerKaroly Lorentey2007-04-22 12:45:07 +0000
commit6ca7e0d8570f684ce14f60a6c8fb9545a0c2c935 (patch)
tree45771ca4535584e12b5f4886c65f865b61527213
parent9d0799072a0d09bc14a99eaf372b262d1ba61399 (diff)
parentfcb006c4ee97e3413a794c543367b771f0237495 (diff)
downloademacs-6ca7e0d8570f684ce14f60a6c8fb9545a0c2c935.tar.gz
emacs-6ca7e0d8570f684ce14f60a6c8fb9545a0c2c935.zip
Merged from emacs@sv.gnu.org
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-702 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-703 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-704 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-705 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-706 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-707 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-216 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-602
-rw-r--r--ChangeLog9
-rw-r--r--INSTALL11
-rw-r--r--admin/FOR-RELEASE2
-rw-r--r--admin/notes/copyright7
-rw-r--r--confdefs.h136
-rwxr-xr-xconfigure14
-rw-r--r--configure.in12
-rw-r--r--conftest.c176
-rw-r--r--conftest.er10
-rw-r--r--etc/ChangeLog8
-rw-r--r--etc/DEVEL.HUMOR6
-rw-r--r--etc/NEWS26
-rw-r--r--etc/PROBLEMS8
-rw-r--r--etc/TODO10
-rw-r--r--etc/images/icons/emacs_16.pngbin783 -> 704 bytes
-rw-r--r--etc/images/icons/emacs_24.pngbin1068 -> 987 bytes
-rw-r--r--etc/images/icons/emacs_32.pngbin2488 -> 2403 bytes
-rw-r--r--etc/images/icons/emacs_48.pngbin3526 -> 3430 bytes
-rw-r--r--lisp/ChangeLog67
-rw-r--r--lisp/arc-mode.el36
-rw-r--r--lisp/calendar/diary-lib.el19
-rw-r--r--lisp/calendar/parse-time.el3
-rw-r--r--lisp/calendar/todo-mode.el12
-rw-r--r--lisp/gnus/ChangeLog12
-rw-r--r--lisp/gnus/gnus-art.el69
-rw-r--r--lisp/gnus/mm-view.el10
-rw-r--r--lisp/international/mule.el6
-rw-r--r--lisp/paren.el8
-rw-r--r--lisp/progmodes/cc-cmds.el24
-rw-r--r--lisp/replace.el10
-rw-r--r--lisp/textmodes/bibtex.el76
-rw-r--r--lispref/ChangeLog10
-rw-r--r--lispref/files.texi13
-rw-r--r--lispref/text.texi22
-rw-r--r--src/ChangeLog6
-rw-r--r--src/mac.c2
-rw-r--r--src/minibuf.c10
37 files changed, 713 insertions, 127 deletions
diff --git a/ChangeLog b/ChangeLog
index 4844d5b53b3..1540894a199 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
12007-04-19 Glenn Morris <rgm@gnu.org>
2
3 * configure.in: Signal error if Xaw libs are missing in a Lucid
4 build.
5
62007-04-18 Glenn Morris <rgm@gnu.org>
7
8 * INSTALL: Mention CPP.
9
12007-04-15 Glenn Morris <rgm@gnu.org> 102007-04-15 Glenn Morris <rgm@gnu.org>
2 11
3 * FTP: Replace with a pointer to the web version. 12 * FTP: Replace with a pointer to the web version.
diff --git a/INSTALL b/INSTALL
index 9d0376965a4..ce4359f86da 100644
--- a/INSTALL
+++ b/INSTALL
@@ -364,11 +364,12 @@ Some tests might fail because the compiler should look in special
364directories for some header files, or link against optional 364directories for some header files, or link against optional
365libraries, or use special compilation options. You can force 365libraries, or use special compilation options. You can force
366`configure' and the build process which follows it to do that by 366`configure' and the build process which follows it to do that by
367setting the variables CPPFLAGS, CFLAGS, LDFLAGS, LIBS, and CC before 367setting the variables CPPFLGS, CFLAGS, LDFLAGS, LIBS, CPP and CC before
368running `configure'. CPPFLAGS lists the options passed to the 368running `configure'. CPP is the command which invokes the
369preprocessor, CFLAGS are compilation options, LDFLAGS are options used 369preprocessor, CPPFLAGS lists the options passed to it, CFLAGS are
370when linking, LIBS are libraries to link against, and CC is the 370compilation options, LDFLAGS are options used when linking, LIBS are
371command which invokes the compiler. 371libraries to link against, and CC is the command which invokes the
372compiler.
372 373
373Here's an example of a `configure' invocation, assuming a Bourne-like 374Here's an example of a `configure' invocation, assuming a Bourne-like
374shell such as Bash, which uses these variables: 375shell such as Bash, which uses these variables:
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index 714a6ee0c58..01ce105f0d6 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -41,6 +41,8 @@ to the hack introduced on 2005-07-01 to fix some other Cleartype problem.
41 41
42* BUGS 42* BUGS
43 43
44** nferrier@tapsellferrier.co.uk, April 18: rcirc multiline nick adding
45
44* DOCUMENTATION 46* DOCUMENTATION
45 47
46** Check the Emacs Tutorial. 48** Check the Emacs Tutorial.
diff --git a/admin/notes/copyright b/admin/notes/copyright
index fcf577b3be8..d7f12bd8ad4 100644
--- a/admin/notes/copyright
+++ b/admin/notes/copyright
@@ -306,6 +306,13 @@ originally. Although we have the legal right to switch to v2 or later,
306rms prefers that we do not do so. 306rms prefers that we do not do so.
307 307
308 308
309man/*.texi - All manuals should be under GFDL, and should include a
310copy of it, so that they can be distributed separately. faq.texi has
311a different license, for some reason no-one can remember.
312http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00583.html
313http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00618.html
314
315
309msdos/is_exec.c, sigaction.c - these files are copyright DJ Delorie. 316msdos/is_exec.c, sigaction.c - these files are copyright DJ Delorie.
310Leave the copyrights alone. Leave the Eli Zaretskii copyright in 317Leave the copyrights alone. Leave the Eli Zaretskii copyright in
311is_exec.c alone. See the msdos/README file for the legal history of 318is_exec.c alone. See the msdos/README file for the legal history of
diff --git a/confdefs.h b/confdefs.h
new file mode 100644
index 00000000000..3947318258e
--- /dev/null
+++ b/confdefs.h
@@ -0,0 +1,136 @@
1#define PACKAGE_NAME ""
2#define PACKAGE_TARNAME ""
3#define PACKAGE_VERSION ""
4#define PACKAGE_STRING ""
5#define PACKAGE_BUGREPORT ""
6#define MAIL_USE_POP 1
7#define _GNU_SOURCE 1
8#define _FILE_OFFSET_BITS 64
9#define STDC_HEADERS 1
10#define HAVE_SYS_TYPES_H 1
11#define HAVE_SYS_STAT_H 1
12#define HAVE_STDLIB_H 1
13#define HAVE_STRING_H 1
14#define HAVE_MEMORY_H 1
15#define HAVE_STRINGS_H 1
16#define HAVE_INTTYPES_H 1
17#define HAVE_STDINT_H 1
18#define HAVE_UNISTD_H 1
19#define HAVE_SYS_SOUNDCARD_H 1
20#define HAVE_SYS_SELECT_H 1
21#define HAVE_SYS_TIMEB_H 1
22#define HAVE_SYS_TIME_H 1
23#define HAVE_UNISTD_H 1
24#define HAVE_UTIME_H 1
25#define HAVE_LINUX_VERSION_H 1
26#define HAVE_TERMIOS_H 1
27#define HAVE_LIMITS_H 1
28#define HAVE_STRING_H 1
29#define HAVE_STDLIB_H 1
30#define HAVE_TERMCAP_H 1
31#define HAVE_STDIO_EXT_H 1
32#define HAVE_FCNTL_H 1
33#define HAVE_STRINGS_H 1
34#define HAVE_PTY_H 1
35#define HAVE_SYS_MMAN_H 1
36#define HAVE_SYS_PARAM_H 1
37#define HAVE_SYS_VLIMIT_H 1
38#define HAVE_SYS_RESOURCE_H 1
39#define HAVE_LOCALE_H 1
40#define HAVE_SYS_UTSNAME_H 1
41#define HAVE_PWD_H 1
42#define HAVE_PERSONALITY_LINUX32 1
43#define HAVE_TERM_H 1
44#define STDC_HEADERS 1
45#define TIME_WITH_SYS_TIME 1
46#define HAVE_DECL_SYS_SIGLIST 0
47#define HAVE_DECL___SYS_SIGLIST 0
48#define HAVE_SYS_WAIT_H 1
49#define HAVE_STRUCT_UTIMBUF 1
50#define RETSIGTYPE void
51#define HAVE_SPEED_T 1
52#define HAVE_TIMEVAL 1
53#define HAVE_SYS_SOCKET_H 1
54#define HAVE_NET_IF_H 1
55#define HAVE_STRUCT_TM_TM_ZONE 1
56#define HAVE_TM_ZONE 1
57#define HAVE_TM_GMTOFF 1
58#define HAVE_STRUCT_IFREQ_IFR_FLAGS 1
59#define HAVE_STRUCT_IFREQ_IFR_HWADDR 1
60#define HAVE_STRUCT_IFREQ_IFR_NETMASK 1
61#define HAVE_STRUCT_IFREQ_IFR_BROADADDR 1
62#define HAVE_STRUCT_IFREQ_IFR_ADDR 1
63#define PROTOTYPES 1
64#define __PROTOTYPES 1
65#define POINTER_TYPE void
66#define HAVE_LONG_FILE_NAMES 1
67#define DOUG_LEA_MALLOC 1
68#define HAVE_STDLIB_H 1
69#define HAVE_UNISTD_H 1
70#define HAVE_GETPAGESIZE 1
71#define HAVE_MMAP 1
72#define HAVE_XKBGETKEYBOARD 1
73#define HAVE_XRMSETDATABASE 1
74#define HAVE_XSCREENRESOURCESTRING 1
75#define HAVE_XSCREENNUMBEROFSCREEN 1
76#define HAVE_XSETWMPROTOCOLS 1
77#define HAVE_X11R6 1
78#define HAVE_X11R5 1
79#define HAVE_GTK_MAIN 1
80#define HAVE_GTK 1
81#define HAVE_GDK_DISPLAY_OPEN 1
82#define HAVE_GTK_MULTIDISPLAY 1
83#define HAVE_GTK_FILE_SELECTION_NEW 1
84#define HAVE_GTK_FILE_CHOOSER_DIALOG_NEW 1
85#define HAVE_GTK_FILE_BOTH 1
86#define HAVE_PTHREAD_H 1
87#define HAVE_GTK_AND_PTHREAD 1
88#define HAVE_XFT 1
89#define USE_TOOLKIT_SCROLL_BARS 1
90#define HAVE_XIM 1
91#define USE_XIM 1
92#define XRegisterIMInstantiateCallback_arg6 XPointer
93#define HAVE_XPM 1
94#define HAVE_JPEG 1
95#define HAVE_JPEG 1
96#define HAVE_PNG_H 1
97#define HAVE_LIBPNG_PNG_H 1
98#define HAVE_PNG 1
99#define HAVE_TIFF 1
100#define HAVE_GIF 1
101#define HAVE_X_SM 1
102#define HAVE_H_ERRNO 1
103#define HAVE_ALLOCA_H 1
104#define HAVE_ALLOCA 1
105#define HAVE_LIBM 1
106#define HAVE_LIBLOCKFILE 1
107#define HAVE_TOUCHLOCK 1
108#define HAVE_MAILLOCK_H 1
109#define HAVE_GETHOSTNAME 1
110#define HAVE_GETDOMAINNAME 1
111#define HAVE_DUP2 1
112#define HAVE_RENAME 1
113#define HAVE_CLOSEDIR 1
114#define HAVE_MKDIR 1
115#define HAVE_RMDIR 1
116#define HAVE_SYSINFO 1
117#define HAVE_GETRUSAGE 1
118#define HAVE_GET_CURRENT_DIR_NAME 1
119#define HAVE_RANDOM 1
120#define HAVE_LRAND48 1
121#define HAVE_BCOPY 1
122#define HAVE_BCMP 1
123#define HAVE_LOGB 1
124#define HAVE_FREXP 1
125#define HAVE_FMOD 1
126#define HAVE_RINT 1
127#define HAVE_CBRT 1
128#define HAVE_FTIME 1
129#define HAVE_SETSID 1
130#define HAVE_STRERROR 1
131#define HAVE_FPATHCONF 1
132#define HAVE_SELECT 1
133#define HAVE_MKTIME 1
134#define HAVE_EUIDACCESS 1
135#define HAVE_GETPAGESIZE 1
136#define HAVE_TZSET 1
diff --git a/configure b/configure
index 2946bf89a07..9a10b5a5e4a 100755
--- a/configure
+++ b/configure
@@ -2996,6 +2996,8 @@ _ACEOF
2996 ;; 2996 ;;
2997 *-sunos5* | *-solaris* ) 2997 *-sunos5* | *-solaris* )
2998 opsys=sol2-6 2998 opsys=sol2-6
2999## FIXME: make this into a proper fix that checks the compiler type,
3000## rather than relying on path. Or is /usr/ccs/lib/cpp a bad default now?
2999 if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then 3001 if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then
3000 ## -Xs prevents spurious whitespace. 3002 ## -Xs prevents spurious whitespace.
3001 NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs" 3003 NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs"
@@ -12014,7 +12016,7 @@ _ACEOF
12014 fi 12016 fi
12015fi 12017fi
12016 12018
12017if test x"${USE_X_TOOLKIT}" = xmaybe; then 12019if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
12018 if test x"${HAVE_X11R5}" = xyes; then 12020 if test x"${HAVE_X11R5}" = xyes; then
12019 { echo "$as_me:$LINENO: checking X11 version 5 with Xaw" >&5 12021 { echo "$as_me:$LINENO: checking X11 version 5 with Xaw" >&5
12020echo $ECHO_N "checking X11 version 5 with Xaw... $ECHO_C" >&6; } 12022echo $ECHO_N "checking X11 version 5 with Xaw... $ECHO_C" >&6; }
@@ -12073,9 +12075,15 @@ fi
12073echo "${ECHO_T}5 or newer, with Xaw; use toolkit by default" >&6; } 12075echo "${ECHO_T}5 or newer, with Xaw; use toolkit by default" >&6; }
12074 USE_X_TOOLKIT=LUCID 12076 USE_X_TOOLKIT=LUCID
12075 else 12077 else
12076 { echo "$as_me:$LINENO: result: before 5 or no Xaw; do not use toolkit by default" >&5 12078 if test x"${USE_X_TOOLKIT}" = xLUCID; then
12079 { { echo "$as_me:$LINENO: error: Lucid toolkit requires X11/Xaw include files" >&5
12080echo "$as_me: error: Lucid toolkit requires X11/Xaw include files" >&2;}
12081 { (exit 1); exit 1; }; }
12082 else
12083 { echo "$as_me:$LINENO: result: before 5 or no Xaw; do not use toolkit by default" >&5
12077echo "${ECHO_T}before 5 or no Xaw; do not use toolkit by default" >&6; } 12084echo "${ECHO_T}before 5 or no Xaw; do not use toolkit by default" >&6; }
12078 USE_X_TOOLKIT=none 12085 USE_X_TOOLKIT=none
12086 fi
12079 fi 12087 fi
12080 else 12088 else
12081 USE_X_TOOLKIT=none 12089 USE_X_TOOLKIT=none
diff --git a/configure.in b/configure.in
index edd29d0ad75..19be91bef69 100644
--- a/configure.in
+++ b/configure.in
@@ -1030,6 +1030,8 @@ dnl see the `changequote' comment above.
1030 ;; 1030 ;;
1031 *-sunos5* | *-solaris* ) 1031 *-sunos5* | *-solaris* )
1032 opsys=sol2-6 1032 opsys=sol2-6
1033## FIXME: make this into a proper fix that checks the compiler type,
1034## rather than relying on path. Or is /usr/ccs/lib/cpp a bad default now?
1033 if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then 1035 if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then
1034 ## -Xs prevents spurious whitespace. 1036 ## -Xs prevents spurious whitespace.
1035 NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs" 1037 NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs"
@@ -2204,7 +2206,7 @@ fi
2204 2206
2205dnl Do not put whitespace before the #include statements below. 2207dnl Do not put whitespace before the #include statements below.
2206dnl Older compilers (eg sunos4 cc) choke on it. 2208dnl Older compilers (eg sunos4 cc) choke on it.
2207if test x"${USE_X_TOOLKIT}" = xmaybe; then 2209if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
2208 if test x"${HAVE_X11R5}" = xyes; then 2210 if test x"${HAVE_X11R5}" = xyes; then
2209 AC_MSG_CHECKING(X11 version 5 with Xaw) 2211 AC_MSG_CHECKING(X11 version 5 with Xaw)
2210 AC_CACHE_VAL(emacs_cv_x11_version_5_with_xaw, 2212 AC_CACHE_VAL(emacs_cv_x11_version_5_with_xaw,
@@ -2218,8 +2220,12 @@ if test x"${USE_X_TOOLKIT}" = xmaybe; then
2218 AC_MSG_RESULT([5 or newer, with Xaw; use toolkit by default]) 2220 AC_MSG_RESULT([5 or newer, with Xaw; use toolkit by default])
2219 USE_X_TOOLKIT=LUCID 2221 USE_X_TOOLKIT=LUCID
2220 else 2222 else
2221 AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default) 2223 if test x"${USE_X_TOOLKIT}" = xLUCID; then
2222 USE_X_TOOLKIT=none 2224 AC_MSG_ERROR([Lucid toolkit requires X11/Xaw include files])
2225 else
2226 AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default)
2227 USE_X_TOOLKIT=none
2228 fi
2223 fi 2229 fi
2224 else 2230 else
2225 USE_X_TOOLKIT=none 2231 USE_X_TOOLKIT=none
diff --git a/conftest.c b/conftest.c
new file mode 100644
index 00000000000..4bc395dff7e
--- /dev/null
+++ b/conftest.c
@@ -0,0 +1,176 @@
1/* confdefs.h. */
2#define PACKAGE_NAME ""
3#define PACKAGE_TARNAME ""
4#define PACKAGE_VERSION ""
5#define PACKAGE_STRING ""
6#define PACKAGE_BUGREPORT ""
7#define MAIL_USE_POP 1
8#define _GNU_SOURCE 1
9#define _FILE_OFFSET_BITS 64
10#define STDC_HEADERS 1
11#define HAVE_SYS_TYPES_H 1
12#define HAVE_SYS_STAT_H 1
13#define HAVE_STDLIB_H 1
14#define HAVE_STRING_H 1
15#define HAVE_MEMORY_H 1
16#define HAVE_STRINGS_H 1
17#define HAVE_INTTYPES_H 1
18#define HAVE_STDINT_H 1
19#define HAVE_UNISTD_H 1
20#define HAVE_SYS_SOUNDCARD_H 1
21#define HAVE_SYS_SELECT_H 1
22#define HAVE_SYS_TIMEB_H 1
23#define HAVE_SYS_TIME_H 1
24#define HAVE_UNISTD_H 1
25#define HAVE_UTIME_H 1
26#define HAVE_LINUX_VERSION_H 1
27#define HAVE_TERMIOS_H 1
28#define HAVE_LIMITS_H 1
29#define HAVE_STRING_H 1
30#define HAVE_STDLIB_H 1
31#define HAVE_TERMCAP_H 1
32#define HAVE_STDIO_EXT_H 1
33#define HAVE_FCNTL_H 1
34#define HAVE_STRINGS_H 1
35#define HAVE_PTY_H 1
36#define HAVE_SYS_MMAN_H 1
37#define HAVE_SYS_PARAM_H 1
38#define HAVE_SYS_VLIMIT_H 1
39#define HAVE_SYS_RESOURCE_H 1
40#define HAVE_LOCALE_H 1
41#define HAVE_SYS_UTSNAME_H 1
42#define HAVE_PWD_H 1
43#define HAVE_PERSONALITY_LINUX32 1
44#define HAVE_TERM_H 1
45#define STDC_HEADERS 1
46#define TIME_WITH_SYS_TIME 1
47#define HAVE_DECL_SYS_SIGLIST 0
48#define HAVE_DECL___SYS_SIGLIST 0
49#define HAVE_SYS_WAIT_H 1
50#define HAVE_STRUCT_UTIMBUF 1
51#define RETSIGTYPE void
52#define HAVE_SPEED_T 1
53#define HAVE_TIMEVAL 1
54#define HAVE_SYS_SOCKET_H 1
55#define HAVE_NET_IF_H 1
56#define HAVE_STRUCT_TM_TM_ZONE 1
57#define HAVE_TM_ZONE 1
58#define HAVE_TM_GMTOFF 1
59#define HAVE_STRUCT_IFREQ_IFR_FLAGS 1
60#define HAVE_STRUCT_IFREQ_IFR_HWADDR 1
61#define HAVE_STRUCT_IFREQ_IFR_NETMASK 1
62#define HAVE_STRUCT_IFREQ_IFR_BROADADDR 1
63#define HAVE_STRUCT_IFREQ_IFR_ADDR 1
64#define PROTOTYPES 1
65#define __PROTOTYPES 1
66#define POINTER_TYPE void
67#define HAVE_LONG_FILE_NAMES 1
68#define DOUG_LEA_MALLOC 1
69#define HAVE_STDLIB_H 1
70#define HAVE_UNISTD_H 1
71#define HAVE_GETPAGESIZE 1
72#define HAVE_MMAP 1
73#define HAVE_XKBGETKEYBOARD 1
74#define HAVE_XRMSETDATABASE 1
75#define HAVE_XSCREENRESOURCESTRING 1
76#define HAVE_XSCREENNUMBEROFSCREEN 1
77#define HAVE_XSETWMPROTOCOLS 1
78#define HAVE_X11R6 1
79#define HAVE_X11R5 1
80#define HAVE_GTK_MAIN 1
81#define HAVE_GTK 1
82#define HAVE_GDK_DISPLAY_OPEN 1
83#define HAVE_GTK_MULTIDISPLAY 1
84#define HAVE_GTK_FILE_SELECTION_NEW 1
85#define HAVE_GTK_FILE_CHOOSER_DIALOG_NEW 1
86#define HAVE_GTK_FILE_BOTH 1
87#define HAVE_PTHREAD_H 1
88#define HAVE_GTK_AND_PTHREAD 1
89#define HAVE_XFT 1
90#define USE_TOOLKIT_SCROLL_BARS 1
91#define HAVE_XIM 1
92#define USE_XIM 1
93#define XRegisterIMInstantiateCallback_arg6 XPointer
94#define HAVE_XPM 1
95#define HAVE_JPEG 1
96#define HAVE_JPEG 1
97#define HAVE_PNG_H 1
98#define HAVE_LIBPNG_PNG_H 1
99#define HAVE_PNG 1
100#define HAVE_TIFF 1
101#define HAVE_GIF 1
102#define HAVE_X_SM 1
103#define HAVE_H_ERRNO 1
104#define HAVE_ALLOCA_H 1
105#define HAVE_ALLOCA 1
106#define HAVE_LIBM 1
107#define HAVE_LIBLOCKFILE 1
108#define HAVE_TOUCHLOCK 1
109#define HAVE_MAILLOCK_H 1
110#define HAVE_GETHOSTNAME 1
111#define HAVE_GETDOMAINNAME 1
112#define HAVE_DUP2 1
113#define HAVE_RENAME 1
114#define HAVE_CLOSEDIR 1
115#define HAVE_MKDIR 1
116#define HAVE_RMDIR 1
117#define HAVE_SYSINFO 1
118#define HAVE_GETRUSAGE 1
119#define HAVE_GET_CURRENT_DIR_NAME 1
120#define HAVE_RANDOM 1
121#define HAVE_LRAND48 1
122#define HAVE_BCOPY 1
123#define HAVE_BCMP 1
124#define HAVE_LOGB 1
125#define HAVE_FREXP 1
126#define HAVE_FMOD 1
127#define HAVE_RINT 1
128#define HAVE_CBRT 1
129#define HAVE_FTIME 1
130#define HAVE_SETSID 1
131#define HAVE_STRERROR 1
132#define HAVE_FPATHCONF 1
133#define HAVE_SELECT 1
134#define HAVE_MKTIME 1
135#define HAVE_EUIDACCESS 1
136#define HAVE_GETPAGESIZE 1
137#define HAVE_TZSET 1
138/* end confdefs.h. */
139/* Define setlocale to an innocuous variant, in case <limits.h> declares setlocale.
140 For example, HP-UX 11i <limits.h> declares gettimeofday. */
141#define setlocale innocuous_setlocale
142
143/* System header to define __stub macros and hopefully few prototypes,
144 which can conflict with char setlocale (); below.
145 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
146 <limits.h> exists even on freestanding compilers. */
147
148#ifdef __STDC__
149# include <limits.h>
150#else
151# include <assert.h>
152#endif
153
154#undef setlocale
155
156/* Override any GCC internal prototype to avoid an error.
157 Use char because int might match the return type of a GCC
158 builtin and then its argument prototype would still apply. */
159#ifdef __cplusplus
160extern "C"
161#endif
162char setlocale ();
163/* The GNU C library defines this for functions which it implements
164 to always fail with ENOSYS. Some functions are actually named
165 something starting with __ and the normal name is an alias. */
166#if defined __stub_setlocale || defined __stub___setlocale
167choke me
168#endif
169
170int
171main ()
172{
173return setlocale ();
174 ;
175 return 0;
176}
diff --git a/conftest.er1 b/conftest.er1
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/conftest.er1
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 1f2b33fe8a8..351b5d28463 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,11 @@
12007-04-19 Glenn Morris <rgm@gnu.org>
2
3 * PROBLEMS: Expand a little on Emacs not knowing fqdn.
4
52007-04-17 David Kastrup <dak@gnu.org>
6
7 * NEWS: Mention `query-replace-regexp-eval' being deprecated.
8
12007-04-15 Glenn Morris <rgm@gnu.org> 92007-04-15 Glenn Morris <rgm@gnu.org>
2 10
3 * FTP: Make it a duplicate of ../FTP. 11 * FTP: Make it a duplicate of ../FTP.
diff --git a/etc/DEVEL.HUMOR b/etc/DEVEL.HUMOR
index 5a291c458bd..10353c6517a 100644
--- a/etc/DEVEL.HUMOR
+++ b/etc/DEVEL.HUMOR
@@ -178,3 +178,9 @@ still out about that end of time thing."
178constants with anything like the universality of e and pi." 178constants with anything like the universality of e and pi."
179 "42" 179 "42"
180 -- Alan Mackenzie and David Hansen 180 -- Alan Mackenzie and David Hansen
181
182----------------------------------------------------------------------
183
184 "[...] So please do not delete anything."
185 "Done."
186 -- RMS and David Kastrup
diff --git a/etc/NEWS b/etc/NEWS
index 9e18d887834..4a4958c93a1 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -106,14 +106,14 @@ item was added to the menu bar to make it easily accessible
106--- 106---
107** New translations of the Emacs Tutorial are available in the 107** New translations of the Emacs Tutorial are available in the
108following languages: Brasilian Portuguese, Bulgarian, Chinese (both 108following languages: Brasilian Portuguese, Bulgarian, Chinese (both
109with simplified and traditional characters), French, and Italian. 109with simplified and traditional characters), French, Russian, and
110Type `C-u C-h t' to choose one of them in case your language setup 110Italian. Type `C-u C-h t' to choose one of them in case your language
111doesn't automatically select the right one. 111setup doesn't automatically select the right one.
112 112
113--- 113---
114** A Portuguese translation of Emacs' reference card has been added. 114** New translations of the Emacs reference card are available in the
115Its name is `pt-br-refcard.tex'. The corresponding PostScript file is 115Brasilian Portuguese and Russian. The corresponding PostScript files
116also included. 116are also included.
117 117
118--- 118---
119** A French translation of the `Emacs Survival Guide' is available. 119** A French translation of the `Emacs Survival Guide' is available.
@@ -633,12 +633,12 @@ a match if part of it has a read-only property.
633*** When used interactively, the commands `query-replace-regexp' and 633*** When used interactively, the commands `query-replace-regexp' and
634`replace-regexp' allow \,expr to be used in a replacement string, 634`replace-regexp' allow \,expr to be used in a replacement string,
635where expr is an arbitrary Lisp expression evaluated at replacement 635where expr is an arbitrary Lisp expression evaluated at replacement
636time. In many cases, this will be more convenient than using 636time. `\#' in a replacement string now refers to the count of
637`query-replace-regexp-eval'. `\#' in a replacement string now refers 637replacements already made by the replacement command. All regular
638to the count of replacements already made by the replacement command. 638expression replacement commands now allow `\?' in the replacement
639All regular expression replacement commands now allow `\?' in the 639string to specify a position where the replacement string can be
640replacement string to specify a position where the replacement string 640edited for each replacement. `query-replace-regexp-eval' is now
641can be edited for each replacement. 641deprecated since it offers no additional functionality.
642 642
643+++ 643+++
644*** query-replace uses isearch lazy highlighting when the new user option 644*** query-replace uses isearch lazy highlighting when the new user option
@@ -2218,7 +2218,7 @@ handling of edits of concealed text, undo concerns, etc.
2218 - version number incremented to 2.2 2218 - version number incremented to 2.2
2219 2219
2220+++ 2220+++
2221** The variable `woman-topic-at-point' was renamed 2221** The variable `woman-topic-at-point' is renamed
2222to `woman-use-topic-at-point' and behaves differently: if this 2222to `woman-use-topic-at-point' and behaves differently: if this
2223variable is non-nil, the `woman' command uses the word at point 2223variable is non-nil, the `woman' command uses the word at point
2224automatically, without asking for a confirmation. Otherwise, the word 2224automatically, without asking for a confirmation. Otherwise, the word
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 6c72bacae11..4d4603b4be0 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -386,9 +386,13 @@ again to say this:
386 386
387*** Emacs does not know your host's fully-qualified domain name. 387*** Emacs does not know your host's fully-qualified domain name.
388 388
389For example, (system-name) returns some variation on
390"localhost.localdomain", rather the name you were expecting.
391
389You need to configure your machine with a fully qualified domain name, 392You need to configure your machine with a fully qualified domain name,
390either in /etc/hosts, /etc/hostname, the NIS, or wherever your system 393(i.e. a name with at least one ".") either in /etc/hosts,
391calls for specifying this. 394/etc/hostname, the NIS, or wherever your system calls for specifying
395this.
392 396
393If you cannot fix the configuration, you can set the Lisp variable 397If you cannot fix the configuration, you can set the Lisp variable
394mail-host-address to the value you want. 398mail-host-address to the value you want.
diff --git a/etc/TODO b/etc/TODO
index 302500884f4..75c57b73449 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -14,6 +14,12 @@ to the FSF.
14 14
15* Small but important fixes needed in existing features: 15* Small but important fixes needed in existing features:
16 16
17** Fix compilation when Xaw3d libraries are present but libxaw is not.
18In new X11 versions, xaw3dg-dev does not depend on libxaw-dev, so the
19latter need not be installed. As a result, all the source files that
20look for include files in X11/Xaw should look in X11/Xaw3d if we are
21using Xaw3d.
22
17** Compute the list of active keymaps *after* reading the first event. 23** Compute the list of active keymaps *after* reading the first event.
18 24
19** Avoid using "iff" in doc strings. 25** Avoid using "iff" in doc strings.
@@ -94,6 +100,8 @@ current buffer.
94 100
95** make back_comment use syntax-ppss or equivalent. 101** make back_comment use syntax-ppss or equivalent.
96 102
103** Improve configure's treatment of NON_GNU_CPP on Solaris.
104
97* Important features: 105* Important features:
98 106
99** Provide user-friendly ways to list all available font families, 107** Provide user-friendly ways to list all available font families,
@@ -544,7 +552,7 @@ but which can also be used as a modifier).
544 a derived mode of sendmail.el. Or arrange for messages.el to be split 552 a derived mode of sendmail.el. Or arrange for messages.el to be split
545 into a small core and "the rest" so that we use less resources as long as 553 into a small core and "the rest" so that we use less resources as long as
546 we stick to the features provided in sendmail.el. 554 we stick to the features provided in sendmail.el.
547 555
548** Replace gmalloc.c with the modified Doug Lea code from the current 556** Replace gmalloc.c with the modified Doug Lea code from the current
549 GNU libc so that the special mmapping of buffers can be removed -- 557 GNU libc so that the special mmapping of buffers can be removed --
550 that apparently loses under Solaris, at least. [fx has mostly done 558 that apparently loses under Solaris, at least. [fx has mostly done
diff --git a/etc/images/icons/emacs_16.png b/etc/images/icons/emacs_16.png
index ca5122b05b2..f6ecebb813f 100644
--- a/etc/images/icons/emacs_16.png
+++ b/etc/images/icons/emacs_16.png
Binary files differ
diff --git a/etc/images/icons/emacs_24.png b/etc/images/icons/emacs_24.png
index 95c72d3c49f..ae39bdb17e3 100644
--- a/etc/images/icons/emacs_24.png
+++ b/etc/images/icons/emacs_24.png
Binary files differ
diff --git a/etc/images/icons/emacs_32.png b/etc/images/icons/emacs_32.png
index 17b4686e182..9b234306aee 100644
--- a/etc/images/icons/emacs_32.png
+++ b/etc/images/icons/emacs_32.png
Binary files differ
diff --git a/etc/images/icons/emacs_48.png b/etc/images/icons/emacs_48.png
index 56c6de6f364..97aa4107f50 100644
--- a/etc/images/icons/emacs_48.png
+++ b/etc/images/icons/emacs_48.png
Binary files differ
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 9fc26846057..b42647a61bf 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,56 @@
12007-04-19 Kevin Ryde <user42@zip.com.au>
2
3 * arc-mode.el (archive-find-type): lzh-exe for lzh self-extracting exe.
4 (archive-lzh-summarize): Add optional start arg for where to start
5 looking at the archive.
6 (archive-lzh-exe-summarize, archive-lzh-exe-extract): New functions.
7
8 * international/mule.el (auto-coding-alist): no-conversion for .exe
9 and .EXE.
10
112007-04-19 Alan Mackenzie <acm@muc.de>
12
13 * progmodes/cc-cmds.el (c-in-function-trailer-p): Fix this: when a
14 function return type contains "struct", "union", etc.
15 c-end-of-defun goes too far forward.
16
172007-04-19 Chong Yidong <cyd@stupidchicken.com>
18
19 * paren.el (show-paren-function): Reset window-start to avoid
20 recentering.
21
222007-04-19 Glenn Morris <rgm@gnu.org>
23
24 * calendar/todo-mode.el: Fix typo: "threshhold" -> "threshold".
25
262007-04-18 Glenn Morris <rgm@gnu.org>
27
28 * calendar/diary-lib.el (diary-header-line-format): Add a custom
29 :set function.
30 (diary-list-entries): Only switch to diary-mode from
31 default-major-mode (reverts 2007-03-21 change). Otherwise, if in
32 diary-mode set header-line-format, in case of any customization.
33
342007-04-18 Levin Du <zslevin@gmail.com> (tiny change)
35
36 * calendar/parse-time.el (parse-time-string-chars): Check if CHAR
37 is less than the length of parse-time-syntax.
38
392007-04-17 David Kastrup <dak@gnu.org>
40
41 * replace.el (query-replace-regexp-eval): Deprecate.
42
432007-04-17 Alan Mackenzie <acm@muc.de>
44
45 * progmodes/cc-cmds.el (c-beginning-of-defun): With -ve arg and
46 point too close to EOB, leave point at EOB rather than last `}'.
47
482007-04-17 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
49
50 * textmodes/bibtex.el (bibtex-include-OPTkey)
51 (bibtex-user-optional-fields, bibtex-entry-field-alist):
52 Fix defcustom.
53
12007-04-17 Glenn Morris <rgm@gnu.org> 542007-04-17 Glenn Morris <rgm@gnu.org>
2 55
3 * calendar/cal-dst.el (calendar-dst-find-startend): If YEAR cannot 56 * calendar/cal-dst.el (calendar-dst-find-startend): If YEAR cannot
@@ -66,8 +119,7 @@
66 119
672007-04-13 Chong Yidong <cyd@stupidchicken.com> 1202007-04-13 Chong Yidong <cyd@stupidchicken.com>
68 121
69 * progmodes/compile.el (compilation-start): Revert 2007-03-25 122 * progmodes/compile.el (compilation-start): Revert 2007-03-25 change.
70 change.
71 123
72 * files.el: Ditto. 124 * files.el: Ditto.
73 125
@@ -135,8 +187,8 @@
135 187
1362007-04-11 Stefan Monnier <monnier@iro.umontreal.ca> 1882007-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
137 189
138 * desktop.el (desktop-save, desktop-create-buffer): Replace mapcar with 190 * desktop.el (desktop-save, desktop-create-buffer): Replace mapcar
139 dolist. 191 with dolist.
140 (after-init-hook): Don't quote lambda. 192 (after-init-hook): Don't quote lambda.
141 (desktop-first-buffer): Don't wrap it in eval-when-compile. 193 (desktop-first-buffer): Don't wrap it in eval-when-compile.
142 (desktop-internal-v2s): Remove unused var `el'. 194 (desktop-internal-v2s): Remove unused var `el'.
@@ -715,6 +767,13 @@
715 (number-of-diary-entries): Change :set to use diary-set-maybe-redraw. 767 (number-of-diary-entries): Change :set to use diary-set-maybe-redraw.
716 (diary-list-entries): Always run diary-mode. 768 (diary-list-entries): Always run diary-mode.
717 769
7702007-03-20 Kenichi Handa <handa@m17n.org>
771
772 * international/quail.el (quail-setup-completion-buf): Make the
773 completion buffer read-only.
774 (quail-completion): Adjusted for the above change. Leave the
775 modified flag nil.
776
7182007-03-20 David Kastrup <dak@gnu.org> 7772007-03-20 David Kastrup <dak@gnu.org>
719 778
720 * files.el (magic-mode-alist): Require literal "%!PS" string for 779 * files.el (magic-mode-alist): Require literal "%!PS" string for
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index 8630d3e8b06..1a22ac628e6 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -700,6 +700,10 @@ archive.
700 (string-match "\\.[aA][rR][cC]$" 700 (string-match "\\.[aA][rR][cC]$"
701 (or buffer-file-name (buffer-name)))) 701 (or buffer-file-name (buffer-name))))
702 'arc) 702 'arc)
703 ;; This pattern modelled on the BSD/GNU+Linux `file' command.
704 ;; Have seen capital "LHA's", and file has lower case "LHa's" too.
705 ;; Note this regexp is also in archive-exe-p.
706 ((looking-at "MZ\\(.\\|\n\\)\\{34\\}LH[aA]'s SFX ") 'lzh-exe)
703 (t (error "Buffer format not recognized"))))) 707 (t (error "Buffer format not recognized")))))
704;; ------------------------------------------------------------------------- 708;; -------------------------------------------------------------------------
705(defun archive-summarize (&optional shut-up) 709(defun archive-summarize (&optional shut-up)
@@ -1398,8 +1402,8 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
1398;; ------------------------------------------------------------------------- 1402;; -------------------------------------------------------------------------
1399;; Section: Lzh Archives 1403;; Section: Lzh Archives
1400 1404
1401(defun archive-lzh-summarize () 1405(defun archive-lzh-summarize (&optional start)
1402 (let ((p 1) 1406 (let ((p (or start 1)) ;; 1 for .lzh, something further on for .exe
1403 (totalsize 0) 1407 (totalsize 0)
1404 (maxlen 8) 1408 (maxlen 8)
1405 files 1409 files
@@ -1621,6 +1625,34 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
1621 ;; This should work even though newmode will be dynamically accessed. 1625 ;; This should work even though newmode will be dynamically accessed.
1622 (lambda (old) (archive-calc-mode old newmode t)) 1626 (lambda (old) (archive-calc-mode old newmode t))
1623 files "a unix-style mode" 8)) 1627 files "a unix-style mode" 8))
1628
1629;; -------------------------------------------------------------------------
1630;; Section: Lzh Self-Extracting .exe Archives
1631;;
1632;; No support for modifying these files. It looks like the lha for unix
1633;; program (as of version 1.14i) can't create or retain the DOS exe part.
1634;; If you do an "lha a" on a .exe for instance it renames and writes to a
1635;; plain .lzh.
1636
1637(defun archive-lzh-exe-summarize ()
1638 "Summarize the contents of an LZH self-extracting exe, for `archive-mode'."
1639
1640 ;; Skip the initial executable code part and apply archive-lzh-summarize
1641 ;; to the archive part proper. The "-lh5-" etc regexp here for the start
1642 ;; is the same as in archive-find-type.
1643 ;;
1644 ;; The lha program (version 1.14i) does this in skip_msdos_sfx1_code() by
1645 ;; a similar scan. It looks for "..-l..-" plus for level 0 or 1 a test of
1646 ;; the header checksum, or level 2 a test of the "attribute" and size.
1647 ;;
1648 (re-search-forward "..-l[hz][0-9ds]-" nil)
1649 (archive-lzh-summarize (match-beginning 0)))
1650
1651;; `archive-lzh-extract' runs "lha pq", and that works for .exe as well as
1652;; .lzh files
1653(defalias 'archive-lzh-exe-extract 'archive-lzh-extract
1654 "Extract a member from an LZH self-extracting exe, for `archive-mode'.")
1655
1624;; ------------------------------------------------------------------------- 1656;; -------------------------------------------------------------------------
1625;; Section: Zip Archives 1657;; Section: Zip Archives
1626 1658
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
index df01a508031..ee93b60eb98 100644
--- a/lisp/calendar/diary-lib.el
+++ b/lisp/calendar/diary-lib.el
@@ -276,6 +276,7 @@ The format of the header is specified by `diary-header-line-format'."
276 :group 'diary 276 :group 'diary
277 :type 'boolean 277 :type 'boolean
278 :initialize 'custom-initialize-default 278 :initialize 'custom-initialize-default
279 ;; FIXME overkill.
279 :set 'diary-set-maybe-redraw 280 :set 'diary-set-maybe-redraw
280 :version "22.1") 281 :version "22.1")
281 282
@@ -292,6 +293,9 @@ before edit/copy"
292Only used if `diary-header-line-flag' is non-nil." 293Only used if `diary-header-line-flag' is non-nil."
293 :group 'diary 294 :group 'diary
294 :type 'sexp 295 :type 'sexp
296 :initialize 'custom-initialize-default
297 ;; FIXME overkill.
298 :set 'diary-set-maybe-redraw
295 :version "22.1") 299 :version "22.1")
296 300
297(defvar diary-saved-point) ; internal 301(defvar diary-saved-point) ; internal
@@ -434,10 +438,17 @@ If LIST-ONLY is non-nil don't modify or display the buffer, only return a list."
434 (or (verify-visited-file-modtime diary-buffer) 438 (or (verify-visited-file-modtime diary-buffer)
435 (revert-buffer t t)))) 439 (revert-buffer t t))))
436 ;; Setup things like the header-line-format and invisibility-spec. 440 ;; Setup things like the header-line-format and invisibility-spec.
437 ;; This used to only run if the major-mode was default-major-mode, 441 (if (eq major-mode default-major-mode)
438 ;; but that meant eg changes to header-line-format did not 442 (diary-mode)
439 ;; take effect from one diary invocation to the next. 443 ;; This kludge is to make customizations to
440 (diary-mode) 444 ;; diary-header-line-flag after diary has been displayed
445 ;; take effect. Unconditionally calling (diary-mode)
446 ;; clobbers file local variables.
447 ;; http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-03/msg00363.html
448 ;; http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-04/msg00404.html
449 (if (eq major-mode 'diary-mode)
450 (setq header-line-format (and diary-header-line-flag
451 diary-header-line-format))))
441 ;; d-s-p is passed to the diary display function. 452 ;; d-s-p is passed to the diary display function.
442 (let ((diary-saved-point (point))) 453 (let ((diary-saved-point (point)))
443 (save-excursion 454 (save-excursion
diff --git a/lisp/calendar/parse-time.el b/lisp/calendar/parse-time.el
index 4a786da7726..0913bc92160 100644
--- a/lisp/calendar/parse-time.el
+++ b/lisp/calendar/parse-time.el
@@ -66,7 +66,8 @@
66 (aref parse-time-digits char)) 66 (aref parse-time-digits char))
67 67
68(defsubst parse-time-string-chars (char) 68(defsubst parse-time-string-chars (char)
69 (aref parse-time-syntax char)) 69 (and (< char (length parse-time-syntax))
70 (aref parse-time-syntax char)))
70 71
71(put 'parse-error 'error-conditions '(parse-error error)) 72(put 'parse-error 'error-conditions '(parse-error error))
72(put 'parse-error 'error-message "Parsing error") 73(put 'parse-error 'error-message "Parsing error")
diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el
index 9449c84cb2a..f70400ed27d 100644
--- a/lisp/calendar/todo-mode.el
+++ b/lisp/calendar/todo-mode.el
@@ -205,11 +205,11 @@
205;; by the binary insertion algorithm. However, you may not 205;; by the binary insertion algorithm. However, you may not
206;; really have a need for such accurate priorities amongst your 206;; really have a need for such accurate priorities amongst your
207;; TODO items. If you now think about the binary insertion 207;; TODO items. If you now think about the binary insertion
208;; halfing the size of the window each time, then the threshhold 208;; halfing the size of the window each time, then the threshold
209;; is the window size at which it will stop. If you set the 209;; is the window size at which it will stop. If you set the
210;; threshhold to zero, the upper and lower bound will coincide at 210;; threshold to zero, the upper and lower bound will coincide at
211;; the end of the loop and you will insert your item just before 211;; the end of the loop and you will insert your item just before
212;; that point. If you set the threshhold to, e.g. 8, it will stop 212;; that point. If you set the threshold to, e.g. 8, it will stop
213;; as soon as the window size drops below that amount and will 213;; as soon as the window size drops below that amount and will
214;; insert the item in the approximate centre of that window. I 214;; insert the item in the approximate centre of that window. I
215;; got the idea for this feature after reading a very helpful 215;; got the idea for this feature after reading a very helpful
@@ -307,10 +307,10 @@ If you have 8 items in your TODO list, then you may get asked 4
307questions by the binary insertion algorithm. However, you may not 307questions by the binary insertion algorithm. However, you may not
308really have a need for such accurate priorities amongst your TODO 308really have a need for such accurate priorities amongst your TODO
309items. If you now think about the binary insertion halfing the size 309items. If you now think about the binary insertion halfing the size
310of the window each time, then the threshhold is the window size at 310of the window each time, then the threshold is the window size at
311which it will stop. If you set the threshhold to zero, the upper and 311which it will stop. If you set the threshold to zero, the upper and
312lower bound will coincide at the end of the loop and you will insert 312lower bound will coincide at the end of the loop and you will insert
313your item just before that point. If you set the threshhold to, 313your item just before that point. If you set the threshold to,
314e.g. 8, it will stop as soon as the window size drops below that 314e.g. 8, it will stop as soon as the window size drops below that
315amount and will insert the item in the approximate center of that 315amount and will insert the item in the approximate center of that
316window." 316window."
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 8f094dd6537..b02dc6c2f8e 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,15 @@
12007-04-19 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * gnus-art.el (gnus-mime-strip-charset-parameters): New function.
4 (gnus-mime-view-part-as-charset): Use it; redisplay subpart currently
5 displayed of multipart/alternative part if it is invoked from summary
6 buffer.
7 (gnus-article-part-wrapper): Select article window.
8
9 * mm-view.el (mm-inline-text-html-render-with-w3m)
10 (mm-inline-text-html-render-with-w3m-standalone)
11 (mm-inline-render-with-function): Use mail-parse-charset by default.
12
12007-04-10 Katsumi Yamaoka <yamaoka@jpl.org> 132007-04-10 Katsumi Yamaoka <yamaoka@jpl.org>
2 14
3 * gnus-msg.el (gnus-inews-yank-articles): Use 15 * gnus-msg.el (gnus-inews-yank-articles): Use
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 552f3a68f49..6ae52b5eedd 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -4606,6 +4606,21 @@ are decompressed."
4606 (mm-string-to-multibyte contents))) 4606 (mm-string-to-multibyte contents)))
4607 (goto-char b))))) 4607 (goto-char b)))))
4608 4608
4609(defun gnus-mime-strip-charset-parameters (handle)
4610 "Strip charset parameters from HANDLE."
4611 (if (stringp (car handle))
4612 (mapc #'gnus-mime-strip-charset-parameters (cdr handle))
4613 (let* ((type (mm-handle-type (if (equal (mm-handle-media-type handle)
4614 "message/external-body")
4615 (progn
4616 (unless (mm-handle-cache handle)
4617 (mm-extern-cache-contents handle))
4618 (mm-handle-cache handle))
4619 handle)))
4620 (charset (assq 'charset (cdr type))))
4621 (when charset
4622 (delq charset type)))))
4623
4609(defun gnus-mime-view-part-as-charset (&optional handle arg) 4624(defun gnus-mime-view-part-as-charset (&optional handle arg)
4610 "Insert the MIME part under point into the current buffer using the 4625 "Insert the MIME part under point into the current buffer using the
4611specified charset." 4626specified charset."
@@ -4614,7 +4629,7 @@ specified charset."
4614 (let ((handle (or handle (get-text-property (point) 'gnus-data))) 4629 (let ((handle (or handle (get-text-property (point) 'gnus-data)))
4615 (fun (get-text-property (point) 'gnus-callback)) 4630 (fun (get-text-property (point) 'gnus-callback))
4616 (gnus-newsgroup-ignored-charsets 'gnus-all) 4631 (gnus-newsgroup-ignored-charsets 'gnus-all)
4617 gnus-newsgroup-charset type charset) 4632 gnus-newsgroup-charset form preferred parts)
4618 (when handle 4633 (when handle
4619 (if (mm-handle-undisplayer handle) 4634 (if (mm-handle-undisplayer handle)
4620 (mm-remove-part handle)) 4635 (mm-remove-part handle))
@@ -4622,17 +4637,24 @@ specified charset."
4622 (setq gnus-newsgroup-charset 4637 (setq gnus-newsgroup-charset
4623 (or (cdr (assq arg gnus-summary-show-article-charset-alist)) 4638 (or (cdr (assq arg gnus-summary-show-article-charset-alist))
4624 (mm-read-coding-system "Charset: "))) 4639 (mm-read-coding-system "Charset: ")))
4625 ;; Strip the charset parameter from `handle'. 4640 (gnus-mime-strip-charset-parameters handle)
4626 (setq type (mm-handle-type 4641 (when (and (consp (setq form (cdr-safe fun)))
4627 (if (equal (mm-handle-media-type handle) 4642 (setq form (ignore-errors
4628 "message/external-body") 4643 (assq 'gnus-mime-display-alternative form)))
4629 (progn 4644 (setq preferred (caddr form))
4630 (unless (mm-handle-cache handle) 4645 (progn
4631 (mm-extern-cache-contents handle)) 4646 (when (eq (car preferred) 'quote)
4632 (mm-handle-cache handle)) 4647 (setq preferred (cadr preferred)))
4633 handle)) 4648 (not (equal preferred
4634 charset (assq 'charset (cdr type))) 4649 (get-text-property (point) 'gnus-data))))
4635 (delq charset type) 4650 (setq parts (get-text-property (point) 'gnus-part))
4651 (setq parts (cdr (assq parts
4652 gnus-article-mime-handle-alist)))
4653 (equal (mm-handle-media-type parts) "multipart/alternative")
4654 (setq parts (reverse (cdr parts))))
4655 (setcar (cddr form)
4656 (list 'quote (or (cadr (member preferred parts))
4657 (car parts)))))
4636 (funcall fun handle))))) 4658 (funcall fun handle)))))
4637 4659
4638(defun gnus-mime-view-part-externally (&optional handle) 4660(defun gnus-mime-view-part-externally (&optional handle)
@@ -4688,13 +4710,22 @@ If no internal viewer is available, use an external viewer."
4688 (funcall (cdr action-pair))))) 4710 (funcall (cdr action-pair)))))
4689 4711
4690(defun gnus-article-part-wrapper (n function) 4712(defun gnus-article-part-wrapper (n function)
4691 (save-current-buffer 4713 (let ((window (get-buffer-window gnus-article-buffer 'visible))
4692 (set-buffer gnus-article-buffer) 4714 frame)
4693 (when (> n (length gnus-article-mime-handle-alist)) 4715 (when window
4694 (error "No such part")) 4716 ;; It is necessary to select the article window so that
4695 (gnus-article-goto-part n) 4717 ;; `gnus-article-goto-part' may really move the point.
4696 (let ((handle (cdr (assq n gnus-article-mime-handle-alist)))) 4718 (setq frame (selected-frame))
4697 (funcall function handle)))) 4719 (gnus-select-frame-set-input-focus (window-frame window))
4720 (unwind-protect
4721 (save-window-excursion
4722 (select-window window)
4723 (when (> n (length gnus-article-mime-handle-alist))
4724 (error "No such part"))
4725 (gnus-article-goto-part n)
4726 (let ((handle (cdr (assq n gnus-article-mime-handle-alist))))
4727 (funcall function handle)))
4728 (gnus-select-frame-set-input-focus frame)))))
4698 4729
4699(defun gnus-article-pipe-part (n) 4730(defun gnus-article-pipe-part (n)
4700 "Pipe MIME part N, which is the numerical prefix." 4731 "Pipe MIME part N, which is the numerical prefix."
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el
index 14d480fe7df..888c814bf24 100644
--- a/lisp/gnus/mm-view.el
+++ b/lisp/gnus/mm-view.el
@@ -238,7 +238,8 @@
238 (mm-setup-w3m) 238 (mm-setup-w3m)
239 (let ((text (mm-get-part handle)) 239 (let ((text (mm-get-part handle))
240 (b (point)) 240 (b (point))
241 (charset (mail-content-type-get (mm-handle-type handle) 'charset))) 241 (charset (or (mail-content-type-get (mm-handle-type handle) 'charset)
242 mail-parse-charset)))
242 (save-excursion 243 (save-excursion
243 (insert (if charset (mm-decode-string text charset) text)) 244 (insert (if charset (mm-decode-string text charset) text))
244 (save-restriction 245 (save-restriction
@@ -302,7 +303,9 @@
302 "Render a text/html part using w3m." 303 "Render a text/html part using w3m."
303 (if (mm-w3m-standalone-supports-m17n-p) 304 (if (mm-w3m-standalone-supports-m17n-p)
304 (let ((source (mm-get-part handle)) 305 (let ((source (mm-get-part handle))
305 (charset (mail-content-type-get (mm-handle-type handle) 'charset)) 306 (charset (or (mail-content-type-get (mm-handle-type handle)
307 'charset)
308 (symbol-name mail-parse-charset)))
306 cs) 309 cs)
307 (unless (and charset 310 (unless (and charset
308 (setq cs (mm-charset-to-coding-system charset)) 311 (setq cs (mm-charset-to-coding-system charset))
@@ -368,7 +371,8 @@
368 371
369(defun mm-inline-render-with-function (handle func &rest args) 372(defun mm-inline-render-with-function (handle func &rest args)
370 (let ((source (mm-get-part handle)) 373 (let ((source (mm-get-part handle))
371 (charset (mail-content-type-get (mm-handle-type handle) 'charset))) 374 (charset (or (mail-content-type-get (mm-handle-type handle) 'charset)
375 mail-parse-charset)))
372 (mm-insert-inline 376 (mm-insert-inline
373 handle 377 handle
374 (mm-with-multibyte-buffer 378 (mm-with-multibyte-buffer
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index e873aadb8b4..7e137d987b3 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -1586,8 +1586,10 @@ text, and convert it in the temporary buffer. Otherwise, convert in-place."
1586;;; FILE I/O 1586;;; FILE I/O
1587 1587
1588(defcustom auto-coding-alist 1588(defcustom auto-coding-alist
1589 '(("\\.\\(arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\)\\'" . no-conversion) 1589 ;; .exe and .EXE are added to support archive-mode looking at DOS
1590 ("\\.\\(ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\)\\'" . no-conversion) 1590 ;; self-extracting exe archives.
1591 '(("\\.\\(arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\|exe\\)\\'" . no-conversion)
1592 ("\\.\\(ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|EXE\\)\\'" . no-conversion)
1591 ("\\.\\(sx[dmicw]\\|odt\\|tar\\|tgz\\)\\'" . no-conversion) 1593 ("\\.\\(sx[dmicw]\\|odt\\|tar\\|tgz\\)\\'" . no-conversion)
1592 ("\\.\\(gz\\|Z\\|bz\\|bz2\\|gpg\\)\\'" . no-conversion) 1594 ("\\.\\(gz\\|Z\\|bz\\|bz2\\|gpg\\)\\'" . no-conversion)
1593 ("\\.\\(jpe?g\\|png\\|gif\\|tiff?\\|p[bpgn]m\\)\\'" . no-conversion) 1595 ("\\.\\(jpe?g\\|png\\|gif\\|tiff?\\|p[bpgn]m\\)\\'" . no-conversion)
diff --git a/lisp/paren.el b/lisp/paren.el
index 95f718d5683..17f0c401901 100644
--- a/lisp/paren.el
+++ b/lisp/paren.el
@@ -143,6 +143,7 @@ in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time."
143 (let ((oldpos (point)) 143 (let ((oldpos (point))
144 (dir (cond ((eq (syntax-class (syntax-after (1- (point)))) 5) -1) 144 (dir (cond ((eq (syntax-class (syntax-after (1- (point)))) 5) -1)
145 ((eq (syntax-class (syntax-after (point))) 4) 1))) 145 ((eq (syntax-class (syntax-after (point))) 4) 1)))
146 (window-start (window-start))
146 pos mismatch face) 147 pos mismatch face)
147 ;; 148 ;;
148 ;; Find the other end of the sexp. 149 ;; Find the other end of the sexp.
@@ -247,7 +248,12 @@ in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time."
247 ;; 248 ;;
248 ;; Always set the overlay face, since it varies. 249 ;; Always set the overlay face, since it varies.
249 (overlay-put show-paren-overlay 'priority show-paren-priority) 250 (overlay-put show-paren-overlay 'priority show-paren-priority)
250 (overlay-put show-paren-overlay 'face face))) 251 (overlay-put show-paren-overlay 'face face))
252 ;; If there are continued lines, the above operations can
253 ;; force redisplay to recenter the window (since there is no
254 ;; way for it to know that the overlay changes to the buffer
255 ;; are harmless). So reset the window-start.
256 (set-window-start (selected-window) window-start))
251 ;; show-paren-mode is nil in this buffer. 257 ;; show-paren-mode is nil in this buffer.
252 (and show-paren-overlay 258 (and show-paren-overlay
253 (delete-overlay show-paren-overlay)) 259 (delete-overlay show-paren-overlay))
diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el
index 79043c87b63..9ef4aaace72 100644
--- a/lisp/progmodes/cc-cmds.el
+++ b/lisp/progmodes/cc-cmds.el
@@ -1360,10 +1360,24 @@ No indentation or other \"electric\" behavior is performed."
1360 (and c-opt-block-decls-with-vars-key 1360 (and c-opt-block-decls-with-vars-key
1361 (save-excursion 1361 (save-excursion
1362 (c-syntactic-skip-backward "^;}" lim) 1362 (c-syntactic-skip-backward "^;}" lim)
1363 (and (eq (char-before) ?\}) 1363 (let ((eo-block (point))
1364 (eq (car (c-beginning-of-decl-1 lim)) 'previous) 1364 bod)
1365 (looking-at c-opt-block-decls-with-vars-key) 1365 (and (eq (char-before) ?\})
1366 (point))))) 1366 (eq (car (c-beginning-of-decl-1 lim)) 'previous)
1367 (setq bod (point))
1368 ;; Look for struct or union or ... If we find one, it might
1369 ;; be the return type of a function, or the like. Exclude
1370 ;; this case.
1371 (c-syntactic-re-search-forward
1372 (concat "[;=\(\[{]\\|\\("
1373 c-opt-block-decls-with-vars-key
1374 "\\)")
1375 eo-block t t t)
1376 (match-beginning 1) ; Is there a "struct" etc., somewhere?
1377 (not (eq (char-before) ?_))
1378 (c-syntactic-re-search-forward "[;=\(\[{]" eo-block t t t)
1379 (eq (char-before) ?\{)
1380 bod)))))
1367 1381
1368(defun c-where-wrt-brace-construct () 1382(defun c-where-wrt-brace-construct ()
1369 ;; Determine where we are with respect to functions (or other brace 1383 ;; Determine where we are with respect to functions (or other brace
@@ -1531,7 +1545,7 @@ defun."
1531 (setq arg (c-forward-to-nth-EOF-} (- arg) where))) 1545 (setq arg (c-forward-to-nth-EOF-} (- arg) where)))
1532 ;; Move forward to the next opening brace.... 1546 ;; Move forward to the next opening brace....
1533 (when (and (= arg 0) 1547 (when (and (= arg 0)
1534 (c-syntactic-re-search-forward "{" nil t)) 1548 (c-syntactic-re-search-forward "{" nil 'eob))
1535 (backward-char) 1549 (backward-char)
1536 ;; ... and backward to the function header. 1550 ;; ... and backward to the function header.
1537 (c-beginning-of-decl-1) 1551 (c-beginning-of-decl-1)
diff --git a/lisp/replace.el b/lisp/replace.el
index a8dfd043c72..ed1fa9a6b59 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -303,6 +303,11 @@ Use \\[repeat-complex-command] after this command for details."
303 303
304(defun query-replace-regexp-eval (regexp to-expr &optional delimited start end) 304(defun query-replace-regexp-eval (regexp to-expr &optional delimited start end)
305 "Replace some things after point matching REGEXP with the result of TO-EXPR. 305 "Replace some things after point matching REGEXP with the result of TO-EXPR.
306
307Interactive use of this function is deprecated in favor of the
308`\\,' feature of `query-replace-regexp'. For non-interactive use, a loop
309using `search-forward-regexp' and `replace-match' is preferred.
310
306As each match is found, the user must type a character saying 311As each match is found, the user must type a character saying
307what to do with it. For directions, type \\[help-command] at that time. 312what to do with it. For directions, type \\[help-command] at that time.
308 313
@@ -354,6 +359,11 @@ Fourth and fifth arg START and END specify the region to operate on."
354 (perform-replace regexp (cons 'replace-eval-replacement to-expr) 359 (perform-replace regexp (cons 'replace-eval-replacement to-expr)
355 t 'literal delimited nil nil start end)) 360 t 'literal delimited nil nil start end))
356 361
362(make-obsolete 'query-replace-regexp-eval
363 "for interactive use, use the special `\\,' feature of
364`query-replace-regexp' instead. Non-interactively, a loop
365using `search-forward-regexp' and `replace-match' is preferred." "22.1")
366
357(defun map-query-replace-regexp (regexp to-strings &optional n start end) 367(defun map-query-replace-regexp (regexp to-strings &optional n start end)
358 "Replace some matches for REGEXP with various strings, in rotation. 368 "Replace some matches for REGEXP with various strings, in rotation.
359The second argument TO-STRINGS contains the replacement strings, 369The second argument TO-STRINGS contains the replacement strings,
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index 0545ca85812..0b413e3b7ab 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -86,7 +86,7 @@ If this is a function, call it to generate the initial field text."
86 :group 'bibtex 86 :group 'bibtex
87 :type '(choice (const :tag "None" nil) 87 :type '(choice (const :tag "None" nil)
88 (string :tag "Initial text") 88 (string :tag "Initial text")
89 (function :tag "Initialize Function" :value fun) 89 (function :tag "Initialize Function")
90 (const :tag "Default" t))) 90 (const :tag "Default" t)))
91(put 'bibtex-include-OPTkey 'risky-local-variable t) 91(put 'bibtex-include-OPTkey 'risky-local-variable t)
92 92
@@ -98,11 +98,8 @@ CROSSREF-OPTIONAL lists in `bibtex-entry-field-alist' (which see)."
98 :group 'bibtex 98 :group 'bibtex
99 :type '(repeat (group (string :tag "Field") 99 :type '(repeat (group (string :tag "Field")
100 (string :tag "Comment") 100 (string :tag "Comment")
101 (option (group :inline t 101 (option (choice :tag "Init"
102 :extra-offset -4 102 (const nil) string function)))))
103 (choice :tag "Init" :value ""
104 string
105 function))))))
106(put 'bibtex-user-optional-fields 'risky-local-variable t) 103(put 'bibtex-user-optional-fields 'risky-local-variable t)
107 104
108(defcustom bibtex-entry-format 105(defcustom bibtex-entry-format
@@ -454,45 +451,34 @@ of the field, and ALTERNATIVE-FLAG (either nil or t) marks if the
454field is an alternative. ALTERNATIVE-FLAG may be t only in the 451field is an alternative. ALTERNATIVE-FLAG may be t only in the
455REQUIRED or CROSSREF-REQUIRED lists." 452REQUIRED or CROSSREF-REQUIRED lists."
456 :group 'bibtex 453 :group 'bibtex
457 :type '(repeat (list (string :tag "Entry name") 454 :type '(repeat (group (string :tag "Entry name")
458 (list (repeat :tag "required" 455 (group (repeat :tag "Required fields"
459 (group (string :tag "Field") 456 (group (string :tag "Field")
460 (string :tag "Comment") 457 (string :tag "Comment")
461 (option (choice :tag "Init" :value nil 458 (option (choice :tag "Init" :value nil
462 (const nil) 459 (const nil) string function))
463 (string :tag "string") 460 (option (choice :tag "Alternative"
464 (function :tag "function"))) 461 (const :tag "No" nil)
465 (option (choice (const nil) 462 (const :tag "Yes" t)))))
466 (const :tag "Alternative" t))))) 463 (repeat :tag "Optional fields"
467 (repeat :tag "optional" 464 (group (string :tag "Field")
468 (group (string :tag "Field") 465 (string :tag "Comment")
469 (string :tag "Comment") 466 (option (choice :tag "Init" :value nil
470 (option (choice :tag "Init" :value nil 467 (const nil) string function)))))
471 (const nil) 468 (option :extra-offset -4
472 (string :tag "string") 469 (group (repeat :tag "Crossref: required fields"
473 (function :tag "function"))) 470 (group (string :tag "Field")
474 (option (choice (const nil) 471 (string :tag "Comment")
475 (const :tag "Alternative" t)))))) 472 (option (choice :tag "Init" :value nil
476 (option 473 (const nil) string function))
477 (list :tag "Crossref" 474 (option (choice :tag "Alternative"
478 (repeat :tag "required" 475 (const :tag "No" nil)
479 (group (string :tag "Field") 476 (const :tag "Yes" t)))))
480 (string :tag "Comment") 477 (repeat :tag "Crossref: optional fields"
481 (option (choice :tag "Init" :value nil 478 (group (string :tag "Field")
482 (const nil) 479 (string :tag "Comment")
483 (string :tag "string") 480 (option (choice :tag "Init" :value nil
484 (function :tag "function"))) 481 (const nil) string function)))))))))
485 (option (choice (const nil)
486 (const :tag "Alternative" t)))))
487 (repeat :tag "optional"
488 (group (string :tag "Field")
489 (string :tag "Comment")
490 (option (choice :tag "Init" :value nil
491 (const nil)
492 (string :tag "string")
493 (function :tag "function")))
494 (option (choice (const nil)
495 (const :tag "Alternative" t))))))))))
496(put 'bibtex-entry-field-alist 'risky-local-variable t) 482(put 'bibtex-entry-field-alist 'risky-local-variable t)
497 483
498(defcustom bibtex-comment-start "@Comment" 484(defcustom bibtex-comment-start "@Comment"
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index 87aae706fc6..8c9535d2d60 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,11 @@
12007-04-19 Kenichi Handa <handa@m17n.org>
2
3 * text.texi (Special Properties): Document composition property.
4
52007-04-19 Glenn Morris <rgm@gnu.org>
6
7 * files.texi (File Name Expansion): Mention "superroot".
8
12007-04-15 Chong Yidong <cyd@stupidchicken.com> 92007-04-15 Chong Yidong <cyd@stupidchicken.com>
2 10
3 * frames.texi (Multiple Displays): Add note about "multi-monitor" 11 * frames.texi (Multiple Displays): Add note about "multi-monitor"
@@ -51,7 +59,7 @@
51 adaptive-fill-regexp's value, since they are not in the standard 59 adaptive-fill-regexp's value, since they are not in the standard
52 TeX fonts. 60 TeX fonts.
53 61
542007-04-07 Herbert Euler <herberteuler@hotmail.com> 622007-04-07 Guanpeng Xu <herberteuler@hotmail.com>
55 63
56 * display.texi (Defining Faces): Fix example. 64 * display.texi (Defining Faces): Fix example.
57 65
diff --git a/lispref/files.texi b/lispref/files.texi
index f357b1f3814..e2bc57c5567 100644
--- a/lispref/files.texi
+++ b/lispref/files.texi
@@ -1990,6 +1990,19 @@ canonical form:
1990@end group 1990@end group
1991@end example 1991@end example
1992 1992
1993In some cases, a leading @samp{..} can remain in the output:
1994
1995@example
1996@group
1997(expand-file-name "../home" "/")
1998 @result{} "/../home"
1999@end group
2000@end example
2001
2002This is for use with filesystems that have the concept of a
2003``superroot'' above the root directory @file{/}. On other filesystems,
2004@file{/../} is interpreted exactly the same as @file{/}.
2005
1993Note that @code{expand-file-name} does @emph{not} expand environment 2006Note that @code{expand-file-name} does @emph{not} expand environment
1994variables; only @code{substitute-in-file-name} does that. 2007variables; only @code{substitute-in-file-name} does that.
1995 2008
diff --git a/lispref/text.texi b/lispref/text.texi
index 148bf0025a2..38f2074e603 100644
--- a/lispref/text.texi
+++ b/lispref/text.texi
@@ -3241,7 +3241,6 @@ functions (which may be the same function). In any case, all the
3241It is possible with @code{char-after} to examine characters at various 3241It is possible with @code{char-after} to examine characters at various
3242buffer positions without moving point to those positions. Only an 3242buffer positions without moving point to those positions. Only an
3243actual change in the value of point runs these hook functions. 3243actual change in the value of point runs these hook functions.
3244@end table
3245 3244
3246@defvar inhibit-point-motion-hooks 3245@defvar inhibit-point-motion-hooks
3247When this variable is non-@code{nil}, @code{point-left} and 3246When this variable is non-@code{nil}, @code{point-left} and
@@ -3260,6 +3259,27 @@ string to display. Tooltip mode (@pxref{Tooltips,,, emacs, The GNU Emacs
3260Manual}) provides an example. 3259Manual}) provides an example.
3261@end defvar 3260@end defvar
3262 3261
3262@item composition
3263@kindex composition @r{(text property)}
3264This text property is used to display a sequence of characters as a
3265single glyph composed from components. For instance, Thai base
3266consonant is composed with the following combining vowel as a single
3267glyph.
3268
3269The value is a character or a sequence (vector, list, or
3270string) of integers.
3271
3272If it is a character, it is an alternate character to display instead
3273of the text in the region.
3274
3275If it is a string, it is an alternate character sequences to
3276display.
3277
3278If it is a vector or list, it is a sequence of alternate
3279characters interleaved with internal codes specifying how to
3280compose the following character with the previous one.
3281@end table
3282
3263@node Format Properties 3283@node Format Properties
3264@subsection Formatted Text Properties 3284@subsection Formatted Text Properties
3265 3285
diff --git a/src/ChangeLog b/src/ChangeLog
index e325d82f04a..147ee163db8 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
12007-04-19 Juanma Barranquero <lekktu@gmail.com>
2
3 * minibuf.c (Fminibuffer_contents, Fminibuffer_contents_no_properties)
4 (Fminibuffer_completion_contents, Fdelete_minibuffer_contents):
5 Doc fixes.
6
12007-04-16 Chong Yidong <cyd@stupidchicken.com> 72007-04-16 Chong Yidong <cyd@stupidchicken.com>
2 8
3 * dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Set 9 * dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Set
diff --git a/src/mac.c b/src/mac.c
index 8363326cc05..8e3f49d2bfe 100644
--- a/src/mac.c
+++ b/src/mac.c
@@ -4991,7 +4991,7 @@ extern int noninteractive;
4991 3. [If SELECT_USE_CFSOCKET is set] 4991 3. [If SELECT_USE_CFSOCKET is set]
4992 Only the window event channel and socket read/write channels are 4992 Only the window event channel and socket read/write channels are
4993 involved, and timeout is not too short (greater than 4993 involved, and timeout is not too short (greater than
4994 SELECT_TIMEOUT_THRESHHOLD_RUNLOOP seconds). 4994 SELECT_TIMEOUT_THRESHOLD_RUNLOOP seconds).
4995 -> Create CFSocket for each socket and add it into the current 4995 -> Create CFSocket for each socket and add it into the current
4996 event RunLoop so that the current event loop gets quit when 4996 event RunLoop so that the current event loop gets quit when
4997 the socket becomes ready. Then ReceiveNextEvent can wait for 4997 the socket becomes ready. Then ReceiveNextEvent can wait for
diff --git a/src/minibuf.c b/src/minibuf.c
index e3fb8641615..34caf2b430f 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -387,7 +387,7 @@ Return (point-min) if current buffer is not a minibuffer. */)
387DEFUN ("minibuffer-contents", Fminibuffer_contents, 387DEFUN ("minibuffer-contents", Fminibuffer_contents,
388 Sminibuffer_contents, 0, 0, 0, 388 Sminibuffer_contents, 0, 0, 0,
389 doc: /* Return the user input in a minibuffer as a string. 389 doc: /* Return the user input in a minibuffer as a string.
390The current buffer must be a minibuffer. */) 390If the current buffer is not a minibuffer, return its entire contents. */)
391 () 391 ()
392{ 392{
393 int prompt_end = XINT (Fminibuffer_prompt_end ()); 393 int prompt_end = XINT (Fminibuffer_prompt_end ());
@@ -397,7 +397,7 @@ The current buffer must be a minibuffer. */)
397DEFUN ("minibuffer-contents-no-properties", Fminibuffer_contents_no_properties, 397DEFUN ("minibuffer-contents-no-properties", Fminibuffer_contents_no_properties,
398 Sminibuffer_contents_no_properties, 0, 0, 0, 398 Sminibuffer_contents_no_properties, 0, 0, 0,
399 doc: /* Return the user input in a minibuffer as a string, without text-properties. 399 doc: /* Return the user input in a minibuffer as a string, without text-properties.
400The current buffer must be a minibuffer. */) 400If the current buffer is not a minibuffer, return its entire contents. */)
401 () 401 ()
402{ 402{
403 int prompt_end = XINT (Fminibuffer_prompt_end ()); 403 int prompt_end = XINT (Fminibuffer_prompt_end ());
@@ -408,7 +408,7 @@ DEFUN ("minibuffer-completion-contents", Fminibuffer_completion_contents,
408 Sminibuffer_completion_contents, 0, 0, 0, 408 Sminibuffer_completion_contents, 0, 0, 0,
409 doc: /* Return the user input in a minibuffer before point as a string. 409 doc: /* Return the user input in a minibuffer before point as a string.
410That is what completion commands operate on. 410That is what completion commands operate on.
411The current buffer must be a minibuffer. */) 411If the current buffer is not a minibuffer, return its entire contents. */)
412 () 412 ()
413{ 413{
414 int prompt_end = XINT (Fminibuffer_prompt_end ()); 414 int prompt_end = XINT (Fminibuffer_prompt_end ());
@@ -420,7 +420,7 @@ The current buffer must be a minibuffer. */)
420DEFUN ("delete-minibuffer-contents", Fdelete_minibuffer_contents, 420DEFUN ("delete-minibuffer-contents", Fdelete_minibuffer_contents,
421 Sdelete_minibuffer_contents, 0, 0, 0, 421 Sdelete_minibuffer_contents, 0, 0, 0,
422 doc: /* Delete all user input in a minibuffer. 422 doc: /* Delete all user input in a minibuffer.
423The current buffer must be a minibuffer. */) 423If the current buffer is not a minibuffer, erase its entire contents. */)
424 () 424 ()
425{ 425{
426 int prompt_end = XINT (Fminibuffer_prompt_end ()); 426 int prompt_end = XINT (Fminibuffer_prompt_end ());
@@ -706,7 +706,7 @@ read_minibuf (map, initial, prompt, backup_n, expflag,
706 if (!NILP (current_buffer->enable_multibyte_characters) 706 if (!NILP (current_buffer->enable_multibyte_characters)
707 && ! STRING_MULTIBYTE (minibuf_prompt)) 707 && ! STRING_MULTIBYTE (minibuf_prompt))
708 minibuf_prompt = Fstring_make_multibyte (minibuf_prompt); 708 minibuf_prompt = Fstring_make_multibyte (minibuf_prompt);
709 709
710 /* Insert the prompt, record where it ends. */ 710 /* Insert the prompt, record where it ends. */
711 Finsert (1, &minibuf_prompt); 711 Finsert (1, &minibuf_prompt);
712 if (PT > BEG) 712 if (PT > BEG)