# HG changeset patch # User Ben Wing # Date 1264550927 21600 # Node ID a47abe9c47f28f7159e2f31f89b149f27d4fdff6 # Parent ae81a2c00f4ff1780c171ae87a852d9877c8e7f2# Parent 29fb3baea9398850d7f96a82b19b4758d2b9bd36 merge diff -r ae81a2c00f4f -r a47abe9c47f2 ChangeLog --- a/ChangeLog Mon Jan 18 06:05:21 2010 -0600 +++ b/ChangeLog Tue Jan 26 18:08:47 2010 -0600 @@ -4,6 +4,10 @@ Add description of crash on recent Cygwin 1.7 when using C++, NEWGC and optimization. +2010-01-16 Aidan Kehoe + + * configure: Regenerate, now we no longer look for rint(). + 2010-01-13 Jerry James * configure.ac: Update comment about Cygwin and pdump. diff -r ae81a2c00f4f -r a47abe9c47f2 configure --- a/configure Mon Jan 18 06:05:21 2010 -0600 +++ b/configure Tue Jan 26 18:08:47 2010 -0600 @@ -1,14 +1,12 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.65 for XEmacs 21.5. +# Generated by GNU Autoconf 2.64 for XEmacs 21.5. # # Report bugs to . # -# # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software +# Foundation, Inc. # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. @@ -575,8 +573,7 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -test -n "$DJDIR" || exec 7<&0 &1 +exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, @@ -1989,7 +1986,7 @@ LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor YACC The `Yet Another C Compiler' implementation to use. Defaults to @@ -2066,7 +2063,7 @@ if $ac_init_version; then cat <<\_ACEOF XEmacs configure 21.5 -generated by GNU Autoconf 2.65 +generated by GNU Autoconf 2.64 Copyright (C) 2009 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -2159,7 +2156,7 @@ ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval + return $ac_retval } # ac_fn_c_try_compile @@ -2196,7 +2193,7 @@ ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval + return $ac_retval } # ac_fn_c_try_cpp @@ -2331,7 +2328,7 @@ fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval + return $ac_retval } # ac_fn_c_try_run @@ -2408,7 +2405,7 @@ # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval + return $ac_retval } # ac_fn_c_try_link @@ -2803,7 +2800,7 @@ fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval + return $ac_retval } # ac_fn_c_compute_int cat >config.log <<_ACEOF @@ -2811,7 +2808,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by XEmacs $as_me 21.5, which was -generated by GNU Autoconf 2.65. Invocation command line was +generated by GNU Autoconf 2.64. Invocation command line was $ $0 $@ @@ -3064,7 +3061,7 @@ for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + if test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 @@ -3073,9 +3070,9 @@ done if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in @@ -6298,30 +6295,32 @@ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err + rm -f conftest.er1 conftest.err + fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -int -main () -{ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: @@ -6383,10 +6382,10 @@ else ac_file='' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 @@ -6394,18 +6393,51 @@ { as_fn_set_status 77 as_fn_error "C compiler cannot create executables See \`config.log' for more details." "$LINENO" 5; }; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +fi +ac_exeext=$ac_cv_exeext + +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out ac_clean_files=$ac_clean_files_save +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" @@ -6438,72 +6470,13 @@ as_fn_error "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." "$LINENO" 5; } fi -rm -f conftest conftest$ac_cv_exeext +rm -f conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : @@ -7562,8 +7535,8 @@ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err + rm -f conftest.er1 conftest.err + fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -8110,8 +8083,8 @@ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err + rm -f conftest.er1 conftest.err + fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -8658,8 +8631,8 @@ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err + rm -f conftest.er1 conftest.err + fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -21558,7 +21531,7 @@ # values after options handling. ac_log=" This file was extended by XEmacs $as_me 21.5, which was -generated by GNU Autoconf 2.65. Invocation command line was +generated by GNU Autoconf 2.64. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -21598,7 +21571,6 @@ -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit - --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files @@ -21621,11 +21593,10 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ XEmacs config.status 21.5 -configured by $0, generated by GNU Autoconf 2.65, - with options \\"\$ac_cs_config\\" +configured by $0, generated by GNU Autoconf 2.64, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2009 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation @@ -21661,8 +21632,6 @@ ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) @@ -21857,7 +21826,7 @@ t delim :nl h -s/\(.\{148\}\)..*/\1/ +s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p @@ -21871,7 +21840,7 @@ t nl :delim h -s/\(.\{148\}\)..*/\1/ +s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p diff -r ae81a2c00f4f -r a47abe9c47f2 etc/ChangeLog --- a/etc/ChangeLog Mon Jan 18 06:05:21 2010 -0600 +++ b/etc/ChangeLog Tue Jan 26 18:08:47 2010 -0600 @@ -1,3 +1,8 @@ +2010-01-26 Aidan Kehoe + + * HELLO: Encode the Arabic in arabic-iso8859-6 once more; delete + the old, experimentally-encoded Thai. + 2010-01-04 Jerry James * Emacs.ad: Change /usr/lib/X11 to /usr/share/X11. diff -r ae81a2c00f4f -r a47abe9c47f2 etc/HELLO --- a/etc/HELLO Mon Jan 18 06:05:21 2010 -0600 +++ b/etc/HELLO Tue Jan 26 18:08:47 2010 -0600 @@ -5,7 +5,7 @@ --------------------------------------------------------- Amharic ($(3"c!(B -Arabic (%Gةّيبرعلا%@) %Gمكيلع%@ %Gمالّسلا%@ +Arabic ([2],GIqjHQYdG[0](B) [2],GecjdY[0](B [2],GeGdqSdG[0](B Croatian (Hrvatski) Bog (Bok), Dobar dan Czech (,Bh(Besky) Dobr,B}(B den Danish (Dansk) Hej, Goddag @@ -30,7 +30,6 @@ Spanish (Espa,Aq(Bol) ,A!(BHola! Swedish (Svenska) Hej, Goddag Tajik ,LAP[^\(B -Thai ($(?@0R0I0R0d070B0(B) $(?J0G8J04H$0C8:0(B, $(?J0G8J04H$2P0(B Tigrigna ($(3"8#r!N"^(B) $(3!Q!,!<"8(B Turkish (T,A|(Brk,Ag(Be) Merhaba diff -r ae81a2c00f4f -r a47abe9c47f2 lisp/ChangeLog --- a/lisp/ChangeLog Mon Jan 18 06:05:21 2010 -0600 +++ b/lisp/ChangeLog Tue Jan 26 18:08:47 2010 -0600 @@ -1,3 +1,19 @@ +2010-01-26 Aidan Kehoe + + * mule/vietnamese.el (viscii): Correct the mapping here, #xA6 is + actually *SMALL* LETTER A WITH CIRCUMFLEX AND HOOK ABOVE. + * mule/cyrillic.el (koi8-c): Correct the mapping here, #x8C is + actually ?\u04D9. Add a case mapping for it. + +2010-01-20 Aidan Kehoe + + * simple.el (handle-pre-motion-command-current-command-is-motion): + This function is called a *lot*, make it faster, making + keysyms-equal inline, calling #'characterp (which doesn't have a + bytecode) much more rarely, and not throwing and catching. This + won't make much difference in practice, but does eliminate losts + of noise from profiling, e.g. at startup. + 2010-01-13 Ben Wing * loadup.el: @@ -108,6 +124,11 @@ Remove support in our generated code for emacs versions where keywords are not self-quoting. +2009-12-21 Michael Sperber + + * gnuserv.el (gnuserv-program): Specifically look for gnuserv in + `exec-directory'. + 2009-12-18 Aidan Kehoe * alist.el (modify-alist): diff -r ae81a2c00f4f -r a47abe9c47f2 lisp/gnuserv.el --- a/lisp/gnuserv.el Mon Jan 18 06:05:21 2010 -0600 +++ b/lisp/gnuserv.el Tue Jan 26 18:08:47 2010 -0600 @@ -181,7 +181,7 @@ (function :tag "Other")) :group 'gnuserv) -(defcustom gnuserv-program "gnuserv" +(defcustom gnuserv-program (expand-file-name "gnuserv" exec-directory) "*Program to use as the editing server." :type 'string :group 'gnuserv) diff -r ae81a2c00f4f -r a47abe9c47f2 lisp/mule/cyrillic.el --- a/lisp/mule/cyrillic.el Mon Jan 18 06:05:21 2010 -0600 +++ b/lisp/mule/cyrillic.el Tue Jan 26 18:08:47 2010 -0600 @@ -1166,7 +1166,7 @@ do (put-case-table-pair upper lower case-table)) -;; Support fot the languages of the Caucasus. +;; Support for the languages of the Caucasus. Never widely used. (make-coding-system 'koi8-c 'fixed-width "KOI-8, Caucasus." '(unicode-map @@ -1182,7 +1182,7 @@ (#x89 ?\u04B9) ;; CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE (#x8A ?\u04BB) ;; CYRILLIC SMALL LETTER SHHA (#x8B ?\u2580) ;; UPPER HALF BLOCK - (#x8C ?\u049D) ;; CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE + (#x8C ?\u04D9) ;; CYRILLIC SMALL LETTER SCHWA (#x8D ?\u04E3) ;; CYRILLIC SMALL LETTER I WITH MACRON (#x8E ?\u04E9) ;; CYRILLIC SMALL LETTER BARRED O (#x8F ?\u04EF) ;; CYRILLIC SMALL LETTER U WITH MACRON @@ -1311,6 +1311,7 @@ (?\u04A3 ?\u04A2) ;; EN WITH DESCENDER (?\u049D ?\u049C) ;; KA WITH VERTICAL STROKE (?\u04BB ?\u04BA) ;; SHHA + (?\u04D9 ?\u04D8) ;; SCHWA (?\u04AF ?\u04AE) ;; STRAIGHT U (?\u04B1 ?\u04B0) ;; STRAIGHT U WITH STROKE (?\u0497 ?\u0496)) ;; ZHE WITH DESCENDER diff -r ae81a2c00f4f -r a47abe9c47f2 lisp/mule/vietnamese.el --- a/lisp/mule/vietnamese.el Mon Jan 18 06:05:21 2010 -0600 +++ b/lisp/mule/vietnamese.el Tue Jan 26 18:08:47 2010 -0600 @@ -111,7 +111,7 @@ (#xA3 ?\u1EB7) ;; SMALL LETTER A WITH BREVE AND DOT BELOW (#xA4 ?\u1EA5) ;; SMALL LETTER A WITH CIRCUMFLEX AND ACUTE (#xA5 ?\u1EA7) ;; SMALL LETTER A WITH CIRCUMFLEX AND GRAVE - (#xA6 ?\u1EA8) ;; CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE + (#xA6 ?\u1EA9) ;; SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE (#xA7 ?\u1EAD) ;; SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW (#xA8 ?\u1EBD) ;; SMALL LETTER E WITH TILDE (#xA9 ?\u1EB9) ;; SMALL LETTER E WITH DOT BELOW diff -r ae81a2c00f4f -r a47abe9c47f2 lisp/simple.el --- a/lisp/simple.el Mon Jan 18 06:05:21 2010 -0600 +++ b/lisp/simple.el Tue Jan 26 18:08:47 2010 -0600 @@ -2086,25 +2086,35 @@ (defun handle-pre-motion-command-current-command-is-motion () (and (key-press-event-p last-input-event) - (let ((key (event-key last-input-event)) - (mods (delq 'shift (event-modifiers last-input-event)))) - ;(princ (format "key: %s mods: %s\n" key mods) 'external-debugging-output) - (catch 'handle-pre-motion-command-current-command-is-motion - (flet ((keysyms-equal (a b) - (if (characterp b) - (setq b (intern (char-to-string (downcase b))))) - (eq a b))) - (setq key (if (characterp key) - (intern (char-to-string (downcase key))) - key)) - (dolist (keysym motion-keys-for-shifted-motion) - (when (if (listp keysym) - (and (equal mods (butlast keysym)) - (keysyms-equal key (car (last keysym)))) - (keysyms-equal key keysym)) - (throw 'handle-pre-motion-command-current-command-is-motion - t))) - nil))))) + (macrolet + ((keysyms-equal (&rest args) + `((lambda (a b) + (when (and + ;; As of now, none of the elements of + ;; motion-keys-for-shifted-motion are non-symbols; + ;; this redundant check saves a few hundred + ;; funcalls on startup. + (not (symbolp b)) + (characterp b)) + (setf (car char-list) b + b (intern (concat char-list nil)))) + (eq a b)) + ,@args))) + (loop + for keysym in motion-keys-for-shifted-motion + with key = (event-key last-input-event) + with mods = (delq 'shift (event-modifiers last-input-event)) + with char-list = '(?a) ;; Some random character; the list will be + ;; modified in the constants vector over + ;; time. + initially (if (and (not (symbolp key)) (characterp key)) + (setf (car char-list) key + key (intern (concat char-list nil)))) + thereis (if (listp keysym) + (and (equal mods (butlast keysym)) + (keysyms-equal + key (car (last keysym)))) + (keysyms-equal key keysym)))))) (defun handle-pre-motion-command () (if (and diff -r ae81a2c00f4f -r a47abe9c47f2 src/ChangeLog --- a/src/ChangeLog Mon Jan 18 06:05:21 2010 -0600 +++ b/src/ChangeLog Tue Jan 26 18:08:47 2010 -0600 @@ -158,6 +158,42 @@ Declare some temporary pointer variables const to avoid compile errors under C++ and/or Visual Studio 6. +2010-01-24 Aidan Kehoe + + * number.c (Fnumerator, Fdenominator, Fcanonicalize_number): + Be more careful to return integers in their canonical forms here, + and to give the same answer all the time when treating a rational + that is itself is an integer as a ratio. + +2010-01-17 Vin Shelton + + * fileio.c (check_writable): Remove cast from 2010-01-14 + + * syswindows.h: Use consts in macros where appropriate in lieu of + cast in check_writable(). Patch from Ben Wing. + +2010-01-16 Aidan Kehoe + + * config.h.in: + * floatfns.c (emacs_rint): + Don't look for rint in configure, always use our own + implementation that rounds to the even number in the case of + ambiguity, for consistency with the bignum code. + +2010-01-14 Vin Shelton + + * fileio.c (check_writable): Fix compilation error under Visual + Studio 6. + + * sysfile.h: + Add conditional definition for EOVERFLOW, which isn't defined + under Visual Studio 6. + +2010-01-14 Didier Verna + + * faces.c (complex_vars_of_faces): change X11 bgcolor fallback of + default face to match that of gui element face. + 2010-01-14 Ben Wing * buffer.h: diff -r ae81a2c00f4f -r a47abe9c47f2 src/config.h.in --- a/src/config.h.in Mon Jan 18 06:05:21 2010 -0600 +++ b/src/config.h.in Tue Jan 26 18:08:47 2010 -0600 @@ -415,7 +415,6 @@ #undef HAVE_READLINK #undef HAVE_RENAME #undef HAVE_RES_INIT -#undef HAVE_RINT #undef HAVE_RMDIR #undef HAVE_SELECT #undef HAVE_SETITIMER diff -r ae81a2c00f4f -r a47abe9c47f2 src/faces.c --- a/src/faces.c Mon Jan 18 06:05:21 2010 -0600 +++ b/src/faces.c Tue Jan 26 18:08:47 2010 -0600 @@ -2244,7 +2244,7 @@ #endif #ifdef HAVE_X_WINDOWS fg_fb = acons (list1 (Qx), build_string ("black"), fg_fb); - bg_fb = acons (list1 (Qx), build_string ("white"), bg_fb); + bg_fb = acons (list1 (Qx), build_string ("gray80"), bg_fb); #endif #ifdef HAVE_TTY fg_fb = acons (list1 (Qtty), Fvector (0, 0), fg_fb); diff -r ae81a2c00f4f -r a47abe9c47f2 src/fileio.c diff -r ae81a2c00f4f -r a47abe9c47f2 src/floatfns.c --- a/src/floatfns.c Mon Jan 18 06:05:21 2010 -0600 +++ b/src/floatfns.c Tue Jan 26 18:08:47 2010 -0600 @@ -26,7 +26,6 @@ Define HAVE_INVERSE_HYPERBOLIC if you have acosh, asinh, and atanh. Define HAVE_CBRT if you have cbrt(). - Define HAVE_RINT if you have rint(). If you don't define these, then the appropriate routines will be simulated. Define HAVE_MATHERR if on a system supporting the SysV matherr() callback. @@ -50,11 +49,8 @@ #include "syssignal.h" #include "sysfloat.h" -/* The code uses emacs_rint, so that it works to undefine HAVE_RINT - if `rint' exists but does not work right. */ -#ifdef HAVE_RINT -#define emacs_rint rint -#else +/* An implementation of rint that always rounds towards the even number in + the case of ambiguity. */ static double emacs_rint (double x) { @@ -65,7 +61,6 @@ r += r < x ? 1.0 : -1.0; return r; } -#endif /* Nonzero while executing in floating point. This tells float_error what to do. */ diff -r ae81a2c00f4f -r a47abe9c47f2 src/number.c --- a/src/number.c Mon Jan 18 06:05:21 2010 -0600 +++ b/src/number.c Tue Jan 26 18:08:47 2010 -0600 @@ -248,12 +248,13 @@ { CONCHECK_RATIONAL (rational); #ifdef HAVE_RATIO - return RATIOP (rational) - ? make_bignum_bg (XRATIO_NUMERATOR (rational)) - : rational; -#else + if (RATIOP (rational)) + { + return + Fcanonicalize_number (make_bignum_bg (XRATIO_NUMERATOR (rational))); + } +#endif return rational; -#endif } DEFUN ("denominator", Fdenominator, 1, 1, 0, /* @@ -264,12 +265,13 @@ { CONCHECK_RATIONAL (rational); #ifdef HAVE_RATIO - return RATIOP (rational) - ? make_bignum_bg (XRATIO_DENOMINATOR (rational)) - : make_int (1); -#else - return rational; + if (RATIOP (rational)) + { + return Fcanonicalize_number (make_bignum_bg + (XRATIO_DENOMINATOR (rational))); + } #endif + return make_int (1); } @@ -451,7 +453,7 @@ if (RATIOP (number) && bignum_fits_long_p (XRATIO_DENOMINATOR (number)) && bignum_to_long (XRATIO_DENOMINATOR (number)) == 1L) - number = make_bignum_bg (XRATIO_NUMERATOR (number)); + number = Fcanonicalize_number (make_bignum_bg (XRATIO_NUMERATOR (number))); #endif #ifdef HAVE_BIGNUM if (BIGNUMP (number) && bignum_fits_emacs_int_p (XBIGNUM_DATA (number))) diff -r ae81a2c00f4f -r a47abe9c47f2 src/sysfile.h --- a/src/sysfile.h Mon Jan 18 06:05:21 2010 -0600 +++ b/src/sysfile.h Tue Jan 26 18:08:47 2010 -0600 @@ -38,6 +38,11 @@ # include /* does not always imply this */ #endif +/* EOVERFLOW isn't defined on native Windows under VC6 */ +#ifndef EOVERFLOW +# define EOVERFLOW 10139 +#endif + #ifdef HAVE_UNISTD_H # include #endif diff -r ae81a2c00f4f -r a47abe9c47f2 tests/ChangeLog --- a/tests/ChangeLog Mon Jan 18 06:05:21 2010 -0600 +++ b/tests/ChangeLog Tue Jan 26 18:08:47 2010 -0600 @@ -1,3 +1,9 @@ +2010-01-26 Aidan Kehoe + + * automated/mule-tests.el: + Only give the list of character sets in HELLO once; correct it to + reflect its current contents and the extant character sets. + 2010-01-14 Ben Wing * automated/mule-tests.el (featurep): diff -r ae81a2c00f4f -r a47abe9c47f2 tests/automated/mule-tests.el --- a/tests/automated/mule-tests.el Mon Jan 18 06:05:21 2010 -0600 +++ b/tests/automated/mule-tests.el Tue Jan 26 18:08:47 2010 -0600 @@ -551,25 +551,23 @@ ;;--------------------------------------------------------------- (with-temp-buffer (insert-file-contents (locate-data-file "HELLO")) - (Assert-equal - ;; The sort is to make the algorithm of charsets-in-region - ;; irrelevant. - (sort (charsets-in-region (point-min) (point-max)) - #'string<) - '(ascii chinese-big5-1 chinese-gb2312 cyrillic-iso8859-5 - ethiopic greek-iso8859-7 hebrew-iso8859-8 japanese-jisx0208 - japanese-jisx0212 jit-ucs-charset-0 katakana-jisx0201 - korean-ksc5601 latin-iso8859-1 latin-iso8859-2 thai-xtis - vietnamese-viscii-lower)) - (Assert-equal - (sort (charsets-in-string (buffer-substring (point-min) - (point-max))) - #'string<) - '(ascii chinese-big5-1 chinese-gb2312 cyrillic-iso8859-5 - ethiopic greek-iso8859-7 hebrew-iso8859-8 japanese-jisx0208 - japanese-jisx0212 jit-ucs-charset-0 katakana-jisx0201 - korean-ksc5601 latin-iso8859-1 latin-iso8859-2 thai-xtis - vietnamese-viscii-lower))) + (let ((sorted-charsets-in-HELLO + '(arabic-iso8859-6 ascii chinese-big5-1 chinese-gb2312 + cyrillic-iso8859-5 ethiopic greek-iso8859-7 + hebrew-iso8859-8 japanese-jisx0208 japanese-jisx0212 + katakana-jisx0201 korean-ksc5601 latin-iso8859-1 + latin-iso8859-2 vietnamese-viscii-lower))) + (Assert-equal + ;; The sort is to make the algorithm of charsets-in-region + ;; irrelevant. + (sort (charsets-in-region (point-min) (point-max)) + #'string<) + sorted-charsets-in-HELLO) + (Assert-equal + (sort (charsets-in-string (buffer-substring (point-min) + (point-max))) + #'string<) + sorted-charsets-in-HELLO))) ;;--------------------------------------------------------------- ;; Language environments, and whether the specified values are sane.