aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--admin/FOR-RELEASE4
-rwxr-xr-xconfigure767
-rw-r--r--configure.in79
-rw-r--r--etc/ChangeLog9
-rw-r--r--etc/DEBUG11
-rw-r--r--etc/NEWS19
-rw-r--r--etc/enriched.doc4
-rw-r--r--lisp/ChangeLog75
-rw-r--r--lisp/calendar/cal-iso.el53
-rw-r--r--lisp/calendar/cal-menu.el5
-rw-r--r--lisp/calendar/calendar.el5
-rw-r--r--lisp/calendar/icalendar.el1299
-rw-r--r--lisp/gnus/ChangeLog18
-rw-r--r--lisp/gnus/gnus-group.el3
-rw-r--r--lisp/gnus/gnus-msg.el3
-rw-r--r--lisp/gnus/gnus-sum.el21
-rw-r--r--lisp/gnus/message.el4
-rw-r--r--lisp/info.el29
-rw-r--r--lisp/isearch.el21
-rw-r--r--lisp/newcomment.el4
-rw-r--r--lisp/progmodes/gdb-ui.el1
-rw-r--r--lisp/textmodes/enriched.el4
-rw-r--r--lisp/textmodes/tex-mode.el74
-rw-r--r--lisp/url/ChangeLog5
-rw-r--r--lisp/url/url-handlers.el2
-rw-r--r--lisp/xml.el24
-rw-r--r--lispintro/emacs-lisp-intro.texi33
-rw-r--r--lispref/ChangeLog4
-rw-r--r--lispref/display.texi5
-rw-r--r--man/ChangeLog52
-rw-r--r--man/building.texi12
-rw-r--r--man/calendar.texi56
-rw-r--r--man/info.texi34
-rw-r--r--man/text.texi213
-rw-r--r--msdos/ChangeLog5
-rw-r--r--msdos/sed1v2.inp4
-rw-r--r--nt/ChangeLog2
-rw-r--r--src/.gdbinit20
-rw-r--r--src/ChangeLog69
-rw-r--r--src/Makefile.in2
-rw-r--r--src/config.in6
-rw-r--r--src/fileio.c3
-rw-r--r--src/fringe.c12
-rw-r--r--src/macfns.c33
-rw-r--r--src/macmenu.c4
-rw-r--r--src/macterm.c310
-rw-r--r--src/window.c15
-rw-r--r--src/xdisp.c9
-rw-r--r--src/xterm.c46
50 files changed, 2776 insertions, 726 deletions
diff --git a/ChangeLog b/ChangeLog
index 596fc6023a9..aa5d01c16f5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
12004-10-06 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2
3 * configure.in (HAVE_RANDOM_HEAPSTART): Change AC_MSG_ERROR to
4 AC_MSG_WARN. Move output of warning message to end of configure run.
5
62004-10-05 Jan Dj,Ad(Brv. <jan.h.d@swipnet.se>
7
8 * configure.in (HAVE_RANDOM_HEAPSTART): Renamed HAVE_EXECSHIELD.
9 Run test to see if heap start address is random.
10
12004-09-29 Miles Bader <miles@gnu.org> 112004-09-29 Miles Bader <miles@gnu.org>
2 12
3 * configure.in (HAVE_EXECSHIELD): Test correct env variable to see 13 * configure.in (HAVE_EXECSHIELD): Test correct env variable to see
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index 19f06efa4a7..1898cf4dea4 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -28,8 +28,6 @@ isearch faces.
28 28
29** Finish updating the Emacs Lisp manual. 29** Finish updating the Emacs Lisp manual.
30 30
31*** New display properties (KFS to provide input).
32
33** Update the Emacs manual. 31** Update the Emacs manual.
34 32
35*** Update man/info.texi. 33*** Update man/info.texi.
@@ -88,7 +86,7 @@ man/rmail.texi
88man/screen.texi "Luc Teirlinck" 86man/screen.texi "Luc Teirlinck"
89man/search.texi "Luc Teirlinck" 87man/search.texi "Luc Teirlinck"
90man/sending.texi 88man/sending.texi
91man/text.texi 89man/text.texi "Luc Teirlinck"
92man/trouble.texi 90man/trouble.texi
93man/windows.texi "Luc Teirlinck" 91man/windows.texi "Luc Teirlinck"
94man/xresources.texi 92man/xresources.texi
diff --git a/configure b/configure
index 817d0fc09d9..83ac957143d 100755
--- a/configure
+++ b/configure
@@ -310,7 +310,7 @@ ac_includes_default="\
310# include <unistd.h> 310# include <unistd.h>
311#endif" 311#endif"
312 312
313ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LN_S CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB INSTALL_INFO EGREP SETARCH LIBSOUND SET_MAKE PKG_CONFIG GTK_CFLAGS GTK_LIBS ALLOCA liblockfile LIBOBJS NEED_SETGID KMEM_GROUP GETLOADAVG_LIBS version configuration canonical srcdir lispdir locallisppath lisppath x_default_search_path etcdir archlibdir docdir bitmapdir gamedir gameuser c_switch_system c_switch_machine LD_SWITCH_X_SITE LD_SWITCH_X_SITE_AUX C_SWITCH_X_SITE X_TOOLKIT_TYPE machfile opsysfile carbon_appdir LTLIBOBJS' 313ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LN_S CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB INSTALL_INFO EGREP LIBSOUND SETARCH SET_MAKE PKG_CONFIG GTK_CFLAGS GTK_LIBS ALLOCA liblockfile LIBOBJS NEED_SETGID KMEM_GROUP GETLOADAVG_LIBS version configuration canonical srcdir lispdir locallisppath lisppath x_default_search_path etcdir archlibdir docdir bitmapdir gamedir gameuser c_switch_system c_switch_machine LD_SWITCH_X_SITE LD_SWITCH_X_SITE_AUX C_SWITCH_X_SITE X_TOOLKIT_TYPE machfile opsysfile carbon_appdir LTLIBOBJS'
314ac_subst_files='' 314ac_subst_files=''
315 315
316# Initialize some variables set by options. 316# Initialize some variables set by options.
@@ -984,7 +984,7 @@ esac
984 else 984 else
985 echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 985 echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
986 fi 986 fi
987 cd "$ac_popdir" 987 cd $ac_popdir
988 done 988 done
989fi 989fi
990 990
@@ -3250,7 +3250,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3250 cat conftest.err >&5 3250 cat conftest.err >&5
3251 echo "$as_me:$LINENO: \$? = $ac_status" >&5 3251 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3252 (exit $ac_status); } && 3252 (exit $ac_status); } &&
3253 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 3253 { ac_try='test -z "$ac_c_werror_flag"
3254 || test ! -s conftest.err'
3254 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 3255 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3255 (eval $ac_try) 2>&5 3256 (eval $ac_try) 2>&5
3256 ac_status=$? 3257 ac_status=$?
@@ -3308,7 +3309,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3308 cat conftest.err >&5 3309 cat conftest.err >&5
3309 echo "$as_me:$LINENO: \$? = $ac_status" >&5 3310 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3310 (exit $ac_status); } && 3311 (exit $ac_status); } &&
3311 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 3312 { ac_try='test -z "$ac_c_werror_flag"
3313 || test ! -s conftest.err'
3312 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 3314 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3313 (eval $ac_try) 2>&5 3315 (eval $ac_try) 2>&5
3314 ac_status=$? 3316 ac_status=$?
@@ -3424,7 +3426,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3424 cat conftest.err >&5 3426 cat conftest.err >&5
3425 echo "$as_me:$LINENO: \$? = $ac_status" >&5 3427 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3426 (exit $ac_status); } && 3428 (exit $ac_status); } &&
3427 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 3429 { ac_try='test -z "$ac_c_werror_flag"
3430 || test ! -s conftest.err'
3428 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 3431 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3429 (eval $ac_try) 2>&5 3432 (eval $ac_try) 2>&5
3430 ac_status=$? 3433 ac_status=$?
@@ -3478,7 +3481,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3478 cat conftest.err >&5 3481 cat conftest.err >&5
3479 echo "$as_me:$LINENO: \$? = $ac_status" >&5 3482 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3480 (exit $ac_status); } && 3483 (exit $ac_status); } &&
3481 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 3484 { ac_try='test -z "$ac_c_werror_flag"
3485 || test ! -s conftest.err'
3482 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 3486 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3483 (eval $ac_try) 2>&5 3487 (eval $ac_try) 2>&5
3484 ac_status=$? 3488 ac_status=$?
@@ -3523,7 +3527,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3523 cat conftest.err >&5 3527 cat conftest.err >&5
3524 echo "$as_me:$LINENO: \$? = $ac_status" >&5 3528 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3525 (exit $ac_status); } && 3529 (exit $ac_status); } &&
3526 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 3530 { ac_try='test -z "$ac_c_werror_flag"
3531 || test ! -s conftest.err'
3527 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 3532 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3528 (eval $ac_try) 2>&5 3533 (eval $ac_try) 2>&5
3529 ac_status=$? 3534 ac_status=$?
@@ -3567,7 +3572,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3567 cat conftest.err >&5 3572 cat conftest.err >&5
3568 echo "$as_me:$LINENO: \$? = $ac_status" >&5 3573 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3569 (exit $ac_status); } && 3574 (exit $ac_status); } &&
3570 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 3575 { ac_try='test -z "$ac_c_werror_flag"
3576 || test ! -s conftest.err'
3571 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 3577 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3572 (eval $ac_try) 2>&5 3578 (eval $ac_try) 2>&5
3573 ac_status=$? 3579 ac_status=$?
@@ -4200,7 +4206,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4200 cat conftest.err >&5 4206 cat conftest.err >&5
4201 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4207 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4202 (exit $ac_status); } && 4208 (exit $ac_status); } &&
4203 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 4209 { ac_try='test -z "$ac_c_werror_flag"
4210 || test ! -s conftest.err'
4204 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4211 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4205 (eval $ac_try) 2>&5 4212 (eval $ac_try) 2>&5
4206 ac_status=$? 4213 ac_status=$?
@@ -4271,91 +4278,6 @@ rm -f conftest*
4271 4278
4272 4279
4273 4280
4274echo "$as_me:$LINENO: checking for /proc/sys/kernel/exec-shield" >&5
4275echo $ECHO_N "checking for /proc/sys/kernel/exec-shield... $ECHO_C" >&6
4276if test "${ac_cv_file__proc_sys_kernel_exec_shield+set}" = set; then
4277 echo $ECHO_N "(cached) $ECHO_C" >&6
4278else
4279 test "$cross_compiling" = yes &&
4280 { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
4281echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
4282 { (exit 1); exit 1; }; }
4283if test -r "/proc/sys/kernel/exec-shield"; then
4284 ac_cv_file__proc_sys_kernel_exec_shield=yes
4285else
4286 ac_cv_file__proc_sys_kernel_exec_shield=no
4287fi
4288fi
4289echo "$as_me:$LINENO: result: $ac_cv_file__proc_sys_kernel_exec_shield" >&5
4290echo "${ECHO_T}$ac_cv_file__proc_sys_kernel_exec_shield" >&6
4291if test $ac_cv_file__proc_sys_kernel_exec_shield = yes; then
4292 emacs_cv_execshield=1
4293else
4294 emacs_cv_execshield=0
4295fi
4296
4297if test "$emacs_cv_execshield" = 1; then
4298 # Extract the first word of "setarch", so it can be a program name with args.
4299set dummy setarch; ac_word=$2
4300echo "$as_me:$LINENO: checking for $ac_word" >&5
4301echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4302if test "${ac_cv_path_SETARCH+set}" = set; then
4303 echo $ECHO_N "(cached) $ECHO_C" >&6
4304else
4305 case $SETARCH in
4306 [\\/]* | ?:[\\/]*)
4307 ac_cv_path_SETARCH="$SETARCH" # Let the user override the test with a path.
4308 ;;
4309 *)
4310 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4311for as_dir in $PATH
4312do
4313 IFS=$as_save_IFS
4314 test -z "$as_dir" && as_dir=.
4315 for ac_exec_ext in '' $ac_executable_extensions; do
4316 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4317 ac_cv_path_SETARCH="$as_dir/$ac_word$ac_exec_ext"
4318 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4319 break 2
4320 fi
4321done
4322done
4323
4324 test -z "$ac_cv_path_SETARCH" && ac_cv_path_SETARCH="no"
4325 ;;
4326esac
4327fi
4328SETARCH=$ac_cv_path_SETARCH
4329
4330if test -n "$SETARCH"; then
4331 echo "$as_me:$LINENO: result: $SETARCH" >&5
4332echo "${ECHO_T}$SETARCH" >&6
4333else
4334 echo "$as_me:$LINENO: result: no" >&5
4335echo "${ECHO_T}no" >&6
4336fi
4337
4338
4339 if test "$SETARCH" != no && test "$machine" = "intel386"; then
4340
4341cat >>confdefs.h <<\_ACEOF
4342#define HAVE_EXECSHIELD 1
4343_ACEOF
4344
4345 else
4346 case "`cat /proc/sys/kernel/exec-shield`" in
4347 0) ;;
4348 *)
4349 { { echo "$as_me:$LINENO: error: Exec-shield is turned on.
4350Emacs can not dump itself if exec-shield is turned on.
4351See \`etc/PROBLEMS' for further information." >&5
4352echo "$as_me: error: Exec-shield is turned on.
4353Emacs can not dump itself if exec-shield is turned on.
4354See \`etc/PROBLEMS' for further information." >&2;}
4355 { (exit 1); exit 1; }; }
4356 esac
4357 fi
4358fi
4359 4281
4360#### Extract some information from the operating system and machine files. 4282#### Extract some information from the operating system and machine files.
4361 4283
@@ -4561,7 +4483,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4561 cat conftest.err >&5 4483 cat conftest.err >&5
4562 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4484 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4563 (exit $ac_status); } && 4485 (exit $ac_status); } &&
4564 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 4486 { ac_try='test -z "$ac_c_werror_flag"
4487 || test ! -s conftest.err'
4565 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4488 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4566 (eval $ac_try) 2>&5 4489 (eval $ac_try) 2>&5
4567 ac_status=$? 4490 ac_status=$?
@@ -4590,7 +4513,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4590 cat conftest.err >&5 4513 cat conftest.err >&5
4591 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4514 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4592 (exit $ac_status); } && 4515 (exit $ac_status); } &&
4593 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 4516 { ac_try='test -z "$ac_c_werror_flag"
4517 || test ! -s conftest.err'
4594 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4518 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4595 (eval $ac_try) 2>&5 4519 (eval $ac_try) 2>&5
4596 ac_status=$? 4520 ac_status=$?
@@ -4660,7 +4584,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4660 cat conftest.err >&5 4584 cat conftest.err >&5
4661 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4585 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4662 (exit $ac_status); } && 4586 (exit $ac_status); } &&
4663 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 4587 { ac_try='test -z "$ac_c_werror_flag"
4588 || test ! -s conftest.err'
4664 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4589 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4665 (eval $ac_try) 2>&5 4590 (eval $ac_try) 2>&5
4666 ac_status=$? 4591 ac_status=$?
@@ -4712,7 +4637,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4712 cat conftest.err >&5 4637 cat conftest.err >&5
4713 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4638 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4714 (exit $ac_status); } && 4639 (exit $ac_status); } &&
4715 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 4640 { ac_try='test -z "$ac_c_werror_flag"
4641 || test ! -s conftest.err'
4716 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4642 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4717 (eval $ac_try) 2>&5 4643 (eval $ac_try) 2>&5
4718 ac_status=$? 4644 ac_status=$?
@@ -4783,7 +4709,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4783 cat conftest.err >&5 4709 cat conftest.err >&5
4784 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4710 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4785 (exit $ac_status); } && 4711 (exit $ac_status); } &&
4786 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 4712 { ac_try='test -z "$ac_c_werror_flag"
4713 || test ! -s conftest.err'
4787 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4714 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4788 (eval $ac_try) 2>&5 4715 (eval $ac_try) 2>&5
4789 ac_status=$? 4716 ac_status=$?
@@ -4835,7 +4762,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4835 cat conftest.err >&5 4762 cat conftest.err >&5
4836 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4763 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4837 (exit $ac_status); } && 4764 (exit $ac_status); } &&
4838 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 4765 { ac_try='test -z "$ac_c_werror_flag"
4766 || test ! -s conftest.err'
4839 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4767 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4840 (eval $ac_try) 2>&5 4768 (eval $ac_try) 2>&5
4841 ac_status=$? 4769 ac_status=$?
@@ -4905,7 +4833,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4905 cat conftest.err >&5 4833 cat conftest.err >&5
4906 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4834 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4907 (exit $ac_status); } && 4835 (exit $ac_status); } &&
4908 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 4836 { ac_try='test -z "$ac_c_werror_flag"
4837 || test ! -s conftest.err'
4909 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4838 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4910 (eval $ac_try) 2>&5 4839 (eval $ac_try) 2>&5
4911 ac_status=$? 4840 ac_status=$?
@@ -5075,7 +5004,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5075 cat conftest.err >&5 5004 cat conftest.err >&5
5076 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5005 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5077 (exit $ac_status); } && 5006 (exit $ac_status); } &&
5078 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 5007 { ac_try='test -z "$ac_c_werror_flag"
5008 || test ! -s conftest.err'
5079 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5009 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5080 (eval $ac_try) 2>&5 5010 (eval $ac_try) 2>&5
5081 ac_status=$? 5011 ac_status=$?
@@ -5144,7 +5074,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5144 cat conftest.err >&5 5074 cat conftest.err >&5
5145 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5075 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5146 (exit $ac_status); } && 5076 (exit $ac_status); } &&
5147 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 5077 { ac_try='test -z "$ac_c_werror_flag"
5078 || test ! -s conftest.err'
5148 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5079 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5149 (eval $ac_try) 2>&5 5080 (eval $ac_try) 2>&5
5150 ac_status=$? 5081 ac_status=$?
@@ -5298,7 +5229,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5298 cat conftest.err >&5 5229 cat conftest.err >&5
5299 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5230 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5300 (exit $ac_status); } && 5231 (exit $ac_status); } &&
5301 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 5232 { ac_try='test -z "$ac_c_werror_flag"
5233 || test ! -s conftest.err'
5302 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5234 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5303 (eval $ac_try) 2>&5 5235 (eval $ac_try) 2>&5
5304 ac_status=$? 5236 ac_status=$?
@@ -5391,7 +5323,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5391 cat conftest.err >&5 5323 cat conftest.err >&5
5392 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5324 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5393 (exit $ac_status); } && 5325 (exit $ac_status); } &&
5394 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 5326 { ac_try='test -z "$ac_c_werror_flag"
5327 || test ! -s conftest.err'
5395 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5328 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5396 (eval $ac_try) 2>&5 5329 (eval $ac_try) 2>&5
5397 ac_status=$? 5330 ac_status=$?
@@ -5594,7 +5527,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5594 cat conftest.err >&5 5527 cat conftest.err >&5
5595 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5528 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5596 (exit $ac_status); } && 5529 (exit $ac_status); } &&
5597 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 5530 { ac_try='test -z "$ac_c_werror_flag"
5531 || test ! -s conftest.err'
5598 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5532 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5599 (eval $ac_try) 2>&5 5533 (eval $ac_try) 2>&5
5600 ac_status=$? 5534 ac_status=$?
@@ -5759,7 +5693,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5759 cat conftest.err >&5 5693 cat conftest.err >&5
5760 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5694 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5761 (exit $ac_status); } && 5695 (exit $ac_status); } &&
5762 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 5696 { ac_try='test -z "$ac_c_werror_flag"
5697 || test ! -s conftest.err'
5763 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5698 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5764 (eval $ac_try) 2>&5 5699 (eval $ac_try) 2>&5
5765 ac_status=$? 5700 ac_status=$?
@@ -5822,7 +5757,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5822 cat conftest.err >&5 5757 cat conftest.err >&5
5823 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5758 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5824 (exit $ac_status); } && 5759 (exit $ac_status); } &&
5825 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 5760 { ac_try='test -z "$ac_c_werror_flag"
5761 || test ! -s conftest.err'
5826 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5762 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5827 (eval $ac_try) 2>&5 5763 (eval $ac_try) 2>&5
5828 ac_status=$? 5764 ac_status=$?
@@ -5895,7 +5831,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5895 cat conftest.err >&5 5831 cat conftest.err >&5
5896 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5832 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5897 (exit $ac_status); } && 5833 (exit $ac_status); } &&
5898 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 5834 { ac_try='test -z "$ac_c_werror_flag"
5835 || test ! -s conftest.err'
5899 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5836 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5900 (eval $ac_try) 2>&5 5837 (eval $ac_try) 2>&5
5901 ac_status=$? 5838 ac_status=$?
@@ -5981,7 +5918,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5981 cat conftest.err >&5 5918 cat conftest.err >&5
5982 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5919 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5983 (exit $ac_status); } && 5920 (exit $ac_status); } &&
5984 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 5921 { ac_try='test -z "$ac_c_werror_flag"
5922 || test ! -s conftest.err'
5985 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5923 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5986 (eval $ac_try) 2>&5 5924 (eval $ac_try) 2>&5
5987 ac_status=$? 5925 ac_status=$?
@@ -6054,7 +5992,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6054 cat conftest.err >&5 5992 cat conftest.err >&5
6055 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5993 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6056 (exit $ac_status); } && 5994 (exit $ac_status); } &&
6057 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 5995 { ac_try='test -z "$ac_c_werror_flag"
5996 || test ! -s conftest.err'
6058 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5997 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6059 (eval $ac_try) 2>&5 5998 (eval $ac_try) 2>&5
6060 ac_status=$? 5999 ac_status=$?
@@ -6124,7 +6063,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6124 cat conftest.err >&5 6063 cat conftest.err >&5
6125 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6064 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6126 (exit $ac_status); } && 6065 (exit $ac_status); } &&
6127 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 6066 { ac_try='test -z "$ac_c_werror_flag"
6067 || test ! -s conftest.err'
6128 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6068 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6129 (eval $ac_try) 2>&5 6069 (eval $ac_try) 2>&5
6130 ac_status=$? 6070 ac_status=$?
@@ -6183,7 +6123,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6183 cat conftest.err >&5 6123 cat conftest.err >&5
6184 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6124 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6185 (exit $ac_status); } && 6125 (exit $ac_status); } &&
6186 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 6126 { ac_try='test -z "$ac_c_werror_flag"
6127 || test ! -s conftest.err'
6187 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6128 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6188 (eval $ac_try) 2>&5 6129 (eval $ac_try) 2>&5
6189 ac_status=$? 6130 ac_status=$?
@@ -6252,7 +6193,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6252 cat conftest.err >&5 6193 cat conftest.err >&5
6253 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6194 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6254 (exit $ac_status); } && 6195 (exit $ac_status); } &&
6255 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 6196 { ac_try='test -z "$ac_c_werror_flag"
6197 || test ! -s conftest.err'
6256 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6198 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6257 (eval $ac_try) 2>&5 6199 (eval $ac_try) 2>&5
6258 ac_status=$? 6200 ac_status=$?
@@ -6313,7 +6255,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6313 cat conftest.err >&5 6255 cat conftest.err >&5
6314 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6256 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6315 (exit $ac_status); } && 6257 (exit $ac_status); } &&
6316 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 6258 { ac_try='test -z "$ac_c_werror_flag"
6259 || test ! -s conftest.err'
6317 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6260 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6318 (eval $ac_try) 2>&5 6261 (eval $ac_try) 2>&5
6319 ac_status=$? 6262 ac_status=$?
@@ -6379,7 +6322,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6379 cat conftest.err >&5 6322 cat conftest.err >&5
6380 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6323 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6381 (exit $ac_status); } && 6324 (exit $ac_status); } &&
6382 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 6325 { ac_try='test -z "$ac_c_werror_flag"
6326 || test ! -s conftest.err'
6383 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6327 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6384 (eval $ac_try) 2>&5 6328 (eval $ac_try) 2>&5
6385 ac_status=$? 6329 ac_status=$?
@@ -6525,7 +6469,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6525 cat conftest.err >&5 6469 cat conftest.err >&5
6526 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6470 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6527 (exit $ac_status); } && 6471 (exit $ac_status); } &&
6528 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 6472 { ac_try='test -z "$ac_c_werror_flag"
6473 || test ! -s conftest.err'
6529 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6474 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6530 (eval $ac_try) 2>&5 6475 (eval $ac_try) 2>&5
6531 ac_status=$? 6476 ac_status=$?
@@ -6589,7 +6534,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6589 cat conftest.err >&5 6534 cat conftest.err >&5
6590 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6535 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6591 (exit $ac_status); } && 6536 (exit $ac_status); } &&
6592 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 6537 { ac_try='test -z "$ac_c_werror_flag"
6538 || test ! -s conftest.err'
6593 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6539 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6594 (eval $ac_try) 2>&5 6540 (eval $ac_try) 2>&5
6595 ac_status=$? 6541 ac_status=$?
@@ -6654,7 +6600,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6654 cat conftest.err >&5 6600 cat conftest.err >&5
6655 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6601 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6656 (exit $ac_status); } && 6602 (exit $ac_status); } &&
6657 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 6603 { ac_try='test -z "$ac_c_werror_flag"
6604 || test ! -s conftest.err'
6658 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6605 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6659 (eval $ac_try) 2>&5 6606 (eval $ac_try) 2>&5
6660 ac_status=$? 6607 ac_status=$?
@@ -6700,7 +6647,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6700 cat conftest.err >&5 6647 cat conftest.err >&5
6701 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6648 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6702 (exit $ac_status); } && 6649 (exit $ac_status); } &&
6703 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 6650 { ac_try='test -z "$ac_c_werror_flag"
6651 || test ! -s conftest.err'
6704 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6652 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6705 (eval $ac_try) 2>&5 6653 (eval $ac_try) 2>&5
6706 ac_status=$? 6654 ac_status=$?
@@ -6774,7 +6722,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6774 cat conftest.err >&5 6722 cat conftest.err >&5
6775 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6723 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6776 (exit $ac_status); } && 6724 (exit $ac_status); } &&
6777 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 6725 { ac_try='test -z "$ac_c_werror_flag"
6726 || test ! -s conftest.err'
6778 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6727 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6779 (eval $ac_try) 2>&5 6728 (eval $ac_try) 2>&5
6780 ac_status=$? 6729 ac_status=$?
@@ -6839,7 +6788,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6839 cat conftest.err >&5 6788 cat conftest.err >&5
6840 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6789 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6841 (exit $ac_status); } && 6790 (exit $ac_status); } &&
6842 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 6791 { ac_try='test -z "$ac_c_werror_flag"
6792 || test ! -s conftest.err'
6843 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6793 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6844 (eval $ac_try) 2>&5 6794 (eval $ac_try) 2>&5
6845 ac_status=$? 6795 ac_status=$?
@@ -6883,7 +6833,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6883 cat conftest.err >&5 6833 cat conftest.err >&5
6884 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6834 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6885 (exit $ac_status); } && 6835 (exit $ac_status); } &&
6886 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 6836 { ac_try='test -z "$ac_c_werror_flag"
6837 || test ! -s conftest.err'
6887 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6838 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6888 (eval $ac_try) 2>&5 6839 (eval $ac_try) 2>&5
6889 ac_status=$? 6840 ac_status=$?
@@ -6954,7 +6905,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6954 cat conftest.err >&5 6905 cat conftest.err >&5
6955 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6906 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6956 (exit $ac_status); } && 6907 (exit $ac_status); } &&
6957 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 6908 { ac_try='test -z "$ac_c_werror_flag"
6909 || test ! -s conftest.err'
6958 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6910 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6959 (eval $ac_try) 2>&5 6911 (eval $ac_try) 2>&5
6960 ac_status=$? 6912 ac_status=$?
@@ -7004,7 +6956,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7004 cat conftest.err >&5 6956 cat conftest.err >&5
7005 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6957 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7006 (exit $ac_status); } && 6958 (exit $ac_status); } &&
7007 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 6959 { ac_try='test -z "$ac_c_werror_flag"
6960 || test ! -s conftest.err'
7008 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6961 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7009 (eval $ac_try) 2>&5 6962 (eval $ac_try) 2>&5
7010 ac_status=$? 6963 ac_status=$?
@@ -7075,7 +7028,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7075 cat conftest.err >&5 7028 cat conftest.err >&5
7076 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7029 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7077 (exit $ac_status); } && 7030 (exit $ac_status); } &&
7078 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 7031 { ac_try='test -z "$ac_c_werror_flag"
7032 || test ! -s conftest.err'
7079 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7033 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7080 (eval $ac_try) 2>&5 7034 (eval $ac_try) 2>&5
7081 ac_status=$? 7035 ac_status=$?
@@ -7125,7 +7079,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7125 cat conftest.err >&5 7079 cat conftest.err >&5
7126 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7080 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7127 (exit $ac_status); } && 7081 (exit $ac_status); } &&
7128 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 7082 { ac_try='test -z "$ac_c_werror_flag"
7083 || test ! -s conftest.err'
7129 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7084 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7130 (eval $ac_try) 2>&5 7085 (eval $ac_try) 2>&5
7131 ac_status=$? 7086 ac_status=$?
@@ -7196,7 +7151,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7196 cat conftest.err >&5 7151 cat conftest.err >&5
7197 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7152 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7198 (exit $ac_status); } && 7153 (exit $ac_status); } &&
7199 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 7154 { ac_try='test -z "$ac_c_werror_flag"
7155 || test ! -s conftest.err'
7200 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7156 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7201 (eval $ac_try) 2>&5 7157 (eval $ac_try) 2>&5
7202 ac_status=$? 7158 ac_status=$?
@@ -7246,7 +7202,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7246 cat conftest.err >&5 7202 cat conftest.err >&5
7247 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7203 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7248 (exit $ac_status); } && 7204 (exit $ac_status); } &&
7249 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 7205 { ac_try='test -z "$ac_c_werror_flag"
7206 || test ! -s conftest.err'
7250 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7207 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7251 (eval $ac_try) 2>&5 7208 (eval $ac_try) 2>&5
7252 ac_status=$? 7209 ac_status=$?
@@ -7317,7 +7274,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7317 cat conftest.err >&5 7274 cat conftest.err >&5
7318 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7275 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7319 (exit $ac_status); } && 7276 (exit $ac_status); } &&
7320 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 7277 { ac_try='test -z "$ac_c_werror_flag"
7278 || test ! -s conftest.err'
7321 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7279 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7322 (eval $ac_try) 2>&5 7280 (eval $ac_try) 2>&5
7323 ac_status=$? 7281 ac_status=$?
@@ -7367,7 +7325,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7367 cat conftest.err >&5 7325 cat conftest.err >&5
7368 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7326 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7369 (exit $ac_status); } && 7327 (exit $ac_status); } &&
7370 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 7328 { ac_try='test -z "$ac_c_werror_flag"
7329 || test ! -s conftest.err'
7371 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7330 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7372 (eval $ac_try) 2>&5 7331 (eval $ac_try) 2>&5
7373 ac_status=$? 7332 ac_status=$?
@@ -7438,7 +7397,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7438 cat conftest.err >&5 7397 cat conftest.err >&5
7439 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7398 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7440 (exit $ac_status); } && 7399 (exit $ac_status); } &&
7441 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 7400 { ac_try='test -z "$ac_c_werror_flag"
7401 || test ! -s conftest.err'
7442 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7402 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7443 (eval $ac_try) 2>&5 7403 (eval $ac_try) 2>&5
7444 ac_status=$? 7404 ac_status=$?
@@ -7488,7 +7448,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7488 cat conftest.err >&5 7448 cat conftest.err >&5
7489 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7449 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7490 (exit $ac_status); } && 7450 (exit $ac_status); } &&
7491 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 7451 { ac_try='test -z "$ac_c_werror_flag"
7452 || test ! -s conftest.err'
7492 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7453 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7493 (eval $ac_try) 2>&5 7454 (eval $ac_try) 2>&5
7494 ac_status=$? 7455 ac_status=$?
@@ -7575,7 +7536,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7575 cat conftest.err >&5 7536 cat conftest.err >&5
7576 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7537 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7577 (exit $ac_status); } && 7538 (exit $ac_status); } &&
7578 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 7539 { ac_try='test -z "$ac_c_werror_flag"
7540 || test ! -s conftest.err'
7579 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7541 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7580 (eval $ac_try) 2>&5 7542 (eval $ac_try) 2>&5
7581 ac_status=$? 7543 ac_status=$?
@@ -7681,7 +7643,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7681 cat conftest.err >&5 7643 cat conftest.err >&5
7682 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7644 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7683 (exit $ac_status); } && 7645 (exit $ac_status); } &&
7684 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 7646 { ac_try='test -z "$ac_c_werror_flag"
7647 || test ! -s conftest.err'
7685 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7648 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7686 (eval $ac_try) 2>&5 7649 (eval $ac_try) 2>&5
7687 ac_status=$? 7650 ac_status=$?
@@ -7741,7 +7704,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7741 cat conftest.err >&5 7704 cat conftest.err >&5
7742 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7705 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7743 (exit $ac_status); } && 7706 (exit $ac_status); } &&
7744 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 7707 { ac_try='test -z "$ac_c_werror_flag"
7708 || test ! -s conftest.err'
7745 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7709 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7746 (eval $ac_try) 2>&5 7710 (eval $ac_try) 2>&5
7747 ac_status=$? 7711 ac_status=$?
@@ -7777,6 +7741,124 @@ _ACEOF
7777fi 7741fi
7778 7742
7779 7743
7744echo "$as_me:$LINENO: checking whether heap start address is randomized" >&5
7745echo $ECHO_N "checking whether heap start address is randomized... $ECHO_C" >&6
7746if test x"$ac_cv_header_unistd_h" != x && test x"$ac_cv_header_stdlib_h" != x
7747then
7748 if test "$cross_compiling" = yes; then
7749 emacs_cv_randomheap='assuming no'
7750else
7751 cat >conftest.$ac_ext <<_ACEOF
7752/* confdefs.h. */
7753_ACEOF
7754cat confdefs.h >>conftest.$ac_ext
7755cat >>conftest.$ac_ext <<_ACEOF
7756/* end confdefs.h. */
7757#include <stdio.h>
7758#include <unistd.h>
7759#include <stdlib.h>
7760int main (int argc, char *argv[])
7761{
7762 unsigned long old_sbrk = 0;
7763 unsigned long this_sbrk = (unsigned long) sbrk(0);
7764 int nr = 1;
7765 if (argc != 1) {
7766 old_sbrk = strtoul (argv[1], 0, 0);
7767 nr = atoi (argv[2])+1;
7768 }
7769 if (argc == 1 || (old_sbrk == this_sbrk && nr < 3))
7770 {
7771 char buf1[32], buf2[32];
7772 sprintf (buf1, "%lu", this_sbrk);
7773 sprintf (buf2, "%d", nr);
7774 execl (argv[0], argv[0], buf1, buf2, 0);
7775 exit (-1);
7776 }
7777 exit (this_sbrk == old_sbrk);
7778}
7779_ACEOF
7780rm -f conftest$ac_exeext
7781if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7782 (eval $ac_link) 2>&5
7783 ac_status=$?
7784 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7785 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
7786 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7787 (eval $ac_try) 2>&5
7788 ac_status=$?
7789 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7790 (exit $ac_status); }; }; then
7791 emacs_cv_randomheap=yes
7792else
7793 echo "$as_me: program exited with status $ac_status" >&5
7794echo "$as_me: failed program was:" >&5
7795sed 's/^/| /' conftest.$ac_ext >&5
7796
7797( exit $ac_status )
7798emacs_cv_randomheap=no
7799fi
7800rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
7801fi
7802else
7803 emacs_cv_randomheap='assuming no'
7804fi
7805echo "$as_me:$LINENO: result: $emacs_cv_randomheap" >&5
7806echo "${ECHO_T}$emacs_cv_randomheap" >&6
7807
7808if test "$emacs_cv_randomheap" = yes; then
7809 # Extract the first word of "setarch", so it can be a program name with args.
7810set dummy setarch; ac_word=$2
7811echo "$as_me:$LINENO: checking for $ac_word" >&5
7812echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
7813if test "${ac_cv_path_SETARCH+set}" = set; then
7814 echo $ECHO_N "(cached) $ECHO_C" >&6
7815else
7816 case $SETARCH in
7817 [\\/]* | ?:[\\/]*)
7818 ac_cv_path_SETARCH="$SETARCH" # Let the user override the test with a path.
7819 ;;
7820 *)
7821 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7822for as_dir in $PATH
7823do
7824 IFS=$as_save_IFS
7825 test -z "$as_dir" && as_dir=.
7826 for ac_exec_ext in '' $ac_executable_extensions; do
7827 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
7828 ac_cv_path_SETARCH="$as_dir/$ac_word$ac_exec_ext"
7829 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
7830 break 2
7831 fi
7832done
7833done
7834
7835 test -z "$ac_cv_path_SETARCH" && ac_cv_path_SETARCH="no"
7836 ;;
7837esac
7838fi
7839SETARCH=$ac_cv_path_SETARCH
7840
7841if test -n "$SETARCH"; then
7842 echo "$as_me:$LINENO: result: $SETARCH" >&5
7843echo "${ECHO_T}$SETARCH" >&6
7844else
7845 echo "$as_me:$LINENO: result: no" >&5
7846echo "${ECHO_T}no" >&6
7847fi
7848
7849
7850 if test "$SETARCH" != no && test "$machine" = "intel386"; then
7851
7852cat >>confdefs.h <<\_ACEOF
7853#define HAVE_RANDOM_HEAPSTART 1
7854_ACEOF
7855
7856 else
7857 emacs_cv_randomheap=warn
7858 fi
7859fi
7860
7861
7780 7862
7781echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 7863echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
7782echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 7864echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
@@ -7863,7 +7945,6 @@ fi
7863echo "$as_me:$LINENO: checking for X" >&5 7945echo "$as_me:$LINENO: checking for X" >&5
7864echo $ECHO_N "checking for X... $ECHO_C" >&6 7946echo $ECHO_N "checking for X... $ECHO_C" >&6
7865 7947
7866ac_path_x_has_been_run=yes
7867 7948
7868# Check whether --with-x or --without-x was given. 7949# Check whether --with-x or --without-x was given.
7869if test "${with_x+set}" = set; then 7950if test "${with_x+set}" = set; then
@@ -7956,7 +8037,7 @@ ac_x_header_dirs='
7956/usr/openwin/share/include' 8037/usr/openwin/share/include'
7957 8038
7958if test "$ac_x_includes" = no; then 8039if test "$ac_x_includes" = no; then
7959 # Guess where to find include files, by looking for a specified header file. 8040 # Guess where to find include files, by looking for Intrinsic.h.
7960 # First, try using that file with no special directory specified. 8041 # First, try using that file with no special directory specified.
7961 cat >conftest.$ac_ext <<_ACEOF 8042 cat >conftest.$ac_ext <<_ACEOF
7962/* confdefs.h. */ 8043/* confdefs.h. */
@@ -8030,7 +8111,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8030 cat conftest.err >&5 8111 cat conftest.err >&5
8031 echo "$as_me:$LINENO: \$? = $ac_status" >&5 8112 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8032 (exit $ac_status); } && 8113 (exit $ac_status); } &&
8033 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 8114 { ac_try='test -z "$ac_c_werror_flag"
8115 || test ! -s conftest.err'
8034 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 8116 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8035 (eval $ac_try) 2>&5 8117 (eval $ac_try) 2>&5
8036 ac_status=$? 8118 ac_status=$?
@@ -8090,12 +8172,8 @@ else
8090 # Update the cache value to reflect the command line values. 8172 # Update the cache value to reflect the command line values.
8091 ac_cv_have_x="have_x=yes \ 8173 ac_cv_have_x="have_x=yes \
8092 ac_x_includes=$x_includes ac_x_libraries=$x_libraries" 8174 ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
8093 # It might be that x_includes is empty (headers are found in the 8175 echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5
8094 # standard search path. Then output the corresponding message 8176echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
8095 ac_out_x_includes=$x_includes
8096 test "x$x_includes" = x && ac_out_x_includes="in standard search path"
8097 echo "$as_me:$LINENO: result: libraries $x_libraries, headers $ac_out_x_includes" >&5
8098echo "${ECHO_T}libraries $x_libraries, headers $ac_out_x_includes" >&6
8099fi 8177fi
8100 8178
8101if test "$no_x" = yes; then 8179if test "$no_x" = yes; then
@@ -8259,7 +8337,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8259 cat conftest.err >&5 8337 cat conftest.err >&5
8260 echo "$as_me:$LINENO: \$? = $ac_status" >&5 8338 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8261 (exit $ac_status); } && 8339 (exit $ac_status); } &&
8262 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 8340 { ac_try='test -z "$ac_c_werror_flag"
8341 || test ! -s conftest.err'
8263 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 8342 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8264 (eval $ac_try) 2>&5 8343 (eval $ac_try) 2>&5
8265 ac_status=$? 8344 ac_status=$?
@@ -8354,7 +8433,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8354 cat conftest.err >&5 8433 cat conftest.err >&5
8355 echo "$as_me:$LINENO: \$? = $ac_status" >&5 8434 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8356 (exit $ac_status); } && 8435 (exit $ac_status); } &&
8357 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 8436 { ac_try='test -z "$ac_c_werror_flag"
8437 || test ! -s conftest.err'
8358 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 8438 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8359 (eval $ac_try) 2>&5 8439 (eval $ac_try) 2>&5
8360 ac_status=$? 8440 ac_status=$?
@@ -8413,7 +8493,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8413 cat conftest.err >&5 8493 cat conftest.err >&5
8414 echo "$as_me:$LINENO: \$? = $ac_status" >&5 8494 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8415 (exit $ac_status); } && 8495 (exit $ac_status); } &&
8416 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 8496 { ac_try='test -z "$ac_c_werror_flag"
8497 || test ! -s conftest.err'
8417 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 8498 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8418 (eval $ac_try) 2>&5 8499 (eval $ac_try) 2>&5
8419 ac_status=$? 8500 ac_status=$?
@@ -8497,7 +8578,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
8497 cat conftest.err >&5 8578 cat conftest.err >&5
8498 echo "$as_me:$LINENO: \$? = $ac_status" >&5 8579 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8499 (exit $ac_status); } && 8580 (exit $ac_status); } &&
8500 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 8581 { ac_try='test -z "$ac_c_werror_flag"
8582 || test ! -s conftest.err'
8501 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 8583 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8502 (eval $ac_try) 2>&5 8584 (eval $ac_try) 2>&5
8503 ac_status=$? 8585 ac_status=$?
@@ -8681,7 +8763,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8681 cat conftest.err >&5 8763 cat conftest.err >&5
8682 echo "$as_me:$LINENO: \$? = $ac_status" >&5 8764 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8683 (exit $ac_status); } && 8765 (exit $ac_status); } &&
8684 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 8766 { ac_try='test -z "$ac_c_werror_flag"
8767 || test ! -s conftest.err'
8685 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 8768 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8686 (eval $ac_try) 2>&5 8769 (eval $ac_try) 2>&5
8687 ac_status=$? 8770 ac_status=$?
@@ -8933,7 +9016,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8933 cat conftest.err >&5 9016 cat conftest.err >&5
8934 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9017 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8935 (exit $ac_status); } && 9018 (exit $ac_status); } &&
8936 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 9019 { ac_try='test -z "$ac_c_werror_flag"
9020 || test ! -s conftest.err'
8937 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9021 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8938 (eval $ac_try) 2>&5 9022 (eval $ac_try) 2>&5
8939 ac_status=$? 9023 ac_status=$?
@@ -9000,7 +9084,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9000 cat conftest.err >&5 9084 cat conftest.err >&5
9001 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9085 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9002 (exit $ac_status); } && 9086 (exit $ac_status); } &&
9003 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 9087 { ac_try='test -z "$ac_c_werror_flag"
9088 || test ! -s conftest.err'
9004 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9089 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9005 (eval $ac_try) 2>&5 9090 (eval $ac_try) 2>&5
9006 ac_status=$? 9091 ac_status=$?
@@ -9069,7 +9154,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9069 cat conftest.err >&5 9154 cat conftest.err >&5
9070 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9155 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9071 (exit $ac_status); } && 9156 (exit $ac_status); } &&
9072 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 9157 { ac_try='test -z "$ac_c_werror_flag"
9158 || test ! -s conftest.err'
9073 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9159 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9074 (eval $ac_try) 2>&5 9160 (eval $ac_try) 2>&5
9075 ac_status=$? 9161 ac_status=$?
@@ -9154,7 +9240,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9154 cat conftest.err >&5 9240 cat conftest.err >&5
9155 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9241 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9156 (exit $ac_status); } && 9242 (exit $ac_status); } &&
9157 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 9243 { ac_try='test -z "$ac_c_werror_flag"
9244 || test ! -s conftest.err'
9158 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9245 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9159 (eval $ac_try) 2>&5 9246 (eval $ac_try) 2>&5
9160 ac_status=$? 9247 ac_status=$?
@@ -9231,7 +9318,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9231 cat conftest.err >&5 9318 cat conftest.err >&5
9232 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9319 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9233 (exit $ac_status); } && 9320 (exit $ac_status); } &&
9234 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 9321 { ac_try='test -z "$ac_c_werror_flag"
9322 || test ! -s conftest.err'
9235 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9323 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9236 (eval $ac_try) 2>&5 9324 (eval $ac_try) 2>&5
9237 ac_status=$? 9325 ac_status=$?
@@ -9285,7 +9373,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9285 cat conftest.err >&5 9373 cat conftest.err >&5
9286 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9374 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9287 (exit $ac_status); } && 9375 (exit $ac_status); } &&
9288 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 9376 { ac_try='test -z "$ac_c_werror_flag"
9377 || test ! -s conftest.err'
9289 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9378 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9290 (eval $ac_try) 2>&5 9379 (eval $ac_try) 2>&5
9291 ac_status=$? 9380 ac_status=$?
@@ -9354,7 +9443,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9354 cat conftest.err >&5 9443 cat conftest.err >&5
9355 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9444 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9356 (exit $ac_status); } && 9445 (exit $ac_status); } &&
9357 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 9446 { ac_try='test -z "$ac_c_werror_flag"
9447 || test ! -s conftest.err'
9358 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9448 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9359 (eval $ac_try) 2>&5 9449 (eval $ac_try) 2>&5
9360 ac_status=$? 9450 ac_status=$?
@@ -9458,7 +9548,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9458 cat conftest.err >&5 9548 cat conftest.err >&5
9459 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9549 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9460 (exit $ac_status); } && 9550 (exit $ac_status); } &&
9461 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 9551 { ac_try='test -z "$ac_c_werror_flag"
9552 || test ! -s conftest.err'
9462 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9553 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9463 (eval $ac_try) 2>&5 9554 (eval $ac_try) 2>&5
9464 ac_status=$? 9555 ac_status=$?
@@ -9525,7 +9616,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9525 cat conftest.err >&5 9616 cat conftest.err >&5
9526 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9617 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9527 (exit $ac_status); } && 9618 (exit $ac_status); } &&
9528 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 9619 { ac_try='test -z "$ac_c_werror_flag"
9620 || test ! -s conftest.err'
9529 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9621 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9530 (eval $ac_try) 2>&5 9622 (eval $ac_try) 2>&5
9531 ac_status=$? 9623 ac_status=$?
@@ -9595,7 +9687,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9595 cat conftest.err >&5 9687 cat conftest.err >&5
9596 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9688 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9597 (exit $ac_status); } && 9689 (exit $ac_status); } &&
9598 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 9690 { ac_try='test -z "$ac_c_werror_flag"
9691 || test ! -s conftest.err'
9599 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9692 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9600 (eval $ac_try) 2>&5 9693 (eval $ac_try) 2>&5
9601 ac_status=$? 9694 ac_status=$?
@@ -9833,7 +9926,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9833 cat conftest.err >&5 9926 cat conftest.err >&5
9834 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9927 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9835 (exit $ac_status); } && 9928 (exit $ac_status); } &&
9836 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 9929 { ac_try='test -z "$ac_c_werror_flag"
9930 || test ! -s conftest.err'
9837 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9931 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9838 (eval $ac_try) 2>&5 9932 (eval $ac_try) 2>&5
9839 ac_status=$? 9933 ac_status=$?
@@ -9907,7 +10001,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9907 cat conftest.err >&5 10001 cat conftest.err >&5
9908 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10002 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9909 (exit $ac_status); } && 10003 (exit $ac_status); } &&
9910 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 10004 { ac_try='test -z "$ac_c_werror_flag"
10005 || test ! -s conftest.err'
9911 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10006 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9912 (eval $ac_try) 2>&5 10007 (eval $ac_try) 2>&5
9913 ac_status=$? 10008 ac_status=$?
@@ -9979,7 +10074,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9979 cat conftest.err >&5 10074 cat conftest.err >&5
9980 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10075 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9981 (exit $ac_status); } && 10076 (exit $ac_status); } &&
9982 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 10077 { ac_try='test -z "$ac_c_werror_flag"
10078 || test ! -s conftest.err'
9983 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10079 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9984 (eval $ac_try) 2>&5 10080 (eval $ac_try) 2>&5
9985 ac_status=$? 10081 ac_status=$?
@@ -10061,7 +10157,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10061 cat conftest.err >&5 10157 cat conftest.err >&5
10062 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10158 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10063 (exit $ac_status); } && 10159 (exit $ac_status); } &&
10064 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 10160 { ac_try='test -z "$ac_c_werror_flag"
10161 || test ! -s conftest.err'
10065 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10162 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10066 (eval $ac_try) 2>&5 10163 (eval $ac_try) 2>&5
10067 ac_status=$? 10164 ac_status=$?
@@ -10140,7 +10237,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10140 cat conftest.err >&5 10237 cat conftest.err >&5
10141 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10238 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10142 (exit $ac_status); } && 10239 (exit $ac_status); } &&
10143 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 10240 { ac_try='test -z "$ac_c_werror_flag"
10241 || test ! -s conftest.err'
10144 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10242 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10145 (eval $ac_try) 2>&5 10243 (eval $ac_try) 2>&5
10146 ac_status=$? 10244 ac_status=$?
@@ -10214,7 +10312,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10214 cat conftest.err >&5 10312 cat conftest.err >&5
10215 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10313 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10216 (exit $ac_status); } && 10314 (exit $ac_status); } &&
10217 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 10315 { ac_try='test -z "$ac_c_werror_flag"
10316 || test ! -s conftest.err'
10218 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10317 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10219 (eval $ac_try) 2>&5 10318 (eval $ac_try) 2>&5
10220 ac_status=$? 10319 ac_status=$?
@@ -10282,7 +10381,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10282 cat conftest.err >&5 10381 cat conftest.err >&5
10283 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10382 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10284 (exit $ac_status); } && 10383 (exit $ac_status); } &&
10285 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 10384 { ac_try='test -z "$ac_c_werror_flag"
10385 || test ! -s conftest.err'
10286 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10386 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10287 (eval $ac_try) 2>&5 10387 (eval $ac_try) 2>&5
10288 ac_status=$? 10388 ac_status=$?
@@ -10351,7 +10451,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10351 cat conftest.err >&5 10451 cat conftest.err >&5
10352 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10452 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10353 (exit $ac_status); } && 10453 (exit $ac_status); } &&
10354 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 10454 { ac_try='test -z "$ac_c_werror_flag"
10455 || test ! -s conftest.err'
10355 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10456 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10356 (eval $ac_try) 2>&5 10457 (eval $ac_try) 2>&5
10357 ac_status=$? 10458 ac_status=$?
@@ -10475,7 +10576,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10475 cat conftest.err >&5 10576 cat conftest.err >&5
10476 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10577 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10477 (exit $ac_status); } && 10578 (exit $ac_status); } &&
10478 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 10579 { ac_try='test -z "$ac_c_werror_flag"
10580 || test ! -s conftest.err'
10479 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10581 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10480 (eval $ac_try) 2>&5 10582 (eval $ac_try) 2>&5
10481 ac_status=$? 10583 ac_status=$?
@@ -10571,7 +10673,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10571 cat conftest.err >&5 10673 cat conftest.err >&5
10572 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10674 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10573 (exit $ac_status); } && 10675 (exit $ac_status); } &&
10574 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 10676 { ac_try='test -z "$ac_c_werror_flag"
10677 || test ! -s conftest.err'
10575 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10678 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10576 (eval $ac_try) 2>&5 10679 (eval $ac_try) 2>&5
10577 ac_status=$? 10680 ac_status=$?
@@ -10651,7 +10754,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10651 cat conftest.err >&5 10754 cat conftest.err >&5
10652 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10755 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10653 (exit $ac_status); } && 10756 (exit $ac_status); } &&
10654 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 10757 { ac_try='test -z "$ac_c_werror_flag"
10758 || test ! -s conftest.err'
10655 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10759 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10656 (eval $ac_try) 2>&5 10760 (eval $ac_try) 2>&5
10657 ac_status=$? 10761 ac_status=$?
@@ -10719,7 +10823,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10719 cat conftest.err >&5 10823 cat conftest.err >&5
10720 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10824 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10721 (exit $ac_status); } && 10825 (exit $ac_status); } &&
10722 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 10826 { ac_try='test -z "$ac_c_werror_flag"
10827 || test ! -s conftest.err'
10723 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10828 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10724 (eval $ac_try) 2>&5 10829 (eval $ac_try) 2>&5
10725 ac_status=$? 10830 ac_status=$?
@@ -10864,7 +10969,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10864 cat conftest.err >&5 10969 cat conftest.err >&5
10865 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10970 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10866 (exit $ac_status); } && 10971 (exit $ac_status); } &&
10867 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 10972 { ac_try='test -z "$ac_c_werror_flag"
10973 || test ! -s conftest.err'
10868 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10974 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10869 (eval $ac_try) 2>&5 10975 (eval $ac_try) 2>&5
10870 ac_status=$? 10976 ac_status=$?
@@ -10973,7 +11079,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10973 cat conftest.err >&5 11079 cat conftest.err >&5
10974 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11080 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10975 (exit $ac_status); } && 11081 (exit $ac_status); } &&
10976 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 11082 { ac_try='test -z "$ac_c_werror_flag"
11083 || test ! -s conftest.err'
10977 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11084 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10978 (eval $ac_try) 2>&5 11085 (eval $ac_try) 2>&5
10979 ac_status=$? 11086 ac_status=$?
@@ -11118,7 +11225,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11118 cat conftest.err >&5 11225 cat conftest.err >&5
11119 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11226 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11120 (exit $ac_status); } && 11227 (exit $ac_status); } &&
11121 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 11228 { ac_try='test -z "$ac_c_werror_flag"
11229 || test ! -s conftest.err'
11122 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11230 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11123 (eval $ac_try) 2>&5 11231 (eval $ac_try) 2>&5
11124 ac_status=$? 11232 ac_status=$?
@@ -11225,7 +11333,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11225 cat conftest.err >&5 11333 cat conftest.err >&5
11226 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11334 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11227 (exit $ac_status); } && 11335 (exit $ac_status); } &&
11228 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 11336 { ac_try='test -z "$ac_c_werror_flag"
11337 || test ! -s conftest.err'
11229 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11338 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11230 (eval $ac_try) 2>&5 11339 (eval $ac_try) 2>&5
11231 ac_status=$? 11340 ac_status=$?
@@ -11379,7 +11488,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11379 cat conftest.err >&5 11488 cat conftest.err >&5
11380 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11489 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11381 (exit $ac_status); } && 11490 (exit $ac_status); } &&
11382 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 11491 { ac_try='test -z "$ac_c_werror_flag"
11492 || test ! -s conftest.err'
11383 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11493 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11384 (eval $ac_try) 2>&5 11494 (eval $ac_try) 2>&5
11385 ac_status=$? 11495 ac_status=$?
@@ -11454,7 +11564,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11454 cat conftest.err >&5 11564 cat conftest.err >&5
11455 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11565 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11456 (exit $ac_status); } && 11566 (exit $ac_status); } &&
11457 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 11567 { ac_try='test -z "$ac_c_werror_flag"
11568 || test ! -s conftest.err'
11458 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11569 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11459 (eval $ac_try) 2>&5 11570 (eval $ac_try) 2>&5
11460 ac_status=$? 11571 ac_status=$?
@@ -11602,7 +11713,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11602 cat conftest.err >&5 11713 cat conftest.err >&5
11603 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11714 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11604 (exit $ac_status); } && 11715 (exit $ac_status); } &&
11605 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 11716 { ac_try='test -z "$ac_c_werror_flag"
11717 || test ! -s conftest.err'
11606 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11718 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11607 (eval $ac_try) 2>&5 11719 (eval $ac_try) 2>&5
11608 ac_status=$? 11720 ac_status=$?
@@ -11679,7 +11791,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11679 cat conftest.err >&5 11791 cat conftest.err >&5
11680 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11792 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11681 (exit $ac_status); } && 11793 (exit $ac_status); } &&
11682 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 11794 { ac_try='test -z "$ac_c_werror_flag"
11795 || test ! -s conftest.err'
11683 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11796 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11684 (eval $ac_try) 2>&5 11797 (eval $ac_try) 2>&5
11685 ac_status=$? 11798 ac_status=$?
@@ -11826,7 +11939,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11826 cat conftest.err >&5 11939 cat conftest.err >&5
11827 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11940 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11828 (exit $ac_status); } && 11941 (exit $ac_status); } &&
11829 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 11942 { ac_try='test -z "$ac_c_werror_flag"
11943 || test ! -s conftest.err'
11830 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11944 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11831 (eval $ac_try) 2>&5 11945 (eval $ac_try) 2>&5
11832 ac_status=$? 11946 ac_status=$?
@@ -11902,7 +12016,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11902 cat conftest.err >&5 12016 cat conftest.err >&5
11903 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12017 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11904 (exit $ac_status); } && 12018 (exit $ac_status); } &&
11905 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 12019 { ac_try='test -z "$ac_c_werror_flag"
12020 || test ! -s conftest.err'
11906 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12021 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11907 (eval $ac_try) 2>&5 12022 (eval $ac_try) 2>&5
11908 ac_status=$? 12023 ac_status=$?
@@ -12067,7 +12182,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12067 cat conftest.err >&5 12182 cat conftest.err >&5
12068 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12183 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12069 (exit $ac_status); } && 12184 (exit $ac_status); } &&
12070 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 12185 { ac_try='test -z "$ac_c_werror_flag"
12186 || test ! -s conftest.err'
12071 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12187 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12072 (eval $ac_try) 2>&5 12188 (eval $ac_try) 2>&5
12073 ac_status=$? 12189 ac_status=$?
@@ -12212,7 +12328,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12212 cat conftest.err >&5 12328 cat conftest.err >&5
12213 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12329 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12214 (exit $ac_status); } && 12330 (exit $ac_status); } &&
12215 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 12331 { ac_try='test -z "$ac_c_werror_flag"
12332 || test ! -s conftest.err'
12216 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12333 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12217 (eval $ac_try) 2>&5 12334 (eval $ac_try) 2>&5
12218 ac_status=$? 12335 ac_status=$?
@@ -12288,7 +12405,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12288 cat conftest.err >&5 12405 cat conftest.err >&5
12289 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12406 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12290 (exit $ac_status); } && 12407 (exit $ac_status); } &&
12291 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 12408 { ac_try='test -z "$ac_c_werror_flag"
12409 || test ! -s conftest.err'
12292 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12410 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12293 (eval $ac_try) 2>&5 12411 (eval $ac_try) 2>&5
12294 ac_status=$? 12412 ac_status=$?
@@ -12351,7 +12469,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12351 cat conftest.err >&5 12469 cat conftest.err >&5
12352 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12470 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12353 (exit $ac_status); } && 12471 (exit $ac_status); } &&
12354 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 12472 { ac_try='test -z "$ac_c_werror_flag"
12473 || test ! -s conftest.err'
12355 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12474 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12356 (eval $ac_try) 2>&5 12475 (eval $ac_try) 2>&5
12357 ac_status=$? 12476 ac_status=$?
@@ -12432,7 +12551,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12432 cat conftest.err >&5 12551 cat conftest.err >&5
12433 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12552 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12434 (exit $ac_status); } && 12553 (exit $ac_status); } &&
12435 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 12554 { ac_try='test -z "$ac_c_werror_flag"
12555 || test ! -s conftest.err'
12436 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12556 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12437 (eval $ac_try) 2>&5 12557 (eval $ac_try) 2>&5
12438 ac_status=$? 12558 ac_status=$?
@@ -12573,7 +12693,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12573 cat conftest.err >&5 12693 cat conftest.err >&5
12574 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12694 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12575 (exit $ac_status); } && 12695 (exit $ac_status); } &&
12576 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 12696 { ac_try='test -z "$ac_c_werror_flag"
12697 || test ! -s conftest.err'
12577 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12698 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12578 (eval $ac_try) 2>&5 12699 (eval $ac_try) 2>&5
12579 ac_status=$? 12700 ac_status=$?
@@ -12718,7 +12839,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12718 cat conftest.err >&5 12839 cat conftest.err >&5
12719 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12840 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12720 (exit $ac_status); } && 12841 (exit $ac_status); } &&
12721 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 12842 { ac_try='test -z "$ac_c_werror_flag"
12843 || test ! -s conftest.err'
12722 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12844 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12723 (eval $ac_try) 2>&5 12845 (eval $ac_try) 2>&5
12724 ac_status=$? 12846 ac_status=$?
@@ -12794,7 +12916,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12794 cat conftest.err >&5 12916 cat conftest.err >&5
12795 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12917 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12796 (exit $ac_status); } && 12918 (exit $ac_status); } &&
12797 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 12919 { ac_try='test -z "$ac_c_werror_flag"
12920 || test ! -s conftest.err'
12798 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12921 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12799 (eval $ac_try) 2>&5 12922 (eval $ac_try) 2>&5
12800 ac_status=$? 12923 ac_status=$?
@@ -12867,7 +12990,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12867 cat conftest.err >&5 12990 cat conftest.err >&5
12868 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12991 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12869 (exit $ac_status); } && 12992 (exit $ac_status); } &&
12870 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 12993 { ac_try='test -z "$ac_c_werror_flag"
12994 || test ! -s conftest.err'
12871 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12995 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12872 (eval $ac_try) 2>&5 12996 (eval $ac_try) 2>&5
12873 ac_status=$? 12997 ac_status=$?
@@ -13022,7 +13146,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13022 cat conftest.err >&5 13146 cat conftest.err >&5
13023 echo "$as_me:$LINENO: \$? = $ac_status" >&5 13147 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13024 (exit $ac_status); } && 13148 (exit $ac_status); } &&
13025 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 13149 { ac_try='test -z "$ac_c_werror_flag"
13150 || test ! -s conftest.err'
13026 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 13151 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13027 (eval $ac_try) 2>&5 13152 (eval $ac_try) 2>&5
13028 ac_status=$? 13153 ac_status=$?
@@ -13088,7 +13213,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13088 cat conftest.err >&5 13213 cat conftest.err >&5
13089 echo "$as_me:$LINENO: \$? = $ac_status" >&5 13214 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13090 (exit $ac_status); } && 13215 (exit $ac_status); } &&
13091 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 13216 { ac_try='test -z "$ac_c_werror_flag"
13217 || test ! -s conftest.err'
13092 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 13218 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13093 (eval $ac_try) 2>&5 13219 (eval $ac_try) 2>&5
13094 ac_status=$? 13220 ac_status=$?
@@ -13346,7 +13472,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13346 cat conftest.err >&5 13472 cat conftest.err >&5
13347 echo "$as_me:$LINENO: \$? = $ac_status" >&5 13473 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13348 (exit $ac_status); } && 13474 (exit $ac_status); } &&
13349 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 13475 { ac_try='test -z "$ac_c_werror_flag"
13476 || test ! -s conftest.err'
13350 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 13477 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13351 (eval $ac_try) 2>&5 13478 (eval $ac_try) 2>&5
13352 ac_status=$? 13479 ac_status=$?
@@ -13413,7 +13540,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13413 cat conftest.err >&5 13540 cat conftest.err >&5
13414 echo "$as_me:$LINENO: \$? = $ac_status" >&5 13541 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13415 (exit $ac_status); } && 13542 (exit $ac_status); } &&
13416 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 13543 { ac_try='test -z "$ac_c_werror_flag"
13544 || test ! -s conftest.err'
13417 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 13545 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13418 (eval $ac_try) 2>&5 13546 (eval $ac_try) 2>&5
13419 ac_status=$? 13547 ac_status=$?
@@ -13565,7 +13693,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13565 cat conftest.err >&5 13693 cat conftest.err >&5
13566 echo "$as_me:$LINENO: \$? = $ac_status" >&5 13694 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13567 (exit $ac_status); } && 13695 (exit $ac_status); } &&
13568 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 13696 { ac_try='test -z "$ac_c_werror_flag"
13697 || test ! -s conftest.err'
13569 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 13698 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13570 (eval $ac_try) 2>&5 13699 (eval $ac_try) 2>&5
13571 ac_status=$? 13700 ac_status=$?
@@ -13749,7 +13878,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13749 cat conftest.err >&5 13878 cat conftest.err >&5
13750 echo "$as_me:$LINENO: \$? = $ac_status" >&5 13879 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13751 (exit $ac_status); } && 13880 (exit $ac_status); } &&
13752 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 13881 { ac_try='test -z "$ac_c_werror_flag"
13882 || test ! -s conftest.err'
13753 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 13883 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13754 (eval $ac_try) 2>&5 13884 (eval $ac_try) 2>&5
13755 ac_status=$? 13885 ac_status=$?
@@ -14076,7 +14206,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14076 cat conftest.err >&5 14206 cat conftest.err >&5
14077 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14207 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14078 (exit $ac_status); } && 14208 (exit $ac_status); } &&
14079 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 14209 { ac_try='test -z "$ac_c_werror_flag"
14210 || test ! -s conftest.err'
14080 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14211 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14081 (eval $ac_try) 2>&5 14212 (eval $ac_try) 2>&5
14082 ac_status=$? 14213 ac_status=$?
@@ -14177,7 +14308,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14177 cat conftest.err >&5 14308 cat conftest.err >&5
14178 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14309 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14179 (exit $ac_status); } && 14310 (exit $ac_status); } &&
14180 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 14311 { ac_try='test -z "$ac_c_werror_flag"
14312 || test ! -s conftest.err'
14181 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14313 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14182 (eval $ac_try) 2>&5 14314 (eval $ac_try) 2>&5
14183 ac_status=$? 14315 ac_status=$?
@@ -14250,7 +14382,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14250 cat conftest.err >&5 14382 cat conftest.err >&5
14251 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14383 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14252 (exit $ac_status); } && 14384 (exit $ac_status); } &&
14253 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 14385 { ac_try='test -z "$ac_c_werror_flag"
14386 || test ! -s conftest.err'
14254 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14387 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14255 (eval $ac_try) 2>&5 14388 (eval $ac_try) 2>&5
14256 ac_status=$? 14389 ac_status=$?
@@ -14329,7 +14462,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14329 cat conftest.err >&5 14462 cat conftest.err >&5
14330 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14463 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14331 (exit $ac_status); } && 14464 (exit $ac_status); } &&
14332 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 14465 { ac_try='test -z "$ac_c_werror_flag"
14466 || test ! -s conftest.err'
14333 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14467 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14334 (eval $ac_try) 2>&5 14468 (eval $ac_try) 2>&5
14335 ac_status=$? 14469 ac_status=$?
@@ -14398,7 +14532,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14398 cat conftest.err >&5 14532 cat conftest.err >&5
14399 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14533 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14400 (exit $ac_status); } && 14534 (exit $ac_status); } &&
14401 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 14535 { ac_try='test -z "$ac_c_werror_flag"
14536 || test ! -s conftest.err'
14402 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14537 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14403 (eval $ac_try) 2>&5 14538 (eval $ac_try) 2>&5
14404 ac_status=$? 14539 ac_status=$?
@@ -14466,7 +14601,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14466 cat conftest.err >&5 14601 cat conftest.err >&5
14467 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14602 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14468 (exit $ac_status); } && 14603 (exit $ac_status); } &&
14469 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 14604 { ac_try='test -z "$ac_c_werror_flag"
14605 || test ! -s conftest.err'
14470 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14606 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14471 (eval $ac_try) 2>&5 14607 (eval $ac_try) 2>&5
14472 ac_status=$? 14608 ac_status=$?
@@ -14540,7 +14676,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14540 cat conftest.err >&5 14676 cat conftest.err >&5
14541 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14677 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14542 (exit $ac_status); } && 14678 (exit $ac_status); } &&
14543 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 14679 { ac_try='test -z "$ac_c_werror_flag"
14680 || test ! -s conftest.err'
14544 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14681 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14545 (eval $ac_try) 2>&5 14682 (eval $ac_try) 2>&5
14546 ac_status=$? 14683 ac_status=$?
@@ -14644,7 +14781,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14644 cat conftest.err >&5 14781 cat conftest.err >&5
14645 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14782 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14646 (exit $ac_status); } && 14783 (exit $ac_status); } &&
14647 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 14784 { ac_try='test -z "$ac_c_werror_flag"
14785 || test ! -s conftest.err'
14648 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14786 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14649 (eval $ac_try) 2>&5 14787 (eval $ac_try) 2>&5
14650 ac_status=$? 14788 ac_status=$?
@@ -14719,7 +14857,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
14719 cat conftest.err >&5 14857 cat conftest.err >&5
14720 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14858 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14721 (exit $ac_status); } && 14859 (exit $ac_status); } &&
14722 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 14860 { ac_try='test -z "$ac_c_werror_flag"
14861 || test ! -s conftest.err'
14723 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14862 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14724 (eval $ac_try) 2>&5 14863 (eval $ac_try) 2>&5
14725 ac_status=$? 14864 ac_status=$?
@@ -14871,7 +15010,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14871 cat conftest.err >&5 15010 cat conftest.err >&5
14872 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15011 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14873 (exit $ac_status); } && 15012 (exit $ac_status); } &&
14874 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 15013 { ac_try='test -z "$ac_c_werror_flag"
15014 || test ! -s conftest.err'
14875 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15015 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14876 (eval $ac_try) 2>&5 15016 (eval $ac_try) 2>&5
14877 ac_status=$? 15017 ac_status=$?
@@ -14939,7 +15079,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
14939 cat conftest.err >&5 15079 cat conftest.err >&5
14940 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15080 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14941 (exit $ac_status); } && 15081 (exit $ac_status); } &&
14942 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 15082 { ac_try='test -z "$ac_c_werror_flag"
15083 || test ! -s conftest.err'
14943 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15084 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14944 (eval $ac_try) 2>&5 15085 (eval $ac_try) 2>&5
14945 ac_status=$? 15086 ac_status=$?
@@ -15116,7 +15257,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15116 cat conftest.err >&5 15257 cat conftest.err >&5
15117 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15258 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15118 (exit $ac_status); } && 15259 (exit $ac_status); } &&
15119 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 15260 { ac_try='test -z "$ac_c_werror_flag"
15261 || test ! -s conftest.err'
15120 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15262 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15121 (eval $ac_try) 2>&5 15263 (eval $ac_try) 2>&5
15122 ac_status=$? 15264 ac_status=$?
@@ -15192,7 +15334,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15192 cat conftest.err >&5 15334 cat conftest.err >&5
15193 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15335 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15194 (exit $ac_status); } && 15336 (exit $ac_status); } &&
15195 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 15337 { ac_try='test -z "$ac_c_werror_flag"
15338 || test ! -s conftest.err'
15196 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15339 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15197 (eval $ac_try) 2>&5 15340 (eval $ac_try) 2>&5
15198 ac_status=$? 15341 ac_status=$?
@@ -15346,7 +15489,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15346 cat conftest.err >&5 15489 cat conftest.err >&5
15347 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15490 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15348 (exit $ac_status); } && 15491 (exit $ac_status); } &&
15349 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 15492 { ac_try='test -z "$ac_c_werror_flag"
15493 || test ! -s conftest.err'
15350 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15494 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15351 (eval $ac_try) 2>&5 15495 (eval $ac_try) 2>&5
15352 ac_status=$? 15496 ac_status=$?
@@ -15497,7 +15641,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15497 cat conftest.err >&5 15641 cat conftest.err >&5
15498 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15642 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15499 (exit $ac_status); } && 15643 (exit $ac_status); } &&
15500 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 15644 { ac_try='test -z "$ac_c_werror_flag"
15645 || test ! -s conftest.err'
15501 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15646 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15502 (eval $ac_try) 2>&5 15647 (eval $ac_try) 2>&5
15503 ac_status=$? 15648 ac_status=$?
@@ -15648,7 +15793,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15648 cat conftest.err >&5 15793 cat conftest.err >&5
15649 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15794 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15650 (exit $ac_status); } && 15795 (exit $ac_status); } &&
15651 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 15796 { ac_try='test -z "$ac_c_werror_flag"
15797 || test ! -s conftest.err'
15652 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15798 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15653 (eval $ac_try) 2>&5 15799 (eval $ac_try) 2>&5
15654 ac_status=$? 15800 ac_status=$?
@@ -15790,7 +15936,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15790 cat conftest.err >&5 15936 cat conftest.err >&5
15791 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15937 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15792 (exit $ac_status); } && 15938 (exit $ac_status); } &&
15793 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 15939 { ac_try='test -z "$ac_c_werror_flag"
15940 || test ! -s conftest.err'
15794 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15941 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15795 (eval $ac_try) 2>&5 15942 (eval $ac_try) 2>&5
15796 ac_status=$? 15943 ac_status=$?
@@ -15834,7 +15981,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15834 cat conftest.err >&5 15981 cat conftest.err >&5
15835 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15982 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15836 (exit $ac_status); } && 15983 (exit $ac_status); } &&
15837 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 15984 { ac_try='test -z "$ac_c_werror_flag"
15985 || test ! -s conftest.err'
15838 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15986 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15839 (eval $ac_try) 2>&5 15987 (eval $ac_try) 2>&5
15840 ac_status=$? 15988 ac_status=$?
@@ -15980,7 +16128,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15980 cat conftest.err >&5 16128 cat conftest.err >&5
15981 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16129 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15982 (exit $ac_status); } && 16130 (exit $ac_status); } &&
15983 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 16131 { ac_try='test -z "$ac_c_werror_flag"
16132 || test ! -s conftest.err'
15984 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16133 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15985 (eval $ac_try) 2>&5 16134 (eval $ac_try) 2>&5
15986 ac_status=$? 16135 ac_status=$?
@@ -16024,7 +16173,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16024 cat conftest.err >&5 16173 cat conftest.err >&5
16025 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16174 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16026 (exit $ac_status); } && 16175 (exit $ac_status); } &&
16027 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 16176 { ac_try='test -z "$ac_c_werror_flag"
16177 || test ! -s conftest.err'
16028 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16178 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16029 (eval $ac_try) 2>&5 16179 (eval $ac_try) 2>&5
16030 ac_status=$? 16180 ac_status=$?
@@ -16089,7 +16239,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16089 cat conftest.err >&5 16239 cat conftest.err >&5
16090 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16240 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16091 (exit $ac_status); } && 16241 (exit $ac_status); } &&
16092 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 16242 { ac_try='test -z "$ac_c_werror_flag"
16243 || test ! -s conftest.err'
16093 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16244 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16094 (eval $ac_try) 2>&5 16245 (eval $ac_try) 2>&5
16095 ac_status=$? 16246 ac_status=$?
@@ -16152,7 +16303,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16152 cat conftest.err >&5 16303 cat conftest.err >&5
16153 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16304 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16154 (exit $ac_status); } && 16305 (exit $ac_status); } &&
16155 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 16306 { ac_try='test -z "$ac_c_werror_flag"
16307 || test ! -s conftest.err'
16156 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16308 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16157 (eval $ac_try) 2>&5 16309 (eval $ac_try) 2>&5
16158 ac_status=$? 16310 ac_status=$?
@@ -16254,7 +16406,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16254 cat conftest.err >&5 16406 cat conftest.err >&5
16255 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16407 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16256 (exit $ac_status); } && 16408 (exit $ac_status); } &&
16257 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 16409 { ac_try='test -z "$ac_c_werror_flag"
16410 || test ! -s conftest.err'
16258 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16411 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16259 (eval $ac_try) 2>&5 16412 (eval $ac_try) 2>&5
16260 ac_status=$? 16413 ac_status=$?
@@ -16323,7 +16476,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16323 cat conftest.err >&5 16476 cat conftest.err >&5
16324 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16477 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16325 (exit $ac_status); } && 16478 (exit $ac_status); } &&
16326 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 16479 { ac_try='test -z "$ac_c_werror_flag"
16480 || test ! -s conftest.err'
16327 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16481 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16328 (eval $ac_try) 2>&5 16482 (eval $ac_try) 2>&5
16329 ac_status=$? 16483 ac_status=$?
@@ -16430,7 +16584,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16430 cat conftest.err >&5 16584 cat conftest.err >&5
16431 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16585 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16432 (exit $ac_status); } && 16586 (exit $ac_status); } &&
16433 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 16587 { ac_try='test -z "$ac_c_werror_flag"
16588 || test ! -s conftest.err'
16434 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16589 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16435 (eval $ac_try) 2>&5 16590 (eval $ac_try) 2>&5
16436 ac_status=$? 16591 ac_status=$?
@@ -16533,7 +16688,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16533 cat conftest.err >&5 16688 cat conftest.err >&5
16534 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16689 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16535 (exit $ac_status); } && 16690 (exit $ac_status); } &&
16536 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 16691 { ac_try='test -z "$ac_c_werror_flag"
16692 || test ! -s conftest.err'
16537 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16693 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16538 (eval $ac_try) 2>&5 16694 (eval $ac_try) 2>&5
16539 ac_status=$? 16695 ac_status=$?
@@ -16609,7 +16765,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16609 cat conftest.err >&5 16765 cat conftest.err >&5
16610 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16766 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16611 (exit $ac_status); } && 16767 (exit $ac_status); } &&
16612 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 16768 { ac_try='test -z "$ac_c_werror_flag"
16769 || test ! -s conftest.err'
16613 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16770 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16614 (eval $ac_try) 2>&5 16771 (eval $ac_try) 2>&5
16615 ac_status=$? 16772 ac_status=$?
@@ -16713,7 +16870,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16713 cat conftest.err >&5 16870 cat conftest.err >&5
16714 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16871 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16715 (exit $ac_status); } && 16872 (exit $ac_status); } &&
16716 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 16873 { ac_try='test -z "$ac_c_werror_flag"
16874 || test ! -s conftest.err'
16717 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16875 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16718 (eval $ac_try) 2>&5 16876 (eval $ac_try) 2>&5
16719 ac_status=$? 16877 ac_status=$?
@@ -16805,7 +16963,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16805 cat conftest.err >&5 16963 cat conftest.err >&5
16806 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16964 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16807 (exit $ac_status); } && 16965 (exit $ac_status); } &&
16808 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 16966 { ac_try='test -z "$ac_c_werror_flag"
16967 || test ! -s conftest.err'
16809 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16968 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16810 (eval $ac_try) 2>&5 16969 (eval $ac_try) 2>&5
16811 ac_status=$? 16970 ac_status=$?
@@ -16870,7 +17029,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16870 cat conftest.err >&5 17029 cat conftest.err >&5
16871 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17030 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16872 (exit $ac_status); } && 17031 (exit $ac_status); } &&
16873 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 17032 { ac_try='test -z "$ac_c_werror_flag"
17033 || test ! -s conftest.err'
16874 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17034 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16875 (eval $ac_try) 2>&5 17035 (eval $ac_try) 2>&5
16876 ac_status=$? 17036 ac_status=$?
@@ -16936,7 +17096,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16936 cat conftest.err >&5 17096 cat conftest.err >&5
16937 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17097 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16938 (exit $ac_status); } && 17098 (exit $ac_status); } &&
16939 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 17099 { ac_try='test -z "$ac_c_werror_flag"
17100 || test ! -s conftest.err'
16940 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17101 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16941 (eval $ac_try) 2>&5 17102 (eval $ac_try) 2>&5
16942 ac_status=$? 17103 ac_status=$?
@@ -17046,7 +17207,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17046 cat conftest.err >&5 17207 cat conftest.err >&5
17047 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17208 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17048 (exit $ac_status); } && 17209 (exit $ac_status); } &&
17049 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 17210 { ac_try='test -z "$ac_c_werror_flag"
17211 || test ! -s conftest.err'
17050 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17212 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17051 (eval $ac_try) 2>&5 17213 (eval $ac_try) 2>&5
17052 ac_status=$? 17214 ac_status=$?
@@ -17111,7 +17273,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17111 cat conftest.err >&5 17273 cat conftest.err >&5
17112 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17274 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17113 (exit $ac_status); } && 17275 (exit $ac_status); } &&
17114 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 17276 { ac_try='test -z "$ac_c_werror_flag"
17277 || test ! -s conftest.err'
17115 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17278 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17116 (eval $ac_try) 2>&5 17279 (eval $ac_try) 2>&5
17117 ac_status=$? 17280 ac_status=$?
@@ -17191,7 +17354,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17191 cat conftest.err >&5 17354 cat conftest.err >&5
17192 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17355 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17193 (exit $ac_status); } && 17356 (exit $ac_status); } &&
17194 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 17357 { ac_try='test -z "$ac_c_werror_flag"
17358 || test ! -s conftest.err'
17195 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17359 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17196 (eval $ac_try) 2>&5 17360 (eval $ac_try) 2>&5
17197 ac_status=$? 17361 ac_status=$?
@@ -17264,7 +17428,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17264 cat conftest.err >&5 17428 cat conftest.err >&5
17265 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17429 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17266 (exit $ac_status); } && 17430 (exit $ac_status); } &&
17267 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 17431 { ac_try='test -z "$ac_c_werror_flag"
17432 || test ! -s conftest.err'
17268 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17433 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17269 (eval $ac_try) 2>&5 17434 (eval $ac_try) 2>&5
17270 ac_status=$? 17435 ac_status=$?
@@ -17337,7 +17502,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17337 cat conftest.err >&5 17502 cat conftest.err >&5
17338 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17503 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17339 (exit $ac_status); } && 17504 (exit $ac_status); } &&
17340 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 17505 { ac_try='test -z "$ac_c_werror_flag"
17506 || test ! -s conftest.err'
17341 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17507 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17342 (eval $ac_try) 2>&5 17508 (eval $ac_try) 2>&5
17343 ac_status=$? 17509 ac_status=$?
@@ -17410,7 +17576,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17410 cat conftest.err >&5 17576 cat conftest.err >&5
17411 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17577 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17412 (exit $ac_status); } && 17578 (exit $ac_status); } &&
17413 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 17579 { ac_try='test -z "$ac_c_werror_flag"
17580 || test ! -s conftest.err'
17414 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17581 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17415 (eval $ac_try) 2>&5 17582 (eval $ac_try) 2>&5
17416 ac_status=$? 17583 ac_status=$?
@@ -17484,7 +17651,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17484 cat conftest.err >&5 17651 cat conftest.err >&5
17485 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17652 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17486 (exit $ac_status); } && 17653 (exit $ac_status); } &&
17487 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 17654 { ac_try='test -z "$ac_c_werror_flag"
17655 || test ! -s conftest.err'
17488 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17656 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17489 (eval $ac_try) 2>&5 17657 (eval $ac_try) 2>&5
17490 ac_status=$? 17658 ac_status=$?
@@ -17556,7 +17724,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17556 cat conftest.err >&5 17724 cat conftest.err >&5
17557 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17725 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17558 (exit $ac_status); } && 17726 (exit $ac_status); } &&
17559 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 17727 { ac_try='test -z "$ac_c_werror_flag"
17728 || test ! -s conftest.err'
17560 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17729 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17561 (eval $ac_try) 2>&5 17730 (eval $ac_try) 2>&5
17562 ac_status=$? 17731 ac_status=$?
@@ -17631,7 +17800,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17631 cat conftest.err >&5 17800 cat conftest.err >&5
17632 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17801 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17633 (exit $ac_status); } && 17802 (exit $ac_status); } &&
17634 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 17803 { ac_try='test -z "$ac_c_werror_flag"
17804 || test ! -s conftest.err'
17635 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17805 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17636 (eval $ac_try) 2>&5 17806 (eval $ac_try) 2>&5
17637 ac_status=$? 17807 ac_status=$?
@@ -17703,7 +17873,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17703 cat conftest.err >&5 17873 cat conftest.err >&5
17704 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17874 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17705 (exit $ac_status); } && 17875 (exit $ac_status); } &&
17706 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 17876 { ac_try='test -z "$ac_c_werror_flag"
17877 || test ! -s conftest.err'
17707 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17878 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17708 (eval $ac_try) 2>&5 17879 (eval $ac_try) 2>&5
17709 ac_status=$? 17880 ac_status=$?
@@ -17776,7 +17947,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
17776 cat conftest.err >&5 17947 cat conftest.err >&5
17777 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17948 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17778 (exit $ac_status); } && 17949 (exit $ac_status); } &&
17779 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 17950 { ac_try='test -z "$ac_c_werror_flag"
17951 || test ! -s conftest.err'
17780 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17952 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17781 (eval $ac_try) 2>&5 17953 (eval $ac_try) 2>&5
17782 ac_status=$? 17954 ac_status=$?
@@ -17926,7 +18098,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
17926 cat conftest.err >&5 18098 cat conftest.err >&5
17927 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18099 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17928 (exit $ac_status); } && 18100 (exit $ac_status); } &&
17929 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 18101 { ac_try='test -z "$ac_c_werror_flag"
18102 || test ! -s conftest.err'
17930 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18103 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17931 (eval $ac_try) 2>&5 18104 (eval $ac_try) 2>&5
17932 ac_status=$? 18105 ac_status=$?
@@ -18072,7 +18245,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
18072 cat conftest.err >&5 18245 cat conftest.err >&5
18073 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18246 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18074 (exit $ac_status); } && 18247 (exit $ac_status); } &&
18075 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 18248 { ac_try='test -z "$ac_c_werror_flag"
18249 || test ! -s conftest.err'
18076 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18250 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18077 (eval $ac_try) 2>&5 18251 (eval $ac_try) 2>&5
18078 ac_status=$? 18252 ac_status=$?
@@ -18218,7 +18392,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
18218 cat conftest.err >&5 18392 cat conftest.err >&5
18219 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18393 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18220 (exit $ac_status); } && 18394 (exit $ac_status); } &&
18221 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 18395 { ac_try='test -z "$ac_c_werror_flag"
18396 || test ! -s conftest.err'
18222 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18397 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18223 (eval $ac_try) 2>&5 18398 (eval $ac_try) 2>&5
18224 ac_status=$? 18399 ac_status=$?
@@ -18375,7 +18550,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
18375 cat conftest.err >&5 18550 cat conftest.err >&5
18376 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18551 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18377 (exit $ac_status); } && 18552 (exit $ac_status); } &&
18378 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 18553 { ac_try='test -z "$ac_c_werror_flag"
18554 || test ! -s conftest.err'
18379 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18555 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18380 (eval $ac_try) 2>&5 18556 (eval $ac_try) 2>&5
18381 ac_status=$? 18557 ac_status=$?
@@ -18521,7 +18697,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
18521 cat conftest.err >&5 18697 cat conftest.err >&5
18522 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18698 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18523 (exit $ac_status); } && 18699 (exit $ac_status); } &&
18524 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 18700 { ac_try='test -z "$ac_c_werror_flag"
18701 || test ! -s conftest.err'
18525 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18702 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18526 (eval $ac_try) 2>&5 18703 (eval $ac_try) 2>&5
18527 ac_status=$? 18704 ac_status=$?
@@ -18667,7 +18844,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
18667 cat conftest.err >&5 18844 cat conftest.err >&5
18668 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18845 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18669 (exit $ac_status); } && 18846 (exit $ac_status); } &&
18670 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 18847 { ac_try='test -z "$ac_c_werror_flag"
18848 || test ! -s conftest.err'
18671 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18849 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18672 (eval $ac_try) 2>&5 18850 (eval $ac_try) 2>&5
18673 ac_status=$? 18851 ac_status=$?
@@ -18825,7 +19003,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
18825 cat conftest.err >&5 19003 cat conftest.err >&5
18826 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19004 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18827 (exit $ac_status); } && 19005 (exit $ac_status); } &&
18828 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 19006 { ac_try='test -z "$ac_c_werror_flag"
19007 || test ! -s conftest.err'
18829 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19008 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18830 (eval $ac_try) 2>&5 19009 (eval $ac_try) 2>&5
18831 ac_status=$? 19010 ac_status=$?
@@ -18983,7 +19162,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
18983 cat conftest.err >&5 19162 cat conftest.err >&5
18984 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19163 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18985 (exit $ac_status); } && 19164 (exit $ac_status); } &&
18986 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 19165 { ac_try='test -z "$ac_c_werror_flag"
19166 || test ! -s conftest.err'
18987 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19167 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18988 (eval $ac_try) 2>&5 19168 (eval $ac_try) 2>&5
18989 ac_status=$? 19169 ac_status=$?
@@ -19172,7 +19352,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
19172 cat conftest.err >&5 19352 cat conftest.err >&5
19173 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19353 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19174 (exit $ac_status); } && 19354 (exit $ac_status); } &&
19175 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 19355 { ac_try='test -z "$ac_c_werror_flag"
19356 || test ! -s conftest.err'
19176 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19357 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19177 (eval $ac_try) 2>&5 19358 (eval $ac_try) 2>&5
19178 ac_status=$? 19359 ac_status=$?
@@ -19245,7 +19426,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
19245 cat conftest.err >&5 19426 cat conftest.err >&5
19246 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19427 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19247 (exit $ac_status); } && 19428 (exit $ac_status); } &&
19248 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 19429 { ac_try='test -z "$ac_c_werror_flag"
19430 || test ! -s conftest.err'
19249 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19431 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19250 (eval $ac_try) 2>&5 19432 (eval $ac_try) 2>&5
19251 ac_status=$? 19433 ac_status=$?
@@ -19313,7 +19495,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
19313 cat conftest.err >&5 19495 cat conftest.err >&5
19314 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19496 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19315 (exit $ac_status); } && 19497 (exit $ac_status); } &&
19316 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 19498 { ac_try='test -z "$ac_c_werror_flag"
19499 || test ! -s conftest.err'
19317 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19500 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19318 (eval $ac_try) 2>&5 19501 (eval $ac_try) 2>&5
19319 ac_status=$? 19502 ac_status=$?
@@ -19359,7 +19542,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
19359 cat conftest.err >&5 19542 cat conftest.err >&5
19360 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19543 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19361 (exit $ac_status); } && 19544 (exit $ac_status); } &&
19362 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 19545 { ac_try='test -z "$ac_c_werror_flag"
19546 || test ! -s conftest.err'
19363 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19547 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19364 (eval $ac_try) 2>&5 19548 (eval $ac_try) 2>&5
19365 ac_status=$? 19549 ac_status=$?
@@ -19433,7 +19617,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
19433 cat conftest.err >&5 19617 cat conftest.err >&5
19434 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19618 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19435 (exit $ac_status); } && 19619 (exit $ac_status); } &&
19436 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 19620 { ac_try='test -z "$ac_c_werror_flag"
19621 || test ! -s conftest.err'
19437 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19622 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19438 (eval $ac_try) 2>&5 19623 (eval $ac_try) 2>&5
19439 ac_status=$? 19624 ac_status=$?
@@ -19497,7 +19682,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
19497 cat conftest.err >&5 19682 cat conftest.err >&5
19498 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19683 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19499 (exit $ac_status); } && 19684 (exit $ac_status); } &&
19500 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 19685 { ac_try='test -z "$ac_c_werror_flag"
19686 || test ! -s conftest.err'
19501 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19687 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19502 (eval $ac_try) 2>&5 19688 (eval $ac_try) 2>&5
19503 ac_status=$? 19689 ac_status=$?
@@ -19635,7 +19821,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
19635 cat conftest.err >&5 19821 cat conftest.err >&5
19636 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19822 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19637 (exit $ac_status); } && 19823 (exit $ac_status); } &&
19638 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 19824 { ac_try='test -z "$ac_c_werror_flag"
19825 || test ! -s conftest.err'
19639 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19826 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19640 (eval $ac_try) 2>&5 19827 (eval $ac_try) 2>&5
19641 ac_status=$? 19828 ac_status=$?
@@ -19696,7 +19883,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
19696 cat conftest.err >&5 19883 cat conftest.err >&5
19697 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19884 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19698 (exit $ac_status); } && 19885 (exit $ac_status); } &&
19699 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 19886 { ac_try='test -z "$ac_c_werror_flag"
19887 || test ! -s conftest.err'
19700 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19888 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19701 (eval $ac_try) 2>&5 19889 (eval $ac_try) 2>&5
19702 ac_status=$? 19890 ac_status=$?
@@ -19841,7 +20029,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
19841 cat conftest.err >&5 20029 cat conftest.err >&5
19842 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20030 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19843 (exit $ac_status); } && 20031 (exit $ac_status); } &&
19844 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 20032 { ac_try='test -z "$ac_c_werror_flag"
20033 || test ! -s conftest.err'
19845 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20034 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19846 (eval $ac_try) 2>&5 20035 (eval $ac_try) 2>&5
19847 ac_status=$? 20036 ac_status=$?
@@ -19997,7 +20186,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
19997 cat conftest.err >&5 20186 cat conftest.err >&5
19998 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20187 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19999 (exit $ac_status); } && 20188 (exit $ac_status); } &&
20000 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 20189 { ac_try='test -z "$ac_c_werror_flag"
20190 || test ! -s conftest.err'
20001 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20191 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20002 (eval $ac_try) 2>&5 20192 (eval $ac_try) 2>&5
20003 ac_status=$? 20193 ac_status=$?
@@ -20168,7 +20358,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
20168 cat conftest.err >&5 20358 cat conftest.err >&5
20169 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20359 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20170 (exit $ac_status); } && 20360 (exit $ac_status); } &&
20171 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 20361 { ac_try='test -z "$ac_c_werror_flag"
20362 || test ! -s conftest.err'
20172 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20363 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20173 (eval $ac_try) 2>&5 20364 (eval $ac_try) 2>&5
20174 ac_status=$? 20365 ac_status=$?
@@ -20236,7 +20427,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
20236 cat conftest.err >&5 20427 cat conftest.err >&5
20237 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20428 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20238 (exit $ac_status); } && 20429 (exit $ac_status); } &&
20239 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 20430 { ac_try='test -z "$ac_c_werror_flag"
20431 || test ! -s conftest.err'
20240 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20432 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20241 (eval $ac_try) 2>&5 20433 (eval $ac_try) 2>&5
20242 ac_status=$? 20434 ac_status=$?
@@ -20421,7 +20613,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
20421 cat conftest.err >&5 20613 cat conftest.err >&5
20422 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20614 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20423 (exit $ac_status); } && 20615 (exit $ac_status); } &&
20424 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 20616 { ac_try='test -z "$ac_c_werror_flag"
20617 || test ! -s conftest.err'
20425 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20618 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20426 (eval $ac_try) 2>&5 20619 (eval $ac_try) 2>&5
20427 ac_status=$? 20620 ac_status=$?
@@ -20714,7 +20907,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
20714 cat conftest.err >&5 20907 cat conftest.err >&5
20715 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20908 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20716 (exit $ac_status); } && 20909 (exit $ac_status); } &&
20717 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 20910 { ac_try='test -z "$ac_c_werror_flag"
20911 || test ! -s conftest.err'
20718 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20912 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20719 (eval $ac_try) 2>&5 20913 (eval $ac_try) 2>&5
20720 ac_status=$? 20914 ac_status=$?
@@ -20779,7 +20973,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
20779 cat conftest.err >&5 20973 cat conftest.err >&5
20780 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20974 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20781 (exit $ac_status); } && 20975 (exit $ac_status); } &&
20782 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 20976 { ac_try='test -z "$ac_c_werror_flag"
20977 || test ! -s conftest.err'
20783 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20978 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20784 (eval $ac_try) 2>&5 20979 (eval $ac_try) 2>&5
20785 ac_status=$? 20980 ac_status=$?
@@ -20842,7 +21037,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
20842 cat conftest.err >&5 21037 cat conftest.err >&5
20843 echo "$as_me:$LINENO: \$? = $ac_status" >&5 21038 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20844 (exit $ac_status); } && 21039 (exit $ac_status); } &&
20845 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 21040 { ac_try='test -z "$ac_c_werror_flag"
21041 || test ! -s conftest.err'
20846 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 21042 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20847 (eval $ac_try) 2>&5 21043 (eval $ac_try) 2>&5
20848 ac_status=$? 21044 ac_status=$?
@@ -20908,7 +21104,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
20908 cat conftest.err >&5 21104 cat conftest.err >&5
20909 echo "$as_me:$LINENO: \$? = $ac_status" >&5 21105 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20910 (exit $ac_status); } && 21106 (exit $ac_status); } &&
20911 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 21107 { ac_try='test -z "$ac_c_werror_flag"
21108 || test ! -s conftest.err'
20912 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 21109 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20913 (eval $ac_try) 2>&5 21110 (eval $ac_try) 2>&5
20914 ac_status=$? 21111 ac_status=$?
@@ -20949,7 +21146,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
20949 cat conftest.err >&5 21146 cat conftest.err >&5
20950 echo "$as_me:$LINENO: \$? = $ac_status" >&5 21147 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20951 (exit $ac_status); } && 21148 (exit $ac_status); } &&
20952 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 21149 { ac_try='test -z "$ac_c_werror_flag"
21150 || test ! -s conftest.err'
20953 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 21151 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20954 (eval $ac_try) 2>&5 21152 (eval $ac_try) 2>&5
20955 ac_status=$? 21153 ac_status=$?
@@ -21016,7 +21214,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
21016 cat conftest.err >&5 21214 cat conftest.err >&5
21017 echo "$as_me:$LINENO: \$? = $ac_status" >&5 21215 echo "$as_me:$LINENO: \$? = $ac_status" >&5
21018 (exit $ac_status); } && 21216 (exit $ac_status); } &&
21019 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 21217 { ac_try='test -z "$ac_c_werror_flag"
21218 || test ! -s conftest.err'
21020 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 21219 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
21021 (eval $ac_try) 2>&5 21220 (eval $ac_try) 2>&5
21022 ac_status=$? 21221 ac_status=$?
@@ -21234,6 +21433,29 @@ echo " Does Emacs use -lpng? ${HAVE_PNG}"
21234echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}" 21433echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}"
21235echo 21434echo
21236 21435
21436if test "$emacs_cv_randomheap" = warn; then
21437 { echo "$as_me:$LINENO: WARNING:
21438**********************************************************************
21439
21440Heap start address is randomized and no workaround is known.
21441Emacs will probably dump core when temacs is run in the build phase.
21442Maybe exec-shield is turned on. Read about exec-shield in \`etc/PROBLEMS'
21443for further information.
21444
21445**********************************************************************
21446" >&5
21447echo "$as_me: WARNING:
21448**********************************************************************
21449
21450Heap start address is randomized and no workaround is known.
21451Emacs will probably dump core when temacs is run in the build phase.
21452Maybe exec-shield is turned on. Read about exec-shield in \`etc/PROBLEMS'
21453for further information.
21454
21455**********************************************************************
21456" >&2;}
21457fi
21458
21237# Remove any trailing slashes in these variables. 21459# Remove any trailing slashes in these variables.
21238test "${prefix}" != NONE && 21460test "${prefix}" != NONE &&
21239 prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'` 21461 prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
@@ -21921,8 +22143,8 @@ s,@RANLIB@,$RANLIB,;t t
21921s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t 22143s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
21922s,@INSTALL_INFO@,$INSTALL_INFO,;t t 22144s,@INSTALL_INFO@,$INSTALL_INFO,;t t
21923s,@EGREP@,$EGREP,;t t 22145s,@EGREP@,$EGREP,;t t
21924s,@SETARCH@,$SETARCH,;t t
21925s,@LIBSOUND@,$LIBSOUND,;t t 22146s,@LIBSOUND@,$LIBSOUND,;t t
22147s,@SETARCH@,$SETARCH,;t t
21926s,@SET_MAKE@,$SET_MAKE,;t t 22148s,@SET_MAKE@,$SET_MAKE,;t t
21927s,@PKG_CONFIG@,$PKG_CONFIG,;t t 22149s,@PKG_CONFIG@,$PKG_CONFIG,;t t
21928s,@GTK_CFLAGS@,$GTK_CFLAGS,;t t 22150s,@GTK_CFLAGS@,$GTK_CFLAGS,;t t
@@ -22123,6 +22345,11 @@ esac
22123 *) ac_INSTALL=$ac_top_builddir$INSTALL ;; 22345 *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
22124 esac 22346 esac
22125 22347
22348 if test x"$ac_file" != x-; then
22349 { echo "$as_me:$LINENO: creating $ac_file" >&5
22350echo "$as_me: creating $ac_file" >&6;}
22351 rm -f "$ac_file"
22352 fi
22126 # Let's still pretend it is `configure' which instantiates (i.e., don't 22353 # Let's still pretend it is `configure' which instantiates (i.e., don't
22127 # use $as_me), people would be surprised to read: 22354 # use $as_me), people would be surprised to read:
22128 # /* config.h. Generated by config.status. */ 22355 # /* config.h. Generated by config.status. */
@@ -22161,12 +22388,6 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
22161 fi;; 22388 fi;;
22162 esac 22389 esac
22163 done` || { (exit 1); exit 1; } 22390 done` || { (exit 1); exit 1; }
22164
22165 if test x"$ac_file" != x-; then
22166 { echo "$as_me:$LINENO: creating $ac_file" >&5
22167echo "$as_me: creating $ac_file" >&6;}
22168 rm -f "$ac_file"
22169 fi
22170_ACEOF 22391_ACEOF
22171cat >>$CONFIG_STATUS <<_ACEOF 22392cat >>$CONFIG_STATUS <<_ACEOF
22172 sed "$ac_vpsub 22393 sed "$ac_vpsub
diff --git a/configure.in b/configure.in
index 1f899a0808c..4e534a53485 100644
--- a/configure.in
+++ b/configure.in
@@ -1286,25 +1286,6 @@ AC_LINK_IFELSE([main(){return 0;}],
1286dnl checks for Unix variants 1286dnl checks for Unix variants
1287AC_AIX 1287AC_AIX
1288 1288
1289dnl check if exec-shield is present.
1290AC_CHECK_FILE(/proc/sys/kernel/exec-shield, emacs_cv_execshield=1,
1291 emacs_cv_execshield=0)
1292if test "$emacs_cv_execshield" = 1; then
1293 AC_PATH_PROG(SETARCH, setarch, no)
1294 AC_SUBST(SETARCH)
1295 if test "$SETARCH" != no && test "$machine" = "intel386"; then
1296 AC_DEFINE(HAVE_EXECSHIELD, 1,
1297 [Define to 1 if this OS has exec shield and we can handle it.])
1298 else
1299 case "`cat /proc/sys/kernel/exec-shield`" in
1300 0) ;;
1301 *)
1302 AC_MSG_ERROR([Exec-shield is turned on.
1303Emacs can not dump itself if exec-shield is turned on.
1304See `etc/PROBLEMS' for further information.])
1305 esac
1306 fi
1307fi
1308 1289
1309#### Extract some information from the operating system and machine files. 1290#### Extract some information from the operating system and machine files.
1310 1291
@@ -1591,6 +1572,53 @@ AH_TEMPLATE(POINTER_TYPE,
1591 [Define as `void' if your compiler accepts `void *'; otherwise 1572 [Define as `void' if your compiler accepts `void *'; otherwise
1592 define as `char'.])dnl 1573 define as `char'.])dnl
1593 1574
1575dnl Test if heap start address is randomized (exec-shield does this).
1576dnl The test program requires unistd.h and stdlib.h. They are present
1577dnl on the systems that currently have exec-shield.
1578AC_MSG_CHECKING(whether heap start address is randomized)
1579if test x"$ac_cv_header_unistd_h" != x && test x"$ac_cv_header_stdlib_h" != x
1580then
1581 AC_TRY_RUN([#include <stdio.h>
1582#include <unistd.h>
1583#include <stdlib.h>
1584int main (int argc, char *argv[])
1585{
1586 unsigned long old_sbrk = 0;
1587 unsigned long this_sbrk = (unsigned long) sbrk(0);
1588 int nr = 1;
1589 if (argc != 1) {
1590 old_sbrk = strtoul (argv[1], 0, 0);
1591 nr = atoi (argv[2])+1;
1592 }
1593 if (argc == 1 || (old_sbrk == this_sbrk && nr < 3))
1594 {
1595 char buf1[32], buf2[32];
1596 sprintf (buf1, "%lu", this_sbrk);
1597 sprintf (buf2, "%d", nr);
1598 execl (argv[0], argv[0], buf1, buf2, 0);
1599 exit (-1);
1600 }
1601 exit (this_sbrk == old_sbrk);
1602}], emacs_cv_randomheap=yes, emacs_cv_randomheap=no,
1603 emacs_cv_randomheap='assuming no')
1604else
1605 emacs_cv_randomheap='assuming no'
1606fi
1607AC_MSG_RESULT($emacs_cv_randomheap)
1608
1609if test "$emacs_cv_randomheap" = yes; then
1610 AC_PATH_PROG(SETARCH, setarch, no)
1611 AC_SUBST(SETARCH)
1612 if test "$SETARCH" != no && test "$machine" = "intel386"; then
1613 AC_DEFINE(HAVE_RANDOM_HEAPSTART, 1,
1614 [Define to 1 if this OS randomizes the start address of the heap.])
1615 else
1616 dnl We do the warning at the end of the configure run so it is seen.
1617 emacs_cv_randomheap=warn
1618 fi
1619fi
1620
1621
1594dnl This could be used for targets which can have both byte sexes. 1622dnl This could be used for targets which can have both byte sexes.
1595dnl We could presumably replace the hardwired WORDS_BIG_ENDIAN generally. 1623dnl We could presumably replace the hardwired WORDS_BIG_ENDIAN generally.
1596dnl AC_C_BIGENDIAN 1624dnl AC_C_BIGENDIAN
@@ -3058,6 +3086,19 @@ echo " Does Emacs use -lpng? ${HAVE_PNG}"
3058echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}" 3086echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}"
3059echo 3087echo
3060 3088
3089if test "$emacs_cv_randomheap" = warn; then
3090 AC_MSG_WARN([
3091**********************************************************************
3092
3093Heap start address is randomized and no workaround is known.
3094Emacs will probably dump core when temacs is run in the build phase.
3095Maybe exec-shield is turned on. Read about exec-shield in `etc/PROBLEMS'
3096for further information.
3097
3098**********************************************************************
3099])
3100fi
3101
3061# Remove any trailing slashes in these variables. 3102# Remove any trailing slashes in these variables.
3062[test "${prefix}" != NONE && 3103[test "${prefix}" != NONE &&
3063 prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'` 3104 prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 981fd88ba3a..e410e315417 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,12 @@
12004-10-04 Luc Teirlinck <teirllm@auburn.edu>
2
3 * enriched.doc: Update for new bindings of `set-left-margin' and
4 `set-right-margin'.
5
62004-10-04 Kim F. Storm <storm@cua.dk>
7
8 * DEBUG: Mention pp and ff commands.
9
12004-09-26 Luc Teirlinck <teirllm@auburn.edu> 102004-09-26 Luc Teirlinck <teirllm@auburn.edu>
2 11
3 * enriched.doc: `enriched-annotation-alist' is now called 12 * enriched.doc: `enriched-annotation-alist' is now called
diff --git a/etc/DEBUG b/etc/DEBUG
index bcc0bd84182..6419b3dfd81 100644
--- a/etc/DEBUG
+++ b/etc/DEBUG
@@ -69,9 +69,11 @@ fatal error, you can use the GDB command `pr'. First print the value
69in the ordinary way, with the `p' command. Then type `pr' with no 69in the ordinary way, with the `p' command. Then type `pr' with no
70arguments. This calls a subroutine which uses the Lisp printer. 70arguments. This calls a subroutine which uses the Lisp printer.
71 71
72Note: It is not a good idea to try `pr' if you know that Emacs is in 72You can also use `pp value' to print the emacs value directly.
73deep trouble: its stack smashed (e.g., if it encountered SIGSEGV due 73
74to stack overflow), or crucial data structures, such as `obarray', 74Note: It is not a good idea to try `pr' or `pp' if you know that Emacs
75is in deep trouble: its stack smashed (e.g., if it encountered SIGSEGV
76due to stack overflow), or crucial data structures, such as `obarray',
75corrupted, etc. In such cases, the Emacs subroutine called by `pr' 77corrupted, etc. In such cases, the Emacs subroutine called by `pr'
76might make more damage, like overwrite some data that is important for 78might make more damage, like overwrite some data that is important for
77debugging the original problem. 79debugging the original problem.
@@ -442,6 +444,9 @@ Several more functions for debugging display code are available in
442Emacs compiled with GLYPH_DEBUG defined; type "C-h f dump- TAB" and 444Emacs compiled with GLYPH_DEBUG defined; type "C-h f dump- TAB" and
443"C-h f trace- TAB" to see the full list. 445"C-h f trace- TAB" to see the full list.
444 446
447When you debug display problems running emacs under X, you can use
448the `ff' command to flush all pending display updates to the screen.
449
445 450
446** Debugging LessTif 451** Debugging LessTif
447 452
diff --git a/etc/NEWS b/etc/NEWS
index 0f3d5b2ce7a..27521612a9e 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -99,6 +99,11 @@ types any more. Add -DUSE_LISP_UNION_TYPE if you want union types.
99* Changes in Emacs 21.4 99* Changes in Emacs 21.4
100 100
101+++ 101+++
102** In Enriched mode, `set-left-margin' and `set-right-margin' are now
103by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l'
104and `C-c C-r'.
105
106+++
102** In processing a local variables list, Emacs strips the prefix and 107** In processing a local variables list, Emacs strips the prefix and
103suffix are from every line before processing all the lines. 108suffix are from every line before processing all the lines.
104 109
@@ -1391,6 +1396,10 @@ controls whether or not the function `make-auto-save-file-name' will
1391attempt to construct a unique auto-save name (e.g. for remote files). 1396attempt to construct a unique auto-save name (e.g. for remote files).
1392 1397
1393+++ 1398+++
1399** There is a new calendar package, icalendar.el, that can be used to
1400convert Emacs diary entries to/from the iCalendar format.
1401
1402+++
1394** Diary sexp entries can have custom marking in the calendar. 1403** Diary sexp entries can have custom marking in the calendar.
1395Diary sexp functions which only apply to certain days (such as 1404Diary sexp functions which only apply to certain days (such as
1396`diary-block' or `diary-cyclic') now take an optional parameter MARK, 1405`diary-block' or `diary-cyclic') now take an optional parameter MARK,
@@ -1406,6 +1415,11 @@ appointments, paydays or anything else using a sexp.
1406year and day number, and moves to that date. Negative day numbers 1415year and day number, and moves to that date. Negative day numbers
1407count backward from the end of the year. 1416count backward from the end of the year.
1408 1417
1418+++
1419** The new Calendar function `calendar-goto-iso-week' (g w)
1420prompts for a year and a week number, and moves to the first
1421day of that ISO week.
1422
1409--- 1423---
1410** The functions `holiday-easter-etc' and `holiday-advent' now take 1424** The functions `holiday-easter-etc' and `holiday-advent' now take
1411arguments, and only report on the specified holiday rather than all. 1425arguments, and only report on the specified holiday rather than all.
@@ -2483,9 +2497,8 @@ symbol identifying a fringe bitmap, either built-in or defined with
2483`define-fringe-bitmap', and FACE is an optional face name to be used 2497`define-fringe-bitmap', and FACE is an optional face name to be used
2484for displaying the bitmap. 2498for displaying the bitmap.
2485 2499
2486*** New function `fringe-bitmaps-at-pos' returns a cons (LEFT . RIGHT) 2500*** New function `fringe-bitmaps-at-pos' returns the current fringe
2487identifying the current fringe bitmaps in the display line at a given 2501bitmaps in the display line at a given buffer position.
2488buffer position. A nil value means no bitmap.
2489 2502
2490** Multiple overlay arrows can now be defined and managed via the new 2503** Multiple overlay arrows can now be defined and managed via the new
2491variable `overlay-arrow-variable-list'. It contains a list of 2504variable `overlay-arrow-variable-list'. It contains a list of
diff --git a/etc/enriched.doc b/etc/enriched.doc
index 55e11004f05..122652f005a 100644
--- a/etc/enriched.doc
+++ b/etc/enriched.doc
@@ -98,8 +98,8 @@ direct request, such as using the return key or the <fixed>C-o
98<indent>The fill functions also understand margins, which can be set for 98<indent>The fill functions also understand margins, which can be set for
99any region of a document. In addition to the menu items, which 99any region of a document. In addition to the menu items, which
100increase or decrease the margins, there are two commands for 100increase or decrease the margins, there are two commands for
101setting the margins absolutely: <fixed>C-c C-l (set-left-margin)</fixed> and <fixed>C-c 101setting the margins absolutely: <fixed>C-c [ (set-left-margin)</fixed> and <fixed>C-c
102C-r (set-right-margin)</fixed>. 102] (set-right-margin)</fixed>.
103 103
104 104
105You <indent>can change indentation at any point in a paragraph, which 105You <indent>can change indentation at any point in a paragraph, which
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index dd26fb647bc..ceb72e1eebb 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,69 @@
12004-10-06 Nick Roberts <nickrob@snap.net.nz>
2
3 * progmodes/gdb-ui.el (gdb-ann3): (Re-)initialise gdb-input-queue.
4
52004-10-06 John Paul Wallington <jpw@gnu.org>
6
7 * xml.el (xml-parse-dtd): Fix `error' call.
8
92004-10-05 Mark A. Hershberger <mah@everybody.org>
10
11 * xml.el (xml-substitute-special): Return a single string instead
12 of a list of strings if an entity substitution is made.
13
142004-10-05 Ulf Jasper <ulf.jasper@web.de>
15
16 * calendar/icalendar.el: New file.
17
182004-10-05 Juri Linkov <juri@jurta.org>
19
20 * isearch.el (isearch-done): Set mark after running hook.
21 Suggested by Drew Adams <drew.adams@oracle.com>.
22
23 * info.el (Info-history, Info-toc): Fix Info headers.
24 (Info-toc): Narrow buffer before Info-fontify-node.
25 (Info-build-toc): Don't check for special Info file names.
26 Set main-file to nil if Info-find-file returns a symbol.
27
282004-10-05 Emilio C. Lopes <eclig@gmx.net>:
29
30 * calendar/calendar.el (calendar-goto-iso-week): Add autoload.
31 (calendar-mode-map): Add binding for `calendar-goto-iso-week'.
32 * calendar/cal-menu.el (calendar-mode-map): Ditto.
33
342004-10-05 Glenn Morris <gmorris@ast.cam.ac.uk>
35
36 * calendar/cal-iso.el (calendar-iso-read-args): New function,
37 for old interactive spec from calendar-goto-iso-date.
38 (calendar-goto-iso-date): Use it.
39 (calendar-goto-iso-week): New function. Suggested by Emilio
40 C. Lopes <eclig@gmx.net>.
41
422004-10-04 Luc Teirlinck <teirllm@auburn.edu>
43
44 * textmodes/enriched.el (enriched-mode-map): Give
45 `set-left-margin' and `set-right-margin' bindings that follow the
46 minor mode conventions.
47
482004-10-03 Stefan <monnier@iro.umontreal.ca>
49
50 * textmodes/tex-mode.el (tex-dvi-view-command): Use `yap' on w32.
51 (tex-font-lock-keywords-1): Add url and nolinkurl for args with `_'.
52 (latex-block-args-alist): Add minipage and picture.
53 (latex-block-body-alist): Use reftex-label if enabled.
54 (latex-insert-block): Don't insert a \n if not necessary.
55 (tex-compile-commands): Make sure dvips doesn't send to printer.
56 (tex-compile-default): Handle the case where no executable is found.
57 (latex-noindent-environments): New var.
58 (latex-find-indent): Use it. Take an empty line as an arg-breaker.
59 If tex-indent-allhanging is non-nil, make sure we only align for macros
60 at beginning of line.
61
622004-10-03 Daniel Pfeiffer <occitan@esperanto.org>
63
64 * newcomment.el (comment-beginning): Doc fix and don't choke on
65 unset `comment-end-skip' when at beginning of comment.
66
12004-10-02 Dan Nicolaescu <dann@ics.uci.edu> 672004-10-02 Dan Nicolaescu <dann@ics.uci.edu>
2 68
3 * term.el (term-adjust-current-row-cache): Don't allow the current 69 * term.el (term-adjust-current-row-cache): Don't allow the current
@@ -5,9 +71,8 @@
5 (term-emulate-terminal): Fix insert mode. Handle tab insertion at 71 (term-emulate-terminal): Fix insert mode. Handle tab insertion at
6 the end of the line. Fix scroll down. Add comments. 72 the end of the line. Fix scroll down. Add comments.
7 (term-handle-ansi-escape): Don't exceed terminal width when moving 73 (term-handle-ansi-escape): Don't exceed terminal width when moving
8 right. 74 right.
9 (term-scroll-region): Move the cursor after setting the scroll 75 (term-scroll-region): Move the cursor after setting the scroll region.
10 region.
11 76
122004-10-01 Luc Teirlinck <teirllm@auburn.edu> 772004-10-01 Luc Teirlinck <teirllm@auburn.edu>
13 78
@@ -33,8 +98,8 @@
33 98
342004-09-29 Luc Teirlinck <teirllm@auburn.edu> 992004-09-29 Luc Teirlinck <teirllm@auburn.edu>
35 100
36 * textmodes/paragraphs.el (forward-paragraph): Avoid 101 * textmodes/paragraphs.el (forward-paragraph):
37 args-out-of-range error when point winds up at the beginning of 102 Avoid args-out-of-range error when point winds up at the beginning of
38 the buffer and hard newlines are enabled. 103 the buffer and hard newlines are enabled.
39 104
40 * newcomment.el (comment-multi-line): Doc fix. 105 * newcomment.el (comment-multi-line): Doc fix.
diff --git a/lisp/calendar/cal-iso.el b/lisp/calendar/cal-iso.el
index 0d9ad45c7d6..058bdf071d7 100644
--- a/lisp/calendar/cal-iso.el
+++ b/lisp/calendar/cal-iso.el
@@ -1,8 +1,9 @@
1;;; cal-iso.el --- calendar functions for the ISO calendar 1;;; cal-iso.el --- calendar functions for the ISO calendar
2 2
3;; Copyright (C) 1995, 1997 Free Software Foundation, Inc. 3;; Copyright (C) 1995, 1997, 2004 Free Software Foundation, Inc.
4 4
5;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 5;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
6;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk>
6;; Keywords: calendar 7;; Keywords: calendar
7;; Human-Keywords: ISO calendar, calendar, diary 8;; Human-Keywords: ISO calendar, calendar, diary
8 9
@@ -96,27 +97,39 @@ Defaults to today's date if DATE is not given."
96 (message "ISO date: %s" 97 (message "ISO date: %s"
97 (calendar-iso-date-string (calendar-cursor-to-date t)))) 98 (calendar-iso-date-string (calendar-cursor-to-date t))))
98 99
100(defun calendar-iso-read-args (&optional dayflag)
101 "Interactively read the arguments for an iso date command."
102 (let* ((today (calendar-current-date))
103 (year (calendar-read
104 "ISO calendar year (>0): "
105 '(lambda (x) (> x 0))
106 (int-to-string (extract-calendar-year today))))
107 (no-weeks (extract-calendar-month
108 (calendar-iso-from-absolute
109 (1-
110 (calendar-dayname-on-or-before
111 1 (calendar-absolute-from-gregorian
112 (list 1 4 (1+ year))))))))
113 (week (calendar-read
114 (format "ISO calendar week (1-%d): " no-weeks)
115 '(lambda (x) (and (> x 0) (<= x no-weeks)))))
116 (day (if dayflag (calendar-read
117 "ISO day (1-7): "
118 '(lambda (x) (and (<= 1 x) (<= x 7))))
119 1)))
120 (list (list week day year))))
121
99(defun calendar-goto-iso-date (date &optional noecho) 122(defun calendar-goto-iso-date (date &optional noecho)
100 "Move cursor to ISO DATE; echo ISO date unless NOECHO is t." 123 "Move cursor to ISO DATE; echo ISO date unless NOECHO is t."
101 (interactive 124 (interactive (calendar-iso-read-args t))
102 (let* ((today (calendar-current-date)) 125 (calendar-goto-date (calendar-gregorian-from-absolute
103 (year (calendar-read 126 (calendar-absolute-from-iso date)))
104 "ISO calendar year (>0): " 127 (or noecho (calendar-print-iso-date)))
105 '(lambda (x) (> x 0)) 128
106 (int-to-string (extract-calendar-year today)))) 129(defun calendar-goto-iso-week (date &optional noecho)
107 (no-weeks (extract-calendar-month 130 "Move cursor to ISO DATE; echo ISO date unless NOECHO is t.
108 (calendar-iso-from-absolute 131Interactively, goes to the first day of the specified week."
109 (1- 132 (interactive (calendar-iso-read-args))
110 (calendar-dayname-on-or-before
111 1 (calendar-absolute-from-gregorian
112 (list 1 4 (1+ year))))))))
113 (week (calendar-read
114 (format "ISO calendar week (1-%d): " no-weeks)
115 '(lambda (x) (and (> x 0) (<= x no-weeks)))))
116 (day (calendar-read
117 "ISO day (1-7): "
118 '(lambda (x) (and (<= 1 x) (<= x 7))))))
119 (list (list week day year))))
120 (calendar-goto-date (calendar-gregorian-from-absolute 133 (calendar-goto-date (calendar-gregorian-from-absolute
121 (calendar-absolute-from-iso date))) 134 (calendar-absolute-from-iso date)))
122 (or noecho (calendar-print-iso-date))) 135 (or noecho (calendar-print-iso-date)))
diff --git a/lisp/calendar/cal-menu.el b/lisp/calendar/cal-menu.el
index a652e7ca768..ceb4c56f7fd 100644
--- a/lisp/calendar/cal-menu.el
+++ b/lisp/calendar/cal-menu.el
@@ -1,9 +1,10 @@
1;;; cal-menu.el --- calendar functions for menu bar and popup menu support 1;;; cal-menu.el --- calendar functions for menu bar and popup menu support
2 2
3;; Copyright (C) 1994, 1995, 2001, 2003 Free Software Foundation, Inc. 3;; Copyright (C) 1994, 1995, 2001, 2003, 2004 Free Software Foundation, Inc.
4 4
5;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 5;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
6;; Lara Rios <lrios@coewl.cen.uiuc.edu> 6;; Lara Rios <lrios@coewl.cen.uiuc.edu>
7;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk>
7;; Keywords: calendar 8;; Keywords: calendar
8;; Human-Keywords: calendar, popup menus, menu bar 9;; Human-Keywords: calendar, popup menus, menu bar
9 10
@@ -121,6 +122,8 @@
121 '("Astronomical Date" . calendar-goto-astro-day-number)) 122 '("Astronomical Date" . calendar-goto-astro-day-number))
122(define-key calendar-mode-map [menu-bar goto iso] 123(define-key calendar-mode-map [menu-bar goto iso]
123 '("ISO Date" . calendar-goto-iso-date)) 124 '("ISO Date" . calendar-goto-iso-date))
125(define-key calendar-mode-map [menu-bar goto iso-week]
126 '("ISO Week" . calendar-goto-iso-week))
124(define-key calendar-mode-map [menu-bar goto day-of-year] 127(define-key calendar-mode-map [menu-bar goto day-of-year]
125 '("Day of Year" . calendar-goto-day-of-year)) 128 '("Day of Year" . calendar-goto-day-of-year))
126(define-key calendar-mode-map [menu-bar goto gregorian] 129(define-key calendar-mode-map [menu-bar goto gregorian]
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
index 9d38cde21ce..aa0b3005fad 100644
--- a/lisp/calendar/calendar.el
+++ b/lisp/calendar/calendar.el
@@ -1769,6 +1769,10 @@ Driven by the variable `calendar-date-display-form'.")
1769 "Move cursor to ISO date." 1769 "Move cursor to ISO date."
1770 t) 1770 t)
1771 1771
1772(autoload 'calendar-goto-iso-week "cal-iso"
1773 "Move cursor to start of ISO week."
1774 t)
1775
1772(autoload 'calendar-print-iso-date "cal-iso" 1776(autoload 'calendar-print-iso-date "cal-iso"
1773 "Show the ISO date equivalents of date." 1777 "Show the ISO date equivalents of date."
1774 t) 1778 t)
@@ -2204,6 +2208,7 @@ the inserted text. Value is always t."
2204 (define-key calendar-mode-map "ge" 'calendar-goto-ethiopic-date) 2208 (define-key calendar-mode-map "ge" 'calendar-goto-ethiopic-date)
2205 (define-key calendar-mode-map "gp" 'calendar-goto-persian-date) 2209 (define-key calendar-mode-map "gp" 'calendar-goto-persian-date)
2206 (define-key calendar-mode-map "gc" 'calendar-goto-iso-date) 2210 (define-key calendar-mode-map "gc" 'calendar-goto-iso-date)
2211 (define-key calendar-mode-map "gw" 'calendar-goto-iso-week)
2207 (define-key calendar-mode-map "gf" 'calendar-goto-french-date) 2212 (define-key calendar-mode-map "gf" 'calendar-goto-french-date)
2208 (define-key calendar-mode-map "gml" 'calendar-goto-mayan-long-count-date) 2213 (define-key calendar-mode-map "gml" 'calendar-goto-mayan-long-count-date)
2209 (define-key calendar-mode-map "gmpc" 'calendar-previous-calendar-round-date) 2214 (define-key calendar-mode-map "gmpc" 'calendar-previous-calendar-round-date)
diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
new file mode 100644
index 00000000000..e83e8e980b6
--- /dev/null
+++ b/lisp/calendar/icalendar.el
@@ -0,0 +1,1299 @@
1;;; icalendar.el --- iCalendar implementation
2
3;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
4
5;; Author: Ulf Jasper <ulf.jasper@web.de>
6;; Created: August 2002
7;; Keywords: calendar
8;; Human-Keywords: calendar, diary, iCalendar, vCalendar
9
10;; This file is part of GNU Emacs.
11
12;; GNU Emacs is free software; you can redistribute it and/or modify
13;; it under the terms of the GNU General Public License as published by
14;; the Free Software Foundation; either version 2, or (at your option)
15;; any later version.
16
17;; GNU Emacs is distributed in the hope that it will be useful,
18;; but WITHOUT ANY WARRANTY; without even the implied warranty of
19;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;; GNU General Public License for more details.
21
22;; You should have received a copy of the GNU General Public License
23;; along with GNU Emacs; see the file COPYING. If not, write to the
24;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
25;; Boston, MA 02111-1307, USA.
26
27;;; Commentary:
28
29;; This package is documented in the Emacs Manual.
30
31
32;;; History:
33
34;; 0.06 Bugfixes regarding icalendar-import-format-*.
35;; Fix in icalendar-convert-diary-to-ical -- thanks to Philipp Grau.
36
37;; 0.05: New import format scheme: Replaced icalendar-import-prefix-*,
38;; icalendar-import-ignored-properties, and
39;; icalendar-import-separator with icalendar-import-format(-*).
40;; icalendar-import-file and icalendar-convert-diary-to-ical
41;; have an extra parameter which should prevent them from
42;; erasing their target files (untested!).
43;; Tested with Emacs 21.3.2
44
45;; 0.04: Bugfix: import: double quoted param values did not work
46;; Read DURATION property when importing.
47;; Added parameter icalendar-duration-correction.
48
49;; 0.03: Export takes care of european-calendar-style.
50;; Tested with Emacs 21.3.2 and XEmacs 21.4.12
51
52;; 0.02: Should work in XEmacs now. Thanks to Len Trigg for the
53;; XEmacs patches!
54;; Added exporting from Emacs diary to ical.
55;; Some bugfixes, after testing with calendars from
56;; http://icalshare.com.
57;; Tested with Emacs 21.3.2 and XEmacs 21.4.12
58
59;; 0.01: First published version. Trial version. Alpha version.
60
61;; ======================================================================
62;; To Do:
63
64;; * Import from ical:
65;; + Need more properties for icalendar-import-format
66;; + check vcalendar version
67;; + check (unknown) elements
68;; + recurring events!
69;; + works for european style calendars only! Does it?
70;; + alarm
71;; + exceptions in recurring events
72;; + the parser is too soft
73;; + error log is incomplete
74;; + nice to have: #include "webcal://foo.com/some-calendar.ics"
75
76;; * Export into ical
77;; + diary-date, diary-float, and self-made sexp entries are not
78;; understood
79;; + timezones, currently all times are local!
80
81;; * Other things
82;; + defcustom icalendar-import-ignored-properties does not work with
83;; XEmacs.
84;; + clean up all those date/time parsing functions
85;; + Handle todo items?
86;; + Check iso 8601 for datetime and period
87;; + Which chars to (un)escape?
88;; + Time to find out how the profiler works?
89
90
91;;; Code:
92
93(defconst icalendar-version 0.06
94 "Version number of icalendar.el.")
95
96;; ======================================================================
97;; Customizables
98;; ======================================================================
99(defgroup icalendar nil
100 "Icalendar support."
101 :prefix "icalendar-"
102 :group 'calendar)
103
104(defcustom icalendar-import-format
105 "%s%d%l%o"
106 "Format string for importing events from iCalendar into Emacs diary.
107This string defines how iCalendar events are inserted into diary
108file. Meaning of the specifiers:
109%d Description, see `icalendar-import-format-description'
110%l Location, see `icalendar-import-format-location'
111%o Organizer, see `icalendar-import-format-organizer'
112%s Subject, see `icalendar-import-format-subject'"
113 :type 'string
114 :group 'icalendar)
115
116(defcustom icalendar-import-format-subject
117 "%s"
118 "Format string defining how the subject element is formatted.
119This applies only if the subject is not empty! `%s' is replaced
120by the subject."
121 :type 'string
122 :group 'icalendar)
123
124(defcustom icalendar-import-format-description
125 "\n Desc: %s"
126 "Format string defining how the description element is formatted.
127This applies only if the description is not empty! `%s' is
128replaced by the description."
129 :type 'string
130 :group 'icalendar)
131
132(defcustom icalendar-import-format-location
133 "\n Location: %s"
134 "Format string defining how the location element is formatted.
135This applies only if the location is not empty! `%s' is replaced
136by the location."
137 :type 'string
138 :group 'icalendar)
139
140(defcustom icalendar-import-format-organizer
141 "\n Organizer: %s"
142 "Format string defining how the organizer element is formatted.
143This applies only if the organizer is not empty! `%s' is
144replaced by the organizer."
145 :type 'string
146 :group 'icalendar)
147
148(defcustom icalendar-duration-correction
149 t
150 "Workaround for all-day events.
151If non-nil the length=duration of iCalendar appointments that
152have a length of exactly n days is decreased by one day. This
153fixes problems with all-day events, which appear to be one day
154longer than they are."
155 :type 'boolean
156 :group 'icalendar)
157
158
159;; ======================================================================
160;; NO USER SERVICABLE PARTS BELOW THIS LINE
161;; ======================================================================
162
163(defconst icalendar-weekdayabbrev-table
164 '(("mon\\(day\\)?" . "MO")
165 ("tue\\(sday\\)?" . "TU")
166 ("wed\\(nesday\\)?" . "WE")
167 ("thu\\(rsday\\)?" . "TH")
168 ("fri\\(day\\)?" . "FR")
169 ("sat\\(urday\\)?" . "SA")
170 ("sun\\(day\\)?" . "SU"))
171 "Translation table for weekdays.")
172
173(defconst icalendar-monthnumber-table
174 '(("^jan\\(uar\\)?y?$" . 1)
175 ("^feb\\(ruar\\)?y?$" . 2)
176 ("^mar\\(ch\\)?\\|märz?$" . 3)
177 ("^apr\\(il\\)?$" . 4)
178 ("^ma[iy]$" . 5)
179 ("^jun[ie]?$" . 6)
180 ("^jul[iy]?$" . 7)
181 ("^aug\\(ust\\)?$" . 8)
182 ("^sep\\(tember\\)?$" . 9)
183 ("^o[ck]t\\(ober\\)?$" . 10)
184 ("^nov\\(ember\\)?$" . 11)
185 ("^de[cz]\\(ember\\)?$" . 12))
186 "Regular expressions for month names.
187Currently this matches only German and English.")
188
189(defvar icalendar-debug nil ".")
190
191;; ======================================================================
192;; all the other libs we need
193;; ======================================================================
194(require 'calendar)
195(require 'appt)
196
197;; ======================================================================
198;; Core functionality
199;; Functions for parsing icalendars, importing and so on
200;; ======================================================================
201
202(defun icalendar-get-unfolded-buffer (folded-ical-buffer)
203 "Return a new buffer containing the unfolded contents of a buffer.
204Folding is the iCalendar way of wrapping long lines. In the
205created buffer all occurrences of CR LF BLANK are replaced by the
206empty string. Argument FOLDED-ICAL-BUFFER is the unfolded input
207buffer."
208 (let ((unfolded-buffer (get-buffer-create " *icalendar-work*")))
209 (save-current-buffer
210 (set-buffer unfolded-buffer)
211 (erase-buffer)
212 (insert-buffer folded-ical-buffer)
213 (while (re-search-forward "\r?\n[ \t]" nil t)
214 (replace-match "" nil nil))
215 )
216 unfolded-buffer))
217
218;; Replace regexp RE with RP in string ST and return the new string.
219;; This is here for compatibility with XEmacs.
220(defsubst icalendar-rris (re rp st)
221 ;; XEmacs:
222 (if (fboundp 'replace-in-string)
223 (save-match-data ;; apparently XEmacs needs save-match-data
224 (replace-in-string st re rp))
225 ;; Emacs:
226 (replace-regexp-in-string re rp st)))
227
228(defun icalendar-read-element (invalue inparams)
229 "Recursively read the next iCalendar element in the current buffer.
230INVALUE gives the current iCalendar element we are reading.
231INPARAMS gives the current parameters.....
232This function calls itself recursively for each nested calendar element
233it finds"
234 (let (element children line name params param param-name param-value
235 value
236 (continue t))
237 (setq children '())
238 (while (and continue
239 (re-search-forward "^\\([A-Za-z0-9-]+\\)[;:]" nil t))
240 (setq name (intern (match-string 1)))
241 (backward-char 1)
242 (setq params '())
243 (setq line '())
244 (while (looking-at ";")
245 (re-search-forward ";\\([A-Za-z0-9-]+\\)=" nil nil)
246 (setq param-name (intern (match-string 1)))
247 (re-search-forward "\\(\\([^;,:\"]+\\)\\|\"\\([^\"]+\\)\"\\)[;:]"
248 nil t)
249 (backward-char 1)
250 (setq param-value (or (match-string 2) (match-string 3)))
251 (setq param (list param-name param-value))
252 (while (looking-at ",")
253 (re-search-forward "\\(\\([^;,:]+\\)\\|\"\\([^\"]+\\)\"\\)"
254 nil t)
255 (if (match-string 2)
256 (setq param-value (match-string 2))
257 (setq param-value (match-string 3)))
258 (setq param (append param param-value)))
259 (setq params (append params param)))
260 (unless (looking-at ":")
261 (error "Oops"))
262 (forward-char 1)
263 (re-search-forward "\\(.*\\)\\(\r?\n[ \t].*\\)*" nil t)
264 (setq value (icalendar-rris "\r?\n[ \t]" "" (match-string 0)))
265 (setq line (list name params value))
266 (cond ((eq name 'BEGIN)
267 (setq children
268 (append children
269 (list (icalendar-read-element (intern value)
270 params)))))
271 ((eq name 'END)
272 (setq continue nil))
273 (t
274 (setq element (append element (list line))))))
275 (if invalue
276 (list invalue inparams element children)
277 children)))
278
279;; ======================================================================
280;; helper functions for examining events
281;; ======================================================================
282
283(defsubst icalendar-get-all-event-properties (event)
284 "Return the list of properties in this EVENT."
285 (car (cddr event)))
286
287(defun icalendar-get-event-property (event prop)
288 "For the given EVENT return the value of the property PROP."
289 (catch 'found
290 (let ((props (car (cddr event))) pp)
291 (while props
292 (setq pp (car props))
293 (if (eq (car pp) prop)
294 (throw 'found (car (cddr pp))))
295 (setq props (cdr props))))
296 nil))
297
298(defun icalendar-set-event-property (event prop new-value)
299 "For the given EVENT set the property PROP to the value NEW-VALUE."
300 (catch 'found
301 (let ((props (car (cddr event))) pp)
302 (while props
303 (setq pp (car props))
304 (when (eq (car pp) prop)
305 (setcdr (cdr pp) new-value)
306 (throw 'found (car (cddr pp))))
307 (setq props (cdr props)))
308 (setq props (car (cddr event)))
309 (setcar (cddr event)
310 (append props (list (list prop nil new-value)))))))
311
312(defun icalendar-get-children (node name)
313 "Return all children of the given NODE which have a name NAME.
314For instance the VCALENDAR node can have VEVENT children as well as VTODO
315children."
316 (let ((result nil)
317 (children (cadr (cddr node))))
318 (when (eq (car node) name)
319 (setq result node))
320 ;;(message "%s" node)
321 (when children
322 (let ((subresult
323 (delq nil
324 (mapcar (lambda (n)
325 (icalendar-get-children n name))
326 children))))
327 (if subresult
328 (if result
329 (setq result (append result subresult))
330 (setq result subresult)))))
331 result))
332
333; private
334(defun icalendar-all-events (icalendar)
335 "Return the list of all existing events in the given ICALENDAR."
336 (interactive "")
337 (icalendar-get-children (car icalendar) 'VEVENT))
338
339(defun icalendar-split-value (value-string)
340 "Splits VALUE-STRING at ';='."
341 (let ((result '())
342 param-name param-value)
343 (when value-string
344 (save-current-buffer
345 (set-buffer (get-buffer-create " *ical-temp*"))
346 (set-buffer-modified-p nil)
347 (erase-buffer)
348 (insert value-string)
349 (goto-char (point-min))
350 (while
351 (re-search-forward
352 "\\([A-Za-z0-9-]+\\)=\\(\\([^;,:]+\\)\\|\"\\([^\"]+\\)\"\\);?"
353 nil t)
354 (setq param-name (intern (match-string 1)))
355 (setq param-value (match-string 2))
356 (setq result
357 (append result (list (list param-name param-value)))))))
358 result))
359
360(defun icalendar-decode-isodatetime (isodatetimestring)
361 "Return ISODATETIMESTRING in format like `decode-time'.
362Converts from ISO-8601 to Emacs representation. If ISODATETIMESTRING
363specifies UTC time (trailing letter Z) the decoded time is given in
364the local time zone! FIXME: TZID-attributes are ignored....! FIXME:
365multiple comma-separated values should be allowed!"
366 (icalendar-dmsg isodatetimestring)
367 (if isodatetimestring
368 ;; day/month/year must be present
369 (let ((year (read (substring isodatetimestring 0 4)))
370 (month (read (substring isodatetimestring 4 6)))
371 (day (read (substring isodatetimestring 6 8)))
372 (hour 0)
373 (minute 0)
374 (second 0))
375 (when (> (length isodatetimestring) 12)
376 ;; hour/minute present
377 (setq hour (read (substring isodatetimestring 9 11)))
378 (setq minute (read (substring isodatetimestring 11 13))))
379 (when (> (length isodatetimestring) 14)
380 ;; seconds present
381 (setq second (read (substring isodatetimestring 13 15))))
382 (when (and (> (length isodatetimestring) 15)
383 ;; UTC specifier present
384 (char-equal ?Z (aref isodatetimestring 15)))
385 ;; if not UTC add current-time-zone offset
386 (setq second (+ (car (current-time-zone)) second)))
387 ;; create the decoded date-time
388 ;; FIXME!?!
389 (condition-case nil
390 (decode-time (encode-time second minute hour day month year))
391 (error
392 (message "Cannot decode \"%s\"" isodatetimestring)
393 ;; hope for the best...
394 (list second minute hour day month year 0 nil 0))))
395 ;; isodatetimestring == nil
396 nil))
397
398(defun icalendar-decode-isoduration (isodurationstring)
399 "Return ISODURATIONSTRING in format like `decode-time'.
400Converts from ISO-8601 to Emacs representation. If ISODURATIONSTRING
401specifies UTC time (trailing letter Z) the decoded time is given in
402the local time zone! FIXME: TZID-attributes are ignored....! FIXME:
403multiple comma-separated values should be allowed!"
404 (if isodurationstring
405 (save-match-data
406 (string-match
407 (concat
408 "^P[+-]?\\("
409 "\\(\\([0-9]+\\)D\\)" ; days only
410 "\\|"
411 "\\(\\(\\([0-9]+\\)D\\)?T\\(\\([0-9]+\\)H\\)?" ; opt days
412 "\\(\\([0-9]+\\)M\\)?\\(\\([0-9]+\\)S\\)?\\)" ; mand. time
413 "\\|"
414 "\\(\\([0-9]+\\)W\\)" ; weeks only
415 "\\)$") isodurationstring)
416 (let ((seconds 0)
417 (minutes 0)
418 (hours 0)
419 (days 0)
420 (months 0)
421 (years 0))
422 (cond
423 ((match-beginning 2) ;days only
424 (setq days (read (substring isodurationstring
425 (match-beginning 3)
426 (match-end 3))))
427 (when icalendar-duration-correction
428 (setq days (1- days))))
429 ((match-beginning 4) ;days and time
430 (if (match-beginning 5)
431 (setq days (* 7 (read (substring isodurationstring
432 (match-beginning 6)
433 (match-end 6))))))
434 (if (match-beginning 7)
435 (setq hours (read (substring isodurationstring
436 (match-beginning 8)
437 (match-end 8)))))
438 (if (match-beginning 9)
439 (setq minutes (read (substring isodurationstring
440 (match-beginning 10)
441 (match-end 10)))))
442 (if (match-beginning 11)
443 (setq seconds (read (substring isodurationstring
444 (match-beginning 12)
445 (match-end 12)))))
446 )
447 ((match-beginning 13) ;weeks only
448 (setq days (* 7 (read (substring isodurationstring
449 (match-beginning 14)
450 (match-end 14))))))
451 )
452 (list seconds minutes hours days months years)))
453 ;; isodatetimestring == nil
454 nil))
455
456(defun icalendar-add-decoded-times (time1 time2)
457 "Add TIME1 to TIME2.
458Both times must be given in decoded form. One of these times must be
459valid (year > 1900 or something)."
460 ;; FIXME: does this function exist already?
461 (decode-time (encode-time
462 (+ (nth 0 time1) (nth 0 time2))
463 (+ (nth 1 time1) (nth 1 time2))
464 (+ (nth 2 time1) (nth 2 time2))
465 (+ (nth 3 time1) (nth 3 time2))
466 (+ (nth 4 time1) (nth 4 time2))
467 (+ (nth 5 time1) (nth 5 time2))
468 nil
469 nil
470 ;;(or (nth 6 time1) (nth 6 time2)) ;; FIXME?
471 )))
472
473(defun icalendar-datetime-to-noneuropean-date (datetime)
474 "Convert the decoded DATETIME to non-european-style format.
475Non-European format: (month day year)."
476 (if datetime
477 (list (nth 4 datetime) ;month
478 (nth 3 datetime) ;day
479 (nth 5 datetime));year
480 ;; datetime == nil
481 nil))
482
483(defun icalendar-datetime-to-european-date (datetime)
484 "Convert the decoded DATETIME to European format.
485European format: (day month year).
486FIXME"
487 (if datetime
488 (format "%d %d %d" (nth 3 datetime); day
489 (nth 4 datetime) ;month
490 (nth 5 datetime));year
491 ;; datetime == nil
492 nil))
493
494(defun icalendar-datetime-to-colontime (datetime)
495 "Extract the time part of a decoded DATETIME into 24-hour format.
496Note that this silently ignores seconds."
497 (format "%02d:%02d" (nth 2 datetime) (nth 1 datetime)))
498
499(defun icalendar-get-month-number (monthname)
500 "Return the month number for the given MONTHNAME."
501 (save-match-data
502 (let ((case-fold-search t))
503 (assoc-default monthname icalendar-monthnumber-table
504 'string-match))))
505
506(defun icalendar-get-weekday-abbrev (weekday)
507 "Return the abbreviated WEEKDAY."
508 ;;FIXME: ISO-like(?).
509 (save-match-data
510 (let ((case-fold-search t))
511 (assoc-default weekday icalendar-weekdayabbrev-table
512 'string-match))))
513
514(defun icalendar-datestring-to-isodate (datestring &optional day-shift)
515 "Convert diary-style DATESTRING to iso-style date.
516If DAY-SHIFT is non-nil, the result is shifted by DAY-SHIFT days
517-- DAY-SHIFT must be either nil or an integer. This function
518takes care of european-style."
519 (let ((day -1) month year)
520 (save-match-data
521 (cond (;; numeric date
522 (string-match (concat "\\s-*"
523 "0?\\([1-9][0-9]?\\)[ \t/]\\s-*"
524 "0?\\([1-9][0-9]?\\),?[ \t/]\\s-*"
525 "\\([0-9]\\{4\\}\\)")
526 datestring)
527 (setq day (read (substring datestring (match-beginning 1)
528 (match-end 1))))
529 (setq month (read (substring datestring (match-beginning 2)
530 (match-end 2))))
531 (setq year (read (substring datestring (match-beginning 3)
532 (match-end 3))))
533 (unless european-calendar-style
534 (let ((x month))
535 (setq month day)
536 (setq day x))))
537 (;; date contains month names -- european-style
538 (and european-calendar-style
539 (string-match (concat "\\s-*"
540 "0?\\([123]?[0-9]\\)[ \t/]\\s-*"
541 "\\([A-Za-z][^ ]+\\)[ \t/]\\s-*"
542 "\\([0-9]\\{4\\}\\)")
543 datestring))
544 (setq day (read (substring datestring (match-beginning 1)
545 (match-end 1))))
546 (setq month (icalendar-get-month-number
547 (substring datestring (match-beginning 2)
548 (match-end 2))))
549 (setq year (read (substring datestring (match-beginning 3)
550 (match-end 3)))))
551 (;; date contains month names -- non-european-style
552 (and (not european-calendar-style)
553 (string-match (concat "\\s-*"
554 "\\([A-Za-z][^ ]+\\)[ \t/]\\s-*"
555 "0?\\([123]?[0-9]\\),?[ \t/]\\s-*"
556 "\\([0-9]\\{4\\}\\)")
557 datestring))
558 (setq day (read (substring datestring (match-beginning 2)
559 (match-end 2))))
560 (setq month (icalendar-get-month-number
561 (substring datestring (match-beginning 1)
562 (match-end 1))))
563 (setq year (read (substring datestring (match-beginning 3)
564 (match-end 3)))))
565 (t
566 nil)))
567 (if (> day 0)
568 (let ((mdy (calendar-gregorian-from-absolute
569 (+ (calendar-absolute-from-gregorian (list month day year))
570 (or day-shift 0)))))
571 (format "%04d%02d%02d" (nth 2 mdy) (nth 0 mdy) (nth 1 mdy)))
572 nil)))
573
574(defun icalendar-dmsg (&rest args)
575 "Print message ARGS if `icalendar-debug' is non-nil."
576 (if icalendar-debug
577 (apply 'message args)))
578
579(defun icalendar-diarytime-to-isotime (timestring ampmstring)
580 "Convert a a time like 9:30pm to an iso-conform string like T213000.
581In this example the TIMESTRING would be \"9:30\" and the AMPMSTRING
582would be \"pm\"."
583 (if timestring
584 (let ((starttimenum (read (icalendar-rris ":" "" timestring))))
585 ;; take care of am/pm style
586 (if (and ampmstring (string= "pm" ampmstring))
587 (setq starttimenum (+ starttimenum 1200)))
588 (format "T%04d00" starttimenum))
589 nil))
590
591(defun icalendar-convert-string-for-export (s)
592 "Escape comma and other critical characters in string S."
593 (icalendar-rris "," "\\\\," s))
594
595(defun icalendar-convert-for-import (string)
596 "Remove escape chars for comma, semicolon etc. from STRING."
597 (icalendar-rris
598 "\\\\n" "\n " (icalendar-rris
599 "\\\\\"" "\"" (icalendar-rris
600 "\\\\;" ";" (icalendar-rris
601 "\\\\," "," string)))))
602
603;; ======================================================================
604;; export -- convert emacs-diary to icalendar
605;; ======================================================================
606
607(defun icalendar-convert-diary-to-ical (diary-filename ical-filename
608 &optional do-not-clear-diary-file)
609 "Export diary file to iCalendar format -- erases ical-filename!!!.
610Argument DIARY-FILENAME is the input `diary-file'.
611Argument ICAL-FILENAME is the output iCalendar file.
612If DO-NOT-CLEAR-DIARY-FILE is not nil the target iCalendar file
613is not erased."
614 (interactive "FExport diary data from file:
615Finto iCalendar file: ")
616 (let ((result "")
617 (start 0)
618 (entry-main "")
619 (entry-rest "")
620 (header "")
621 (contents)
622 (oops nil)
623 (nonmarker (concat "^" (regexp-quote diary-nonmarking-symbol)
624 "?")))
625 (save-current-buffer
626 (set-buffer (find-file diary-filename))
627 (goto-char (point-min))
628 (while (re-search-forward
629 "^\\([^ \t\n].*\\)\\(\n[ \t].*\\)*" nil t)
630 (setq entry-main (match-string 1))
631 (if (match-beginning 2)
632 (setq entry-rest (match-string 2))
633 (setq entry-rest ""))
634 (setq header (format "\nBEGIN:VEVENT\nUID:emacs%d%d%d"
635 (car (current-time))
636 (cadr (current-time))
637 (car (cddr (current-time)))))
638 (setq oops nil)
639 (cond
640 ;; anniversaries
641 ((string-match
642 (concat nonmarker
643 "%%(diary-anniversary \\([^)]+\\))\\s-*\\(.*\\)")
644 entry-main)
645 (icalendar-dmsg "diary-anniversary %s" entry-main)
646 (let* ((datetime (substring entry-main (match-beginning 1)
647 (match-end 1)))
648 (summary (icalendar-convert-string-for-export
649 (substring entry-main (match-beginning 2)
650 (match-end 2))))
651 (startisostring (icalendar-datestring-to-isodate
652 datetime))
653 (endisostring (icalendar-datestring-to-isodate
654 datetime 1)))
655 (setq contents
656 (concat "\nDTSTART;VALUE=DATE:" startisostring
657 "\nDTEND;VALUE=DATE:" endisostring
658 "\nSUMMARY:" summary
659 "\nRRULE:FREQ=YEARLY;INTERVAL=1"
660 ;; the following is redundant,
661 ;; but korganizer seems to expect this... ;(
662 ;; and evolution doesn't understand it... :(
663 ;; so... who is wrong?!
664 ";BYMONTH=" (substring startisostring 4 6)
665 ";BYMONTHDAY=" (substring startisostring 6 8)
666 )))
667 (unless (string= entry-rest "")
668 (setq contents (concat contents "\nDESCRIPTION:"
669 (icalendar-convert-string-for-export
670 entry-rest)))))
671 ;; cyclic events
672 ;; %%(diary-cyclic )
673 ((string-match
674 (concat nonmarker
675 "%%(diary-cyclic \\([^ ]+\\) +"
676 "\\([^ /]+[ /]+[^ /]+[ /]+[^ ]+\\))\\s-*\\(.*\\)")
677 entry-main)
678 (icalendar-dmsg "diary-cyclic %s" entry-main)
679 (let* ((frequency (substring entry-main (match-beginning 1)
680 (match-end 1)))
681 (datetime (substring entry-main (match-beginning 2)
682 (match-end 2)))
683 (summary (icalendar-convert-string-for-export
684 (substring entry-main (match-beginning 3)
685 (match-end 3))))
686 (startisostring (icalendar-datestring-to-isodate
687 datetime))
688 (endisostring (icalendar-datestring-to-isodate
689 datetime 1)))
690 (setq contents
691 (concat "\nDTSTART;VALUE=DATE:" startisostring
692 "\nDTEND;VALUE=DATE:" endisostring
693 "\nSUMMARY:" summary
694 "\nRRULE:FREQ=DAILY;INTERVAL=" frequency
695 ;; strange: korganizer does not expect
696 ;; BYSOMETHING here...
697 )))
698 (unless (string= entry-rest "")
699 (setq contents (concat contents "\nDESCRIPTION:"
700 (icalendar-convert-string-for-export
701 entry-rest)))))
702 ;; diary-date -- FIXME
703 ((string-match
704 (concat nonmarker
705 "%%(diary-date \\([^)]+\\))\\s-*\\(.*\\)")
706 entry-main)
707 (icalendar-dmsg "diary-date %s" entry-main)
708 (setq oops t))
709 ;; float events -- FIXME
710 ((string-match
711 (concat nonmarker
712 "%%(diary-float \\([^)]+\\))\\s-*\\(.*\\)")
713 entry-main)
714 (icalendar-dmsg "diary-float %s" entry-main)
715 (setq oops t))
716 ;; block events
717 ((string-match
718 (concat nonmarker
719 "%%(diary-block \\([^ /]+[ /]+[^ /]+[ /]+[^ ]+\\) +"
720 "\\([^ /]+[ /]+[^ /]+[ /]+[^ ]+\\))\\s-*\\(.*\\)")
721 entry-main)
722 (icalendar-dmsg "diary-block %s" entry-main)
723 (let* ((startstring (substring entry-main (match-beginning 1)
724 (match-end 1)))
725 (endstring (substring entry-main (match-beginning 2)
726 (match-end 2)))
727 (summary (icalendar-convert-string-for-export
728 (substring entry-main (match-beginning 3)
729 (match-end 3))))
730 (startisostring (icalendar-datestring-to-isodate
731 startstring))
732 (endisostring (icalendar-datestring-to-isodate
733 endstring 1)))
734 (setq contents
735 (concat "\nDTSTART;VALUE=DATE:" startisostring
736 "\nDTEND;VALUE=DATE:" endisostring
737 "\nSUMMARY:" summary
738 ))
739 (unless (string= entry-rest "")
740 (setq contents (concat contents "\nDESCRIPTION:"
741 (icalendar-convert-string-for-export
742 entry-rest))))))
743 ;; other sexp diary entries -- FIXME
744 ((string-match
745 (concat nonmarker
746 "%%(\\([^)]+\\))\\s-*\\(.*\\)")
747 entry-main)
748 (icalendar-dmsg "diary-sexp %s" entry-main)
749 (setq oops t))
750 ;; weekly by day
751 ;; Monday 8:30 Team meeting
752 ((and (string-match
753 (concat nonmarker
754 "\\([a-z]+\\)\\s-+"
755 "\\(0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?"
756 "\\(-0?"
757 "\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?"
758 "\\)?"
759 "\\s-*\\(.*\\)$")
760 entry-main)
761 (icalendar-get-weekday-abbrev
762 (substring entry-main (match-beginning 1) (match-end 1))))
763 (icalendar-dmsg "weekly %s" entry-main)
764 (let* ((day (icalendar-get-weekday-abbrev
765 (substring entry-main (match-beginning 1)
766 (match-end 1))))
767 (starttimestring (icalendar-diarytime-to-isotime
768 (if (match-beginning 3)
769 (substring entry-main
770 (match-beginning 3)
771 (match-end 3))
772 nil)
773 (if (match-beginning 4)
774 (substring entry-main
775 (match-beginning 4)
776 (match-end 4))
777 nil)))
778 (endtimestring (icalendar-diarytime-to-isotime
779 (if (match-beginning 6)
780 (substring entry-main
781 (match-beginning 6)
782 (match-end 6))
783 nil)
784 (if (match-beginning 7)
785 (substring entry-main
786 (match-beginning 7)
787 (match-end 7))
788 nil)))
789 (summary (icalendar-convert-string-for-export
790 (substring entry-main (match-beginning 8)
791 (match-end 8)))))
792 (when starttimestring
793 (unless endtimestring
794 (let ((time (read (icalendar-rris "^T0?" ""
795 starttimestring))))
796 (setq endtimestring (format "T%06d" (+ 10000 time))))))
797 (setq contents
798 (concat "\nDTSTART"
799 (if starttimestring "" ";VALUE=DATE")
800 ":19000101" ;; FIXME? Probability that this
801 ;; is the right day is 1/7
802 (or starttimestring "")
803 "\nDTEND"
804 (if endtimestring "" ";VALUE=DATE")
805 ":19000101" ;; FIXME?
806 (or endtimestring "")
807 "\nSUMMARY:" summary
808 "\nRRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=" day
809 )))
810 (unless (string= entry-rest "")
811 (setq contents (concat contents "\nDESCRIPTION:"
812 (icalendar-convert-string-for-export
813 entry-rest)))))
814 ;; yearly by day
815 ;; 1 May Tag der Arbeit
816 ((string-match
817 (concat nonmarker
818 (if european-calendar-style
819 "0?\\([1-9]+[0-9]?\\)\\s-+\\([a-z]+\\)\\s-+"
820 "\\([a-z]+\\)\\s-+0?\\([1-9]+[0-9]?\\)\\s-+")
821 "\\*?\\s-*"
822 "\\(0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?"
823 "\\("
824 "-0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?"
825 "\\)?"
826 "\\s-*\\([^0-9]+.*\\)$"; must not match years
827 )
828 entry-main)
829 (icalendar-dmsg "yearly %s" entry-main)
830 (let* ((daypos (if european-calendar-style 1 2))
831 (monpos (if european-calendar-style 2 1))
832 (day (read (substring entry-main (match-beginning daypos)
833 (match-end daypos))))
834 (month (icalendar-get-month-number
835 (substring entry-main (match-beginning monpos)
836 (match-end monpos))))
837 (starttimestring (icalendar-diarytime-to-isotime
838 (if (match-beginning 4)
839 (substring entry-main
840 (match-beginning 4)
841 (match-end 4))
842 nil)
843 (if (match-beginning 5)
844 (substring entry-main
845 (match-beginning 5)
846 (match-end 5))
847 nil)))
848 (endtimestring (icalendar-diarytime-to-isotime
849 (if (match-beginning 7)
850 (substring entry-main
851 (match-beginning 7)
852 (match-end 7))
853 nil)
854 (if (match-beginning 8)
855 (substring entry-main
856 (match-beginning 8)
857 (match-end 8))
858 nil)))
859 (summary (icalendar-convert-string-for-export
860 (substring entry-main (match-beginning 9)
861 (match-end 9)))))
862 (when starttimestring
863 (unless endtimestring
864 (let ((time (read (icalendar-rris "^T0?" ""
865 starttimestring))))
866 (setq endtimestring (format "T%06d" (+ 10000 time))))))
867 (setq contents
868 (concat "\nDTSTART"
869 (if starttimestring "" ";VALUE=DATE")
870 (format ":1900%02d%02d" month day)
871 (or starttimestring "")
872 "\nDTEND"
873 (if endtimestring "" ";VALUE=DATE")
874 (format ":1900%02d%02d" month day)
875 (or endtimestring "")
876 "\nSUMMARY:" summary
877 "\nRRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH="
878 (format "%2d" month)
879 ";BYMONTHDAY="
880 (format "%2d" day)
881 )))
882 (unless (string= entry-rest "")
883 (setq contents (concat contents "\nDESCRIPTION:"
884 (icalendar-convert-string-for-export
885 entry-rest)))))
886 ;; "ordinary" events, start and end time given
887 ;; 1 Feb 2003 Hs Hochzeitsfeier, Dreieich
888 ((string-match
889 (concat nonmarker
890 "\\([^ /]+[ /]+[^ /]+[ /]+[^ ]+\\)\\s-+"
891 "\\(0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?"
892 "\\("
893 "-0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?"
894 "\\)?"
895 "\\s-*\\(.*\\)")
896 entry-main)
897 (icalendar-dmsg "ordinary %s" entry-main)
898 (let* ((datestring (icalendar-datestring-to-isodate
899 (substring entry-main (match-beginning 1)
900 (match-end 1))))
901 (starttimestring (icalendar-diarytime-to-isotime
902 (if (match-beginning 3)
903 (substring entry-main
904 (match-beginning 3)
905 (match-end 3))
906 nil)
907 (if (match-beginning 4)
908 (substring entry-main
909 (match-beginning 4)
910 (match-end 4))
911 nil)))
912 (endtimestring (icalendar-diarytime-to-isotime
913 (if (match-beginning 6)
914 (substring entry-main
915 (match-beginning 6)
916 (match-end 6))
917 nil)
918 (if (match-beginning 7)
919 (substring entry-main
920 (match-beginning 7)
921 (match-end 7))
922 nil)))
923 (summary (icalendar-convert-string-for-export
924 (substring entry-main (match-beginning 8)
925 (match-end 8)))))
926 (when starttimestring
927 (unless endtimestring
928 (let ((time (read (icalendar-rris "^T0?" ""
929 starttimestring))))
930 (setq endtimestring (format "T%06d" (+ 10000 time))))))
931 (setq contents (format
932 "\nDTSTART%s:%s%s\nDTEND%s:%s%s\nSUMMARY:%s"
933 (if starttimestring "" ";VALUE=DATE")
934 datestring
935 (or starttimestring "")
936 (if endtimestring ""
937 ";VALUE=DATE")
938 datestring
939 (or endtimestring "")
940 summary))
941 (unless (string= entry-rest "")
942 (setq contents (concat contents "\nDESCRIPTION:"
943 (icalendar-convert-string-for-export
944 entry-rest))))))
945 ;; everything else
946 (t
947 ;; Oops! what's that?
948 (setq oops t)))
949 (if oops
950 (message "Cannot export entry on line %d"
951 (count-lines (point-min) (point)))
952 (setq result (concat result header contents "\nEND:VEVENT"))))
953 ;; we're done, insert everything into the file
954 (let ((coding-system-for-write 'utf8))
955 (set-buffer (find-file ical-filename))
956 (unless do-not-clear-diary-file
957 (erase-buffer))
958 (insert
959 "BEGIN:VCALENDAR\nPRODID:-//Emacs//NONSGML icalendar.el//EN")
960 (insert "\nVERSION:2.0")
961 (insert result)
962 (insert "\nEND:VCALENDAR\n")))))
963
964
965;; ======================================================================
966;; import -- convert icalendar to emacs-diary
967;; ======================================================================
968
969;; user function
970(defun icalendar-import-file (ical-filename diary-filename
971 &optional non-marking
972 do-not-clear-diary-file)
973 "Import a iCalendar file and save to a diary file -- erases diary-file!
974Argument ICAL-FILENAME output iCalendar file.
975Argument DIARY-FILENAME input `diary-file'.
976Optional argument NON-MARKING determines whether events are created as
977non-marking or not.
978If DO-NOT-CLEAR-DIARY-FILE is not nil the target diary file is
979not erased."
980 (interactive "fImport iCalendar data from file:
981Finto diary file (will be erased!):
982p")
983 ;; clean up the diary file
984 (save-current-buffer
985 (unless do-not-clear-diary-file
986 ;; clear the target diary file
987 (set-buffer (find-file diary-filename))
988 (erase-buffer))
989 ;; now load and convert from the ical file
990 (set-buffer (find-file ical-filename))
991 (icalendar-extract-ical-from-buffer diary-filename t non-marking)))
992
993; user function
994(defun icalendar-extract-ical-from-buffer (&optional
995 diary-file do-not-ask
996 non-marking)
997 "Extract iCalendar events from current buffer.
998
999This function searches the current buffer for the first iCalendar
1000object, reads it and adds all VEVENT elements to the diary
1001DIARY-FILE.
1002
1003It will ask for each appointment whether to add it to the diary
1004when DO-NOT-ASK is non-nil. When called interactively,
1005DO-NOT-ASK is set to t, so that you are asked fore each event.
1006
1007NON-MARKING determines whether diary events are created as
1008non-marking.
1009
1010This function attempts to notify about problems that occur when
1011reading, parsing, or converting iCalendar data!"
1012 (interactive)
1013 (save-current-buffer
1014 ;; prepare ical
1015 (message "Preparing icalendar...")
1016 (set-buffer (icalendar-get-unfolded-buffer (current-buffer)))
1017 (goto-char (point-min))
1018 (message "Preparing icalendar...done")
1019 (if (re-search-forward "^BEGIN:VCALENDAR\\s-*$" nil t)
1020 (let (ical-contents ical-errors)
1021 ;; read ical
1022 (message "Reading icalendar...")
1023 (beginning-of-line)
1024 (setq ical-contents (icalendar-read-element nil nil))
1025 (message "Reading icalendar...done")
1026 ;; convert ical
1027 (message "Converting icalendar...")
1028 (setq ical-errors (icalendar-convert-ical-to-diary
1029 ical-contents
1030 diary-file do-not-ask non-marking))
1031 (when diary-file
1032 ;; save the diary file
1033 (save-current-buffer
1034 (set-buffer (find-buffer-visiting diary-file))
1035 (save-buffer)))
1036 (message "Converting icalendar...done")
1037 (if (and ical-errors (y-or-n-p
1038 (concat "Something went wrong -- "
1039 "do you want to see the "
1040 "error log? ")))
1041 (switch-to-buffer " *icalendar-errors*")))
1042 (message
1043 "Current buffer does not contain icalendar contents!"))))
1044
1045;; ----------------------------------------------------------------------
1046;; private area
1047;; ----------------------------------------------------------------------
1048(defun icalendar-format-ical-event (event)
1049 "Create a string representation of an iCalendar EVENT."
1050 (let ((string icalendar-import-format)
1051 (conversion-list
1052 '(("%d" DESCRIPTION icalendar-import-format-description)
1053 ("%s" SUMMARY icalendar-import-format-subject)
1054 ("%l" LOCATION icalendar-import-format-location)
1055 ("%o" ORGANIZER icalendar-import-format-organizer))))
1056 ;; convert the specifiers in the format string
1057 (mapcar (lambda (i)
1058 (let* ((spec (car i))
1059 (prop (cadr i))
1060 (format (car (cddr i)))
1061 (contents (icalendar-get-event-property event prop))
1062 (formatted-contents ""))
1063 ;;(message "%s" event)
1064 ;;(message "contents%s = %s" prop contents)
1065 (when (and contents (> (length contents) 0))
1066 (setq formatted-contents
1067 (icalendar-rris "%s"
1068 (icalendar-convert-for-import
1069 contents)
1070 (symbol-value format))))
1071 (setq string (icalendar-rris spec
1072 formatted-contents
1073 string))))
1074 conversion-list)
1075 string))
1076
1077(defun icalendar-convert-ical-to-diary (ical-list diary-file
1078 &optional do-not-ask
1079 non-marking)
1080 "Convert an iCalendar file to an Emacs diary file.
1081Import VEVENTS from the iCalendar object ICAL-LIST and saves them to a
1082DIARY-FILE. If DO-NOT-ASK is nil the user is asked for each event
1083whether to actually import it. NON-MARKING determines whether diary
1084events are created as non-marking.
1085This function attempts to return t if something goes wrong. In this
1086case an error string which describes all the errors and problems is
1087written into the buffer ` *icalendar-errors*'."
1088 (let* ((ev (icalendar-all-events ical-list))
1089 (error-string "")
1090 (event-ok t)
1091 (found-error nil)
1092 e diary-string)
1093 ;; step through all events/appointments
1094 (while ev
1095 (setq e (car ev))
1096 (setq ev (cdr ev))
1097 (setq event-ok nil)
1098 (condition-case error-val
1099 (let* ((dtstart (icalendar-decode-isodatetime
1100 (icalendar-get-event-property e 'DTSTART)))
1101 (start-d (calendar-date-string
1102 (icalendar-datetime-to-noneuropean-date
1103 dtstart)
1104 t t))
1105 (start-t (icalendar-datetime-to-colontime dtstart))
1106 (dtend (icalendar-decode-isodatetime
1107 (icalendar-get-event-property e 'DTEND)))
1108 end-d
1109 end-t
1110 (subject (icalendar-convert-for-import
1111 (or (icalendar-get-event-property e 'SUMMARY)
1112 "No Subject")))
1113 (rrule (icalendar-get-event-property e 'RRULE))
1114 (rdate (icalendar-get-event-property e 'RDATE))
1115 (duration (icalendar-get-event-property e 'DURATION)))
1116 (icalendar-dmsg "%s: %s" start-d subject)
1117 (when duration
1118 (let ((dtend2 (icalendar-add-decoded-times
1119 dtstart
1120 (icalendar-decode-isoduration duration))))
1121 (if (and dtend (not (eq dtend dtend2)))
1122 (message "Inconsistent endtime and duration for %s"
1123 subject))
1124 (setq dtend dtend2)))
1125 (setq end-d (if dtend
1126 (calendar-date-string
1127 (icalendar-datetime-to-noneuropean-date
1128 dtend)
1129 t t)
1130 start-d))
1131 (setq end-t (if dtend
1132 (icalendar-datetime-to-colontime dtend)
1133 start-t))
1134 (icalendar-dmsg "start-d: %s, end-d: %s" start-d end-d)
1135 (cond
1136 ;; recurring event
1137 (rrule
1138 (icalendar-dmsg "recurring event")
1139 (let* ((rrule-props (icalendar-split-value rrule))
1140 (frequency (car (cdr (assoc 'FREQ rrule-props))))
1141 (until (car (cdr (assoc 'UNTIL rrule-props))))
1142 (interval (read (car (cdr (assoc 'INTERVAL
1143 rrule-props))))))
1144 (cond ((string-equal frequency "WEEKLY")
1145 (if (not start-t)
1146 (progn
1147 ;; weekly and all-day
1148 (icalendar-dmsg "weekly all-day")
1149 (setq diary-string
1150 (format
1151 "%%%%(diary-cyclic %d %s)"
1152 (* interval 7)
1153 (icalendar-datetime-to-european-date
1154 dtstart))))
1155 ;; weekly and not all-day
1156 (let* ((byday (cadr (assoc 'BYDAY rrule-props)))
1157 (weekday
1158 (cdr (rassoc
1159 byday
1160 icalendar-weekdayabbrev-table))))
1161 (icalendar-dmsg "weekly not-all-day")
1162 (if weekday
1163 (setq diary-string
1164 (format "%s %s%s%s" weekday
1165 start-t (if end-t "-" "")
1166 (or end-t "")))
1167 ;; FIXME!!!!
1168 ;; DTSTART;VALUE=DATE-TIME:20030919T090000
1169 ;; DTEND;VALUE=DATE-TIME:20030919T113000
1170 (setq diary-string
1171 (format
1172 "%%%%(diary-cyclic %s %s) %s%s%s"
1173 (* interval 7)
1174 (icalendar-datetime-to-european-date
1175 dtstart)
1176 start-t (if end-t "-" "") (or end-t ""))))
1177 (setq event-ok t))))
1178 ;; yearly
1179 ((string-equal frequency "YEARLY")
1180 (icalendar-dmsg "yearly")
1181 (setq diary-string
1182 (format
1183 "%%%%(diary-anniversary %s)"
1184 (icalendar-datetime-to-european-date dtstart)))
1185 (setq event-ok t))
1186 ;; FIXME: war auskommentiert:
1187 ((and (string-equal frequency "DAILY")
1188 ;;(not (string= start-d end-d))
1189 ;;(not start-t)
1190 ;;(not end-t)
1191 )
1192 (let ((ds (icalendar-datetime-to-noneuropean-date
1193 (icalendar-decode-isodatetime
1194 (icalendar-get-event-property e
1195 'DTSTART))))
1196 (de (icalendar-datetime-to-noneuropean-date
1197 (icalendar-decode-isodatetime
1198 until))))
1199 (setq diary-string
1200 (format
1201 "%%%%(diary-block %d %d %d %d %d %d)"
1202 (nth 1 ds) (nth 0 ds) (nth 2 ds)
1203 (nth 1 de) (nth 0 de) (nth 2 de))))
1204 (setq event-ok t)))
1205 ))
1206 (rdate
1207 (icalendar-dmsg "rdate event")
1208 (setq diary-string "")
1209 (mapcar (lambda (datestring)
1210 (setq diary-string
1211 (concat diary-string
1212 (format "......"))))
1213 (icalendar-split-value rdate)))
1214 ;; non-recurring event
1215 ;; long event
1216 ((not (string= start-d end-d))
1217 (icalendar-dmsg "non-recurring event")
1218 (let ((ds (icalendar-datetime-to-noneuropean-date dtstart))
1219 (de (icalendar-datetime-to-noneuropean-date dtend)))
1220 (setq diary-string
1221 (format "%%%%(diary-block %d %d %d %d %d %d)"
1222 (nth 1 ds) (nth 0 ds) (nth 2 ds)
1223 (nth 1 de) (nth 0 de) (nth 2 de))))
1224 (setq event-ok t))
1225 ;; not all-day
1226 ((and start-t (or (not end-t)
1227 (not (string= start-t end-t))))
1228 (icalendar-dmsg "not all day event")
1229 (cond (end-t
1230 (setq diary-string (format "%s %s-%s" start-d
1231 start-t end-t)))
1232 (t
1233 (setq diary-string (format "%s %s" start-d
1234 start-t))))
1235 (setq event-ok t))
1236 ;; all-day event
1237 (t
1238 (icalendar-dmsg "all day event")
1239 (setq diary-string start-d)
1240 (setq event-ok t)))
1241 ;; add all other elements unless the user doesn't want to have
1242 ;; them
1243 (if event-ok
1244 (progn
1245 (setq diary-string
1246 (concat diary-string " "
1247 (icalendar-format-ical-event e)))
1248 (if do-not-ask (setq subject nil))
1249 (icalendar-add-diary-entry diary-string diary-file
1250 non-marking subject))
1251 ;; event was not ok
1252 (setq found-error t)
1253 (setq error-string
1254 (format "%s\nCannot handle this event:%s"
1255 error-string e))))
1256 ;; handle errors
1257 (error
1258 (message "Ignoring event \"%s\"" e)
1259 (setq found-error t)
1260 (setq error-string (format "%s\nCannot handle this event: %s"
1261 error-string e)))))
1262 (if found-error
1263 (save-current-buffer
1264 (set-buffer (get-buffer-create " *icalendar-errors*"))
1265 (erase-buffer)
1266 (insert error-string)))
1267 (message "Converting icalendar...done")
1268 found-error))
1269
1270(defun icalendar-add-diary-entry (string diary-file non-marking
1271 &optional subject)
1272 "Add STRING to the diary file DIARY-FILE.
1273STRING must be a properly formatted valid diary entry. NON-MARKING
1274determines whether diary events are created as non-marking. If
1275SUBJECT is not nil it must be a string that gives the subject of the
1276entry. In this case the user will be asked whether he wants to insert
1277the entry."
1278 (when (or (not subject) ;
1279 (y-or-n-p (format "Add appointment for `%s' to diary? "
1280 subject)))
1281 (when subject
1282 (setq non-marking
1283 (y-or-n-p (format "Make appointment non-marking? "))))
1284 (save-window-excursion
1285 (unless diary-file
1286 (setq diary-file
1287 (read-file-name "Add appointment to this diary file: ")))
1288 (make-diary-entry string non-marking diary-file))))
1289
1290;; ======================================================================
1291;; (add-hook 'list-diary-entries-hook 'include-icalendar-files)
1292;; ======================================================================
1293(defun include-icalendar-files ()
1294 "Not yet implemented.")
1295
1296(provide 'icalendar)
1297
1298;; arch-tag: 74fdbe8e-0451-4e38-bb61-4416e822f4fc
1299;;; icalendar.el ends here
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 907ad5f3411..f4b77297867 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,21 @@
12004-10-06 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * gnus-group.el (gnus-update-group-mark-positions):
4 * gnus-sum.el (gnus-update-summary-mark-positions):
5 * message.el (message-check-news-body-syntax):
6 * gnus-msg.el (gnus-debug): Use mm-string-as-multibyte instead
7 of string-as-multibyte.
8
9 * gnus-sum.el (gnus-summary-insert-subject): Remove redundant setq.
10
112004-10-05 Juri Linkov <juri@jurta.org>
12
13 * gnus-group.el (gnus-update-group-mark-positions):
14 * gnus-sum.el (gnus-update-summary-mark-positions):
15 * message.el (message-check-news-body-syntax):
16 * gnus-msg.el (gnus-debug): Use `string-as-multibyte' to convert
17 8-bit unibyte values to a multibyte string for search functions.
18
12004-10-01 Katsumi Yamaoka <yamaoka@jpl.org> 192004-10-01 Katsumi Yamaoka <yamaoka@jpl.org>
2 20
3 * gnus-sum.el (gnus-summary-toggle-header): Make it work even if 21 * gnus-sum.el (gnus-summary-toggle-header): Make it work even if
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 9f7b259e066..435acb1d6c2 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -1046,7 +1046,8 @@ The following commands are available:
1046 (gnus-group-insert-group-line "dummy.group" 0 nil 0 nil) 1046 (gnus-group-insert-group-line "dummy.group" 0 nil 0 nil)
1047 (goto-char (point-min)) 1047 (goto-char (point-min))
1048 (setq gnus-group-mark-positions 1048 (setq gnus-group-mark-positions
1049 (list (cons 'process (and (search-forward "\200" nil t) 1049 (list (cons 'process (and (search-forward
1050 (mm-string-as-multibyte "\200") nil t)
1050 (- (point) 2)))))))) 1051 (- (point) 2))))))))
1051 1052
1052(defun gnus-mouse-pick-group (e) 1053(defun gnus-mouse-pick-group (e)
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el
index 33531e7f8a4..7dcef4b813b 100644
--- a/lisp/gnus/gnus-msg.el
+++ b/lisp/gnus/gnus-msg.el
@@ -1534,7 +1534,8 @@ The source file has to be in the Emacs load path."
1534 ;; Remove any control chars - they seem to cause trouble for some 1534 ;; Remove any control chars - they seem to cause trouble for some
1535 ;; mailers. (Byte-compiled output from the stuff above.) 1535 ;; mailers. (Byte-compiled output from the stuff above.)
1536 (goto-char point) 1536 (goto-char point)
1537 (while (re-search-forward "[\000-\010\013-\037\200-\237]" nil t) 1537 (while (re-search-forward (mm-string-as-multibyte
1538 "[\000-\010\013-\037\200-\237]") nil t)
1538 (replace-match (format "\\%03o" (string-to-char (match-string 0))) 1539 (replace-match (format "\\%03o" (string-to-char (match-string 0)))
1539 t t)))) 1540 t t))))
1540 1541
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 92ba2346949..84de9c4e1ab 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -3231,20 +3231,24 @@ buffer that was in action when the last article was fetched."
3231 [0 "" "" "05 Apr 2001 23:33:09 +0400" "" "" 0 0 "" nil] 3231 [0 "" "" "05 Apr 2001 23:33:09 +0400" "" "" 0 0 "" nil]
3232 0 nil t 128 t nil "" nil 1) 3232 0 nil t 128 t nil "" nil 1)
3233 (goto-char (point-min)) 3233 (goto-char (point-min))
3234 (setq pos (list (cons 'unread (and (search-forward "\200" nil t) 3234 (setq pos (list (cons 'unread
3235 (- (point) (point-min) 1))))) 3235 (and (search-forward
3236 (mm-string-as-multibyte "\200") nil t)
3237 (- (point) (point-min) 1)))))
3236 (goto-char (point-min)) 3238 (goto-char (point-min))
3237 (push (cons 'replied (and (search-forward "\201" nil t) 3239 (push (cons 'replied (and (search-forward
3240 (mm-string-as-multibyte "\201") nil t)
3238 (- (point) (point-min) 1))) 3241 (- (point) (point-min) 1)))
3239 pos) 3242 pos)
3240 (goto-char (point-min)) 3243 (goto-char (point-min))
3241 (push (cons 'score (and (search-forward "\202" nil t) 3244 (push (cons 'score (and (search-forward
3245 (mm-string-as-multibyte "\202") nil t)
3242 (- (point) (point-min) 1))) 3246 (- (point) (point-min) 1)))
3243 pos) 3247 pos)
3244 (goto-char (point-min)) 3248 (goto-char (point-min))
3245 (push (cons 'download 3249 (push (cons 'download (and (search-forward
3246 (and (search-forward "\203" nil t) 3250 (mm-string-as-multibyte "\203") nil t)
3247 (- (point) (point-min) 1))) 3251 (- (point) (point-min) 1)))
3248 pos))) 3252 pos)))
3249 (setq gnus-summary-mark-positions pos)))) 3253 (setq gnus-summary-mark-positions pos))))
3250 3254
@@ -6009,8 +6013,7 @@ the subject line on."
6009 ;; Remove list identifiers from subject. 6013 ;; Remove list identifiers from subject.
6010 (when gnus-list-identifiers 6014 (when gnus-list-identifiers
6011 (let ((gnus-newsgroup-headers (list header))) 6015 (let ((gnus-newsgroup-headers (list header)))
6012 (gnus-summary-remove-list-identifiers) 6016 (gnus-summary-remove-list-identifiers)))
6013 (setq header (car gnus-newsgroup-headers))))
6014 (when old-header 6017 (when old-header
6015 (mail-header-set-number header (mail-header-number old-header))) 6018 (mail-header-set-number header (mail-header-number old-header)))
6016 (setq gnus-newsgroup-sparse 6019 (setq gnus-newsgroup-sparse
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 8e5edbc048a..bfaf1675703 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -4399,7 +4399,9 @@ Otherwise, generate and save a value for `canlock-password' first."
4399 nil)))) 4399 nil))))
4400 ;; Check for control characters. 4400 ;; Check for control characters.
4401 (message-check 'control-chars 4401 (message-check 'control-chars
4402 (if (re-search-forward "[\000-\007\013\015-\032\034-\037\200-\237]" nil t) 4402 (if (re-search-forward
4403 (mm-string-as-multibyte "[\000-\007\013\015-\032\034-\037\200-\237]")
4404 nil t)
4403 (y-or-n-p 4405 (y-or-n-p
4404 "The article contains control characters. Really post? ") 4406 "The article contains control characters. Really post? ")
4405 t)) 4407 t))
diff --git a/lisp/info.el b/lisp/info.el
index b779bb41ca6..2a20fc4898c 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -1729,7 +1729,7 @@ If SAME-FILE is non-nil, do not move to a different Info file."
1729 (let ((inhibit-read-only t)) 1729 (let ((inhibit-read-only t))
1730 (erase-buffer) 1730 (erase-buffer)
1731 (goto-char (point-min)) 1731 (goto-char (point-min))
1732 (insert "\n\^_\nFile: history Node: Top, Up: (dir)\n\n") 1732 (insert "\n\^_\nFile: history, Node: Top, Up: (dir)\n\n")
1733 (insert "Recently Visited Nodes\n**********************\n\n") 1733 (insert "Recently Visited Nodes\n**********************\n\n")
1734 (insert "* Menu:\n\n") 1734 (insert "* Menu:\n\n")
1735 (let ((hl (delete '("history" "Top") Info-history-list))) 1735 (let ((hl (delete '("history" "Top") Info-history-list)))
@@ -1749,26 +1749,31 @@ If SAME-FILE is non-nil, do not move to a different Info file."
1749 "Go to a node with table of contents of the current Info file. 1749 "Go to a node with table of contents of the current Info file.
1750Table of contents is created from the tree structure of menus." 1750Table of contents is created from the tree structure of menus."
1751 (interactive) 1751 (interactive)
1752 (let ((curr-file Info-current-file) 1752 (let ((curr-file (substring-no-properties Info-current-file))
1753 (curr-node Info-current-node) 1753 (curr-node (substring-no-properties Info-current-node))
1754 p) 1754 p)
1755 (with-current-buffer (get-buffer-create " *info-toc*") 1755 (with-current-buffer (get-buffer-create " *info-toc*")
1756 (let ((inhibit-read-only t) 1756 (let ((inhibit-read-only t)
1757 (node-list (Info-build-toc curr-file))) 1757 (node-list (Info-build-toc curr-file)))
1758 (erase-buffer) 1758 (erase-buffer)
1759 (goto-char (point-min)) 1759 (goto-char (point-min))
1760 (insert "\n\^_\nFile: toc Node: Top, Up: (dir)\n\n") 1760 (insert "\n\^_\nFile: toc, Node: Top, Up: (dir)\n\n")
1761 (insert "Table of Contents\n*****************\n\n") 1761 (insert "Table of Contents\n*****************\n\n")
1762 (insert "*Note Top::\n") 1762 (insert "*Note Top: (" curr-file ")Top.\n")
1763 (Info-insert-toc 1763 (Info-insert-toc
1764 (nth 2 (assoc "Top" node-list)) ; get Top nodes 1764 (nth 2 (assoc "Top" node-list)) ; get Top nodes
1765 node-list 0 (substring-no-properties curr-file))) 1765 node-list 0 curr-file))
1766 (if (not (bobp)) 1766 (if (not (bobp))
1767 (let ((Info-hide-note-references 'hide) 1767 (let ((Info-hide-note-references 'hide)
1768 (Info-fontify-visited-nodes nil)) 1768 (Info-fontify-visited-nodes nil))
1769 (Info-mode) 1769 (Info-mode)
1770 (setq Info-current-file "toc" Info-current-node "Top") 1770 (setq Info-current-file "toc" Info-current-node "Top")
1771 (Info-fontify-node))) 1771 (goto-char (point-min))
1772 (narrow-to-region (or (re-search-forward "\n[\^_\f]\n" nil t)
1773 (point-min))
1774 (point-max))
1775 (Info-fontify-node)
1776 (widen)))
1772 (goto-char (point-min)) 1777 (goto-char (point-min))
1773 (if (setq p (search-forward (concat "*Note " curr-node ":") nil t)) 1778 (if (setq p (search-forward (concat "*Note " curr-node ":") nil t))
1774 (setq p (- p (length curr-node) 2)))) 1779 (setq p (- p (length curr-node) 2))))
@@ -1789,14 +1794,12 @@ Table of contents is created from the tree structure of menus."
1789 1794
1790(defun Info-build-toc (file) 1795(defun Info-build-toc (file)
1791 "Build table of contents from menus of Info FILE and its subfiles." 1796 "Build table of contents from menus of Info FILE and its subfiles."
1792 (if (equal file "dir")
1793 (error "Table of contents for Info directory is not supported yet"))
1794 (with-temp-buffer 1797 (with-temp-buffer
1795 (let* ((default-directory (or (and (stringp file) 1798 (let* ((file (and (stringp file) (Info-find-file file)))
1796 (file-name-directory 1799 (default-directory (or (and (stringp file)
1797 (setq file (Info-find-file file)))) 1800 (file-name-directory file))
1798 default-directory)) 1801 default-directory))
1799 (main-file file) 1802 (main-file (and (stringp file) file))
1800 (sections '(("Top" "Top"))) 1803 (sections '(("Top" "Top")))
1801 nodes subfiles) 1804 nodes subfiles)
1802 (while (or main-file subfiles) 1805 (while (or main-file subfiles)
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 117d1bfdc13..96a3e0e0ac2 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -680,16 +680,7 @@ is treated as a regexp. See \\[isearch-forward] for more info."
680 (if isearch-small-window 680 (if isearch-small-window
681 (goto-char found-point) 681 (goto-char found-point)
682 ;; Exiting the save-window-excursion clobbers window-start; restore it. 682 ;; Exiting the save-window-excursion clobbers window-start; restore it.
683 (set-window-start (selected-window) found-start t)) 683 (set-window-start (selected-window) found-start t)))
684
685 ;; If there was movement, mark the starting position.
686 ;; Maybe should test difference between and set mark iff > threshold.
687 (if (/= (point) isearch-opoint)
688 (or (and transient-mark-mode mark-active)
689 (progn
690 (push-mark isearch-opoint t)
691 (or executing-kbd-macro (> (minibuffer-depth) 0)
692 (message "Mark saved where search started"))))))
693 684
694 (setq isearch-mode nil) 685 (setq isearch-mode nil)
695 (if isearch-input-method-local-p 686 (if isearch-input-method-local-p
@@ -714,6 +705,16 @@ is treated as a regexp. See \\[isearch-forward] for more info."
714 (isearch-update-ring isearch-string isearch-regexp)) 705 (isearch-update-ring isearch-string isearch-regexp))
715 706
716 (run-hooks 'isearch-mode-end-hook) 707 (run-hooks 'isearch-mode-end-hook)
708
709 ;; If there was movement, mark the starting position.
710 ;; Maybe should test difference between and set mark iff > threshold.
711 (if (/= (point) isearch-opoint)
712 (or (and transient-mark-mode mark-active)
713 (progn
714 (push-mark isearch-opoint t)
715 (or executing-kbd-macro (> (minibuffer-depth) 0)
716 (message "Mark saved where search started")))))
717
717 (and (not edit) isearch-recursive-edit (exit-recursive-edit))) 718 (and (not edit) isearch-recursive-edit (exit-recursive-edit)))
718 719
719(defun isearch-update-ring (string &optional regexp) 720(defun isearch-update-ring (string &optional regexp)
diff --git a/lisp/newcomment.el b/lisp/newcomment.el
index 120777ab704..5711e7903ad 100644
--- a/lisp/newcomment.el
+++ b/lisp/newcomment.el
@@ -423,7 +423,7 @@ and raises an error or returns nil if NOERROR is non-nil."
423(defun comment-beginning () 423(defun comment-beginning ()
424 "Find the beginning of the enclosing comment. 424 "Find the beginning of the enclosing comment.
425Returns nil if not inside a comment, else moves point and returns 425Returns nil if not inside a comment, else moves point and returns
426the same as `comment-search-forward'." 426the same as `comment-search-backward'."
427 ;; HACK ATTACK! 427 ;; HACK ATTACK!
428 ;; We should really test `in-string-p' but that can be expensive. 428 ;; We should really test `in-string-p' but that can be expensive.
429 (unless (eq (get-text-property (point) 'face) 'font-lock-string-face) 429 (unless (eq (get-text-property (point) 'face) 'font-lock-string-face)
@@ -435,7 +435,7 @@ the same as `comment-search-forward'."
435 (and 435 (and
436 ;; For modes where comment-start and comment-end are the same, 436 ;; For modes where comment-start and comment-end are the same,
437 ;; the search above may have found a `ce' rather than a `cs'. 437 ;; the search above may have found a `ce' rather than a `cs'.
438 (or (not (looking-at comment-end-skip)) 438 (or (if comment-end-skip (not (looking-at comment-end-skip)))
439 ;; Maybe font-lock knows that it's a `cs'? 439 ;; Maybe font-lock knows that it's a `cs'?
440 (eq (get-text-property (match-end 0) 'face) 440 (eq (get-text-property (match-end 0) 'face)
441 'font-lock-comment-face) 441 'font-lock-comment-face)
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 612a2034e00..d8f2cf34867 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -188,6 +188,7 @@ detailed description of this mode.
188 (setq gdb-var-changed nil) 188 (setq gdb-var-changed nil)
189 (setq gdb-first-prompt nil) 189 (setq gdb-first-prompt nil)
190 (setq gdb-prompting nil) 190 (setq gdb-prompting nil)
191 (setq gdb-input-queue nil)
191 (setq gdb-current-item nil) 192 (setq gdb-current-item nil)
192 (setq gdb-pending-triggers nil) 193 (setq gdb-pending-triggers nil)
193 (setq gdb-output-sink 'user) 194 (setq gdb-output-sink 'user)
diff --git a/lisp/textmodes/enriched.el b/lisp/textmodes/enriched.el
index c2ed47cb48d..71bb6cf137d 100644
--- a/lisp/textmodes/enriched.el
+++ b/lisp/textmodes/enriched.el
@@ -258,8 +258,8 @@ Commands:
258(define-key enriched-mode-map "\M-j" 'facemenu-justification-menu) 258(define-key enriched-mode-map "\M-j" 'facemenu-justification-menu)
259(define-key enriched-mode-map "\M-S" 'set-justification-center) 259(define-key enriched-mode-map "\M-S" 'set-justification-center)
260(define-key enriched-mode-map "\C-x\t" 'increase-left-margin) 260(define-key enriched-mode-map "\C-x\t" 'increase-left-margin)
261(define-key enriched-mode-map "\C-c\C-l" 'set-left-margin) 261(define-key enriched-mode-map "\C-c[" 'set-left-margin)
262(define-key enriched-mode-map "\C-c\C-r" 'set-right-margin) 262(define-key enriched-mode-map "\C-c]" 'set-right-margin)
263 263
264;;; 264;;;
265;;; Some functions dealing with text-properties, especially indentation 265;;; Some functions dealing with text-properties, especially indentation
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 1c4b89f0a62..2a9059e2f56 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -1,7 +1,7 @@
1;;; tex-mode.el --- TeX, LaTeX, and SliTeX mode commands -*- coding: utf-8 -*- 1;;; tex-mode.el --- TeX, LaTeX, and SliTeX mode commands -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1985,86,89,92,94,95,96,97,98,1999,2002,03,2004 3;; Copyright (C) 1985, 1986, 1989, 1992, 1994, 1995, 1996, 1997, 1998, 1999,
4;; Free Software Foundation, Inc. 4;; 2002, 2003, 2004 Free Software Foundation, Inc.
5 5
6;; Maintainer: FSF 6;; Maintainer: FSF
7;; Keywords: tex 7;; Keywords: tex
@@ -196,7 +196,11 @@ use."
196 :group 'tex-view) 196 :group 'tex-view)
197 197
198;;;###autoload 198;;;###autoload
199(defcustom tex-dvi-view-command '(if (eq window-system 'x) "xdvi" "dvi2tty * | cat -s") 199(defcustom tex-dvi-view-command
200 '(cond
201 ((eq window-system 'x) "xdvi")
202 ((eq window-system 'w32) "yap")
203 (t "dvi2tty * | cat -s"))
200 "*Command used by \\[tex-view] to display a `.dvi' file. 204 "*Command used by \\[tex-view] to display a `.dvi' file.
201If it is a string, that specifies the command directly. 205If it is a string, that specifies the command directly.
202If this string contains an asterisk (`*'), that is replaced by the file name; 206If this string contains an asterisk (`*'), that is replaced by the file name;
@@ -453,7 +457,8 @@ An alternative value is \" . \", if you use a font with a narrow period."
453 '("input" "include" "includeonly" "bibliography" 457 '("input" "include" "includeonly" "bibliography"
454 "epsfig" "psfig" "epsf" "nofiles" "usepackage" 458 "epsfig" "psfig" "epsf" "nofiles" "usepackage"
455 "documentstyle" "documentclass" "verbatiminput" 459 "documentstyle" "documentclass" "verbatiminput"
456 "includegraphics" "includegraphics*") 460 "includegraphics" "includegraphics*"
461 "url" "nolinkurl")
457 t)) 462 t))
458 ;; Miscellany. 463 ;; Miscellany.
459 (slash "\\\\") 464 (slash "\\\\")
@@ -771,8 +776,10 @@ Inherits `shell-mode-map' with a few additions.")
771 "part" "chapter" "newcommand" 776 "part" "chapter" "newcommand"
772 "renewcommand") 'words) 777 "renewcommand") 'words)
773 "\\|NeedsTeXFormat{LaTeX"))) 778 "\\|NeedsTeXFormat{LaTeX")))
774 (if (looking-at 779 (if (and (looking-at
775 "document\\(style\\|class\\)\\(\\[.*\\]\\)?{slides}") 780 "document\\(style\\|class\\)\\(\\[.*\\]\\)?{slides}")
781 ;; SliTeX is almost never used any more nowadays.
782 (tex-executable-exists-p slitex-run-command))
776 'slitex-mode 783 'slitex-mode
777 'latex-mode) 784 'latex-mode)
778 'plain-tex-mode)))) 785 'plain-tex-mode))))
@@ -1219,8 +1226,13 @@ A prefix arg inhibits the checking."
1219(defvar latex-block-default "enumerate") 1226(defvar latex-block-default "enumerate")
1220 1227
1221(defvar latex-block-args-alist 1228(defvar latex-block-args-alist
1222 '(("array" nil ?\{ (skeleton-read "[options]: ") ?\}) 1229 '(("array" nil ?\{ (skeleton-read "Format: ") ?\})
1223 ("tabular" nil ?\{ (skeleton-read "[options]: ") ?\})) 1230 ("tabular" nil ?\{ (skeleton-read "Format: ") ?\})
1231 ("minipage" nil ?\{ (skeleton-read "Size: ") ?\})
1232 ("picture" nil ?\( (skeleton-read "SizeX,SizeY: ") ?\))
1233 ;; FIXME: This is right for Prosper, but not for seminar.
1234 ;; ("slide" nil ?\{ (skeleton-read "Title: ") ?\})
1235 )
1224 "Skeleton element to use for arguments to particular environments. 1236 "Skeleton element to use for arguments to particular environments.
1225Every element of the list has the form (NAME . SKEL-ELEM) where NAME is 1237Every element of the list has the form (NAME . SKEL-ELEM) where NAME is
1226the name of the environment and SKEL-ELEM is an element to use in 1238the name of the environment and SKEL-ELEM is an element to use in
@@ -1229,8 +1241,11 @@ a skeleton (see `skeleton-insert').")
1229(defvar latex-block-body-alist 1241(defvar latex-block-body-alist
1230 '(("enumerate" nil '(latex-insert-item) > _) 1242 '(("enumerate" nil '(latex-insert-item) > _)
1231 ("itemize" nil '(latex-insert-item) > _) 1243 ("itemize" nil '(latex-insert-item) > _)
1232 ("table" nil "\\caption{" > - "}" > \n _) 1244 ("table" nil "\\caption{" > (skeleton-read "Caption: ") "}" > \n
1233 ("figure" nil > _ \n "\\caption{" > _ "}" >)) 1245 '(if (and (boundp 'reftex-mode) reftex-mode) (reftex-label "table"))
1246 \n _)
1247 ("figure" nil > _ \n "\\caption{" > (skeleton-read "Caption: ") "}" > \n
1248 '(if (and (boundp 'reftex-mode) reftex-mode) (reftex-label "table"))))
1234 "Skeleton element to use for the body of particular environments. 1249 "Skeleton element to use for the body of particular environments.
1235Every element of the list has the form (NAME . SKEL-ELEM) where NAME is 1250Every element of the list has the form (NAME . SKEL-ELEM) where NAME is
1236the name of the environment and SKEL-ELEM is an element to use in 1251the name of the environment and SKEL-ELEM is an element to use in
@@ -1254,7 +1269,8 @@ Puts point on a blank line between them."
1254 choice) 1269 choice)
1255 \n "\\begin{" str "}" 1270 \n "\\begin{" str "}"
1256 (cdr (assoc str latex-block-args-alist)) 1271 (cdr (assoc str latex-block-args-alist))
1257 > \n (or (cdr (assoc str latex-block-body-alist)) '(nil > _)) \n 1272 > \n (or (cdr (assoc str latex-block-body-alist)) '(nil > _))
1273 (unless (bolp) '\n)
1258 "\\end{" str "}" > \n) 1274 "\\end{" str "}" > \n)
1259 1275
1260(define-skeleton latex-insert-item 1276(define-skeleton latex-insert-item
@@ -1598,7 +1614,7 @@ If NOT-ALL is non-nil, save the `.dvi' file."
1598 ("texindex %r.??") 1614 ("texindex %r.??")
1599 ("dvipdfm %r" "%r.dvi" "%r.pdf") 1615 ("dvipdfm %r" "%r.dvi" "%r.pdf")
1600 ("dvipdf %r" "%r.dvi" "%r.pdf") 1616 ("dvipdf %r" "%r.dvi" "%r.pdf")
1601 ("dvips %r" "%r.dvi" "%r.ps") 1617 ("dvips -o %r.ps %r" "%r.dvi" "%r.ps")
1602 ("ps2pdf %r.ps" "%r.ps" "%r.pdf") 1618 ("ps2pdf %r.ps" "%r.ps" "%r.pdf")
1603 ("gv %r.ps &" "%r.ps") 1619 ("gv %r.ps &" "%r.ps")
1604 ("gv %r.pdf &" "%r.pdf") 1620 ("gv %r.pdf &" "%r.pdf")
@@ -1767,7 +1783,7 @@ FILE is typically the output DVI or PDF file."
1767 (not (tex-uptodate-p (format-spec out fspec))))))) 1783 (not (tex-uptodate-p (format-spec out fspec)))))))
1768 1784
1769(defun tex-compile-default (fspec) 1785(defun tex-compile-default (fspec)
1770 "Guess a default command given the format-spec FSPEC." 1786 "Guess a default command given the `format-spec' FSPEC."
1771 ;; TODO: Learn to do latex+dvips! 1787 ;; TODO: Learn to do latex+dvips!
1772 (let ((cmds nil) 1788 (let ((cmds nil)
1773 (unchanged-in nil)) 1789 (unchanged-in nil))
@@ -1777,6 +1793,9 @@ FILE is typically the output DVI or PDF file."
1777 (if (tex-command-active-p cmd fspec) 1793 (if (tex-command-active-p cmd fspec)
1778 (push cmd cmds) 1794 (push cmd cmds)
1779 (push (nth 1 cmd) unchanged-in)))) 1795 (push (nth 1 cmd) unchanged-in))))
1796 ;; If no command seems to be applicable, arbitrarily pick the first one.
1797 (unless cmds
1798 (setq cmds (list (car tex-compile-commands))))
1780 ;; Remove those commands whose input was considered stable for 1799 ;; Remove those commands whose input was considered stable for
1781 ;; some other command (typically if (t . "%.pdf") is inactive 1800 ;; some other command (typically if (t . "%.pdf") is inactive
1782 ;; then we're using pdflatex and the fact that the dvi file 1801 ;; then we're using pdflatex and the fact that the dvi file
@@ -2261,6 +2280,7 @@ Runs the shell command defined by `tex-show-queue-command'."
2261(defvar tex-indent-basic 2) 2280(defvar tex-indent-basic 2)
2262(defvar tex-indent-item tex-indent-basic) 2281(defvar tex-indent-item tex-indent-basic)
2263(defvar tex-indent-item-re "\\\\\\(bib\\)?item\\>") 2282(defvar tex-indent-item-re "\\\\\\(bib\\)?item\\>")
2283(defvar latex-noindent-environments '("document"))
2264 2284
2265(defvar tex-latex-indent-syntax-table 2285(defvar tex-latex-indent-syntax-table
2266 (let ((st (make-syntax-table tex-mode-syntax-table))) 2286 (let ((st (make-syntax-table tex-mode-syntax-table)))
@@ -2311,7 +2331,6 @@ There might be text before point."
2311 (latex-find-indent 'virtual)))) 2331 (latex-find-indent 'virtual))))
2312 ;; Default (maybe an argument) 2332 ;; Default (maybe an argument)
2313 (let ((pos (point)) 2333 (let ((pos (point))
2314 (char (char-after))
2315 ;; Outdent \item if necessary. 2334 ;; Outdent \item if necessary.
2316 (indent (if (looking-at tex-indent-item-re) (- tex-indent-item) 0)) 2335 (indent (if (looking-at tex-indent-item-re) (- tex-indent-item) 0))
2317 up-list-pos) 2336 up-list-pos)
@@ -2329,6 +2348,17 @@ There might be text before point."
2329 ;; Have to indent relative to the open-paren. 2348 ;; Have to indent relative to the open-paren.
2330 (goto-char up-list-pos) 2349 (goto-char up-list-pos)
2331 (if (and (not tex-indent-allhanging) 2350 (if (and (not tex-indent-allhanging)
2351 (save-excursion
2352 ;; Make sure we're an argument to a macro and
2353 ;; that the macro is at the beginning of a line.
2354 (condition-case nil
2355 (progn
2356 (while (eq (char-syntax (char-after)) ?\()
2357 (forward-sexp -1))
2358 (and (eq (char-syntax (char-after)) ?/)
2359 (progn (skip-chars-backward " \t&")
2360 (bolp))))
2361 (scan-error nil)))
2332 (> pos (progn (latex-down-list) 2362 (> pos (progn (latex-down-list)
2333 (forward-comment (point-max)) 2363 (forward-comment (point-max))
2334 (point)))) 2364 (point))))
@@ -2336,18 +2366,24 @@ There might be text before point."
2336 (current-column) 2366 (current-column)
2337 ;; We're the first element after a hanging brace. 2367 ;; We're the first element after a hanging brace.
2338 (goto-char up-list-pos) 2368 (goto-char up-list-pos)
2339 (+ indent tex-indent-basic (latex-find-indent 'virtual)))) 2369 (+ (if (and (looking-at "\\\\begin *{\\([^\n}]+\\)")
2370 (member (match-string 1)
2371 latex-noindent-environments))
2372 0 tex-indent-basic)
2373 indent (latex-find-indent 'virtual))))
2340 ;; We're now at the "beginning" of a line. 2374 ;; We're now at the "beginning" of a line.
2341 ((not (and (not virtual) (eq (char-after) ?\\))) 2375 ((not (and (not virtual) (eq (char-after) ?\\)))
2342 ;; Nothing particular here: just keep the same indentation. 2376 ;; Nothing particular here: just keep the same indentation.
2343 (+ indent (current-column))) 2377 (+ indent (current-column)))
2344 ;; We're now looking at a macro call. 2378 ;; We're now looking at a macro call.
2345 ((looking-at tex-indent-item-re) 2379 ((looking-at tex-indent-item-re)
2346 ;; Indenting relative to an item, have to re-add the outdenting. 2380 ;; Indenting relative to an item, have to re-add the outdenting.
2347 (+ indent (current-column) tex-indent-item)) 2381 (+ indent (current-column) tex-indent-item))
2348 (t 2382 (t
2349 (let ((col (current-column))) 2383 (let ((col (current-column)))
2350 (if (or (null char) (not (eq (char-syntax char) ?\())) 2384 (if (or (not (eq (char-syntax (or (char-after pos) ?\ )) ?\())
2385 ;; Can't be an arg if there's an empty line inbetween.
2386 (save-excursion (re-search-forward "^[ \t]*$" pos t)))
2351 ;; If the first char was not an open-paren, there's 2387 ;; If the first char was not an open-paren, there's
2352 ;; a risk that this is really not an argument to the 2388 ;; a risk that this is really not an argument to the
2353 ;; macro at all. 2389 ;; macro at all.
@@ -2422,5 +2458,5 @@ There might be text before point."
2422 2458
2423(provide 'tex-mode) 2459(provide 'tex-mode)
2424 2460
2425;;; arch-tag: c0a680b1-63aa-4547-84b9-4193c29c0080 2461;; arch-tag: c0a680b1-63aa-4547-84b9-4193c29c0080
2426;;; tex-mode.el ends here 2462;;; tex-mode.el ends here
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index 69851ac5046..0da4297bb86 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,8 @@
12004-10-06 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * url-handlers.el (url-insert-file-contents): Use the URL to decide the
4 encoding, not the buffer-file-name (which might not even exist).
5
12004-09-20 Stefan Monnier <monnier@iro.umontreal.ca> 62004-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
2 7
3 * url-handlers.el (url-insert-file-contents): Decode contents. 8 * url-handlers.el (url-insert-file-contents): Decode contents.
diff --git a/lisp/url/url-handlers.el b/lisp/url/url-handlers.el
index 56497b00119..18a2e273637 100644
--- a/lisp/url/url-handlers.el
+++ b/lisp/url/url-handlers.el
@@ -208,7 +208,7 @@ accessible."
208 ;; annotation which we could use as a hint of the locale in use 208 ;; annotation which we could use as a hint of the locale in use
209 ;; at the remote site. Not sure how/if that should be done. --Stef 209 ;; at the remote site. Not sure how/if that should be done. --Stef
210 (decode-coding-inserted-region 210 (decode-coding-inserted-region
211 start (point) buffer-file-name visit beg end replace))) 211 start (point) url visit beg end replace)))
212 (list url (length data)))) 212 (list url (length data))))
213 213
214(defun url-file-name-completion (url directory) 214(defun url-file-name-completion (url directory)
diff --git a/lisp/xml.el b/lisp/xml.el
index 993ef59b276..f1d8cbb1f00 100644
--- a/lisp/xml.el
+++ b/lisp/xml.el
@@ -598,8 +598,8 @@ This follows the rule [28] in the XML specifications."
598 nil) 598 nil)
599 (t 599 (t
600 (if xml-validating-parser 600 (if xml-validating-parser
601 error "XML: (Validity) Invalid element type in the DTD"))) 601 (error "XML: (Validity) Invalid element type in the DTD"))))
602 602
603 ;; rule [45]: the element declaration must be unique 603 ;; rule [45]: the element declaration must be unique
604 (if (and (assoc element dtd) 604 (if (and (assoc element dtd)
605 xml-validating-parser) 605 xml-validating-parser)
@@ -727,13 +727,13 @@ This follows the rule [28] in the XML specifications."
727 (match-string 1 this-part))))))) 727 (match-string 1 this-part)))))))
728 728
729 (cond ((null children) 729 (cond ((null children)
730 (if (stringp expansion) 730 (if (and (eq (length expansion) 1)
731 (stringp (cadr expansion)))
731 (setq children (concat prev-part expansion)) 732 (setq children (concat prev-part expansion))
732 (if (stringp (car (last expansion))) 733 (if (stringp (car expansion))
733 (progn 734 (setq children
734 (setq children 735 (list (concat prev-part (car expansion))
735 (list (concat prev-part (car expansion)) 736 (append (cdr expansion))))
736 (cdr expansion))))
737 (setq children (append expansion prev-part))))) 737 (setq children (append expansion prev-part)))))
738 ((stringp children) 738 ((stringp children)
739 (if (stringp expansion) 739 (if (stringp expansion)
@@ -756,11 +756,15 @@ This follows the rule [28] in the XML specifications."
756 (cond ((stringp children) 756 (cond ((stringp children)
757 (concat children (substring string point))) 757 (concat children (substring string point)))
758 ((stringp (car (last children))) 758 ((stringp (car (last children)))
759 (concat (car children) (substring string point))) 759 (concat (car (last children)) (substring string point)))
760 ((null children) 760 ((null children)
761 string) 761 string)
762 (t 762 (t
763 (nreverse children))))) 763 (concat (mapconcat 'identity
764 (nreverse children)
765 "")
766 (substring string point))))))
767
764;;******************************************************************* 768;;*******************************************************************
765;;** 769;;**
766;;** Printing a tree. 770;;** Printing a tree.
diff --git a/lispintro/emacs-lisp-intro.texi b/lispintro/emacs-lisp-intro.texi
index 2096a60928f..4130eefd2cf 100644
--- a/lispintro/emacs-lisp-intro.texi
+++ b/lispintro/emacs-lisp-intro.texi
@@ -1,6 +1,7 @@
1@c \input texinfo @c -*-texinfo-*- 1\input texinfo @c -*-texinfo-*-
2@comment %**start of header 2@comment %**start of header
3@setfilename ../info/eintr 3@setfilename ../info/eintr
4@c setfilename emacs-lisp-intro.info
4@c sethtmlfilename emacs-lisp-intro.html 5@c sethtmlfilename emacs-lisp-intro.html
5@settitle Programming in Emacs Lisp 6@settitle Programming in Emacs Lisp
6@syncodeindex vr cp 7@syncodeindex vr cp
@@ -21,8 +22,8 @@
21 22
22@comment %**end of header 23@comment %**end of header
23 24
24@set edition-number 2.12 25@set edition-number 2.13
25@set update-date 2003 Nov 19 26@set update-date 2004 Oct 5
26 27
27@ignore 28@ignore
28 ## Summary of shell commands to create various output formats: 29 ## Summary of shell commands to create various output formats:
@@ -61,6 +62,8 @@
61 ## View Info output with standalone reader 62 ## View Info output with standalone reader
62 info emacs-lisp-intro.info 63 info emacs-lisp-intro.info
63 64
65 ## popd
66
64@end ignore 67@end ignore
65 68
66@c ================ Included Figures ================ 69@c ================ Included Figures ================
@@ -180,7 +183,7 @@ people who are not programmers.
180Edition @value{edition-number}, @value{update-date} 183Edition @value{edition-number}, @value{update-date}
181@sp 1 184@sp 1
182Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1997, 2001, 185Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1997, 2001,
1832002, 2003 Free Software Foundation, Inc. 1862002, 2003, 2004 Free Software Foundation, Inc.
184@sp 1 187@sp 1
185 188
186@iftex 189@iftex
@@ -1050,13 +1053,16 @@ Robert J. Chassell
1050@chapter List Processing 1053@chapter List Processing
1051 1054
1052To the untutored eye, Lisp is a strange programming language. In Lisp 1055To the untutored eye, Lisp is a strange programming language. In Lisp
1053code there are parentheses everywhere. Some people even claim that the 1056code there are parentheses everywhere. Some people even claim that
1054name stands for `Lots of Isolated Silly Parentheses'. But the claim is 1057the name stands for `Lots of Isolated Silly Parentheses'. But the
1055unwarranted. Lisp stands for LISt Processing, and the programming 1058claim is unwarranted. Lisp stands for LISt Processing, and the
1056language handles @emph{lists} (and lists of lists) by putting them 1059programming language handles @emph{lists} (and lists of lists) by
1057between parentheses. The parentheses mark the boundaries of the list. 1060putting them between parentheses. The parentheses mark the boundaries
1058Sometimes a list is preceded by a single apostrophe or quotation mark, 1061of the list. Sometimes a list is preceded by a single apostrophe or
1059@samp{'}. Lists are the basis of Lisp. 1062quotation mark, @samp{'}@footnote{The single apostrophe or quotation
1063mark is an abbreviation for the function @code{quote}; you need not
1064think about functions now; functions are defined in @ref{Making
1065Errors, , Generate an Error Message}.} Lists are the basis of Lisp.
1060 1066
1061@menu 1067@menu
1062* Lisp Lists:: What are lists? 1068* Lisp Lists:: What are lists?
@@ -2135,7 +2141,8 @@ Debugger entered--Lisp error:
2135 2141
2136@need 1250 2142@need 1250
2137As usual, the error message tries to be helpful and makes sense after you 2143As usual, the error message tries to be helpful and makes sense after you
2138learn how to read it. 2144learn how to read it.@footnote{@code{(quote hello)} is an expansion of
2145the abbreviation @code{'hello}.}
2139 2146
2140The first part of the error message is straightforward; it says 2147The first part of the error message is straightforward; it says
2141@samp{wrong type argument}. Next comes the mysterious jargon word 2148@samp{wrong type argument}. Next comes the mysterious jargon word
@@ -20638,6 +20645,7 @@ each column."
20638@end smallexample 20645@end smallexample
20639@end ifnottex 20646@end ifnottex
20640 20647
20648@c qqq
20641@ignore 20649@ignore
20642Graphing Definitions Re-listed 20650Graphing Definitions Re-listed
20643 20651
@@ -21137,6 +21145,7 @@ each column."
21137 (print-X-axis numbers-list horizontal-step))) 21145 (print-X-axis numbers-list horizontal-step)))
21138@end group 21146@end group
21139@end smallexample 21147@end smallexample
21148@c qqq
21140@end ignore 21149@end ignore
21141 21150
21142@page 21151@page
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index b568e99fb58..aef4746eef7 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,7 @@
12004-10-05 Kim F. Storm <storm@cua.dk>
2
3 * display.texi (Fringe Bitmaps): Update fringe-bitmaps-at-pos.
4
12004-09-29 Kim F. Storm <storm@cua.dk> 52004-09-29 Kim F. Storm <storm@cua.dk>
2 6
3 * display.texi (Fringe Bitmaps): Use symbols rather than numbers 7 * display.texi (Fringe Bitmaps): Use symbols rather than numbers
diff --git a/lispref/display.texi b/lispref/display.texi
index 00b91fe1fd8..518234ff4f8 100644
--- a/lispref/display.texi
+++ b/lispref/display.texi
@@ -2655,9 +2655,10 @@ symbols have their own name space.
2655@defun fringe-bitmaps-at-pos &optional pos window 2655@defun fringe-bitmaps-at-pos &optional pos window
2656This function returns the fringe bitmaps of the display line 2656This function returns the fringe bitmaps of the display line
2657containing position @var{pos} in window @var{window}. The return 2657containing position @var{pos} in window @var{window}. The return
2658value has the form @code{(@var{left} . @var{right})}, where @var{left} 2658value has the form @code{(@var{left} @var{right} @var{ov})}, where @var{left}
2659is the symbol for the fringe bitmap in the left fringe (or @code{nil} 2659is the symbol for the fringe bitmap in the left fringe (or @code{nil}
2660if no bitmap), and @var{right} is similar for the right fringe. 2660if no bitmap), @var{right} is similar for the right fringe, and @var{ov}
2661is non-@code{nil} if there is an overlay arrow in the left fringe.
2661 2662
2662The value is @code{nil} if @var{pos} is not visible in @var{window}. 2663The value is @code{nil} if @var{pos} is not visible in @var{window}.
2663If @var{window} is @code{nil}, that stands for the selected window. 2664If @var{window} is @code{nil}, that stands for the selected window.
diff --git a/man/ChangeLog b/man/ChangeLog
index fc0bd61497a..8d35fe1024e 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,53 @@
12004-10-06 Karl Berry <karl@gnu.org>
2
3 * info.texi (@kbd{1}--@kbd{9}): no space around --, for
4 consistency with other uses of dashes.
5
62004-10-06 Nick Roberts <nickrob@snap.net.nz>
7
8 * building.texi (Starting GUD): Note that multiple debugging
9 sessions requires `gdb --fullname'.
10
112004-10-05 Karl Berry <karl@gnu.org>
12
13 * info.texi: consistently use --- throughout, periods at end of
14 menu descriptions, and a couple typos.
15 From: Benno Schulenberg <benno@nietvergeten.nl>,
16 in bug-texinfo mail.
17
182004-10-05 Luc Teirlinck <teirllm@auburn.edu>
19
20 * text.texi: Various small changes in addition to the following.
21 (Text): Replace xref for autotype with inforef.
22 (Sentences): Explain nil value for `sentence-end'.
23 (Paragraphs): Update default values for `paragraph-start' and
24 `paragraph-separate'.
25 (Text Mode): Correct description of Text mode's effect on the
26 syntax table.
27 (Outline Visibility): `hide-other' does not hide top level headings.
28 `selective-display-ellipses' no longer has an effect on Outline mode.
29 (TeX Misc): Add missing @cindex.
30 Replace xref for RefTeX with inforef.
31 (Requesting Formatted Text): the variable
32 `enriched-fill-after-visiting' no longer exists.
33 (Editing Format Info): Update names of menu items and commands.
34 (Format Faces): Mention special effect of specifying the default face.
35 Describe inheritance of text properties.
36 Correct description of `fixed' face.
37 (Format Indentation): Correct description of effect of setting
38 margins. Mention `set-left-margin' and `set-right-margin'.
39 (Format Justification): Update names of menu items.
40 `set-justification-full' is now bound to `M-j b'.
41 Mention that `default-justification' is a per buffer variable.
42 (Format Properties): Update name of menu item.
43 (Forcing Enriched Mode): `format-decode-buffer' automatically
44 turns on Enriched mode if the buffer is in text/enriched format.
45
46
472004-10-05 Emilio C. Lopes <eclig@gmx.net>
48
49 * calendar.texi (From Other Calendar): Add calendar-goto-iso-week.
50
12004-09-28 Kim F. Storm <storm@cua.dk> 512004-09-28 Kim F. Storm <storm@cua.dk>
2 52
3 * display.texi (Display Custom) <indicate-buffer-boundaries>: 53 * display.texi (Display Custom) <indicate-buffer-boundaries>:
@@ -893,7 +943,7 @@
893 943
894 * misc.texi: Section "Saving Emacs Sessions" rewritten. 944 * misc.texi: Section "Saving Emacs Sessions" rewritten.
895 945
8962003-09-29 Jan D. <jhd@gaffa.gaia.swipnet.se> 9462003-09-29 Jan Dj,Ad(Brv. <jan.h.d@swipnet.se>
897 947
898 * xresources.texi (GTK names in Emacs): Correct typo. 948 * xresources.texi (GTK names in Emacs): Correct typo.
899 949
diff --git a/man/building.texi b/man/building.texi
index 972f88abbde..2ec96b0f6bf 100644
--- a/man/building.texi
+++ b/man/building.texi
@@ -336,11 +336,13 @@ to a particular debugger program.
336@findex gdb 336@findex gdb
337Run GDB as a subprocess of Emacs. If the variable 337Run GDB as a subprocess of Emacs. If the variable
338@code{gud-gdb-command-name} is ``gdb --annotate=3'' (the default 338@code{gud-gdb-command-name} is ``gdb --annotate=3'' (the default
339value) then GDB starts as for @kbd{M-x gdba} below. If you want to 339value) then GDB starts as for @kbd{M-x gdba} below. If you want GDB
340GDB to start as in Emacs 21.3 and earlier then set 340to start as in Emacs 21.3 and earlier then edit the string in the
341@code{gud-gdb-command-name} to ``gdb --fullname''. In this case, the 341minibuffer or set @code{gud-gdb-command-name} to ``gdb --fullname''.
342command creates a buffer for input and output to GDB, and switches to 342You need to do this if you want to run multiple debugging sessions
343it. If a GDB buffer already exists, it just switches to that buffer. 343within one Emacs session. In this case, the command creates a buffer
344for input and output to GDB, and switches to it. If a GDB buffer
345already exists, it just switches to that buffer.
344 346
345@item M-x gdba @key{RET} @var{file} @key{RET} 347@item M-x gdba @key{RET} @var{file} @key{RET}
346Run GDB as a subprocess of Emacs, providing a graphical interface 348Run GDB as a subprocess of Emacs, providing a graphical interface
diff --git a/man/calendar.texi b/man/calendar.texi
index 9e3d3cf9f41..f85527ad0ea 100644
--- a/man/calendar.texi
+++ b/man/calendar.texi
@@ -37,6 +37,7 @@ information about the calendar and diary.
37* Other Calendars:: Converting dates to other calendar systems. 37* Other Calendars:: Converting dates to other calendar systems.
38* Diary:: Displaying events from your diary. 38* Diary:: Displaying events from your diary.
39* Appointments:: Reminders when it's time to do something. 39* Appointments:: Reminders when it's time to do something.
40* iCalendar:: Converting diary events to/from iCalendar format.
40* Daylight Savings:: How to specify when daylight savings time is active. 41* Daylight Savings:: How to specify when daylight savings time is active.
41* Time Intervals:: Keeping track of time intervals. 42* Time Intervals:: Keeping track of time intervals.
42@end menu 43@end menu
@@ -754,6 +755,7 @@ other than Mayan; for the Mayan calendar, see the following section.
754 755
755@kindex g @var{char} @r{(Calendar mode)} 756@kindex g @var{char} @r{(Calendar mode)}
756@findex calendar-goto-iso-date 757@findex calendar-goto-iso-date
758@findex calendar-goto-iso-week
757@findex calendar-goto-julian-date 759@findex calendar-goto-julian-date
758@findex calendar-goto-astro-day-number 760@findex calendar-goto-astro-day-number
759@findex calendar-goto-hebrew-date 761@findex calendar-goto-hebrew-date
@@ -767,6 +769,9 @@ other than Mayan; for the Mayan calendar, see the following section.
767@item g c 769@item g c
768Move to a date specified in the ISO commercial calendar 770Move to a date specified in the ISO commercial calendar
769(@code{calendar-goto-iso-date}). 771(@code{calendar-goto-iso-date}).
772@item g w
773Move to a week specified in the ISO commercial calendar
774(@code{calendar-goto-iso-week}).
770@item g j 775@item g j
771Move to a date specified in the Julian calendar 776Move to a date specified in the Julian calendar
772(@code{calendar-goto-julian-date}). 777(@code{calendar-goto-julian-date}).
@@ -1379,6 +1384,57 @@ clock. The command @kbd{M-x appt-add} adds entries to the appointment
1379list without affecting your diary file. You delete entries from the 1384list without affecting your diary file. You delete entries from the
1380appointment list with @kbd{M-x appt-delete}. 1385appointment list with @kbd{M-x appt-delete}.
1381 1386
1387@node iCalendar
1388@section iCalendar
1389@cindex iCalendar support
1390
1391 The icalendar package aims at providing an implementation of the
1392iCalendar standard, as defined in ``RFC 2445 -- Internet Calendaring and
1393Scheduling Core Object Specification (iCalendar)''. It provides a means
1394for importing [iv]Calendar data into Emacs diary files and vice versa.
1395
1396 Importing should work correctly for ``ordinary'', i.e. non-recurring,
1397events. Recurring events may not be imported correctly, if they are
1398imported at all. Exporting of diary files into iCalendar files should
1399work correctly for most diary entries. Please note that
1400@file{icalendar.el} is work in progress, so usage may evolve in future.
1401
1402@subsection Usage
1403
1404 To activate the package, use @code{(require 'icalendar)}.
1405
1406@findex icalendar-extract-ical-from-buffer
1407 The command @code{icalendar-extract-ical-from-buffer} extracts
1408iCalendar data from the current buffer and adds it to your (default)
1409diary file. It can be used interactively, or for automatic extraction
1410of iCalendar data; for example with the VM mail reader one could use:
1411
1412@example
1413(add-hook 'vm-select-new-message-hook 'icalendar-extract-ical-from-buffer)
1414@end example
1415
1416@findex icalendar-import-file
1417 The function @code{icalendar-import-file} can be used
1418non-interactively to import an iCalendar file. @strong{Caution:} the
1419contents of the target diary file are @emph{deleted} by default! It is
1420highly recommended to use a dedicated diary file for importing. For
1421example:
1422
1423@example
1424(icalendar-import-file "/here/is/calendar.ics" "/there/goes/ical-diary")
1425@end example
1426
1427@noindent
1428The import file can be added to the diary using an @code{#include}
1429directive. @xref{Fancy Diary Display,,, elisp, The Emacs Lisp Reference
1430Manual}.
1431
1432@findex icalendar-convert-diary-to-ical
1433 Use @code{icalendar-convert-diary-to-ical} to interactively export an
1434Emacs diary file to iCalendar format. @strong{Caution:} the contents of
1435the target file are @emph{deleted} by default!
1436
1437
1382@node Daylight Savings 1438@node Daylight Savings
1383@section Daylight Savings Time 1439@section Daylight Savings Time
1384@cindex daylight savings time 1440@cindex daylight savings time
diff --git a/man/info.texi b/man/info.texi
index 2e42a0b9edc..014e9165087 100644
--- a/man/info.texi
+++ b/man/info.texi
@@ -130,15 +130,15 @@ the screen.
130@end ifnotinfo 130@end ifnotinfo
131 131
132@menu 132@menu
133* Help-Small-Screen:: Starting Info on a Small Screen 133* Help-Small-Screen:: Starting Info on a Small Screen.
134* Help:: How to use Info 134* Help:: How to use Info.
135* Help-P:: Returning to the Previous node 135* Help-P:: Returning to the Previous node.
136* Help-^L:: The Space, DEL, B and ^L commands. 136* Help-^L:: The Space, DEL, B and ^L commands.
137* Help-Inv:: Invisible text in Emacs Info. 137* Help-Inv:: Invisible text in Emacs Info.
138* Help-M:: Menus 138* Help-M:: Menus.
139* Help-Xref:: Following cross-references 139* Help-Xref:: Following cross-references.
140* Help-Int:: Some intermediate Info commands 140* Help-Int:: Some intermediate Info commands.
141* Help-Q:: Quitting Info 141* Help-Q:: Quitting Info.
142@end menu 142@end menu
143 143
144@node Help-Small-Screen 144@node Help-Small-Screen
@@ -212,8 +212,8 @@ This is line 59
212If you have managed to get here, go back to the beginning with 212If you have managed to get here, go back to the beginning with
213@kbd{DEL} (or @key{BACKSPACE}), and come back here again, then you 213@kbd{DEL} (or @key{BACKSPACE}), and come back here again, then you
214understand the about the @samp{Space} and @samp{Backspace} keys. So 214understand the about the @samp{Space} and @samp{Backspace} keys. So
215now type an @kbd{n} ---just one character; don't type the quotes and 215now type an @kbd{n}---just one character; don't type the quotes and
216don't type the Return key afterward--- to get to the normal start of 216don't type the Return key afterward---to get to the normal start of
217the course. 217the course.
218@end ifinfo 218@end ifinfo
219 219
@@ -243,8 +243,8 @@ well. In Emacs, the header line is duplicated in a special typeface,
243and the duplicate remains at the top of the window all the time even 243and the duplicate remains at the top of the window all the time even
244if you scroll through the node. 244if you scroll through the node.
245 245
246 Besides a @samp{Next}, a node can have a @samp{Previous} or an 246 Besides a @samp{Next}, a node can have a @samp{Previous} link, or an
247@samp{Up} links, or both. As you can see, this node has all of these 247@samp{Up} link, or both. As you can see, this node has all of these
248links. 248links.
249 249
250@kindex n @r{(Info mode)} 250@kindex n @r{(Info mode)}
@@ -375,7 +375,7 @@ scroll beyond the beginning or the end of the current node.
375 375
376@kindex C-l @r{(Info mode)} 376@kindex C-l @r{(Info mode)}
377 If your screen is ever garbaged, you can tell Info to display it 377 If your screen is ever garbaged, you can tell Info to display it
378again by typing @kbd{C-l} (@kbd{Control-L}, that is---hold down 378again by typing @kbd{C-l} (@kbd{Control-L}---that is, hold down
379@key{CTRL} and type @kbd{L} or @kbd{l}). 379@key{CTRL} and type @kbd{L} or @kbd{l}).
380 380
381@format 381@format
@@ -414,8 +414,8 @@ the list, make it go away by typing a @key{SPC} repeatedly.
414 414
415 (If you are using the stand-alone Info reader, type @kbd{C-x 0} to 415 (If you are using the stand-alone Info reader, type @kbd{C-x 0} to
416return here, that is---press and hold @key{CTRL}, type an @kbd{x}, 416return here, that is---press and hold @key{CTRL}, type an @kbd{x},
417then release @key{CTRL} and @kbd{x}, and press @kbd{0}---a zero, not 417then release @key{CTRL} and @kbd{x}, and press @kbd{0}; that's a zero,
418the letter ``o''.) 418not the letter ``o''.)
419 419
420 From now on, you will encounter large nodes without warning, and 420 From now on, you will encounter large nodes without warning, and
421will be expected to know how to use @key{SPC} and @key{BACKSPACE} to 421will be expected to know how to use @key{SPC} and @key{BACKSPACE} to
@@ -971,7 +971,7 @@ the node @samp{Top} in the Info file @file{dir}. Likewise,
971all of the current file by typing @kbd{g*@key{RET}} or all of any 971all of the current file by typing @kbd{g*@key{RET}} or all of any
972other file with @kbd{g(@var{filename})@key{RET}}. 972other file with @kbd{g(@var{filename})@key{RET}}.
973 973
974@subheading @kbd{1} -- @kbd{9} choose a menu subtopic by its number 974@subheading @kbd{1}--@kbd{9} choose a menu subtopic by its number
975 975
976@kindex 1 @r{through} 9 @r{(Info mode)} 976@kindex 1 @r{through} 9 @r{(Info mode)}
977@findex Info-nth-menu-item 977@findex Info-nth-menu-item
@@ -1061,7 +1061,7 @@ you typed @emph{as a substring}. For each match, Info shows in the
1061echo area the full index entry it found. Often, the text of the full 1061echo area the full index entry it found. Often, the text of the full
1062index entry already gives you enough information to decide whether it 1062index entry already gives you enough information to decide whether it
1063is relevant to what you are looking for, so we recommend that you read 1063is relevant to what you are looking for, so we recommend that you read
1064what Emacs shows in the echo area before looking at the node it 1064what Info shows in the echo area before looking at the node it
1065displays. 1065displays.
1066 1066
1067 Since @kbd{i} looks for a substring, you can search for subjects even 1067 Since @kbd{i} looks for a substring, you can search for subjects even
@@ -1205,7 +1205,7 @@ reads from the terminal.
1205 A menu begins with a line starting with @w{@samp{* Menu:}}. The 1205 A menu begins with a line starting with @w{@samp{* Menu:}}. The
1206rest of the line is a comment. After the starting line, every line 1206rest of the line is a comment. After the starting line, every line
1207that begins with a @samp{* } lists a single topic. The name of the 1207that begins with a @samp{* } lists a single topic. The name of the
1208topic--what the user must type at the @kbd{m}'s command prompt to 1208topic---what the user must type at the @kbd{m}'s command prompt to
1209select this topic---comes right after the star and space, and is 1209select this topic---comes right after the star and space, and is
1210followed by a colon, spaces and tabs, and the name of the node which 1210followed by a colon, spaces and tabs, and the name of the node which
1211discusses that topic. The node name, like node names following 1211discusses that topic. The node name, like node names following
diff --git a/man/text.texi b/man/text.texi
index dbf990a2b57..01405ae525b 100644
--- a/man/text.texi
+++ b/man/text.texi
@@ -1,5 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001, 2002 2@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001, 2002, 2004
3@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Text, Programs, Indentation, Top 5@node Text, Programs, Indentation, Top
@@ -55,7 +55,7 @@ Then the formatting appears on the screen in Emacs while you edit.
55@cindex autotyping 55@cindex autotyping
56@cindex automatic typing 56@cindex automatic typing
57 The ``automatic typing'' features may be useful when writing text. 57 The ``automatic typing'' features may be useful when writing text.
58@xref{Top,, Autotyping, autotype, Features for Automatic Typing}. 58@inforef{Top,, autotype}.
59 59
60@menu 60@menu
61* Words:: Moving over and killing words. 61* Words:: Moving over and killing words.
@@ -215,10 +215,12 @@ followed by the end of a line or two spaces, with any number of
215A sentence also begins or ends wherever a paragraph begins or ends. 215A sentence also begins or ends wherever a paragraph begins or ends.
216 216
217@vindex sentence-end 217@vindex sentence-end
218 The variable @code{sentence-end} controls recognition of the end of a 218 The variable @code{sentence-end} controls recognition of the end of
219sentence. It is a regexp that matches the last few characters of a 219a sentence. If non-@code{nil}, it is a regexp that matches the last
220sentence, together with the whitespace following the sentence. Its 220few characters of a sentence, together with the whitespace following
221normal value is 221the sentence. If the value is @code{nil}, the default, then Emacs
222computes the regexp according to various criteria. The result is
223normally similar to the following regexp:
222 224
223@example 225@example
224"[.?!][]\"')]*\\($\\| $\\|\t\\| \\)[ \t\n]*" 226"[.?!][]\"')]*\\($\\| $\\|\t\\| \\)[ \t\n]*"
@@ -298,9 +300,10 @@ that either starts or separates paragraphs. The value of
298that separate paragraphs without being part of any paragraph (for 300that separate paragraphs without being part of any paragraph (for
299example, blank lines). Lines that start a new paragraph and are 301example, blank lines). Lines that start a new paragraph and are
300contained in it must match only @code{paragraph-start}, not 302contained in it must match only @code{paragraph-start}, not
301@code{paragraph-separate}. For example, in Fundamental mode, 303@code{paragraph-separate}. Each regular expression must match at the
302@code{paragraph-start} is @w{@code{"[ \t\n\f]"}}, and 304left margin. For example, in Fundamental mode, @code{paragraph-start}
303@code{paragraph-separate} is @w{@code{"\f\\|[ \t]*$"}}. 305is @w{@code{"\f\\|[ \t]*$"}}, and @code{paragraph-separate} is
306@w{@code{"[ \t\f]*$"}}.
304 307
305 Normally it is desirable for page boundaries to separate paragraphs. 308 Normally it is desirable for page boundaries to separate paragraphs.
306The default values of these variables recognize the usual separator for 309The default values of these variables recognize the usual separator for
@@ -312,9 +315,9 @@ pages.
312@cindex pages 315@cindex pages
313@cindex formfeed 316@cindex formfeed
314 Files are often thought of as divided into @dfn{pages} by the 317 Files are often thought of as divided into @dfn{pages} by the
315@dfn{formfeed} character (@acronym{ASCII} control-L, octal code 014). When you 318@dfn{formfeed} character (@acronym{ASCII} control-L, octal code 014).
316print hardcopy for a file, this character forces a page break; thus, 319When you print hardcopy for a file, this character forces a page break;
317each page of the file goes on a separate page on paper. Most Emacs 320thus, each page of the file goes on a separate page on paper. Most Emacs
318commands treat the page-separator character just like any other 321commands treat the page-separator character just like any other
319character: you can insert it with @kbd{C-q C-l}, and delete it with 322character: you can insert it with @kbd{C-q C-l}, and delete it with
320@key{DEL}. Thus, you are free to paginate your file or not. However, 323@key{DEL}. Thus, you are free to paginate your file or not. However,
@@ -575,7 +578,7 @@ period. Set the variable @code{sentence-end-without-period} to
575conditions for where line-breaking is allowed. Its value is either 578conditions for where line-breaking is allowed. Its value is either
576@code{nil} or a Lisp function; the function is called with no 579@code{nil} or a Lisp function; the function is called with no
577arguments, and if it returns a non-@code{nil} value, then point is not 580arguments, and if it returns a non-@code{nil} value, then point is not
578a good place to break the line. The standard functions you can use 581a good place to break the line. Two standard functions you can use are
579@code{fill-single-word-nobreak-p} (don't break after the first word of 582@code{fill-single-word-nobreak-p} (don't break after the first word of
580a sentence or before the last) and @code{fill-french-nobreak-p} (don't 583a sentence or before the last) and @code{fill-french-nobreak-p} (don't
581break after @samp{(} or before @samp{)}, @samp{:} or @samp{?}). 584break after @samp{(} or before @samp{)}, @samp{:} or @samp{?}).
@@ -606,11 +609,12 @@ a new paragraph.
606 609
607@kindex C-x . 610@kindex C-x .
608@findex set-fill-prefix 611@findex set-fill-prefix
609 To specify a fill prefix, move to a line that starts with the desired 612 To specify a fill prefix for the current buffer, move to a line that
610prefix, put point at the end of the prefix, and give the command 613starts with the desired prefix, put point at the end of the prefix,
611@w{@kbd{C-x .}}@: (@code{set-fill-prefix}). That's a period after the 614and give the command @w{@kbd{C-x .}}@: (@code{set-fill-prefix}).
612@kbd{C-x}. To turn off the fill prefix, specify an empty prefix: type 615That's a period after the @kbd{C-x}. To turn off the fill prefix,
613@w{@kbd{C-x .}}@: with point at the beginning of a line.@refill 616specify an empty prefix: type @w{@kbd{C-x .}}@: with point at the
617beginning of a line.@refill
614 618
615 When a fill prefix is in effect, the fill commands remove the fill 619 When a fill prefix is in effect, the fill commands remove the fill
616prefix from each line before filling and insert it on each line after 620prefix from each line before filling and insert it on each line after
@@ -824,14 +828,14 @@ filling determines what indentation to use when filling a paragraph.
824@kindex TAB @r{(Text mode)} 828@kindex TAB @r{(Text mode)}
825 Text mode defines @key{TAB} to run @code{indent-relative} 829 Text mode defines @key{TAB} to run @code{indent-relative}
826(@pxref{Indentation}), so that you can conveniently indent a line like 830(@pxref{Indentation}), so that you can conveniently indent a line like
827the previous line. When the previous line is not indented, 831the previous line.
828@code{indent-relative} runs @code{tab-to-tab-stop}, which uses Emacs tab
829stops that you can set (@pxref{Tab Stops}).
830 832
831 Text mode turns off the features concerned with comments except when 833 Text mode turns off the features concerned with comments except when
832you explicitly invoke them. It changes the syntax table so that periods 834you explicitly invoke them. It changes the syntax table so that
833are not considered part of a word, while apostrophes, backspaces and 835single-quotes are considered part of words. However, if a word starts
834underlines are considered part of words. 836with single-quotes, then these are treated as a prefix for purposes
837such as capitalization. That is, @kbd{M-c} will convert
838@samp{'hello'} into @samp{'Hello'}, as expected.
835 839
836@cindex Paragraph-Indent Text mode 840@cindex Paragraph-Indent Text mode
837@cindex mode, Paragraph-Indent Text 841@cindex mode, Paragraph-Indent Text
@@ -896,8 +900,8 @@ invisible lines follow).
896 900
897 Editing commands that operate on lines, such as @kbd{C-n} and 901 Editing commands that operate on lines, such as @kbd{C-n} and
898@kbd{C-p}, treat the text of the invisible line as part of the previous 902@kbd{C-p}, treat the text of the invisible line as part of the previous
899visible line. Killing an entire visible line, including its terminating 903visible line. Killing the ellipsis at the end of a visible line
900newline, really kills all the following invisible lines along with it. 904really kills all the following invisible lines.
901 905
902 Outline minor mode provides the same commands as the major mode, 906 Outline minor mode provides the same commands as the major mode,
903Outline mode, but you can use it in conjunction with other major modes. 907Outline mode, but you can use it in conjunction with other major modes.
@@ -1137,12 +1141,9 @@ except the top @var{n} levels of heading lines.
1137@findex hide-other 1141@findex hide-other
1138@kindex C-c C-o @r{(Outline mode)} 1142@kindex C-c C-o @r{(Outline mode)}
1139 The command @kbd{C-c C-o} (@code{hide-other}) hides everything except 1143 The command @kbd{C-c C-o} (@code{hide-other}) hides everything except
1140the heading or body text that point is in, plus its parents (the headers 1144the heading and body text that point is in, plus its parents (the headers
1141leading up from there to top level in the outline). 1145leading up from there to top level in the outline) and the top level
1142 1146headings.
1143 You can turn off the use of ellipses at the ends of visible lines by
1144setting @code{selective-display-ellipses} to @code{nil}. Then there is
1145no visible indication of the presence of invisible lines.
1146 1147
1147@findex reveal-mode 1148@findex reveal-mode
1148 When incremental search finds text that is hidden by Outline mode, 1149 When incremental search finds text that is hidden by Outline mode,
@@ -1180,7 +1181,7 @@ buffers.
1180nested portion of the outline, while hiding its relatives at higher 1181nested portion of the outline, while hiding its relatives at higher
1181levels. 1182levels.
1182 1183
1183 Consider an Outline mode buffer all the text and subheadings under 1184 Consider an Outline mode buffer with all the text and subheadings under
1184level-1 headings hidden. To look at what is hidden under one of these 1185level-1 headings hidden. To look at what is hidden under one of these
1185headings, you could use @kbd{C-c C-e} (@kbd{M-x show-entry}) to expose 1186headings, you could use @kbd{C-c C-e} (@kbd{M-x show-entry}) to expose
1186the body, or @kbd{C-c C-i} to expose the child (level-2) headings. 1187the body, or @kbd{C-c C-i} to expose the child (level-2) headings.
@@ -1215,8 +1216,8 @@ particular chapter or section of your document.
1215 To unzoom (exit) a fold, use @kbd{C-c C-x} (@kbd{M-x foldout-exit-fold}). 1216 To unzoom (exit) a fold, use @kbd{C-c C-x} (@kbd{M-x foldout-exit-fold}).
1216This hides all the text and subheadings under the top-level heading and 1217This hides all the text and subheadings under the top-level heading and
1217returns you to the previous view of the buffer. Specifying a numeric 1218returns you to the previous view of the buffer. Specifying a numeric
1218argument exits that many levels of folds. Specifying a zero argument exits all 1219argument exits that many levels of folds. Specifying a zero argument
1219folds. 1220exits all folds.
1220 1221
1221 To cancel the narrowing of a fold without hiding the text and 1222 To cancel the narrowing of a fold without hiding the text and
1222subheadings, specify a negative argument. For example, @kbd{M--2 C-c 1223subheadings, specify a negative argument. For example, @kbd{M--2 C-c
@@ -1633,7 +1634,7 @@ current buffer's file. Generally, you need to do @kbd{C-c C-f}
1633@findex iso-iso2gtex 1634@findex iso-iso2gtex
1634@findex iso-gtex2iso 1635@findex iso-gtex2iso
1635@cindex Latin-1 @TeX{} encoding 1636@cindex Latin-1 @TeX{} encoding
1636@TeX{} encoding 1637@cindex @TeX{} encoding
1637 The commands @kbd{M-x iso-iso2tex}, @kbd{M-x iso-tex2iso}, @kbd{M-x 1638 The commands @kbd{M-x iso-iso2tex}, @kbd{M-x iso-tex2iso}, @kbd{M-x
1638iso-iso2gtex} and @kbd{M-x iso-gtex2iso} can be used to convert 1639iso-iso2gtex} and @kbd{M-x iso-gtex2iso} can be used to convert
1639between Latin-1 encoded files and @TeX{}-encoded equivalents. 1640between Latin-1 encoded files and @TeX{}-encoded equivalents.
@@ -1659,7 +1660,7 @@ required. This is set up for Czech---customize the group
1659@cindex references, La@TeX{} 1660@cindex references, La@TeX{}
1660@cindex La@TeX{} references 1661@cindex La@TeX{} references
1661 For managing all kinds of references for La@TeX{}, you can use 1662 For managing all kinds of references for La@TeX{}, you can use
1662Ref@TeX{}. @xref{Top, , RefTeX, reftex}. 1663Ref@TeX{}. @inforef{Top,, reftex}.
1663 1664
1664@node HTML Mode 1665@node HTML Mode
1665@section SGML, XML, and HTML Modes 1666@section SGML, XML, and HTML Modes
@@ -1880,16 +1881,6 @@ into the file. When you visit the file again, Emacs will automatically
1880recognize the format, reconvert the text, and turn on Enriched mode 1881recognize the format, reconvert the text, and turn on Enriched mode
1881again. 1882again.
1882 1883
1883@vindex enriched-fill-after-visiting
1884 Normally, after visiting a file in text/enriched format, Emacs refills
1885each paragraph to fit the specified right margin. You can turn off this
1886refilling, to save time, by setting the variable
1887@code{enriched-fill-after-visiting} to @code{nil} or to @code{ask}.
1888
1889 However, when visiting a file that was saved from Enriched mode, there
1890is no need for refilling, because Emacs saves the right margin settings
1891along with the text.
1892
1893@vindex enriched-translations 1884@vindex enriched-translations
1894 You can add annotations for saving additional text properties, which 1885 You can add annotations for saving additional text properties, which
1895Emacs normally does not save, by adding to @code{enriched-translations}. 1886Emacs normally does not save, by adding to @code{enriched-translations}.
@@ -1951,22 +1942,22 @@ commands directly:
1951@table @code 1942@table @code
1952@findex facemenu-remove-face-props 1943@findex facemenu-remove-face-props
1953@item Remove Face Properties 1944@item Remove Face Properties
1954Delete from the region all the text properties that the Text Properties 1945Delete from the region all face and color text properties
1955menu works with (@code{facemenu-remove-face-props}). 1946(@code{facemenu-remove-face-props}).
1956 1947
1957@findex facemenu-remove-all 1948@findex facemenu-remove-all
1958@item Remove All 1949@item Remove Text Properties
1959Delete @emph{all} text properties from the region 1950Delete @emph{all} text properties from the region
1960(@code{facemenu-remove-all}). 1951(@code{facemenu-remove-all}).
1961 1952
1962@findex describe-text-at 1953@findex describe-text-properties
1963@cindex text properties of characters 1954@cindex text properties of characters
1964@cindex overlays at character position 1955@cindex overlays at character position
1965@cindex widgets at buffer position 1956@cindex widgets at buffer position
1966@cindex buttons at buffer position 1957@cindex buttons at buffer position
1967@item Describe Text 1958@item Describe Properties
1968List all the text properties, widgets, buttons, and overlays of the 1959List all the text properties, widgets, buttons, and overlays of the
1969character following point (@code{describe-text-at}). 1960character following point (@code{describe-text-properties}).
1970 1961
1971@item Display Faces 1962@item Display Faces
1972Display a list of all the defined faces (@code{list-faces-display}). 1963Display a list of all the defined faces (@code{list-faces-display}).
@@ -2018,8 +2009,20 @@ Set the region, or the next inserted character, to the face @var{face}
2018 2009
2019 If you use these commands with a prefix argument---or, in Transient Mark 2010 If you use these commands with a prefix argument---or, in Transient Mark
2020mode, if the region is not active---then these commands specify a face 2011mode, if the region is not active---then these commands specify a face
2021to use for your next self-inserting input. @xref{Transient Mark}. This 2012to use for any immediately following self-inserting input.
2022applies to both the keyboard commands and the menu commands. 2013@xref{Transient Mark}. This applies to both the keyboard commands and
2014the menu commands.
2015
2016 Specifying the @code{default} face also resets foreground and
2017background color to their defaults.(@pxref{Format Colors}).
2018
2019 Any self-inserting character you type inherits, by default, the face
2020properties (as well as most other text properties) of the preceding
2021character. Specifying any face property, including foreground or
2022background color, for your next self-inserting character will prevent
2023it from inheriting any face properties from the preceding character,
2024although it will still inherit other text properties. Characters
2025inserted by yanking do not inherit text properties.
2023 2026
2024 Enriched mode defines two additional faces: @code{excerpt} and 2027 Enriched mode defines two additional faces: @code{excerpt} and
2025@code{fixed}. These correspond to codes used in the text/enriched file 2028@code{fixed}. These correspond to codes used in the text/enriched file
@@ -2029,20 +2032,17 @@ format.
2029same as @code{italic} unless you customize it (@pxref{Face Customization}). 2032same as @code{italic} unless you customize it (@pxref{Face Customization}).
2030 2033
2031 The @code{fixed} face means, ``Use a fixed-width font for this part 2034 The @code{fixed} face means, ``Use a fixed-width font for this part
2032of the text.'' This makes a visible difference only if you have 2035of the text.'' Applying the @code{fixed} face to a part of the text
2033specified a variable-width font in the default face; however, even if 2036will cause that part of the text to appear in a fixed-width font, even
2034the default font is fixed-width, applying the @code{fixed} face to a 2037if the default font is variable-width. This applies to Emacs and to
2035part of the text will cause that part of the text to appear in a 2038other systems that display text/enriched format. So if you
2036fixed-width font, if the file is ever displayed with a variable-width 2039specifically want a certain part of the text to use a fixed-width
2037default font. This applies to Emacs and to other systems that display 2040font, you should specify the @code{fixed} face for that part.
2038text/enriched format. So if you specifically want a certain part of 2041
2039the text to use a fixed-width font, you should specify the 2042 By default, the @code{fixed} face looks the same as @code{bold}.
2040@code{fixed} face for that part. 2043This is an attempt to distinguish it from @code{default}. You may
2041 2044wish to customize @code{fixed} to some other fixed-width medium font.
2042 The @code{fixed} face is normally set up to use a different font 2045@xref{Face Customization}.
2043from the default, even if the default face is also fixed-width.
2044Different systems have different fonts installed, so you may need to
2045customize this. @xref{Face Customization}.
2046 2046
2047 If your terminal cannot display different faces, you will not be 2047 If your terminal cannot display different faces, you will not be
2048able to see them, but you can still edit documents containing faces, 2048able to see them, but you can still edit documents containing faces,
@@ -2058,20 +2058,20 @@ text. There is a menu for specifying the foreground color and a menu
2058for specifying the background color. Each color menu lists all the 2058for specifying the background color. Each color menu lists all the
2059colors that you have used in Enriched mode in the current Emacs session. 2059colors that you have used in Enriched mode in the current Emacs session.
2060 2060
2061 If you specify a color with a prefix argument---or, in Transient Mark 2061 If you specify a color with a prefix argument---or, in Transient
2062mode, if the region is not active---then it applies to your next 2062Mark mode, if the region is not active---then it applies to any
2063self-inserting input. @xref{Transient Mark}. Otherwise, the command 2063immediately following self-inserting input. @xref{Transient Mark}.
2064applies to the region. 2064Otherwise, the command applies to the region.
2065 2065
2066 Each color menu contains one additional item: @samp{Other}. You can use 2066 Each color menu contains one additional item: @samp{Other}. You can use
2067this item to specify a color that is not listed in the menu; it reads 2067this item to specify a color that is not listed in the menu; it reads
2068the color name with the minibuffer. To display list of available colors 2068the color name with the minibuffer. To display a list of available colors
2069and their names, use the @samp{Display Colors} menu item in the Text 2069and their names, use the @samp{Display Colors} menu item in the Text
2070Properties menu (@pxref{Editing Format Info}). 2070Properties menu (@pxref{Editing Format Info}).
2071 2071
2072 Any color that you specify in this way, or that is mentioned in a 2072 Any color that you specify in this way, or that is mentioned in a
2073formatted text file that you read in, is added to both color menus for 2073formatted text file that you read in, is added to the corresponding
2074the duration of the Emacs session. 2074color menu for the duration of the Emacs session.
2075 2075
2076@findex facemenu-set-foreground 2076@findex facemenu-set-foreground
2077@findex facemenu-set-background 2077@findex facemenu-set-background
@@ -2113,33 +2113,42 @@ Remove 4 columns of indentation from the right margin.
2113 You can use these commands repeatedly to increase or decrease the 2113 You can use these commands repeatedly to increase or decrease the
2114indentation. 2114indentation.
2115 2115
2116 The most common way to use these commands is to change the indentation 2116 The most common way to use them is to change the indentation of an
2117of an entire paragraph. However, that is not the only use. You can 2117entire paragraph. For other uses, the effects of refilling can be
2118change the margins at any point; the new values take effect at the end 2118hard to predict, except in some special cases like the one described
2119of the line (for right margins) or the beginning of the next line (for 2119next.
2120left margins).
2121 2120
2122 This makes it possible to format paragraphs with @dfn{hanging indents}, 2121 The most common other use is to format paragraphs with @dfn{hanging
2123which means that the first line is indented less than subsequent lines. 2122indents}, which means that the first line is indented less than
2124To set up a hanging indent, increase the indentation of the region 2123subsequent lines. To set up a hanging indent, increase the
2125starting after the first word of the paragraph and running until the end 2124indentation of the region starting after the first word of the
2126of the paragraph. 2125paragraph and running until the end of the paragraph.
2127 2126
2128 Indenting the first line of a paragraph is easier. Set the margin for 2127 Indenting the first line of a paragraph is easier. Set the margin for
2129the whole paragraph where you want it to be for the body of the 2128the whole paragraph where you want it to be for the body of the
2130paragraph, then indent the first line by inserting extra spaces or tabs. 2129paragraph, then indent the first line by inserting extra spaces or tabs.
2131 2130
2132 Sometimes, as a result of editing, the filling of a paragraph becomes
2133messed up---parts of the paragraph may extend past the left or right
2134margins. When this happens, use @kbd{M-q} (@code{fill-paragraph}) to
2135refill the paragraph.
2136
2137@vindex standard-indent 2131@vindex standard-indent
2138 The variable @code{standard-indent} specifies how many columns these 2132 The variable @code{standard-indent} specifies how many columns these
2139commands should add to or subtract from the indentation. The default 2133commands should add to or subtract from the indentation. The default
2140value is 4. The overall default right margin for Enriched mode is 2134value is 4. The overall default right margin for Enriched mode is
2141controlled by the variable @code{fill-column}, as usual. 2135controlled by the variable @code{fill-column}, as usual.
2142 2136
2137@kindex C-c [ @r{(Enriched mode)}
2138@kindex C-c ] @r{(Enriched mode)}
2139@findex set-left-margin
2140@findex set-right-margin
2141 There are also two commands for setting the left or right margin of
2142the region absolutely: @code{set-left-margin} and
2143@code{set-right-margin}. Enriched mode binds these commands to
2144@kbd{C-c [} and @kbd{C-c ]}, respectively. You can specify the
2145margin width either with a numeric argument or in the minibuffer.
2146
2147 Sometimes, as a result of editing, the filling of a paragraph becomes
2148messed up---parts of the paragraph may extend past the left or right
2149margins. When this happens, use @kbd{M-q} (@code{fill-paragraph}) to
2150refill the paragraph.
2151
2143 The fill prefix, if any, works in addition to the specified paragraph 2152 The fill prefix, if any, works in addition to the specified paragraph
2144indentation: @kbd{C-x .} does not include the specified indentation's 2153indentation: @kbd{C-x .} does not include the specified indentation's
2145whitespace in the new value for the fill prefix, and the fill commands 2154whitespace in the new value for the fill prefix, and the fill commands
@@ -2157,11 +2166,11 @@ affects the Emacs fill commands.
2157the style. The submenu contains five items: 2166the style. The submenu contains five items:
2158 2167
2159@table @code 2168@table @code
2160@item Flush Left 2169@item Left
2161This is the most common style of justification (at least for English). 2170This is the most common style of justification (at least for English).
2162Lines are aligned at the left margin but left uneven at the right. 2171Lines are aligned at the left margin but left uneven at the right.
2163 2172
2164@item Flush Right 2173@item Right
2165This aligns each line with the right margin. Spaces and tabs are added 2174This aligns each line with the right margin. Spaces and tabs are added
2166on the left, if necessary, to make lines line up on the right. 2175on the left, if necessary, to make lines line up on the right.
2167 2176
@@ -2175,7 +2184,7 @@ the width of spaces in a line to achieve elegant justification.
2175@item Center 2184@item Center
2176This centers every line between the current margins. 2185This centers every line between the current margins.
2177 2186
2178@item None 2187@item Unfilled
2179This turns off filling entirely. Each line will remain as you wrote it; 2188This turns off filling entirely. Each line will remain as you wrote it;
2180the fill and auto-fill functions will have no effect on text which has 2189the fill and auto-fill functions will have no effect on text which has
2181this setting. You can, however, still indent the left margin. In 2190this setting. You can, however, still indent the left margin. In
@@ -2195,9 +2204,9 @@ Make the region left-filled (@code{set-justification-left}).
2195@findex set-justification-right 2204@findex set-justification-right
2196@item M-j r 2205@item M-j r
2197Make the region right-filled (@code{set-justification-right}). 2206Make the region right-filled (@code{set-justification-right}).
2198@kindex M-j f @r{(Enriched mode)} 2207@kindex M-j b @r{(Enriched mode)}
2199@findex set-justification-full 2208@findex set-justification-full
2200@item M-j f 2209@item M-j b
2201Make the region fully justified (@code{set-justification-full}). 2210Make the region fully justified (@code{set-justification-full}).
2202@kindex M-j c @r{(Enriched mode)} 2211@kindex M-j c @r{(Enriched mode)}
2203@kindex M-S @r{(Enriched mode)} 2212@kindex M-S @r{(Enriched mode)}
@@ -2220,11 +2229,15 @@ region.
2220 The default justification style is specified by the variable 2229 The default justification style is specified by the variable
2221@code{default-justification}. Its value should be one of the symbols 2230@code{default-justification}. Its value should be one of the symbols
2222@code{left}, @code{right}, @code{full}, @code{center}, or @code{none}. 2231@code{left}, @code{right}, @code{full}, @code{center}, or @code{none}.
2232This is a per-buffer variable. Setting the variable directly affects
2233only the current buffer. However, customizing it in a Custom buffer
2234sets (as always) the default value for buffers that do not override it.
2235@xref{Locals}, and @ref{Easy Customization}.
2223 2236
2224@node Format Properties 2237@node Format Properties
2225@subsection Setting Other Text Properties 2238@subsection Setting Other Text Properties
2226 2239
2227 The Other Properties menu lets you add or remove three other useful text 2240 The Special Properties menu lets you add or remove three other useful text
2228properties: @code{read-only}, @code{invisible} and @code{intangible}. 2241properties: @code{read-only}, @code{invisible} and @code{intangible}.
2229The @code{intangible} property disallows moving point within the text, 2242The @code{intangible} property disallows moving point within the text,
2230the @code{invisible} text property hides text from display, and the 2243the @code{invisible} text property hides text from display, and the
@@ -2253,10 +2266,10 @@ When you visit a file that was created with some other editor, Emacs may
2253not recognize the file as being in the text/enriched format. In this 2266not recognize the file as being in the text/enriched format. In this
2254case, when you visit the file you will see the formatting commands 2267case, when you visit the file you will see the formatting commands
2255rather than the formatted text. Type @kbd{M-x format-decode-buffer} to 2268rather than the formatted text. Type @kbd{M-x format-decode-buffer} to
2256translate it. 2269translate it. This also automatically turns on Enriched mode.
2257 2270
2258@item 2271@item
2259When you @emph{insert} a file into a buffer, rather than visiting it. 2272When you @emph{insert} a file into a buffer, rather than visiting it,
2260Emacs does the necessary conversions on the text which you insert, but 2273Emacs does the necessary conversions on the text which you insert, but
2261it does not enable Enriched mode. If you wish to do that, type @kbd{M-x 2274it does not enable Enriched mode. If you wish to do that, type @kbd{M-x
2262enriched-mode}. 2275enriched-mode}.
@@ -2268,7 +2281,7 @@ to translate from; however, normally you can type just @key{RET}, which
2268tells Emacs to guess the format. 2281tells Emacs to guess the format.
2269 2282
2270@findex format-find-file 2283@findex format-find-file
2271 If you wish to look at text/enriched file in its raw form, as a 2284 If you wish to look at a text/enriched file in its raw form, as a
2272sequence of characters rather than as formatted text, use the @kbd{M-x 2285sequence of characters rather than as formatted text, use the @kbd{M-x
2273find-file-literally} command. This visits a file, like 2286find-file-literally} command. This visits a file, like
2274@code{find-file}, but does not do format conversion. It also inhibits 2287@code{find-file}, but does not do format conversion. It also inhibits
diff --git a/msdos/ChangeLog b/msdos/ChangeLog
index 1722153dc51..e906a8f4954 100644
--- a/msdos/ChangeLog
+++ b/msdos/ChangeLog
@@ -1,3 +1,8 @@
12004-10-06 Eli Zaretskii <eliz@gnu.org>
2
3 * sed1v2.inp (LC_ALL=C): Fix src/Makefile breakage caused by
4 recent (2004-09-24) changes in src/Makefile.in.
5
12004-08-14 Eli Zaretskii <eliz@gnu.org> 62004-08-14 Eli Zaretskii <eliz@gnu.org>
2 7
3 * sedleim.inp: Remove the lines which say "<TAB>@true", to avoid 8 * sedleim.inp: Remove the lines which say "<TAB>@true", to avoid
diff --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp
index dc316819a5d..8edc1616f23 100644
--- a/msdos/sed1v2.inp
+++ b/msdos/sed1v2.inp
@@ -20,9 +20,9 @@ s/^#.*//
20s/^[ \f\t][ \f\t]*$// 20s/^[ \f\t][ \f\t]*$//
21s/^ / / 21s/^ / /
22s/\.h\.in/.h-in/ 22s/\.h\.in/.h-in/
23/^ LC_ALL=C \.\/temacs/i\ 23/^ LC_ALL=C \$(RUN_TEMACS)/i\
24 stubedit temacs.exe minstack=100k 24 stubedit temacs.exe minstack=100k
25/^ LC_ALL=C.*temacs/s/LC_ALL=C/set &;/ 25/^ LC_ALL=C.*\$(RUN_TEMACS)/s/LC_ALL=C/set &;/
26/^MAKE *=/s/^/# / 26/^MAKE *=/s/^/# /
27/^SHELL *=/s/^/# / 27/^SHELL *=/s/^/# /
28/^srcdir *=/s/@[^@\n]*@/./ 28/^srcdir *=/s/@[^@\n]*@/./
diff --git a/nt/ChangeLog b/nt/ChangeLog
index 77c8305b0e5..f91c59a85c5 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -77,7 +77,7 @@
77 77
78 * multi-install-info.bat: New file. 78 * multi-install-info.bat: New file.
79 79
802003-06-27 Jan D. <jan.h.d@swipnet.se> 802003-06-27 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
81 81
82 * config.nt (my_strftime): New define. 82 * config.nt (my_strftime): New define.
83 83
diff --git a/src/.gdbinit b/src/.gdbinit
index 3af7e369923..b7716f0e904 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -60,6 +60,16 @@ Print the emacs s-expression which is $.
60Works only when an inferior emacs is executing. 60Works only when an inferior emacs is executing.
61end 61end
62 62
63# Print out s-expressions
64define pp
65 set $tmp = $arg0
66 set debug_print ($tmp)
67end
68document pp
69Print the argument as an emacs s-expression
70Works only when an inferior emacs is executing.
71end
72
63define xtype 73define xtype
64 xgettype $ 74 xgettype $
65 output $type 75 output $type
@@ -429,6 +439,16 @@ document xreload
429end 439end
430xreload 440xreload
431 441
442# Flush display (X only)
443define ff
444 set x_flush (0)
445end
446document ff
447Flush pending X window display updates to screen.
448Works only when an inferior emacs is executing.
449end
450
451
432define hook-run 452define hook-run
433 xreload 453 xreload
434end 454end
diff --git a/src/ChangeLog b/src/ChangeLog
index 73fb09883eb..99be23b4df8 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,72 @@
12004-10-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * macfns.c (mac_get_window_bounds): Add extern.
4 (x_real_positions): Use mac_get_window_bounds.
5
6 * macmenu.c (update_submenu_strings): Apply 2004-09-07 change for
7 xmenu.c (YAILOM).
8
9 * macterm.c [!MAC_OSX]: Include Windows.h.
10 (front_emacs_window): Rename from mac_front_window. All uses
11 changed. Return the frontmost non-tooltip emacs window.
12 (mac_get_window_bounds): New function.
13 (x_calc_absolute_position): Use the difference of width and height
14 between the inner and outer window.
15 (x_set_offset): Specify window position by the coordinae of the
16 outer window. Adjust the position if the title bar is completely
17 outside the screen.
18 (app_is_suspended, app_sleep_time): Remove unused variables.
19 (do_app_resume, do_app_suspend): Remove their contents because
20 window-activate/deactivate events will do the job.
21 (do_zoom_window): Remove unused variables. Make compliant to the
22 standard way of zooming. Set f->left_pos and f->top_pos.
23 (XTread_socket): Don't use argument `expected'. Don't use
24 FrontWindow to determine the clicked window. Exclude unprocessed
25 mouseUp cases in the early stage. Add parentheses to fix operator
26 precedence.
27 (XTread_socket) [TARGET_API_MAC_CARBON]: Don't specify drag area.
28
29
302004-10-05 Jan Dj,Ad(Brv. <jan.h.d@swipnet.se>
31
32 * config.in: Regenerate.
33
34 * Makefile.in (RUN_TEMACS): Check HAVE_RANDOM_HEAPSTART instead of
35 HAVE_EXECSHIELD.
36
372004-10-05 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
38
39 * xterm.c (x_find_modifier_meanings): Ignore any Super or Hyper for
40 a row if Alt or Meta has been found for that row. Also stop scanning
41 for Keysyms for that row.
42
432004-10-04 Kim F. Storm <storm@cua.dk>
44
45 * fringe.c (Ffringe_bitmaps_at_pos): Change return value from cons
46 to list. Include overlay arrow bitmap in return value.
47
48 * xterm.c (XTset_vertical_scroll_bar): Improve handling of scroll
49 bars with fractional column width. If scroll bar separates two
50 windows, move it towards the window it belongs to. Only update
51 the padding area below the scroll bar widget when necessary,
52 i.e. when scroll bar widget is created, moved, or resized.
53
54 * xdisp.c (define_frame_cursor1): Do not change frame cursor
55 while tracking/dragging mouse.
56 (x_draw_vertical_border): Do not draw line if frame has scroll bars.
57
58 * window.c (coordinates_in_window): Relax check for cursor
59 on vertial border between mode lines.
60 (Fset_window_fringes): Do not allow negative widths.
61 (Fset_window_scroll_bars): Likewise.
62
63 * .gdbinit (pp): Shorthand for p ARG + pr.
64 (ff): New command: flush frame updates (X only).
65
662004-10-03 Michael Albinus <michael.albinus@gmx.de>
67
68 * fileio.c (auto_save_1) Call Ffile_modes for remote files.
69
12004-09-30 Kenichi Handa <handa@m17n.org> 702004-09-30 Kenichi Handa <handa@m17n.org>
2 71
3 * process.c (send_process): Free composition data. 72 * process.c (send_process): Free composition data.
diff --git a/src/Makefile.in b/src/Makefile.in
index dc8964a42ca..f85811c970a 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -909,7 +909,7 @@ LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) \
909#define OBJECTS_MACHINE 909#define OBJECTS_MACHINE
910#endif 910#endif
911 911
912#ifdef HAVE_EXECSHIELD 912#ifdef HAVE_RANDOM_HEAPSTART
913#undef i386 913#undef i386
914RUN_TEMACS = @SETARCH@ i386 ./temacs 914RUN_TEMACS = @SETARCH@ i386 ./temacs
915#else 915#else
diff --git a/src/config.in b/src/config.in
index e5d112ee81c..6e6d61b4e02 100644
--- a/src/config.in
+++ b/src/config.in
@@ -136,9 +136,6 @@ Boston, MA 02111-1307, USA. */
136/* Define to 1 if you have the `euidaccess' function. */ 136/* Define to 1 if you have the `euidaccess' function. */
137#undef HAVE_EUIDACCESS 137#undef HAVE_EUIDACCESS
138 138
139/* Define to 1 if this OS has exec shield and we can handle it. */
140#undef HAVE_EXECSHIELD
141
142/* Define to 1 if you have the <fcntl.h> header file. */ 139/* Define to 1 if you have the <fcntl.h> header file. */
143#undef HAVE_FCNTL_H 140#undef HAVE_FCNTL_H
144 141
@@ -432,6 +429,9 @@ Boston, MA 02111-1307, USA. */
432/* Define to 1 if you have the `random' function. */ 429/* Define to 1 if you have the `random' function. */
433#undef HAVE_RANDOM 430#undef HAVE_RANDOM
434 431
432/* Define to 1 if this OS randomizes the start address of the heap. */
433#undef HAVE_RANDOM_HEAPSTART
434
435/* Define to 1 if you have the `recvfrom' function. */ 435/* Define to 1 if you have the `recvfrom' function. */
436#undef HAVE_RECVFROM 436#undef HAVE_RECVFROM
437 437
diff --git a/src/fileio.c b/src/fileio.c
index 0cfea99b469..ece909ea8b3 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -5720,6 +5720,9 @@ auto_save_1 ()
5720 && stat (SDATA (current_buffer->filename), &st) >= 0) 5720 && stat (SDATA (current_buffer->filename), &st) >= 0)
5721 /* But make sure we can overwrite it later! */ 5721 /* But make sure we can overwrite it later! */
5722 auto_save_mode_bits = st.st_mode | 0600; 5722 auto_save_mode_bits = st.st_mode | 0600;
5723 else if (! NILP (current_buffer->filename))
5724 /* Remote files don't cooperate with stat. */
5725 auto_save_mode_bits = XINT (Ffile_modes (current_buffer->filename)) | 0600;
5723 else 5726 else
5724 auto_save_mode_bits = 0666; 5727 auto_save_mode_bits = 0666;
5725 5728
diff --git a/src/fringe.c b/src/fringe.c
index 529004c7ed8..2da5439b039 100644
--- a/src/fringe.c
+++ b/src/fringe.c
@@ -1348,9 +1348,10 @@ DEFUN ("fringe-bitmaps-at-pos", Ffringe_bitmaps_at_pos, Sfringe_bitmaps_at_pos,
1348 0, 2, 0, 1348 0, 2, 0,
1349 doc: /* Return fringe bitmaps of row containing position POS in window WINDOW. 1349 doc: /* Return fringe bitmaps of row containing position POS in window WINDOW.
1350If WINDOW is nil, use selected window. If POS is nil, use value of point 1350If WINDOW is nil, use selected window. If POS is nil, use value of point
1351in that window. Return value is a cons (LEFT . RIGHT) where LEFT and RIGHT 1351in that window. Return value is a list (LEFT RIGHT OV), where LEFT
1352are the fringe bitmap numbers for the bitmaps in the left and right fringe, 1352is the symbol for the bitmap in the left fringe (or nil if no bitmap),
1353resp. If left or right fringe is empty, the corresponding element is nil. 1353RIGHT is similar for the right fringe, and OV is non-nil if there is an
1354overlay arrow in the left fringe.
1354Return nil if POS is not visible in WINDOW. */) 1355Return nil if POS is not visible in WINDOW. */)
1355 (pos, window) 1356 (pos, window)
1356 Lisp_Object pos, window; 1357 Lisp_Object pos, window;
@@ -1377,8 +1378,9 @@ Return nil if POS is not visible in WINDOW. */)
1377 row = MATRIX_FIRST_TEXT_ROW (w->current_matrix); 1378 row = MATRIX_FIRST_TEXT_ROW (w->current_matrix);
1378 row = row_containing_pos (w, textpos, row, NULL, 0); 1379 row = row_containing_pos (w, textpos, row, NULL, 0);
1379 if (row) 1380 if (row)
1380 return Fcons (get_fringe_bitmap_name (row->left_fringe_bitmap), 1381 return list3 (get_fringe_bitmap_name (row->left_fringe_bitmap),
1381 get_fringe_bitmap_name (row->right_fringe_bitmap)); 1382 get_fringe_bitmap_name (row->right_fringe_bitmap),
1383 (row->overlay_arrow_p ? Qt : Qnil));
1382 else 1384 else
1383 return Qnil; 1385 return Qnil;
1384} 1386}
diff --git a/src/macfns.c b/src/macfns.c
index 3b09b344a55..f7594e9c6c2 100644
--- a/src/macfns.c
+++ b/src/macfns.c
@@ -312,6 +312,9 @@ static Lisp_Object x_default_scroll_bar_color_parameter P_ ((struct frame *,
312 Lisp_Object, 312 Lisp_Object,
313 char *, char *, 313 char *, char *,
314 int)); 314 int));
315
316extern void mac_get_window_bounds P_ ((struct frame *, Rect *, Rect *));
317
315/* Store the screen positions of frame F into XPTR and YPTR. 318/* Store the screen positions of frame F into XPTR and YPTR.
316 These are the positions of the containing window manager window, 319 These are the positions of the containing window manager window,
317 not Emacs's own window. */ 320 not Emacs's own window. */
@@ -321,33 +324,15 @@ x_real_positions (f, xptr, yptr)
321 FRAME_PTR f; 324 FRAME_PTR f;
322 int *xptr, *yptr; 325 int *xptr, *yptr;
323{ 326{
324 Point pt; 327 Rect inner, outer;
325 GrafPtr oldport;
326 328
327 GetPort (&oldport); 329 mac_get_window_bounds (f, &inner, &outer);
328 SetPortWindowPort (FRAME_MAC_WINDOW (f));
329 330
330#if TARGET_API_MAC_CARBON 331 f->x_pixels_diff = inner.left - outer.left;
331 { 332 f->y_pixels_diff = inner.top - outer.top;
332 Rect r;
333 333
334 GetWindowPortBounds (FRAME_MAC_WINDOW (f), &r); 334 *xptr = outer.left;
335 SetPt (&pt, r.left, r.top); 335 *yptr = outer.top;
336 }
337#else /* not TARGET_API_MAC_CARBON */
338 SetPt (&pt,
339 FRAME_MAC_WINDOW (f)->portRect.left,
340 FRAME_MAC_WINDOW (f)->portRect.top);
341#endif /* not TARGET_API_MAC_CARBON */
342 LocalToGlobal (&pt);
343 SetPort (oldport);
344
345 /* MAC has no frame pixel diff. */
346 f->x_pixels_diff = 0;
347 f->y_pixels_diff = 0;
348
349 *xptr = pt.h;
350 *yptr = pt.v;
351} 336}
352 337
353 338
diff --git a/src/macmenu.c b/src/macmenu.c
index 740bda261d8..007fab15eab 100644
--- a/src/macmenu.c
+++ b/src/macmenu.c
@@ -1322,7 +1322,7 @@ update_submenu_strings (first_wv)
1322 1322
1323 for (wv = first_wv; wv; wv = wv->next) 1323 for (wv = first_wv; wv; wv = wv->next)
1324 { 1324 {
1325 if (wv->lname && ! NILP (wv->lname)) 1325 if (STRINGP (wv->lname))
1326 { 1326 {
1327 wv->name = SDATA (wv->lname); 1327 wv->name = SDATA (wv->lname);
1328 1328
@@ -1336,7 +1336,7 @@ update_submenu_strings (first_wv)
1336 } 1336 }
1337 } 1337 }
1338 1338
1339 if (wv->lkey && ! NILP (wv->lkey)) 1339 if (STRINGP (wv->lkey))
1340 wv->key = SDATA (wv->lkey); 1340 wv->key = SDATA (wv->lkey);
1341 1341
1342 if (wv->contents) 1342 if (wv->contents)
diff --git a/src/macterm.c b/src/macterm.c
index 4f721fff304..56c4653bf43 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -50,6 +50,7 @@ Boston, MA 02111-1307, USA. */
50#include <TextUtils.h> 50#include <TextUtils.h>
51#include <LowMem.h> 51#include <LowMem.h>
52#include <Controls.h> 52#include <Controls.h>
53#include <Windows.h>
53#if defined (__MRC__) || (__MSL__ >= 0x6000) 54#if defined (__MRC__) || (__MSL__ >= 0x6000)
54#include <ControlDefinitions.h> 55#include <ControlDefinitions.h>
55#endif 56#endif
@@ -3887,18 +3888,21 @@ remember_mouse_glyph (f1, gx, gy)
3887 3888
3888 3889
3889static WindowPtr 3890static WindowPtr
3890mac_front_window () 3891front_emacs_window ()
3891{ 3892{
3892#if TARGET_API_MAC_CARBON 3893#if TARGET_API_MAC_CARBON
3893 return GetFrontWindowOfClass (kDocumentWindowClass, true); 3894 WindowPtr wp = GetFrontWindowOfClass (kDocumentWindowClass, true);
3895
3896 while (wp && !is_emacs_window (wp))
3897 wp = GetNextWindowOfClass (wp, kDocumentWindowClass, true);
3894#else 3898#else
3895 WindowPtr front_window = FrontWindow (); 3899 WindowPtr wp = FrontWindow ();
3896 3900
3897 if (tip_window && front_window == tip_window) 3901 while (wp && (wp == tip_window || !is_emacs_window (wp)))
3898 return GetNextWindow (front_window); 3902 wp = GetNextWindow (wp);
3899 else
3900 return front_window;
3901#endif 3903#endif
3904
3905 return wp;
3902} 3906}
3903 3907
3904#define mac_window_to_frame(wp) (((mac_output *) GetWRefCon (wp))->mFP) 3908#define mac_window_to_frame(wp) (((mac_output *) GetWRefCon (wp))->mFP)
@@ -3934,7 +3938,7 @@ XTmouse_position (fp, insist, bar_window, part, x, y, time)
3934{ 3938{
3935 Point mouse_pos; 3939 Point mouse_pos;
3936 int ignore1, ignore2; 3940 int ignore1, ignore2;
3937 WindowPtr wp = mac_front_window (); 3941 WindowPtr wp = front_emacs_window ();
3938 struct frame *f; 3942 struct frame *f;
3939 Lisp_Object frame, tail; 3943 Lisp_Object frame, tail;
3940 3944
@@ -4551,7 +4555,7 @@ x_scroll_bar_report_motion (fp, bar_window, part, x, y, time)
4551 unsigned long *time; 4555 unsigned long *time;
4552{ 4556{
4553 struct scroll_bar *bar = XSCROLL_BAR (last_mouse_scroll_bar); 4557 struct scroll_bar *bar = XSCROLL_BAR (last_mouse_scroll_bar);
4554 WindowPtr wp = mac_front_window (); 4558 WindowPtr wp = front_emacs_window ();
4555 Point mouse_pos; 4559 Point mouse_pos;
4556 struct frame *f = mac_window_to_frame (wp); 4560 struct frame *f = mac_window_to_frame (wp);
4557 int win_y, top_range; 4561 int win_y, top_range;
@@ -5036,6 +5040,26 @@ xim_close_dpy (dpyinfo)
5036 */ 5040 */
5037 5041
5038 5042
5043void
5044mac_get_window_bounds (f, inner, outer)
5045 struct frame *f;
5046 Rect *inner, *outer;
5047{
5048#if TARGET_API_MAC_CARBON
5049 GetWindowBounds (FRAME_MAC_WINDOW (f), kWindowContentRgn, inner);
5050 GetWindowBounds (FRAME_MAC_WINDOW (f), kWindowStructureRgn, outer);
5051#else /* not TARGET_API_MAC_CARBON */
5052 RgnHandle region = NewRgn ();
5053
5054 GetWindowRegion (FRAME_MAC_WINDOW (f), kWindowContentRgn, region);
5055 *inner = (*region)->rgnBBox;
5056 GetWindowRegion (FRAME_MAC_WINDOW (f), kWindowStructureRgn, region);
5057 *outer = (*region)->rgnBBox;
5058 DisposeRgn (region);
5059#endif /* not TARGET_API_MAC_CARBON */
5060}
5061
5062
5039/* Calculate the absolute position in frame F 5063/* Calculate the absolute position in frame F
5040 from its current recorded position values and gravity. */ 5064 from its current recorded position values and gravity. */
5041 5065
@@ -5043,47 +5067,36 @@ void
5043x_calc_absolute_position (f) 5067x_calc_absolute_position (f)
5044 struct frame *f; 5068 struct frame *f;
5045{ 5069{
5046 Point pt; 5070 int width_diff = 0, height_diff = 0;
5047 int flags = f->size_hint_flags; 5071 int flags = f->size_hint_flags;
5072 Rect inner, outer;
5048 5073
5049 pt.h = pt.v = 0; 5074 /* We have nothing to do if the current position
5075 is already for the top-left corner. */
5076 if (! ((flags & XNegative) || (flags & YNegative)))
5077 return;
5050 5078
5051 /* Find the position of the outside upper-left corner of 5079 /* Find the offsets of the outside upper-left corner of
5052 the inner window, with respect to the outer window. */ 5080 the inner window, with respect to the outer window. */
5053 if (f->output_data.mac->parent_desc != FRAME_MAC_DISPLAY_INFO (f)->root_window) 5081 mac_get_window_bounds (f, &inner, &outer);
5054 {
5055 GrafPtr savePort;
5056 GetPort (&savePort);
5057
5058 SetPortWindowPort (FRAME_MAC_WINDOW (f));
5059 5082
5060#if TARGET_API_MAC_CARBON 5083 width_diff = (outer.right - outer.left) - (inner.right - inner.left);
5061 { 5084 height_diff = (outer.bottom - outer.top) - (inner.bottom - inner.top);
5062 Rect r;
5063
5064 GetWindowPortBounds (FRAME_MAC_WINDOW (f), &r);
5065 SetPt(&pt, r.left, r.top);
5066 }
5067#else /* not TARGET_API_MAC_CARBON */
5068 SetPt(&pt, FRAME_MAC_WINDOW (f)->portRect.left, FRAME_MAC_WINDOW (f)->portRect.top);
5069#endif /* not TARGET_API_MAC_CARBON */
5070 LocalToGlobal (&pt);
5071 SetPort (savePort);
5072 }
5073 5085
5074 /* Treat negative positions as relative to the leftmost bottommost 5086 /* Treat negative positions as relative to the leftmost bottommost
5075 position that fits on the screen. */ 5087 position that fits on the screen. */
5076 if (flags & XNegative) 5088 if (flags & XNegative)
5077 f->left_pos = (FRAME_MAC_DISPLAY_INFO (f)->width 5089 f->left_pos = (FRAME_MAC_DISPLAY_INFO (f)->width
5078 - 2 * f->border_width - pt.h 5090 - width_diff
5079 - FRAME_PIXEL_WIDTH (f) 5091 - FRAME_PIXEL_WIDTH (f)
5080 + f->left_pos); 5092 + f->left_pos);
5081 /* NTEMACS_TODO: Subtract menubar height? */ 5093
5082 if (flags & YNegative) 5094 if (flags & YNegative)
5083 f->top_pos = (FRAME_MAC_DISPLAY_INFO (f)->height 5095 f->top_pos = (FRAME_MAC_DISPLAY_INFO (f)->height
5084 - 2 * f->border_width - pt.v 5096 - height_diff
5085 - FRAME_PIXEL_HEIGHT (f) 5097 - FRAME_PIXEL_HEIGHT (f)
5086 + f->top_pos); 5098 + f->top_pos);
5099
5087 /* The left_pos and top_pos 5100 /* The left_pos and top_pos
5088 are now relative to the top and left screen edges, 5101 are now relative to the top and left screen edges,
5089 so the flags should correspond. */ 5102 so the flags should correspond. */
@@ -5102,8 +5115,6 @@ x_set_offset (f, xoff, yoff, change_gravity)
5102 register int xoff, yoff; 5115 register int xoff, yoff;
5103 int change_gravity; 5116 int change_gravity;
5104{ 5117{
5105 int modified_top, modified_left;
5106
5107 if (change_gravity > 0) 5118 if (change_gravity > 0)
5108 { 5119 {
5109 f->top_pos = yoff; 5120 f->top_pos = yoff;
@@ -5120,11 +5131,55 @@ x_set_offset (f, xoff, yoff, change_gravity)
5120 BLOCK_INPUT; 5131 BLOCK_INPUT;
5121 x_wm_set_size_hint (f, (long) 0, 0); 5132 x_wm_set_size_hint (f, (long) 0, 0);
5122 5133
5123 modified_left = f->left_pos; 5134#if TARGET_API_MAC_CARBON
5124 modified_top = f->top_pos; 5135 MoveWindowStructure (FRAME_MAC_WINDOW (f), f->left_pos, f->top_pos);
5125 5136 /* If the title bar is completely outside the screen, adjust the
5126 MoveWindow (FRAME_MAC_WINDOW (f), modified_left + 6, 5137 position. */
5127 modified_top + 42, false); 5138 ConstrainWindowToScreen (FRAME_MAC_WINDOW (f), kWindowTitleBarRgn,
5139 kWindowConstrainMoveRegardlessOfFit
5140 | kWindowConstrainAllowPartial, NULL, NULL);
5141 x_real_positions (f, &f->left_pos, &f->top_pos);
5142#else
5143 {
5144 Rect inner, outer, screen_rect, dummy;
5145 RgnHandle region = NewRgn ();
5146
5147 mac_get_window_bounds (f, &inner, &outer);
5148 f->x_pixels_diff = inner.left - outer.left;
5149 f->y_pixels_diff = inner.top - outer.top;
5150 MoveWindow (FRAME_MAC_WINDOW (f), f->left_pos + f->x_pixels_diff,
5151 f->top_pos + f->y_pixels_diff, false);
5152
5153 /* If the title bar is completely outside the screen, adjust the
5154 position. The variable `outer' holds the title bar rectangle.
5155 The variable `inner' holds slightly smaller one than `outer',
5156 so that the calculation of overlapping may not become too
5157 strict. */
5158 GetWindowRegion (FRAME_MAC_WINDOW (f), kWindowTitleBarRgn, region);
5159 outer = (*region)->rgnBBox;
5160 DisposeRgn (region);
5161 inner = outer;
5162 InsetRect (&inner, 8, 8);
5163 screen_rect = qd.screenBits.bounds;
5164 screen_rect.top += GetMBarHeight ();
5165
5166 if (!SectRect (&inner, &screen_rect, &dummy))
5167 {
5168 if (inner.right <= screen_rect.left)
5169 f->left_pos = screen_rect.left;
5170 else if (inner.left >= screen_rect.right)
5171 f->left_pos = screen_rect.right - (outer.right - outer.left);
5172
5173 if (inner.bottom <= screen_rect.top)
5174 f->top_pos = screen_rect.top;
5175 else if (inner.top >= screen_rect.bottom)
5176 f->top_pos = screen_rect.bottom - (outer.bottom - outer.top);
5177
5178 MoveWindow (FRAME_MAC_WINDOW (f), f->left_pos + f->x_pixels_diff,
5179 f->top_pos + f->y_pixels_diff, false);
5180 }
5181 }
5182#endif
5128 5183
5129 UNBLOCK_INPUT; 5184 UNBLOCK_INPUT;
5130} 5185}
@@ -6900,6 +6955,7 @@ x_find_ccl_program (fontp)
6900/* true when cannot handle any Mac OS events */ 6955/* true when cannot handle any Mac OS events */
6901static int handling_window_update = 0; 6956static int handling_window_update = 0;
6902 6957
6958#if 0
6903/* the flag appl_is_suspended is used both for determining the sleep 6959/* the flag appl_is_suspended is used both for determining the sleep
6904 time to be passed to WaitNextEvent and whether the cursor should be 6960 time to be passed to WaitNextEvent and whether the cursor should be
6905 drawn when updating the display. The cursor is turned off when 6961 drawn when updating the display. The cursor is turned off when
@@ -6909,6 +6965,7 @@ static int handling_window_update = 0;
6909 suspended. */ 6965 suspended. */
6910static Boolean app_is_suspended = false; 6966static Boolean app_is_suspended = false;
6911static long app_sleep_time = WNE_SLEEP_AT_RESUME; 6967static long app_sleep_time = WNE_SLEEP_AT_RESUME;
6968#endif
6912 6969
6913#define EXTRA_STACK_ALLOC (256 * 1024) 6970#define EXTRA_STACK_ALLOC (256 * 1024)
6914 6971
@@ -7235,11 +7292,13 @@ is_emacs_window (WindowPtr win)
7235static void 7292static void
7236do_app_resume () 7293do_app_resume ()
7237{ 7294{
7295 /* Window-activate events will do the job. */
7296#if 0
7238 WindowPtr wp; 7297 WindowPtr wp;
7239 struct frame *f; 7298 struct frame *f;
7240 7299
7241 wp = mac_front_window (); 7300 wp = front_emacs_window ();
7242 if (is_emacs_window (wp)) 7301 if (wp)
7243 { 7302 {
7244 f = mac_window_to_frame (wp); 7303 f = mac_window_to_frame (wp);
7245 7304
@@ -7252,16 +7311,19 @@ do_app_resume ()
7252 7311
7253 app_is_suspended = false; 7312 app_is_suspended = false;
7254 app_sleep_time = WNE_SLEEP_AT_RESUME; 7313 app_sleep_time = WNE_SLEEP_AT_RESUME;
7314#endif
7255} 7315}
7256 7316
7257static void 7317static void
7258do_app_suspend () 7318do_app_suspend ()
7259{ 7319{
7320 /* Window-deactivate events will do the job. */
7321#if 0
7260 WindowPtr wp; 7322 WindowPtr wp;
7261 struct frame *f; 7323 struct frame *f;
7262 7324
7263 wp = mac_front_window (); 7325 wp = front_emacs_window ();
7264 if (is_emacs_window (wp)) 7326 if (wp)
7265 { 7327 {
7266 f = mac_window_to_frame (wp); 7328 f = mac_window_to_frame (wp);
7267 7329
@@ -7274,6 +7336,7 @@ do_app_suspend ()
7274 7336
7275 app_is_suspended = true; 7337 app_is_suspended = true;
7276 app_sleep_time = WNE_SLEEP_AT_SUSPEND; 7338 app_sleep_time = WNE_SLEEP_AT_SUSPEND;
7339#endif
7277} 7340}
7278 7341
7279 7342
@@ -7282,10 +7345,10 @@ do_mouse_moved (mouse_pos, f)
7282 Point mouse_pos; 7345 Point mouse_pos;
7283 FRAME_PTR *f; 7346 FRAME_PTR *f;
7284{ 7347{
7285 WindowPtr wp = mac_front_window (); 7348 WindowPtr wp = front_emacs_window ();
7286 struct x_display_info *dpyinfo; 7349 struct x_display_info *dpyinfo;
7287 7350
7288 if (is_emacs_window (wp)) 7351 if (wp)
7289 { 7352 {
7290 *f = mac_window_to_frame (wp); 7353 *f = mac_window_to_frame (wp);
7291 dpyinfo = FRAME_MAC_DISPLAY_INFO (*f); 7354 dpyinfo = FRAME_MAC_DISPLAY_INFO (*f);
@@ -7347,7 +7410,7 @@ do_menu_choice (SInt32 menu_choice)
7347 7410
7348 default: 7411 default:
7349 { 7412 {
7350 struct frame *f = mac_window_to_frame (mac_front_window ()); 7413 struct frame *f = mac_window_to_frame (front_emacs_window ());
7351 MenuHandle menu = GetMenuHandle (menu_id); 7414 MenuHandle menu = GetMenuHandle (menu_id);
7352 if (menu) 7415 if (menu)
7353 { 7416 {
@@ -7400,41 +7463,43 @@ do_zoom_window (WindowPtr w, int zoom_in_or_out)
7400 GrafPtr save_port; 7463 GrafPtr save_port;
7401 Rect zoom_rect, port_rect; 7464 Rect zoom_rect, port_rect;
7402 Point top_left; 7465 Point top_left;
7403 int w_title_height, columns, rows, width, height, dummy, x, y; 7466 int w_title_height, columns, rows;
7404 struct frame *f = mac_window_to_frame (w); 7467 struct frame *f = mac_window_to_frame (w);
7405 7468
7406 GetPort (&save_port);
7407
7408 SetPortWindowPort (w);
7409
7410 /* Clear window to avoid flicker. */
7411#if TARGET_API_MAC_CARBON 7469#if TARGET_API_MAC_CARBON
7412 { 7470 {
7413 Rect r; 7471 Point standard_size;
7414 BitMap bm;
7415 7472
7416 GetWindowPortBounds (w, &r); 7473 standard_size.h = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, DEFAULT_NUM_COLS);
7417 EraseRect (&r); 7474 standard_size.v = FRAME_MAC_DISPLAY_INFO (f)->height;
7418 7475
7419 if (zoom_in_or_out == inZoomOut) 7476 if (IsWindowInStandardState (w, &standard_size, &zoom_rect))
7477 zoom_in_or_out = inZoomIn;
7478 else
7420 { 7479 {
7421 /* calculate height of window's title bar (hard card it for now). */ 7480 /* Adjust the standard size according to character boundaries. */
7422 w_title_height = 20 + GetMBarHeight (); 7481
7423 7482 columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, zoom_rect.right - zoom_rect.left);
7424 /* get maximum height of window into zoom_rect.bottom - 7483 rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, zoom_rect.bottom - zoom_rect.top);
7425 zoom_rect.top */ 7484 standard_size.h = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, columns);
7426 GetQDGlobalsScreenBits (&bm); 7485 standard_size.v = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, rows);
7427 zoom_rect = bm.bounds; 7486 GetWindowBounds (w, kWindowContentRgn, &port_rect);
7428 zoom_rect.top += w_title_height; 7487 if (IsWindowInStandardState (w, &standard_size, &zoom_rect)
7429 InsetRect (&zoom_rect, 8, 4); /* not too tight */ 7488 && port_rect.left == zoom_rect.left
7430 7489 && port_rect.top == zoom_rect.top)
7431 zoom_rect.right = zoom_rect.left 7490 zoom_in_or_out = inZoomIn;
7432 + FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, DEFAULT_NUM_COLS); 7491 else
7433 7492 zoom_in_or_out = inZoomOut;
7434 SetWindowStandardState (w, &zoom_rect);
7435 } 7493 }
7494
7495 ZoomWindowIdeal (w, zoom_in_or_out, &standard_size);
7436 } 7496 }
7437#else /* not TARGET_API_MAC_CARBON */ 7497#else /* not TARGET_API_MAC_CARBON */
7498 GetPort (&save_port);
7499
7500 SetPortWindowPort (w);
7501
7502 /* Clear window to avoid flicker. */
7438 EraseRect (&(w->portRect)); 7503 EraseRect (&(w->portRect));
7439 if (zoom_in_or_out == inZoomOut) 7504 if (zoom_in_or_out == inZoomOut)
7440 { 7505 {
@@ -7453,12 +7518,19 @@ do_zoom_window (WindowPtr w, int zoom_in_or_out)
7453 zoom_rect.right = zoom_rect.left 7518 zoom_rect.right = zoom_rect.left
7454 + FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, DEFAULT_NUM_COLS); 7519 + FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, DEFAULT_NUM_COLS);
7455 7520
7521 /* Adjust the standard size according to character boundaries. */
7522 rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, zoom_rect.bottom - zoom_rect.top);
7523 zoom_rect.bottom =
7524 zoom_rect.top + FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, rows);
7525
7456 (**((WStateDataHandle) ((WindowPeek) w)->dataHandle)).stdState 7526 (**((WStateDataHandle) ((WindowPeek) w)->dataHandle)).stdState
7457 = zoom_rect; 7527 = zoom_rect;
7458 } 7528 }
7459#endif /* not TARGET_API_MAC_CARBON */
7460 7529
7461 ZoomWindow (w, zoom_in_or_out, w == mac_front_window ()); 7530 ZoomWindow (w, zoom_in_or_out, w == front_emacs_window ());
7531
7532 SetPort (save_port);
7533#endif /* not TARGET_API_MAC_CARBON */
7462 7534
7463 /* retrieve window size and update application values */ 7535 /* retrieve window size and update application values */
7464#if TARGET_API_MAC_CARBON 7536#if TARGET_API_MAC_CARBON
@@ -7469,8 +7541,7 @@ do_zoom_window (WindowPtr w, int zoom_in_or_out)
7469 rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, port_rect.bottom - port_rect.top); 7541 rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, port_rect.bottom - port_rect.top);
7470 columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, port_rect.right - port_rect.left); 7542 columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, port_rect.right - port_rect.left);
7471 x_set_window_size (f, 0, columns, rows); 7543 x_set_window_size (f, 0, columns, rows);
7472 7544 x_real_positions (f, &f->left_pos, &f->top_pos);
7473 SetPort (save_port);
7474} 7545}
7475 7546
7476/* Initialize Drag And Drop to allow files to be dropped onto emacs frames */ 7547/* Initialize Drag And Drop to allow files to be dropped onto emacs frames */
@@ -8020,19 +8091,15 @@ XTread_socket (sd, expected, hold_quit)
8020 if (NILP (Fboundp (Qmac_ready_for_drag_n_drop))) 8091 if (NILP (Fboundp (Qmac_ready_for_drag_n_drop)))
8021 event_mask -= highLevelEventMask; 8092 event_mask -= highLevelEventMask;
8022 8093
8023 while (WaitNextEvent (event_mask, &er, 8094 while (WaitNextEvent (event_mask, &er, 0L, NULL))
8024 (expected ? app_sleep_time : 0L), NULL)) 8095#else /* USE_CARBON_EVENTS */
8025#else 8096 while (!ReceiveNextEvent (0, NULL, kEventDurationNoWait,
8026 while (!ReceiveNextEvent (0, NULL,
8027 (expected ? TicksToEventTime (app_sleep_time) : 0),
8028 kEventRemoveFromQueue, &eventRef)) 8097 kEventRemoveFromQueue, &eventRef))
8029#endif /* !USE_CARBON_EVENTS */ 8098#endif /* USE_CARBON_EVENTS */
8030 { 8099 {
8031 int do_help = 0; 8100 int do_help = 0;
8032 struct frame *f; 8101 struct frame *f;
8033 8102
8034 expected = 0;
8035
8036 /* It is necessary to set this (additional) argument slot of an 8103 /* It is necessary to set this (additional) argument slot of an
8037 event to nil because keyboard.c protects incompletely 8104 event to nil because keyboard.c protects incompletely
8038 processed event from being garbage collected by placing them 8105 processed event from being garbage collected by placing them
@@ -8055,13 +8122,7 @@ XTread_socket (sd, expected, hold_quit)
8055 NULL, &window_ptr); 8122 NULL, &window_ptr);
8056 f = mac_window_to_frame (window_ptr); 8123 f = mac_window_to_frame (window_ptr);
8057 if (f && !f->async_iconified) 8124 if (f && !f->async_iconified)
8058 { 8125 x_real_positions (f, &f->left_pos, &f->top_pos);
8059 int x, y;
8060
8061 x_real_positions (f, &x, &y);
8062 f->left_pos = x;
8063 f->top_pos = y;
8064 }
8065 SendEventToEventTarget (eventRef, toolbox_dispatcher); 8126 SendEventToEventTarget (eventRef, toolbox_dispatcher);
8066 } 8127 }
8067 break; 8128 break;
@@ -8070,7 +8131,7 @@ XTread_socket (sd, expected, hold_quit)
8070 { 8131 {
8071 SInt32 delta; 8132 SInt32 delta;
8072 Point point; 8133 Point point;
8073 WindowPtr window_ptr = mac_front_window (); 8134 WindowPtr window_ptr = front_emacs_window ();
8074 8135
8075 if (!IsValidWindowPtr (window_ptr)) 8136 if (!IsValidWindowPtr (window_ptr))
8076 { 8137 {
@@ -8132,33 +8193,28 @@ XTread_socket (sd, expected, hold_quit)
8132 } 8193 }
8133 else 8194 else
8134 { 8195 {
8135 window_ptr = FrontWindow (); 8196 part_code = FindWindow (er.where, &window_ptr);
8136 if (tip_window && window_ptr == tip_window) 8197 if (tip_window && window_ptr == tip_window)
8137 { 8198 {
8138 HideWindow (tip_window); 8199 HideWindow (tip_window);
8139 window_ptr = FrontWindow (); 8200 part_code = FindWindow (er.where, &window_ptr);
8140 } 8201 }
8141
8142 if (!is_emacs_window (window_ptr))
8143 break;
8144
8145 part_code = FindWindow (er.where, &window_ptr);
8146 } 8202 }
8147 8203
8204 if (er.what != mouseDown && part_code != inContent)
8205 break;
8206
8148 switch (part_code) 8207 switch (part_code)
8149 { 8208 {
8150 case inMenuBar: 8209 case inMenuBar:
8151 if (er.what == mouseDown) 8210 f = mac_window_to_frame (front_emacs_window ());
8152 { 8211 saved_menu_event_location = er.where;
8153 f = mac_window_to_frame (mac_front_window ()); 8212 inev.kind = MENU_BAR_ACTIVATE_EVENT;
8154 saved_menu_event_location = er.where; 8213 XSETFRAME (inev.frame_or_window, f);
8155 inev.kind = MENU_BAR_ACTIVATE_EVENT;
8156 XSETFRAME (inev.frame_or_window, f);
8157 }
8158 break; 8214 break;
8159 8215
8160 case inContent: 8216 case inContent:
8161 if (window_ptr != mac_front_window ()) 8217 if (window_ptr != front_emacs_window ())
8162 SelectWindow (window_ptr); 8218 SelectWindow (window_ptr);
8163 else 8219 else
8164 { 8220 {
@@ -8255,7 +8311,7 @@ XTread_socket (sd, expected, hold_quit)
8255 } 8311 }
8256 else 8312 else
8257 { 8313 {
8258 if (dpyinfo->grabbed & (1 << inev.code) == 0) 8314 if ((dpyinfo->grabbed & (1 << inev.code)) == 0)
8259 /* If a button is released though it was not 8315 /* If a button is released though it was not
8260 previously pressed, that would be because 8316 previously pressed, that would be because
8261 of multi-button emulation. */ 8317 of multi-button emulation. */
@@ -8278,27 +8334,16 @@ XTread_socket (sd, expected, hold_quit)
8278 8334
8279 case inDrag: 8335 case inDrag:
8280#if TARGET_API_MAC_CARBON 8336#if TARGET_API_MAC_CARBON
8281 if (er.what == mouseDown) 8337 DragWindow (window_ptr, er.where, NULL);
8282 {
8283 BitMap bm;
8284
8285 GetQDGlobalsScreenBits (&bm);
8286 DragWindow (window_ptr, er.where, &bm.bounds);
8287 }
8288#else /* not TARGET_API_MAC_CARBON */ 8338#else /* not TARGET_API_MAC_CARBON */
8289 DragWindow (window_ptr, er.where, &qd.screenBits.bounds); 8339 DragWindow (window_ptr, er.where, &qd.screenBits.bounds);
8290#endif /* not TARGET_API_MAC_CARBON */ 8340#endif /* not TARGET_API_MAC_CARBON */
8291 /* Update the frame parameters. */ 8341 /* Update the frame parameters. */
8292 { 8342 {
8293 struct frame *f = mac_window_to_frame (window_ptr); 8343 struct frame *f = mac_window_to_frame (window_ptr);
8344
8294 if (f && !f->async_iconified) 8345 if (f && !f->async_iconified)
8295 { 8346 x_real_positions (f, &f->left_pos, &f->top_pos);
8296 int x, y;
8297
8298 x_real_positions (f, &x, &y);
8299 f->left_pos = x;
8300 f->top_pos = y;
8301 }
8302 } 8347 }
8303 break; 8348 break;
8304 8349
@@ -8313,11 +8358,8 @@ XTread_socket (sd, expected, hold_quit)
8313 8358
8314 /* window resize handling added --ben */ 8359 /* window resize handling added --ben */
8315 case inGrow: 8360 case inGrow:
8316 if (er.what == mouseDown) 8361 do_grow_window (window_ptr, &er);
8317 { 8362 break;
8318 do_grow_window(window_ptr, &er);
8319 break;
8320 }
8321 8363
8322 /* window zoom handling added --ben */ 8364 /* window zoom handling added --ben */
8323 case inZoomIn: 8365 case inZoomIn:
@@ -8460,7 +8502,7 @@ XTread_socket (sd, expected, hold_quit)
8460#endif 8502#endif
8461 8503
8462#if TARGET_API_MAC_CARBON 8504#if TARGET_API_MAC_CARBON
8463 if (!IsValidWindowPtr (mac_front_window ())) 8505 if (!IsValidWindowPtr (front_emacs_window ()))
8464 { 8506 {
8465 SysBeep (1); 8507 SysBeep (1);
8466 break; 8508 break;
@@ -8564,7 +8606,7 @@ XTread_socket (sd, expected, hold_quit)
8564 inev.modifiers = mac_to_emacs_modifiers (er.modifiers); 8606 inev.modifiers = mac_to_emacs_modifiers (er.modifiers);
8565#endif 8607#endif
8566 XSETFRAME (inev.frame_or_window, 8608 XSETFRAME (inev.frame_or_window,
8567 mac_window_to_frame (mac_front_window ())); 8609 mac_window_to_frame (front_emacs_window ()));
8568 inev.timestamp = er.when * (1000 / 60); /* ticks to milliseconds */ 8610 inev.timestamp = er.when * (1000 / 60); /* ticks to milliseconds */
8569 break; 8611 break;
8570 8612
@@ -8581,16 +8623,16 @@ XTread_socket (sd, expected, hold_quit)
8581 WindowPtr wp; 8623 WindowPtr wp;
8582 Lisp_Object frame; 8624 Lisp_Object frame;
8583 8625
8584 wp = mac_front_window (); 8626 wp = front_emacs_window ();
8585 8627
8586 if (!wp) 8628 if (!wp)
8587 { 8629 {
8588 struct frame *f = XFRAME (XCAR (Vframe_list)); 8630 struct frame *f = XFRAME (XCAR (Vframe_list));
8589 CollapseWindow (FRAME_MAC_WINDOW (f), false); 8631 CollapseWindow (FRAME_MAC_WINDOW (f), false);
8590 wp = mac_front_window (); 8632 wp = front_emacs_window ();
8591 } 8633 }
8592 8634
8593 if (wp && is_emacs_window (wp)) 8635 if (wp)
8594 f = mac_window_to_frame (wp); 8636 f = mac_window_to_frame (wp);
8595 8637
8596 inev.kind = DRAG_N_DROP_EVENT; 8638 inev.kind = DRAG_N_DROP_EVENT;
@@ -9047,7 +9089,7 @@ mac_check_for_quit_char ()
9047 e.arg = Qnil; 9089 e.arg = Qnil;
9048 e.modifiers = NULL; 9090 e.modifiers = NULL;
9049 e.timestamp = EventTimeToTicks (GetEventTime (event)) * (1000/60); 9091 e.timestamp = EventTimeToTicks (GetEventTime (event)) * (1000/60);
9050 XSETFRAME (e.frame_or_window, mac_window_to_frame (mac_front_window ())); 9092 XSETFRAME (e.frame_or_window, mac_window_to_frame (front_emacs_window ()));
9051 /* Remove event from queue to prevent looping. */ 9093 /* Remove event from queue to prevent looping. */
9052 RemoveEventFromQueue (GetMainEventQueue (), event); 9094 RemoveEventFromQueue (GetMainEventQueue (), event);
9053 ReleaseEvent (event); 9095 ReleaseEvent (event);
diff --git a/src/window.c b/src/window.c
index c64e8557b56..22ca145b206 100644
--- a/src/window.c
+++ b/src/window.c
@@ -609,9 +609,6 @@ coordinates_in_window (w, x, y)
609 int grabbable_width = ux; 609 int grabbable_width = ux;
610 int lmargin_width, rmargin_width, text_left, text_right; 610 int lmargin_width, rmargin_width, text_left, text_right;
611 611
612 if (*x < x0 || *x >= x1)
613 return ON_NOTHING;
614
615 /* In what's below, we subtract 1 when computing right_x because we 612 /* In what's below, we subtract 1 when computing right_x because we
616 want the rightmost pixel, which is given by left_pixel+width-1. */ 613 want the rightmost pixel, which is given by left_pixel+width-1. */
617 if (w->pseudo_window_p) 614 if (w->pseudo_window_p)
@@ -661,6 +658,9 @@ coordinates_in_window (w, x, y)
661 return ON_VERTICAL_BORDER; 658 return ON_VERTICAL_BORDER;
662 } 659 }
663 660
661 if (*x < x0 || *x >= x1)
662 return ON_NOTHING;
663
664 /* Convert X and Y to window relative coordinates. 664 /* Convert X and Y to window relative coordinates.
665 Mode line starts at left edge of window. */ 665 Mode line starts at left edge of window. */
666 *x -= x0; 666 *x -= x0;
@@ -675,6 +675,9 @@ coordinates_in_window (w, x, y)
675 goto header_vertical_border_check; 675 goto header_vertical_border_check;
676 } 676 }
677 677
678 if (*x < x0 || *x >= x1)
679 return ON_NOTHING;
680
678 /* Outside any interesting column? */ 681 /* Outside any interesting column? */
679 if (*x < left_x || *x > right_x) 682 if (*x < left_x || *x > right_x)
680 return ON_SCROLL_BAR; 683 return ON_SCROLL_BAR;
@@ -6036,9 +6039,9 @@ display marginal areas and the text area. */)
6036 struct window *w = decode_window (window); 6039 struct window *w = decode_window (window);
6037 6040
6038 if (!NILP (left)) 6041 if (!NILP (left))
6039 CHECK_NUMBER (left); 6042 CHECK_NATNUM (left);
6040 if (!NILP (right)) 6043 if (!NILP (right))
6041 CHECK_NUMBER (right); 6044 CHECK_NATNUM (right);
6042 6045
6043 if (!EQ (w->left_fringe_width, left) 6046 if (!EQ (w->left_fringe_width, left)
6044 || !EQ (w->right_fringe_width, right) 6047 || !EQ (w->right_fringe_width, right)
@@ -6098,7 +6101,7 @@ If TYPE is t, use the frame's scroll-bar type. */)
6098 struct window *w = decode_window (window); 6101 struct window *w = decode_window (window);
6099 6102
6100 if (!NILP (width)) 6103 if (!NILP (width))
6101 CHECK_NUMBER (width); 6104 CHECK_NATNUM (width);
6102 6105
6103 if (XINT (width) == 0) 6106 if (XINT (width) == 0)
6104 vertical_type = Qnil; 6107 vertical_type = Qnil;
diff --git a/src/xdisp.c b/src/xdisp.c
index 3d52e60c12f..0e25b0a3de3 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -215,6 +215,8 @@ extern int pending_menu_activation;
215extern int interrupt_input; 215extern int interrupt_input;
216extern int command_loop_level; 216extern int command_loop_level;
217 217
218extern Lisp_Object do_mouse_tracking;
219
218extern int minibuffer_auto_raise; 220extern int minibuffer_auto_raise;
219extern Lisp_Object Vminibuffer_list; 221extern Lisp_Object Vminibuffer_list;
220 222
@@ -20762,6 +20764,10 @@ define_frame_cursor1 (f, cursor, pointer)
20762 Cursor cursor; 20764 Cursor cursor;
20763 Lisp_Object pointer; 20765 Lisp_Object pointer;
20764{ 20766{
20767 /* Do not change cursor shape while dragging mouse. */
20768 if (!NILP (do_mouse_tracking))
20769 return;
20770
20765 if (!NILP (pointer)) 20771 if (!NILP (pointer))
20766 { 20772 {
20767 if (EQ (pointer, Qarrow)) 20773 if (EQ (pointer, Qarrow))
@@ -21625,6 +21631,9 @@ x_draw_vertical_border (w)
21625 do it for frames with vertical scroll bars because either the 21631 do it for frames with vertical scroll bars because either the
21626 right scroll bar of a window, or the left scroll bar of its 21632 right scroll bar of a window, or the left scroll bar of its
21627 neighbor will suffice as a border. */ 21633 neighbor will suffice as a border. */
21634 if (FRAME_HAS_VERTICAL_SCROLL_BARS (XFRAME (w->frame)))
21635 return;
21636
21628 if (!WINDOW_RIGHTMOST_P (w) 21637 if (!WINDOW_RIGHTMOST_P (w)
21629 && !WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w)) 21638 && !WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w))
21630 { 21639 {
diff --git a/src/xterm.c b/src/xterm.c
index 17efe655410..69e04de2eb8 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -3380,12 +3380,14 @@ x_find_modifier_meanings (dpyinfo)
3380 Alt keysyms are on. */ 3380 Alt keysyms are on. */
3381 { 3381 {
3382 int row, col; /* The row and column in the modifier table. */ 3382 int row, col; /* The row and column in the modifier table. */
3383 int found_alt_or_meta;
3383 3384
3384 for (row = 3; row < 8; row++) 3385 for (row = 3; row < 8; row++)
3386 {
3387 found_alt_or_meta = 0;
3385 for (col = 0; col < mods->max_keypermod; col++) 3388 for (col = 0; col < mods->max_keypermod; col++)
3386 { 3389 {
3387 KeyCode code 3390 KeyCode code = mods->modifiermap[(row * mods->max_keypermod) + col];
3388 = mods->modifiermap[(row * mods->max_keypermod) + col];
3389 3391
3390 /* Zeroes are used for filler. Skip them. */ 3392 /* Zeroes are used for filler. Skip them. */
3391 if (code == 0) 3393 if (code == 0)
@@ -3403,33 +3405,44 @@ x_find_modifier_meanings (dpyinfo)
3403 { 3405 {
3404 case XK_Meta_L: 3406 case XK_Meta_L:
3405 case XK_Meta_R: 3407 case XK_Meta_R:
3408 found_alt_or_meta = 1;
3406 dpyinfo->meta_mod_mask |= (1 << row); 3409 dpyinfo->meta_mod_mask |= (1 << row);
3407 break; 3410 break;
3408 3411
3409 case XK_Alt_L: 3412 case XK_Alt_L:
3410 case XK_Alt_R: 3413 case XK_Alt_R:
3414 found_alt_or_meta = 1;
3411 dpyinfo->alt_mod_mask |= (1 << row); 3415 dpyinfo->alt_mod_mask |= (1 << row);
3412 break; 3416 break;
3413 3417
3414 case XK_Hyper_L: 3418 case XK_Hyper_L:
3415 case XK_Hyper_R: 3419 case XK_Hyper_R:
3416 dpyinfo->hyper_mod_mask |= (1 << row); 3420 if (!found_alt_or_meta)
3421 dpyinfo->hyper_mod_mask |= (1 << row);
3422 code_col = syms_per_code;
3423 col = mods->max_keypermod;
3417 break; 3424 break;
3418 3425
3419 case XK_Super_L: 3426 case XK_Super_L:
3420 case XK_Super_R: 3427 case XK_Super_R:
3421 dpyinfo->super_mod_mask |= (1 << row); 3428 if (!found_alt_or_meta)
3429 dpyinfo->super_mod_mask |= (1 << row);
3430 code_col = syms_per_code;
3431 col = mods->max_keypermod;
3422 break; 3432 break;
3423 3433
3424 case XK_Shift_Lock: 3434 case XK_Shift_Lock:
3425 /* Ignore this if it's not on the lock modifier. */ 3435 /* Ignore this if it's not on the lock modifier. */
3426 if ((1 << row) == LockMask) 3436 if (!found_alt_or_meta && ((1 << row) == LockMask))
3427 dpyinfo->shift_lock_mask = LockMask; 3437 dpyinfo->shift_lock_mask = LockMask;
3438 code_col = syms_per_code;
3439 col = mods->max_keypermod;
3428 break; 3440 break;
3429 } 3441 }
3430 } 3442 }
3431 } 3443 }
3432 } 3444 }
3445 }
3433 } 3446 }
3434 3447
3435 /* If we couldn't find any meta keys, accept any alt keys as meta keys. */ 3448 /* If we couldn't find any meta keys, accept any alt keys as meta keys. */
@@ -5050,9 +5063,15 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
5050 /* Compute the left edge of the scroll bar. */ 5063 /* Compute the left edge of the scroll bar. */
5051#ifdef USE_TOOLKIT_SCROLL_BARS 5064#ifdef USE_TOOLKIT_SCROLL_BARS
5052 if (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w)) 5065 if (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w))
5053 sb_left = left + width - sb_width - (width - sb_width) / 2; 5066 sb_left = (left +
5067 (WINDOW_RIGHTMOST_P (w)
5068 ? width - sb_width - (width - sb_width) / 2
5069 : 0));
5054 else 5070 else
5055 sb_left = left + (width - sb_width) / 2; 5071 sb_left = (left +
5072 (WINDOW_LEFTMOST_P (w)
5073 ? (width - sb_width) / 2
5074 : width - sb_width));
5056#else 5075#else
5057 if (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w)) 5076 if (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w))
5058 sb_left = left + width - sb_width; 5077 sb_left = left + width - sb_width;
@@ -5105,19 +5124,20 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
5105 width); 5124 width);
5106#else /* not USE_GTK */ 5125#else /* not USE_GTK */
5107 5126
5108 /* Since toolkit scroll bars are smaller than the space reserved
5109 for them on the frame, we have to clear "under" them. */
5110 if (width > 0 && height > 0)
5111 x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
5112 left, top, width, height, False);
5113 /* Move/size the scroll bar widget. */ 5127 /* Move/size the scroll bar widget. */
5114 if (mask) 5128 if (mask)
5129 {
5130 /* Since toolkit scroll bars are smaller than the space reserved
5131 for them on the frame, we have to clear "under" them. */
5132 if (width > 0 && height > 0)
5133 x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
5134 left, top, width, height, False);
5115 XtConfigureWidget (SCROLL_BAR_X_WIDGET (FRAME_X_DISPLAY (f), bar), 5135 XtConfigureWidget (SCROLL_BAR_X_WIDGET (FRAME_X_DISPLAY (f), bar),
5116 sb_left + VERTICAL_SCROLL_BAR_WIDTH_TRIM, 5136 sb_left + VERTICAL_SCROLL_BAR_WIDTH_TRIM,
5117 top, 5137 top,
5118 sb_width - VERTICAL_SCROLL_BAR_WIDTH_TRIM * 2, 5138 sb_width - VERTICAL_SCROLL_BAR_WIDTH_TRIM * 2,
5119 max (height, 1), 0); 5139 max (height, 1), 0);
5120 5140 }
5121#endif /* not USE_GTK */ 5141#endif /* not USE_GTK */
5122#else /* not USE_TOOLKIT_SCROLL_BARS */ 5142#else /* not USE_TOOLKIT_SCROLL_BARS */
5123 5143