Mercurial > hg > xemacs-beta
changeset 4807:41852ee5f1b0
Merge.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Thu, 07 Jan 2010 17:01:25 +0000 |
parents | 980575c76541 (diff) fd36a980d701 (current diff) |
children | 53071486ff7a 6f84332672fb |
files | lisp/ChangeLog src/ChangeLog src/mule-charset.c |
diffstat | 146 files changed, 1997 insertions(+), 5659 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Fri Jan 01 19:45:39 2010 +0000 +++ b/ChangeLog Thu Jan 07 17:01:25 2010 +0000 @@ -1,3 +1,35 @@ +2010-01-06 Jerry James <james@xemacs.org> + + * configure.ac: Add --with-valgrind option. + * configure: Regenerate. + +2009-12-21 Jerry James <james@xemacs.org> + + * INSTALL: Remove references to OffiX. + * configure.ac: Remove support for OffiX drag-and-drop. + * configure: Regenerate. + +2009-12-21 Jerry James <james@xemacs.org> + + * INSTALL: Replace reference to yow. + +2009-12-18 Jerry James <james@xemacs.org> + + * INSTALL: Remove reference to rcs-checkin. + +2009-12-18 Jerry James <james@xemacs.org> + + * build-msw-release.sh: Add copyright and GPL v2 or later header + with permission of Andy Piper. + +2009-12-09 Jerry James <james@xemacs.org> + + * INSTALL: Remove description of --without-xmu option. + * configure.ac: Remove --with[out]-xmu option. Issue informative + error message if libXmu cannot be found. Change all Xmu-related + tests to assume Xmu is present. + * configure: Regenerate. + 2009-12-01 Mike Alexander <mta@umich.edu> * configure.ac: Make --with-database={dbm|gdbm} work again, it's
--- a/INSTALL Fri Jan 01 19:45:39 2010 +0000 +++ b/INSTALL Thu Jan 07 17:01:25 2010 +0000 @@ -291,9 +291,6 @@ you omit this option, `configure' will try to autodetect whether your system has X Window System support, and arrange to use it if present. -The `--without-xmu' option can be used if your vendor doesn't ship -the Xmu library. - The `--with-menubars=TYPE' option allows you to specify which X toolkit you wish to use for the menubar. The valid options are `lucid', `motif' and `no'. The default is `lucid' which is a @@ -382,11 +379,6 @@ drop support. `configure' will attempt to detect this option and define `--with-cde' for you. -The `--with-offix' option allows you to enable or disable OffiX drag -and drop support. This requires no external library support, so if -X11 support is available, then this option defaults to `yes'. OffiX -support can be explicitly disabled via the `--with-offix=no' option. - Internationalization Options ---------------------------- @@ -573,7 +565,7 @@ `/usr/local/bin' holds the executable programs users normally run - `xemacs', `etags', `ctags', `b2m', `emacsclient', `ellcc', - `gnuclient', `gnudoit', `gnuattach', and `rcs-checkin'. + `gnuclient', `gnudoit', and `gnuattach'. `/usr/local/lib/xemacs-VERSION/lisp' holds the Emacs Lisp libraries; `VERSION' stands for the number of the XEmacs version @@ -589,7 +581,7 @@ `/usr/local/lib/xemacs/site-lisp/*'. `/usr/local/lib/xemacs-VERSION/etc' holds the XEmacs tutorial, the - `yow' database, and other architecture-independent + Unicode database, and other architecture-independent files XEmacs might need while running. VERSION is as specified for `.../lisp'. @@ -898,7 +890,6 @@ --with-widgets Unchanged --with-dragndrop Unchanged --with-cde Unchanged ---with-offix Unchanged --with-xmu Unchanged --external-widget --with-external-widget
--- a/build-msw-release.sh Fri Jan 01 19:45:39 2010 +0000 +++ b/build-msw-release.sh Thu Jan 07 17:01:25 2010 +0000 @@ -1,5 +1,24 @@ #!/bin/sh +# Copyright (C) 2000 Andy Piper + +# This file is part of XEmacs. + +# XEmacs is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your +# option) any later version. + +# XEmacs is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with XEmacs; see the file COPYING. If not, write to the Free +# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. + # This file builds the release kits for both cygwin and win32. You # must have both environments configured for it to work properly. In # particular you must provide a suitable value for NATIVE_ZLIB_DIR.
--- a/configure Fri Jan 01 19:45:39 2010 +0000 +++ b/configure Thu Jan 07 17:01:25 2010 +0000 @@ -954,10 +954,6 @@ with_dragndrop enable_cde with_cde -enable_offix -with_offix -enable_xmu -with_xmu enable_external_widget with_external_widget enable_tty @@ -1066,6 +1062,8 @@ with_quantify enable_purify with_purify +enable_valgrind +with_valgrind with_x ' ac_precious_vars='build_alias @@ -1853,16 +1851,10 @@ can be found, else Athena is used. --with-dragndrop Compile in the generic drag and drop API. This is automatically added if one of the drag and drop - protocols is found (currently CDE, OffiX, MSWindows, - and GTK). *WARNING* The Drag'n'drop support is under + protocols is found (currently CDE, MSWindows, and + GTK). *WARNING* The Drag'n'drop support is under development and is considered experimental. --with-cde Compile in support for CDE drag and drop. - --with-offix Compile in support for OffiX drag and drop. - *WARNING* If you compile in OffiX, you may not be - able to use multiple X displays success- fully. If - the two servers are from different vendors, the - results may be unpredictable. - --with-xmu Use Xmu utilities. Default: yes. --with-external-widget Support XEmacs server for text widgets in other applications. @@ -2040,6 +2032,7 @@ trigger bugs in some compilers. --with-quantify Support performance debugging using Quantify. --with-purify Support memory debugging using Purify. + --with-valgrind Support memory debugging using Valgrind. Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -3542,38 +3535,6 @@ withval="$with_cde" fi; -# If --with-offix or --without-offix were given then copy the value to the -# equivalent enable_offix variable. -if test "${with_offix+set}" = set; then - enable_offix="$with_offix" -fi; -# If -enable-offix or --disable-offix were given then copy the value to the -# equivalent with_offix variable. -if test "${enable_offix+set}" = set; then - with_offix="$enable_offix" -fi; -# Check whether --with-offix or --without-offix was given. -if test "${with_offix+set}" = set; then - enableval="$with_offix" - withval="$with_offix" - -fi; -# If --with-xmu or --without-xmu were given then copy the value to the -# equivalent enable_xmu variable. -if test "${with_xmu+set}" = set; then - enable_xmu="$with_xmu" -fi; -# If -enable-xmu or --disable-xmu were given then copy the value to the -# equivalent with_xmu variable. -if test "${enable_xmu+set}" = set; then - with_xmu="$enable_xmu" -fi; -# Check whether --with-xmu or --without-xmu was given. -if test "${with_xmu+set}" = set; then - enableval="$with_xmu" - withval="$with_xmu" - -fi; # If --with-external-widget or --without-external-widget were given then copy the value to the # equivalent enable_external-widget variable. if test "${with_external_widget+set}" = set; then @@ -4795,6 +4756,22 @@ withval="$with_purify" fi; +# If --with-valgrind or --without-valgrind were given then copy the value to the +# equivalent enable_valgrind variable. +if test "${with_valgrind+set}" = set; then + enable_valgrind="$with_valgrind" +fi; +# If -enable-valgrind or --disable-valgrind were given then copy the value to the +# equivalent with_valgrind variable. +if test "${enable_valgrind+set}" = set; then + with_valgrind="$enable_valgrind" +fi; +# Check whether --with-valgrind or --without-valgrind was given. +if test "${with_valgrind+set}" = set; then + enableval="$with_valgrind" + withval="$with_valgrind" + +fi; if test "$with_purify" = "yes" -o "$with_quantify" = "yes"; then test "$with_system_malloc" = "default" && with_system_malloc=yes @@ -19962,7 +19939,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test -z "$with_xmu" && { { $as_echo "$as_me:$LINENO: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 + { $as_echo "$as_me:$LINENO: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 $as_echo_n "checking for XmuReadBitmapDataFromFile in -lXmu... " >&6; } if test "${ac_cv_lib_Xmu_XmuReadBitmapDataFromFile+set}" = set; then $as_echo_n "(cached) " >&6 @@ -20032,17 +20009,17 @@ else with_xmu=no fi - } + if test "$with_xmu" = "no"; then - extra_objs="$extra_objs xmu.o" && if test "$verbose" = "yes"; then - echo " xemacs will be linked with \"xmu.o\"" - fi + { { $as_echo "$as_me:$LINENO: error: We're sorry, but we thought there were no systems without Xmu by now. +You cannot build this version of XEmacs for X11 without Xmu. Please report +this to xemacs-beta@xemacs.org. As a workaround, revert to XEmacs 21.5.29." >&5 +$as_echo "$as_me: error: We're sorry, but we thought there were no systems without Xmu by now. +You cannot build this version of XEmacs for X11 without Xmu. Please report +this to xemacs-beta@xemacs.org. As a workaround, revert to XEmacs 21.5.29." >&2;} + { (exit 1); exit 1; }; } else libs_x="-lXmu $libs_x" && if test "$verbose" = "yes"; then echo " Prepending \"-lXmu\" to \$libs_x"; fi - cat >>confdefs.h <<\_ACEOF -#define HAVE_XMU 1 -_ACEOF - fi { $as_echo "$as_me:$LINENO: checking for main in -lXbsd" >&5 @@ -21072,7 +21049,7 @@ fi if test "$with_x11" != "yes"; then - for feature in with_tooltalk with_cde with_offix with_wmcommand with_xim with_xmu enable_sound_nas + for feature in with_tooltalk with_cde with_wmcommand with_xim enable_sound_nas do if eval "test -n \"\$${feature}\" -a \"\$${feature}\" != \"no\"" ; then { $as_echo "$as_me:$LINENO: WARNING: --$feature ignored: Not valid without X support" >&5 @@ -23403,37 +23380,6 @@ need_motif=yes # CDE requires Motif fi -test "$window_system" != "x11" && with_offix=no -if test "$with_xmu" != yes -a "$with_x11" = yes; then - if test "$with_offix" = "yes" ; then - { $as_echo "$as_me:$LINENO: WARNING: --with-offix forced to \`no'; no real Xmu support" >&5 -$as_echo "$as_me: WARNING: --with-offix forced to \`no'; no real Xmu support" >&2;} - fi - with_offix=no -fi -if test "$with_dragndrop" = no; then - if test "$with_offix" = "yes" ; then - { $as_echo "$as_me:$LINENO: WARNING: --with-offix forced to \`no'; no generic Drag'n'Drop support" >&5 -$as_echo "$as_me: WARNING: --with-offix forced to \`no'; no generic Drag'n'Drop support" >&2;} - fi - with_offix=no -fi -if test "$with_cde" = yes; then - if test "$with_offix" = "yes" ; then - { $as_echo "$as_me:$LINENO: WARNING: --with-offix forced to \`no'; CDE already found" >&5 -$as_echo "$as_me: WARNING: --with-offix forced to \`no'; CDE already found" >&2;} - fi - with_offix=no -fi -test -z "$with_offix" && with_offix=no -if test "$with_offix" = "yes"; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_OFFIX_DND 1 -_ACEOF - - dnd_objs="$dnd_objs offix.o" && if test "$verbose" = "yes"; then echo " Appending \"offix.o\" to \$dnd_objs"; fi - dragndrop_proto="$dragndrop_proto OffiX" && if test "$verbose" = "yes"; then echo " Appending \"OffiX\" to \$dragndrop_proto"; fi -fi if test "$with_gtk" = "yes"; then dragndrop_proto="$dragndrop_proto GTK" && if test "$verbose" = "yes"; then echo " Appending \"GTK\" to \$dragndrop_proto"; fi fi @@ -41000,6 +40946,10 @@ #define QUANTIFY 1 _ACEOF +test "$with_valgrind" = "yes" && cat >>confdefs.h <<\_ACEOF +#define USE_VALGRIND 1 +_ACEOF + test "$with_pop" = "yes" && cat >>confdefs.h <<\_ACEOF #define MAIL_USE_POP 1 _ACEOF @@ -41115,9 +41065,6 @@ if test "$with_xauth" != yes; then echo " - Xau (X authority) not available." fi - if test "$with_xmu" != yes; then - echo " - Xmu library not available; substituting equivalent routines." - fi if test "$with_wmcommand" != no; then echo " - Handling WM_COMMAND properly." fi @@ -41330,6 +41277,7 @@ echo " WARNING: Error checking is on by default for XEmacs beta releases." echo " WARNING: ---------------------------------------------------------" fi +test "$with_valgrind" = yes && echo " Compiling in support for memory debugging with Valgrind." echo "" ) | tee -a Installation echo "" @@ -42039,8 +41987,7 @@ if test -n "$CONFIG_FILES"; then -ac_cr=' -' +ac_cr=' ' ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r'
--- a/configure.ac Fri Jan 01 19:45:39 2010 +0000 +++ b/configure.ac Thu Jan 07 17:01:25 2010 +0000 @@ -741,25 +741,13 @@ [], [],[yes,no,lucid,motif,athena,gtk,msw]) XE_MERGED_ARG([dragndrop], AS_HELP_STRING([--with-dragndrop],[Compile in the generic drag and drop API. This is automatically added if one of the drag and drop - protocols is found (currently CDE, OffiX, MSWindows, - and GTK). + protocols is found (currently CDE, MSWindows, and GTK). *WARNING* The Drag'n'drop support is under development and is considered experimental.]), [], []) XE_MERGED_ARG([cde], AS_HELP_STRING([--with-cde],[Compile in support for CDE drag and drop.]), [], []) -XE_MERGED_ARG([offix], - AS_HELP_STRING([--with-offix],[Compile in support for OffiX drag and drop. - *WARNING* If you compile in OffiX, you may not be - able to use multiple X displays success- - fully. If the two servers are from - different vendors, the results may be - unpredictable.]), - [], []) -XE_MERGED_ARG([xmu], - AS_HELP_STRING([--with-xmu],[Use Xmu utilities. Default: yes.]), - [], []) XE_MERGED_ARG([external-widget], AS_HELP_STRING([--enable-external-widget],[Support XEmacs server for text widgets in other applications.]), [], []) @@ -1026,6 +1014,9 @@ XE_MERGED_ARG([purify], AS_HELP_STRING([--with-purify],[Support memory debugging using Purify.]), [], []) +XE_MERGED_ARG([valgrind], + AS_HELP_STRING([--with-valgrind],[Support memory debugging using Valgrind.]), + [], []) dnl ------------------------------------------------------------------------- dnl Final command line argument checks. @@ -3090,13 +3081,13 @@ AC_DEFINE(XREGISTERIMINSTANTIATECALLBACK_NONSTANDARD_PROTOTYPE)]) dnl autodetect -lXmu - test -z "$with_xmu" && { AC_CHECK_LIB(Xmu, XmuReadBitmapDataFromFile, - with_xmu=yes, with_xmu=no) } + AC_CHECK_LIB(Xmu, XmuReadBitmapDataFromFile, with_xmu=yes, with_xmu=no) if test "$with_xmu" = "no"; then - XE_ADD_OBJS(xmu.o) + AC_MSG_ERROR([We're sorry, but we thought there were no systems without Xmu by now. +You cannot build this version of XEmacs for X11 without Xmu. Please report +this to xemacs-beta@xemacs.org. As a workaround, revert to XEmacs 21.5.29.]) else XE_PREPEND(-lXmu, libs_x) - AC_DEFINE(HAVE_XMU) fi dnl Autodetect -lXbsd @@ -3255,7 +3246,7 @@ dnl if test "$with_tty" = "no" ; then dnl AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.]) dnl fi - for feature in with_tooltalk with_cde with_offix with_wmcommand with_xim with_xmu enable_sound_nas + for feature in with_tooltalk with_cde with_wmcommand with_xim enable_sound_nas do if eval "test -n \"\$${feature}\" -a \"\$${feature}\" != \"no\"" ; then AC_MSG_WARN([--$feature ignored: Not valid without X support]) @@ -3491,42 +3482,12 @@ need_motif=yes # CDE requires Motif fi -dnl Always compile OffiX unless --without-offix is given, no -dnl X11 support is compiled in, no standard Xmu is available, -dnl or dragndrop support is disabled -dnl Because OffiX support currently loses when more than one display -dnl is in use, we now disable it by default -slb 07/10/1998. -test "$window_system" != "x11" && with_offix=no -if test "$with_xmu" != yes -a "$with_x11" = yes; then - if test "$with_offix" = "yes" ; then - AC_MSG_WARN([--with-offix forced to `no'; no real Xmu support]) - fi - with_offix=no -fi -if test "$with_dragndrop" = no; then - if test "$with_offix" = "yes" ; then - AC_MSG_WARN([--with-offix forced to `no'; no generic Drag'n'Drop support]) - fi - with_offix=no -fi -if test "$with_cde" = yes; then - if test "$with_offix" = "yes" ; then - AC_MSG_WARN([--with-offix forced to `no'; CDE already found]) - fi - with_offix=no -fi -test -z "$with_offix" && with_offix=no -if test "$with_offix" = "yes"; then - AC_DEFINE(HAVE_OFFIX_DND) - XE_APPEND(offix.o, dnd_objs) - XE_APPEND(OffiX, dragndrop_proto) -fi if test "$with_gtk" = "yes"; then XE_APPEND(GTK, dragndrop_proto) fi dnl Autodetect Drag'n'Drop support -dnl always included if CDE, Offix, or MSWindows are defined +dnl always included if CDE or MSWindows is defined if test "$with_dragndrop" != "no" ; then AC_MSG_CHECKING(if drag and drop API is needed) if test -n "$dragndrop_proto" ; then @@ -5532,6 +5493,7 @@ test "$enable_quick_build" = "yes" && AC_DEFINE(QUICK_BUILD) test "$with_purify" = "yes" && AC_DEFINE(PURIFY) test "$with_quantify" = "yes" && AC_DEFINE(QUANTIFY) +test "$with_valgrind" = "yes" && AC_DEFINE(USE_VALGRIND) test "$with_pop" = "yes" && AC_DEFINE(MAIL_USE_POP) test "$with_kerberos" = "yes" && AC_DEFINE(KERBEROS) test "$with_hesiod" = "yes" && AC_DEFINE(HESIOD) @@ -5635,9 +5597,6 @@ if test "$with_xauth" != yes; then echo " - Xau (X authority) not available." fi - if test "$with_xmu" != yes; then - echo " - Xmu library not available; substituting equivalent routines." - fi if test "$with_wmcommand" != no; then echo " - Handling WM_COMMAND properly." fi @@ -5850,6 +5809,7 @@ echo " WARNING: Error checking is on by default for XEmacs beta releases." echo " WARNING: ---------------------------------------------------------" fi +test "$with_valgrind" = yes && echo " Compiling in support for memory debugging with Valgrind." echo "" ) | tee -a Installation dnl echo "The above configure report is appended to \"Installation\" file."
--- a/etc/ChangeLog Fri Jan 01 19:45:39 2010 +0000 +++ b/etc/ChangeLog Thu Jan 07 17:01:25 2010 +0000 @@ -1,3 +1,19 @@ +2010-01-04 Jerry James <james@xemacs.org> + + * Emacs.ad: Change /usr/lib/X11 to /usr/share/X11. + * xemacs.1: Ditto. + +2009-12-18 Jerry James <james@xemacs.org> + + * idd/drop: Remove. + * idd/dropmsk: Remove. + +2009-12-10 Jerry James <james@xemacs.org> + + * sparcworks/SW.Editor.xpm: Remove obsolete file. + * sparcworks/sunpro-mailcap: Ditto. + * sparcworks: Remove empty directory. + 2009-12-03 Jerry James <james@xemacs.org> * custom/example-themes/europe-theme.el:
--- a/etc/Emacs.ad Fri Jan 01 19:45:39 2010 +0000 +++ b/etc/Emacs.ad Thu Jan 07 17:01:25 2010 +0000 @@ -9,7 +9,7 @@ ! changes to .../etc/Emacs.ad made after XEmacs has been built will have no ! effect. ! -! However, you may copy .../etc/Emacs.ad to /usr/lib/X11/app-defaults/Emacs +! However, you may copy .../etc/Emacs.ad to /usr/share/X11/app-defaults/Emacs ! (or whatever the standard app-defaults directory is at your site) to cause ! it to be consulted at run-time. (Do this only for site-wide customizations: ! personal customizations should be put into ~/.Xresources instead.)
--- a/etc/idd/drop Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -#define drop_width 16 -#define drop_height 16 -#define drop_x_hot 6 -#define drop_y_hot 4 -static unsigned char drop_bits[] = { - 0x00, 0x00, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0x42, 0x04, 0xc2, 0x04, - 0xc2, 0x05, 0xc2, 0x07, 0xc2, 0x07, 0xc2, 0x0f, 0xfe, 0x1f, 0xc0, 0x07, - 0xc0, 0x06, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x08};
--- a/etc/idd/dropmsk Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -#define drop_width 16 -#define drop_height 16 -#define drop_x_hot 6 -#define drop_y_hot 4 -static unsigned char drop_bits[] = { - 0x00, 0x00, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0x42, 0x04, 0xc2, 0x04, - 0xc2, 0x05, 0xc2, 0x07, 0xc2, 0x07, 0xc2, 0x0f, 0xfe, 0x1f, 0xc0, 0x07, - 0xc0, 0x06, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x08};
--- a/etc/sparcworks/SW.Editor.xpm Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -/* XPM */ -static char *noname[] = { -/* width height ncolors chars_per_pixel */ -"64 64 17 1", -/* colors */ -"` c #ABABAB", -"a c #C34C4C", -"b c #DBB794", -"c c #94DBB7", -"d c #DBFFEE", -"e c #A0A0A0", -"f c #BAEADA", -"g c #888888", -"h c #7C7C7C", -"i c #FFFFB7", -"j c #DB9494", -"k c #FFB7B7", -"l c #FFFFFF", -"m c #4C4C4C", -"n c #F3F3F3", -"o c #DBDBDB", -"p c #CFCFCF", -/* pixels */ -"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", -"mlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllom", -"mlnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnpm", -"mloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooopm", -"mlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllom", -"mlnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnpm", -"mloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooopm", -"mlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllom", -"mlnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnpm", -"mloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooopm", -"mlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllom", -"mlnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnpm", -"mloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooopm", -"mllllllllllllllll````````````````````````````````lllllllllllllom", -"mlnnnnnnnnnnnnnnn`oooooooooooooooooooooooooooooolnnnnnnnnnnnnnpm", -"mlooooooooooooooo`oooooooooooooooooooooooooooooolooooooooooooopm", -"mllllllllllllllll`oooooooooooooooooooooooooooooollllllllllllllom", -"mlnnnnnnnnnnnnnnn`ooooooooooooooooooooooommmoooolnnnnnnnnnnnnnpm", -"mlooooooooooooooo`ooogggggggggggggggoooomkkjmooolooooooooooooopm", -"mllllllllllllllll`oooglllllllllllllgmooomkkjmooollllllllllllllom", -"mlnnnnnnnnnnnnnnn`oooglllllllllllllglmommkjmmooolnnnnnnnnnnnnnpm", -"mlooooooooooooooo`ooogllmmmlmmmllllgllmmimmmeeoolooooooooooooopm", -"mllllllllllllllll`oooglllllllllllllmmmmiiibmeeoollllllllllllllom", -"mlnnnnnnnnnnnnnnn`ooogllmmmmmlllllllllmiibmeeooolnnnnnnnnnnnnnpm", -"mlooooooooooooooo`oooglllllllllllllllmiiibmeeooolooooooooooooopm", -"mllllllllllllllll`ooogllllmmmmmmmmlllmiibmeeoooollllllllllllllom", -"mlnnnnnnnnnnnnnnn`ooogllllllllllllllmiiibmeeoooolnnnnnnnnnnnnnpm", -"mlooooooooooooooo`oooglllllllmmmmlmmmiibmeeooooolooooooooooooopm", -"mllllllllllllllll`ooogllllllllllllllmiibmeeooooollllllllllllllom", -"mlnnnnnnnnnnnnnnn`oooglllmmmmlmmmmllmmimeeoooooolnnnnnnnnnnnnnpm", -"mlooooooooooooooo`oooglllllaaaaaaallmmmmeooooooolooooooooooooopm", -"mllllllllllllllll`oooglllaammmmmmmllmmemoooooooollllllllllllllom", -"mlnnnnnnnnnnnnnnn`oooglllalllllllllameemoooooooolnnnnnnnnnnnnnpm", -"mlooooooooooooooo`oooglllaallmmmmmaahllmoooooooolooooooooooooopm", -"mllllllllllllllll`oooglllllaaaaaaalllllmoooooooollllllllllllllom", -"mlnnnnnnnnnnnnnnn`ooogllllmmlmmmmmlllllmoooooooolnnnnnnnnnnnnnpm", -"mlooooooooooooooo`oooglllllllllllllllllmoooooooolooooooooooooopm", -"mllllllllllllllll`oooglllmmmlllllllllllmoooooooollllllllllllllom", -"mlnnnnnnnnnnnnnnn`oooglllllllllllllllllmoooooooolnnnnnnnnnnnnnpm", -"mlooooooooooooooo`oooglllllllllllllllllmoooooooolooooooooooooopm", -"mllllllllllllllll`ooommmmmmmmmmmmmmmmmmmoooooooollllllllllllllom", -"mlnnnnnnnnnnnnnnn`oooooooooooooooooooooooooooooolnnnnnnnnnnnnnpm", -"mlooooooooooooooo`oooooooooooooooooooooooooooooolooooooooooooopm", -"mllllllllllllllll`oooooooooooooooooooooooooooooollllllllllllllom", -"mlnnnnnnnnnnnnnnn`lllllllllllllllllllllllllllllllnnnnnnnnnnnnnpm", -"mloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooopm", -"mlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllom", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm", -"mfcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccm", -"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm" -};
--- a/etc/sparcworks/sunpro-mailcap Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -application/postscript; pageview %s; needsx11
--- a/etc/xemacs.1 Fri Jan 01 19:45:39 2010 +0000 +++ b/etc/xemacs.1 Thu Jan 07 17:01:25 2010 +0000 @@ -288,7 +288,7 @@ Sets the color of the text. See the file -.I /usr/lib/X11/rgb.txt +.I /usr/share/X11/rgb.txt for a list of valid color names. .TP
--- a/lib-src/ChangeLog Fri Jan 01 19:45:39 2010 +0000 +++ b/lib-src/ChangeLog Thu Jan 07 17:01:25 2010 +0000 @@ -1,3 +1,40 @@ +2009-12-21 Jerry James <james@xemacs.org> + + * Makefile.in.in: Remove rules for building yow. + * yow.c: Removed. + +2009-12-18 Jerry James <james@xemacs.org> + + * Makefile.in.in: Don't install rcs-checkin. + * rcs-checkin: Remove obsolete file. + +2009-12-18 Jerry James <james@xemacs.org> + + * installexe.sh: Add copyright and GPL v2 or later header with + permission of Andy Piper. + +2009-12-15 Jerry James <james@xemacs.org> + + * ad2c: Add GPL v2 or later notice with permission of George Ferguson. + See the xemacs-beta thread beginning with message + <870180fe0912090940mac19378ydab5b5a04bf06cf8@mail.gmail.com>. + +2009-12-15 Jerry James <james@xemacs.org> + + * Makefile.in.in: Remove build dependency and rule for wakeup. Thanks + to Mats Lidell for the patch. + +2009-12-10 Jerry James <james@xemacs.org> + + * gnudepend.pl: Remove obsolete file. + * leditcfns.c: Ditto. + * wakeup.c: Ditto. + +2009-12-08 Sjoerd Mullender <sjoerd@acm.org> + + * etags.c (absolute_filename): Use memmove instead of strcpy to move + characters within a string. + 2009-11-10 Jerry James <james@xemacs.org> * fakemail.c (MAIL_PROGRAM_NAME): No s&m files define this now, so
--- a/lib-src/Makefile.in.in Fri Jan 01 19:45:39 2010 +0000 +++ b/lib-src/Makefile.in.in Thu Jan 07 17:01:25 2010 +0000 @@ -96,11 +96,11 @@ #endif etags ctags b2m ootags -PUBLIC_INSTALLABLE_SCRIPTS=\ #ifdef INSTALL_GNUSERV - gnudoit gnuattach\ +PUBLIC_INSTALLABLE_SCRIPTS=gnudoit gnuattach +#else +PUBLIC_INSTALLABLE_SCRIPTS= #endif - rcs-checkin PUBLIC_INSTALLABLES = ${PUBLIC_INSTALLABLE_EXES} ${PUBLIC_INSTALLABLE_SCRIPTS} @@ -117,8 +117,8 @@ #else fakemail\ #endif - wakeup profile make-docfile digest-doc\ - sorted-doc movemail cvtmail yow hexl mmencode + profile make-docfile digest-doc\ + sorted-doc movemail cvtmail hexl mmencode GEN_SCRIPTS = rcs2log vcdiff gzip-el.sh PKG_SCRIPTS = add-big-package.sh @@ -337,9 +337,6 @@ ctags: ${etags_deps} etags $(CC) -DCTAGS ${etags_args} -o $@ -wakeup: ${srcdir}/wakeup.c - $(CC) $(cflags) ${srcdir}/wakeup.c $(ldflags) -o $@ - profile: ${srcdir}/profile.c $(CC) $(cflags) ${srcdir}/profile.c $(ldflags) -o $@ @@ -366,9 +363,6 @@ fakemail: ${srcdir}/fakemail.c ../src/config.h $(CC) $(cflags) ${srcdir}/fakemail.c $(ldflags) -o $@ -yow: ${srcdir}/yow.c ../src/paths.h - $(CC) $(cflags) ${srcdir}/yow.c $(ldflags) -o $@ - i: ${srcdir}/i.c $(CC) $(cflags) ${srcdir}/i.c $(ldflags) -o $@
--- a/lib-src/ad2c Fri Jan 01 19:45:39 2010 +0000 +++ b/lib-src/ad2c Thu Jan 07 17:01:25 2010 +0000 @@ -12,6 +12,23 @@ # 7 Jan 1992: matthew@sunpix.East.Sun.COM (Matthew Stier) # Escape quotes after escaping backslashes. # +# This file is part of XEmacs. +# +# XEmacs is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2, or (at your option) any +# later version. +# +# XEmacs is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with XEmacs; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, +# Boston, MA 02111-1301, USA. */ +# # Synched up with: Not in FSF. sed '
--- a/lib-src/etags.c Fri Jan 01 19:45:39 2010 +0000 +++ b/lib-src/etags.c Thu Jan 07 17:01:25 2010 +0000 @@ -6829,13 +6829,13 @@ else if (cp[0] != '/') cp = slashp; #endif - strcpy (cp, slashp + 3); + memmove (cp, slashp + 3, strlen (slashp + 3) + 1); slashp = cp; continue; } else if (slashp[2] == '/' || slashp[2] == '\0') { - strcpy (slashp, slashp + 2); + memmove (slashp, slashp + 2, strlen (slashp + 2) + 1); continue; } }
--- a/lib-src/gnudepend.pl Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -#!/usr/bin/perl - -while (<>) -{ - if (/\\$/) - { - chop; - $foo .= $_; - } - else - { - @foo = split (/[ \\:]+/, $foo); - $filename = $foo[0]; - if (($filename =~ /^unex/) || - ($filename =~ /^sgiplay/) || - ($filename =~ /^Extern/) || - ($filename =~ /^extw/)) - { - $foo = ""; - next; - } - @foo = grep (!/\.c$/, @foo); - @foo = grep ((s/\/.*lwlib\//\$(LWLIBSRCDIR)\//, 1), @foo); - @foo = grep (!/lisp\.h/, @foo); - @foo = grep (!/lisp\.h/, @foo); - @foo = grep (!/lisp-union\.h/, @foo); - @foo = grep (!/lisp-disunion\.h/, @foo); - @foo = grep (!/lrecord\.h/, @foo); - @foo = grep (!/emacsfns\.h/, @foo); - @foo = grep (!/symeval\.h/, @foo); - @foo = grep (!/symsinit\.h/, @foo); - @foo = grep (!/syssignal\.h/, @foo); - @foo = grep (!/intl\.h/, @foo); - @foo = grep (!/tt_c\.h/, @foo); - @foo = grep (!/descrip\.h/, @foo); - shift @foo; - foreach $i (0 .. $#foo) - { - $foo[$i] = $filename . ": " . $foo[$i]; - } - print $filename . ": config.h\n"; - print join ("\n", @foo); - print "\n"; - $foo = ""; - } -}
--- a/lib-src/installexe.sh Fri Jan 01 19:45:39 2010 +0000 +++ b/lib-src/installexe.sh Thu Jan 07 17:01:25 2010 +0000 @@ -1,5 +1,24 @@ #!bash +# Copyright (C) 1998 Andy Piper + +# This file is part of XEmacs. + +# XEmacs is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your +# option) any later version. + +# XEmacs is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with XEmacs; see the file COPYING. If not, write to the Free +# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. + install_prog=$1 shift
--- a/lib-src/leditcfns.c Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -/* Synched up with: FSF 19.28. */ - -#include <sgtty.h> -#include <signal.h> -#define STRLEN 100 -static char str[STRLEN+1] = "%?emacs"; /* extra char for the null */ - -switch_to_proc(){ - char *ptr = str; - while (*ptr) ioctl(0, TIOCSTI, ptr++); - ioctl(0, TIOCSTI, "\n"); - kill(getpid(), SIGTSTP); - } - -set_proc_str(ptr) char *ptr; { - if (strlen(ptr) <= STRLEN) - strcpy(str, ptr); - else - printf("string too long for set-proc-str: %s\n", ptr); - }
--- a/lib-src/rcs-checkin Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -#! /bin/sh - -# This script accepts any number of file arguments and checks them into RCS. -# -# Arguments which are detectably either RCS masters (with names ending in ,v) -# or Emacs version files (with names of the form foo.~<number>~) are ignored. -# For each file foo, the script looks for Emacs version files related to it. -# These files are checked in as deltas, oldest first, so that the contents of -# the file itself becomes the latest revision in the master. -# -# The first line of each file is used as its description text. The file itself -# is not deleted, as under VC with vc-keep-workfiles at its default of t, but -# all the version files are. -# -# If an argument file is already version-controlled under RCS, any version -# files are added to the list of deltas and deleted, and then the workfile -# is checked in again as the latest version. This is probably not quite -# what was wanted, and is the main reason VC doesn't simply call this to -# do checkins. -# -# This script is intended to be used to convert files with an old-Emacs-style -# version history for use with VC (the Emacs 19 version-control interface), -# which likes to use RCS as its back end. It was written by Paul Eggert -# and revised/documented for use with VC by Eric S. Raymond, Mar 19 1993. - -case $# in -0) - echo "rcs-checkin: usage: rcs-checkin file ..." - echo "rcs-checkin: function: checks file.~*~ and file into a new RCS file" - echo "rcs-checkin: function: uses the file's first line for the description" -esac - -# expr pattern to extract owner from ls -l output -ls_owner_pattern='[^ ][^ ]* *[^ ][^ ]* *\([^ ][^ ]*\)' - -for file -do - # Make it easier to say `rcs-checkin *' - # by ignoring file names that already contain `~', or end in `,v'. - case $file in - *~* | *,v) continue - esac - # Ignore non-files too. - test -f "$file" || continue - - # Check that file is readable. - test -r "$file" || exit - - # If the RCS file does not already exist, - # initialize it with a description from $file's first line. - rlog -R "$file" >/dev/null 2>&1 || - rcs -i -q -t-"`sed 1q $file`" "$file" || exit - - # Get list of old files. - oldfiles=` - ls $file.~[0-9]*~ 2>/dev/null | - sort -t~ -n +1 - ` - - # Check that they are properly sorted by date. - case $oldfiles in - ?*) - oldfiles_by_date=`ls -rt $file $oldfiles` - test " $oldfiles -$file" = " $oldfiles_by_date" || { - echo >&2 "rcs-checkin: skipping $file, because its mod times are out of order. - -Sorted by mod time: -$oldfiles_by_date - -Sorted by name: -$oldfiles -$file" - continue - } - esac - - echo >&2 rcs-checkin: checking in: $oldfiles $file - - # Save $file as $file.~-~ temporarily. - mv "$file" "$file.~-~" || exit - - # Rename each old file to $file, and check it in. - for oldfile in $oldfiles - do - mv "$oldfile" "$file" || exit - ls_l=`ls -l "$file"` || exit - owner=-w`expr " $ls_l" : " $ls_owner_pattern"` || owner= - echo "Formerly ${oldfile}" | ci -d -l -q $owner "$file" || exit - done - - # Bring $file back from $file.~-~, and check it in. - mv "$file.~-~" "$file" || exit - ls_l=`ls -l "$file"` || exit - owner=-w`expr " $ls_l" : " $ls_owner_pattern"` || owner= - ci -d -q -u $owner -m"entered into RCS" "$file" || exit -done -
--- a/lib-src/wakeup.c Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* Program to produce output at regular intervals. */ - -#include <config.h> - -#if __STDC__ || defined(STDC_HEADERS) -#include <stdlib.h> -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif -#endif - -#include <stdio.h> -#include <sys/types.h> - -#ifdef WIN32_NATIVE -#define WIN32_LEAN_AND_MEAN -#include <windows.h> -#undef sleep -#define sleep(t) Sleep ((t) * 1000) -#define getppid() (0) -#undef HAVE_SYS_TIME_H -#endif /* WIN32_NATIVE */ - -#ifdef TIME_WITH_SYS_TIME -#include <sys/time.h> -#include <time.h> -#else -#ifdef HAVE_SYS_TIME_H -#include <sys/time.h> -#else -#include <time.h> -#endif -#endif - -int -main (int argc, char *argv[]) -{ - int period = 60; - - if (argc > 1) - period = atoi (argv[1]); - - while (1) - { - /* Make sure wakeup stops when Emacs goes away. */ - if (getppid () == 1) - return 0; - printf ("Wake up!\n"); - /* If fflush fails, then our stdout pipe is broken. */ - if (fflush (stdout) != 0) - return 0; - /* If using a period of 60, produce the output when the minute - changes. */ - if (period == 60) - { - time_t when; - struct tm *tp; - time (&when); - tp = localtime (&when); - sleep (60 - tp->tm_sec); - } - else - sleep (period); - } -}
--- a/lib-src/yow.c Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,176 +0,0 @@ -/* - * yow.c - * - * Print a quotation from Zippy the Pinhead. - * Qux <Kaufman-David@Yale> March 6, 1986 - * - * With dynamic memory allocation. - */ - -/* Synched up with: FSF 19.28. */ - -#include <config.h> - -#include <stdio.h> -#include <ctype.h> -#include <../src/paths.h> /* For PATH_DATA. */ - -#if __STDC__ || defined(STDC_HEADERS) -#include <stdlib.h> -#include <unistd.h> -#include <string.h> -#include <time.h> /* for time() */ -#endif - -#define BUFSIZE 80 -#define SEP '\0' - -#ifndef YOW_FILE -#define YOW_FILE "yow.lines" -#endif - -void yow (FILE *fp); -void setup_yow (FILE *fp); - -#ifdef WIN32_NATIVE -#define rootrelativepath(rel) \ -({\ - static char res[BUFSIZE], *p;\ - strcpy (res, argv[0]);\ - p = res + strlen (res);\ - while (p != res && *p != '/' && *p != '\\' && *p != ':') p--;\ - strcpy (p + 1, "../");\ - strcpy (p + 4, rel);\ - &res;}) -#endif - -int -main (int argc, char *argv[]) -{ - FILE *fp; - char file[BUFSIZ]; - - if (argc > 2 && !strcmp (argv[1], "-f")) - strcpy (file, argv[2]); - else -#ifdef PATH_DATA -#ifdef vms - sprintf (file, "%s%s", PATH_DATA, YOW_FILE); -#else - sprintf (file, "%s/%s", PATH_DATA, YOW_FILE); -#endif -#else /* !PATH_DATA */ - { - fprintf (stderr, - "%s: the location of the \"%s\" file was not supplied at compile-time.\n\ - You must supply it with the -f command-line option.\n", - argv[0], YOW_FILE); - exit (1); - } -#endif - - if ((fp = fopen(file, "r")) == NULL) { - perror(file); - exit(1); - } - - /* initialize random seed */ - srand((int) (getpid() + time((time_t *) 0))); - - setup_yow(fp); - yow(fp); - fclose(fp); - return 0; -} - -static long len = -1; -static long header_len; - -#define AVG_LEN 40 /* average length of a quotation */ - -/* Sets len and header_len */ -void -setup_yow (FILE *fp) -{ - int c; - - /* Get length of file */ - /* Because the header (stuff before the first SEP) can be very long, - * thus biasing our search in favor of the first quotation in the file, - * we explicitly skip that. */ - while ((c = getc(fp)) != SEP) { - if (c == EOF) { - fprintf(stderr, "File contains no separators.\n"); - exit(2); - } - } - header_len = ftell(fp); - if (header_len > AVG_LEN) - header_len -= AVG_LEN; /* allow the first quotation to appear */ - - if (fseek(fp, 0L, 2) == -1) { - perror("fseek 1"); - exit(1); - } - len = ftell(fp) - header_len; -} - - -/* go to a random place in the file and print the quotation there */ -void -yow (FILE *fp) -{ - long offset; - int c, i = 0; - char *buf; - int bufsize; - - offset = rand() % len + header_len; - if (fseek(fp, offset, 0) == -1) { - perror("fseek 2"); - exit(1); - } - - /* Read until SEP, read next line, print it. - (Note that we will never print anything before the first separator.) - If we hit EOF looking for the first SEP, just recurse. */ - while ((c = getc(fp)) != SEP) - if (c == EOF) { - yow(fp); - return; - } - - /* Skip leading whitespace, then read in a quotation. - If we hit EOF before we find a non-whitespace char, recurse. */ - while (isspace(c = getc(fp))) - ; - if (c == EOF) { - yow(fp); - return; - } - - bufsize = BUFSIZE; - buf = (char *) malloc(bufsize); - if (buf == (char *)0) { - fprintf(stderr, "can't allocate any memory\n"); - exit (3); - } - - buf[i++] = c; - while ((c = getc(fp)) != SEP && c != EOF) { - buf[i++] = c; - - if (i == bufsize-1) { - /* Yow! Is this quotation too long yet? */ - bufsize *= 2; - buf = (char *)realloc(buf, bufsize); - if (buf == (char *)0) { - fprintf(stderr, "can't allocate more memory\n"); - exit (3); - } - } - } - buf[i++] = 0; - printf("%s\n", buf); -} -
--- a/lisp/ChangeLog Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/ChangeLog Thu Jan 07 17:01:25 2010 +0000 @@ -1,11 +1,123 @@ +2010-01-07 Aidan Kehoe <kehoea@parhasard.net> + + * unicode.el (load-unicode-tables): + * mule/mule-msw-init-late.el: + * mule/mule-category.el (predefined-category-list): + * mule/arabic.el: + Move arabic-iso8859-6 back to C, it needs to be there, otherwise + X11 character input lookup fails. + +2010-01-06 Didier Verna <didier@xemacs.org> + + * cl-extra.el (get-properties): New. + +2009-12-31 Aidan Kehoe <kehoea@parhasard.net> + + * list-mode.el (next-list-mode-item, switch-to-completions): Use + next-single-char-property-change, + previous-single-char-property-change now + next-single-property-change no longer pays attention to extents + not created using the text property functions. Fix for issue 546, + bug dates from changeset 8c96bdabcaf9. + +2009-12-21 Jerry James <james@xemacs.org> + + * dragdrop.el (offix-start-drag): Remove. + (offix-start-drag-region): Remove. + * mouse.el (mouse-begin-drag-n-drop): Remove OffiX support. + +2009-12-21 Adrian Aichner <adrian@xemacs.org> + + * package-get.el (package-get-download-sites): Remove + dk.xemacs.org from list of package download sites. + * package-get.el (package-get-pre-release-download-sites): Ditto. + +2009-12-21 Aidan Kehoe <kehoea@parhasard.net> + + * mule/arabic.el (arabic-iso8859-6): + Move the creation of this character set to this (dumped) file, + since it's needed for input on X11. + * mule/iso-with-esc.el: + Remove arabic-iso8859-6 and its Unicode map from this file. + * unicode.el (load-unicode-tables): + Load arabic-iso8859-6 on startup again. + +2009-12-19 Aidan Kehoe <kehoea@parhasard.net> + + * cl-macs.el (cl-do-arglist): + * cl-compat.el (keyword-of): + Remove support in our generated code for emacs versions where + keywords are not self-quoting. + +2009-12-18 Aidan Kehoe <kehoea@parhasard.net> + + * alist.el (modify-alist): + * autoload.el (update-autoload-files, autoload-print-form): + * bytecomp.el (batch-byte-compile-1) + (byte-compile-multiple-value-call, byte-compile-funcall) + (byte-compile-insert, byte-compile-concat, byte-compile-list) + (byte-compile-normal-call, byte-compile-flush-pending): + * cl-macs.el (letf): + * cl.el: + * disass.el (disassemble-1): + * easy-mmode.el (easy-mmode-define-syntax): + * faces.el (set-face-parent): + * files.el (cd): + * finder.el (finder-list-matches, finder-list-keywords) + (finder-compile-keywords): + * frame.el (frame-notice-user-settings) + (frame-remove-geometry-props): + * ldap.el (ldap-delete-entries, ldap-modify-entries) + (ldap-add-entries): + * loadhist.el (unload-feature): + * map-ynp.el (map-y-or-n-p): + * menubar-items.el (default-menubar): + * mouse.el (default-mouse-track-next-move-rect) + (default-mouse-track-next-move-rect) + (default-mouse-track-cleanup-hook) + (default-mouse-track-cleanup-extent): + * mule/ethio-util.el (ethio-fidel-to-sera-buffer) + (ethio-modify-vowel): + * obsolete.el: + * package-get.el (package-get-update-all): + * package-ui.el (pui-list-packages) + (pui-install-selected-packages, pui-install-selected-packages): + * select.el (select-make-extent-for-selection) + (dehilight-selection): + * simple.el (clone-buffer): + * term/tvi970.el: + * term/wyse50.el: + * unicode.el: + (load-unicode-tables): + * x-font-menu.el (fc-make-font-menu-entry) + (x-reset-device-font-menus-xft): + * x-misc.el (x-init-specifier-from-resources): + Eliminate byte-compile warnings, with the exception of Stephen's + various non-defined fontconfig functions, as I don't know if he + plans to add them and is keeping the warnings around as a + reminder. The warnings actually eliminated involve i) using mapcar + instead of mapc where the result is discarded and ii) using a + lambda quoted as data in a context where it is unequivocally used + as a function. + +2009-12-17 Aidan Kehoe <kehoea@parhasard.net> + + * mule/make-coding-system.el + (fixed-width-create-decode-encode-tables): + Use a rehash threshold of 0.999 for this hash table, now that hash + table rehash thresholds are serialised correctly; these hash + tables will never be resized, and it's not even that important + that they are *that* fast, for most of the coding systems they're + used a minority of the time. + 2010-01-01 Aidan Kehoe <kehoea@parhasard.net> - * syntax.el (map-syntax-table): - * subr.el (map-plist): - * startup.el (load-init-file): - * minibuf.el (read-from-minbuffer): - * cus-edit.el (custom-load-custom-defines-1): - * cmdloop.el (execute-extended-command): + * syntax.el (map-syntax-table): + * subr.el (map-plist): + * startup.el (load-init-file): + * minibuf.el (read-from-minbuffer): + * cus-edit.el (custom-load-custom-defines-1): + * cmdloop.el (execute-extended-command): Replace symbol names using underscore, whether to avoid dynamic scope problems or to ensure helpful arguments to #'call-with-condition-handler, with uninterned symbols. @@ -32,20 +144,20 @@ 2009-11-15 Aidan Kehoe <kehoea@parhasard.net> - * custom.el (custom-quote): + * custom.el (custom-quote): Define this as an alias for `quote-maybe', which is in C and more comprehensive; packages still use this name in places. (customize-mark-to-save, customize-mark-as-set): Use `quote-maybe', not `custom-quote'. * cus-edit.el (customize-set-variable, customize-save-variable) (custom-variable-value-create, custom-variable-set) - (custom-variable-pre-save): + (custom-variable-pre-save): Remove a version of `custom-quote' specific to this file; use `quote-maybe' universally instead. 2009-11-14 Aidan Kehoe <kehoea@parhasard.net> - * bytecomp.el (byte-compile-funarg-n): + * bytecomp.el (byte-compile-funarg-n): New macro, used to create the various byte-compile-funarg functions, which check for quoted lambdas in given positions. (byte-compile-funarg, byte-compile-funarg-2) @@ -55,21 +167,21 @@ to this problem. Be much more comprehensive in the functions that we use byte-compile-funarg and related function to compile, especially - including functions from cl-seq.el. + including functions from cl-seq.el. 2009-11-14 Aidan Kehoe <kehoea@parhasard.net> - * cl-macs.el (letf): + * cl-macs.el (letf): Check whether arguments to #'values are bound, and make them unbound after evaluating BODY; document the limitations of this macro. 2009-11-14 Aidan Kehoe <kehoea@parhasard.net> - * faces.el (init-other-random-faces): + * faces.el (init-other-random-faces): If the modeline face is using its fallbacks, avoid that, specify the corresponding problems instead. Fixes problems described in - http://mid.gmane.org/3ggprc2diyt.wl_Ron.Isaacson@morganstanley.com + http://mid.gmane.org/3ggprc2diyt.wl_Ron.Isaacson@morganstanley.com 2009-11-09 Didier Verna <didier@xemacs.org> @@ -78,9 +190,29 @@ * buffer.el (switch-to-buffer): Don't offer the current buffer in the completion list. +2009-11-08 Aidan Kehoe <kehoea@parhasard.net> + + * bytecomp.el (save-window-excursion): + Remove the compiler form for this bytecode, we no longer generate + calls to it. Keep the information about the bytecode's numeric + value, we want that for disassembling code. + +2009-11-08 Aidan Kehoe <kehoea@parhasard.net> + + * cl-extra.el (cl-string-vector-equalp) + (cl-bit-vector-vector-equalp, cl-vector-array-equalp) + (cl-hash-table-contents-equalp): New functions, to implement + equalp treating arrays with identical contents as equivalent, as + specified by Common Lisp. + (equalp): Revise this function to implement array equivalence, + and the hash-table equalp behaviour specified by CL. + * cl-macs.el (equalp): Add a compiler macro for this function, + used when one of the arguments is constant, and as such, its type + is known at compile time. + 2009-11-01 Aidan Kehoe <kehoea@parhasard.net> - * cl-extra.el (equalp): + * cl-extra.el (equalp): Don't error if handed a string and a non-string. 2009-11-01 Stephen Turnbull <stephen@xemacs.org> @@ -136,7 +268,7 @@ 2009-10-30 Aidan Kehoe <kehoea@parhasard.net> - * cl-macs.el (regexp-quote): + * cl-macs.el (regexp-quote): If STRING is constant, call regexp-quote at compile time. 2009-10-24 Aidan Kehoe <kehoea@parhasard.net> @@ -147,32 +279,32 @@ New function; return t if file names under PATH should be treated case-insensitively. * minibuf.el (read-file-name-1, read-file-name-internal-1) - (read-file-name-internal-1): - * package-admin.el (package-admin-check-manifest): + (read-file-name-internal-1): + * package-admin.el (package-admin-check-manifest): Use file-system-ignore-case-p instead of checking system-type directly in these functions. (Even though minibuf.el is dumped before files.el, the function is only called in interactive usage, - there's no dump time order dependency here.) + there's no dump time order dependency here.) 2009-10-19 Aidan Kehoe <kehoea@parhasard.net> - * bytecomp.el (byte-compile-default-warnings): + * bytecomp.el (byte-compile-default-warnings): Add two new warning types, discarded-consing (basically use of mapcar instead of mapc where its result is discarded) and quoted-lambda (use of a lambda expression quoted as data in a function context). - (byte-compile-warnings): Document the new warnings. + (byte-compile-warnings): Document the new warnings. (byte-compile-fset, byte-compile-funarg): Implement the - quoted-lambda warning option. + quoted-lambda warning option. (byte-compile-mapcar): Renamed to byte-compile-maybe-mapc. - (byte-compile-maybe-mapc, byte-compile-maplist): - Implement the discarded-consing warning option. + (byte-compile-maybe-mapc, byte-compile-maplist): + Implement the discarded-consing warning option. Add more functions that should be compiled using byte-compile-funarg, notably mapvector, mapc-internal, - map-char-table. - * cl-macs.el (mapcar*): + map-char-table. + * cl-macs.el (mapcar*): If we know at compile time that there are no CL options being - used, use the mapcar subr, not the byte-coded function. + used, use the mapcar subr, not the byte-coded function. 2009-10-12 Aidan Kehoe <kehoea@parhasard.net> @@ -184,13 +316,13 @@ mapc-internal call instead, and warn, because the programmer probably can't rely on always being compiled by an XEmacs that does this. Similarly for maplist and mapl; and use - byte-compile-funarg for map, mapl, mapcan, mapcon. + byte-compile-funarg for map, mapl, mapcan, mapcon. 2009-10-12 Aidan Kehoe <kehoea@parhasard.net> - * cl-macs.el (delete-duplicates): + * cl-macs.el (delete-duplicates): Fix another bug in the delete-duplicates compiler macro, thank you - the byte compiler. + the byte compiler. 2009-10-07 Andreas Roehler <andreas.roehler@online.de> @@ -227,7 +359,7 @@ 2009-10-03 Aidan Kehoe <kehoea@parhasard.net> - * cl-macs.el (delete-duplicates): + * cl-macs.el (delete-duplicates): Make this compiler macro aware that CL-SEQ is a sequence, which may not necessarily be a list. @@ -245,66 +377,66 @@ 2009-09-27 Aidan Kehoe <kehoea@parhasard.net> - * cus-edit.el (custom-variable-prompt): + * cus-edit.el (custom-variable-prompt): nil is a symbol, check that variable-at-point is non-nil before checking if it's a symbol when deciding on the prompt used in this - function. + function. 2009-09-22 Andreas Roehler <andreas.roehler@online.de> * lisp.el (beginning-of-defun-raw): - new variable: beginning-of-defun-function, + new variable: beginning-of-defun-function, beginning-of-defun may call FUNCTION determining start position * lisp.el (end-of-defun): - new variable: end-of-defun-function, + new variable: end-of-defun-function, end-of-defun may call FUNCTION determining the end position 2009-09-20 Aidan Kehoe <kehoea@parhasard.net> Add arglist information to docstrings for autoloaded functions and macros. - * hyper-apropos.el (hyper-apropos-get-doc): + * hyper-apropos.el (hyper-apropos-get-doc): Treat autoload docstrings like subr docstrings; correct the regexp used. - * help.el (describe-function-show-arglist): - This no longer treats autoloads specially. - (function-arglist): Treat autoload docstrings like subr docstrings. + * help.el (describe-function-show-arglist): + This no longer treats autoloads specially. + (function-arglist): Treat autoload docstrings like subr docstrings. (function-documentation): Treat documentation strings that are zero-length after the arglist has been removed as indicating a lack of documentation. - * cl-macs.el (case): - (ecase): - (typecase): - (etypecase): - (block): - (return): - (return-from): - (progv): - (lexical-let): - (lexical-let*): - (remf): - (callf): - (callf2): - (define-modify-macro): - (deftype): - (define-compiler-macro): + * cl-macs.el (case): + (ecase): + (typecase): + (etypecase): + (block): + (return): + (return-from): + (progv): + (lexical-let): + (lexical-let*): + (remf): + (callf): + (callf2): + (define-modify-macro): + (deftype): + (define-compiler-macro): Rely on the autoload code to always show an arglist for these functions, don't supply an ad-hoc one in the docstring. These changes are for the most obvious functions; there are some missed that would require changing argument names in the docstring or in the function bodies. - * autoload.el (make-autoload): + * autoload.el (make-autoload): Add arg list information to the doc string, using the same approach as for subrs. 2009-09-20 Aidan Kehoe <kehoea@parhasard.net> - * help.el (function-arglist): - Show the double-quotes in the sample output, correctly. - Bind print-gensym to nil, now we're using uninterned symbols. + * help.el (function-arglist): + Show the double-quotes in the sample output, correctly. + Bind print-gensym to nil, now we're using uninterned symbols. Don't #'mapcar + #'intern to create uppercase symbols, use #'loop and #'make-symbol instead. - * cl-macs.el (cl-upcase-arg): + * cl-macs.el (cl-upcase-arg): Don't intern the upcased symbols we're using for cosmetic reasons. Trust #'true-list-p in #'cl-function-arglist to detect circularity. @@ -317,82 +449,82 @@ 2009-09-20 Aidan Kehoe <kehoea@parhasard.net> - * mule/make-coding-system.el (make-coding-system): + * mule/make-coding-system.el (make-coding-system): Require a minimum of two, not four, arguments; thank you for the problem report, Adam Sjøgren! 2009-09-19 Aidan Kehoe <kehoea@parhasard.net> Move the #'query-coding-region implementation to C. - * coding.el: + * coding.el: Consolidate code that depends on the presence or absence of Mule - at the end of this file. + at the end of this file. (default-query-coding-region, query-coding-region): - Move these functions to C. + Move these functions to C. (default-query-coding-region-safe-charset-skip-chars-map): Remove this variable, the corresponding C variable is - Vdefault_query_coding_region_chartab_cache in file-coding.c. + Vdefault_query_coding_region_chartab_cache in file-coding.c. (query-coding-string): Update docstring to reflect actual multiple values, be more careful about not modifying a range table that we're currently mapping over. (encode-coding-char): Make the implementation of this simpler. (featurep 'mule): Autoload #'make-coding-system from mule/make-coding-system.el if we're a mule build; provide an - appropriate compiler macro. + appropriate compiler macro. Do various non-mule compatibility things if we're not a mule - build. - * update-elc.el (additional-dump-dependencies): + build. + * update-elc.el (additional-dump-dependencies): Add mule/make-coding-system as a dump time dependency if we're a - mule build. - * unicode.el (ccl-encode-to-ucs-2): - (decode-char): - (encode-char): + mule build. + * unicode.el (ccl-encode-to-ucs-2): + (decode-char): + (encode-char): Move these earlier in the file, for the sake of some byte compile - warnings. - (unicode-query-coding-region): + warnings. + (unicode-query-coding-region): Move this to unicode.c * mule/make-coding-system.el: New file, not dumped. Contains the functionality to rework the arguments necessary for fixed-width coding systems, and contains the implementation of #'make-coding-system, which now calls #'make-coding-system-internal. - * mule/vietnamese.el (viscii): - * mule/latin.el (iso-8859-2): - (windows-1250): - (iso-8859-3): - (iso-8859-4): - (iso-8859-14): - (iso-8859-15): - (iso-8859-16): - (iso-8859-9): - (macintosh): - (windows-1252): - * mule/hebrew.el (iso-8859-8): - * mule/greek.el (iso-8859-7): - (windows-1253): - * mule/cyrillic.el (iso-8859-5): - (koi8-r): - (koi8-u): - (windows-1251): - (alternativnyj): - (koi8-ru): - (koi8-t): - (koi8-c): - (koi8-o): - * mule/arabic.el (iso-8859-6): - (windows-1256): + * mule/vietnamese.el (viscii): + * mule/latin.el (iso-8859-2): + (windows-1250): + (iso-8859-3): + (iso-8859-4): + (iso-8859-14): + (iso-8859-15): + (iso-8859-16): + (iso-8859-9): + (macintosh): + (windows-1252): + * mule/hebrew.el (iso-8859-8): + * mule/greek.el (iso-8859-7): + (windows-1253): + * mule/cyrillic.el (iso-8859-5): + (koi8-r): + (koi8-u): + (windows-1251): + (alternativnyj): + (koi8-ru): + (koi8-t): + (koi8-c): + (koi8-o): + * mule/arabic.el (iso-8859-6): + (windows-1256): Move all these coding systems to being of type fixed-width, not of type CCL. This allows the distinct query-coding-region for them to be in C, something which will eventually allow us to implement query-coding-region for the mswindows-multibyte coding systems. - * mule/general-late.el (posix-charset-to-coding-system-hash): + * mule/general-late.el (posix-charset-to-coding-system-hash): Document why we're pre-emptively persuading the byte compiler that the ELC for this file needs to be written using escape-quoted. Call #'set-unicode-query-skip-chars-args, now the Unicode - query-coding-region implementation is in C. - * mule/thai-xtis.el (tis-620): + query-coding-region implementation is in C. + * mule/thai-xtis.el (tis-620): Don't bother checking whether we're XEmacs or not here. - * mule/mule-coding.el: + * mule/mule-coding.el: Move the eight bit fixed-width functionality from this file to make-coding-system.el. @@ -407,44 +539,44 @@ * simple.el (handle-pre-motion-command-current-command-is-motion): If KEY is a character, ascertain that once, not every iteration of the loop. - * mule/mule-cmds.el (finish-set-language-environment): + * mule/mule-cmds.el (finish-set-language-environment): Don't call #'string-match on a one-character string, use functions that have bytecodes instead, since this is called so often on - startup. + startup. 2009-08-31 Aidan Kehoe <kehoea@parhasard.net> - * byte-optimize.el (byte-optimize-form-code-walker): + * byte-optimize.el (byte-optimize-form-code-walker): Be careful about discarding multiple values when optimising - #'prog1 calls. - (byte-optimize-or): + #'prog1 calls. + (byte-optimize-or): Preserve any trailing nil, as this is a supported way to explicitly discard multiple values. (byte-optimize-cond-1): Discard multiple values with a singleton followed by no more clauses. - * bytecomp.el (progn): + * bytecomp.el (progn): (prog1): (prog2): Be careful about discarding multiple values in the byte-hunk - handler of these three forms. + handler of these three forms. * bytecomp.el (byte-compile-prog1, byte-compile-prog2): Don't call #'values explicitly, use `(or ,(pop form) nil) instead, since that compiles to bytecode, not a funcall. - * bytecomp.el (byte-compile-values): + * bytecomp.el (byte-compile-values): With one non-const argument, byte-compile to `(or ,(second form) nil), not an explicit #'values call. - * bytecomp.el (byte-compile-insert-header): + * bytecomp.el (byte-compile-insert-header): Be nicer in the error message to emacs versions that don't understand our bytecode. 2009-08-27 Aidan Kehoe <kehoea@parhasard.net> * cl.el (bytecomp-load-hook): New. - * bytecomp.el (bytecomp-load-hook): Use id. + * bytecomp.el (bytecomp-load-hook): Use id. Merge Dave Love's 2000-02-02 GNU (GPLv2) change, forcing the byte-compiler to be more consistent about loading cl-macs at - compile time. + compile time. 2009-08-19 Malcolm Purvis <malcolmp@xemacs.org> @@ -459,7 +591,7 @@ 2009-08-16 Aidan Kehoe <kehoea@parhasard.net> - * faces.el (xpm-color-symbols): + * faces.el (xpm-color-symbols): Call (featurep 'x) when faces.elc is dumped, not repeatedly (myriad times) at image instantiation time. @@ -470,17 +602,17 @@ 2009-08-14 Aidan Kehoe <kehoea@parhasard.net> - * minibuf.el (read-from-minibuffer): + * minibuf.el (read-from-minibuffer): Use buffer (format " *Minibuf-%d*" (minibuffer-depth)), regardless - of depth. + of depth. 2009-08-11 Aidan Kehoe <kehoea@parhasard.net> - * cl-extra.el (ceiling*, floor*, round*, truncate*): + * cl-extra.el (ceiling*, floor*, round*, truncate*): Implement these in terms of the C functions; mark them as - obsolete. + obsolete. (mod*, rem*): Use #'nth-value with the C functions, not #'nth with - the CL emulation functions. + the CL emulation functions. 2009-08-11 Aidan Kehoe <kehoea@parhasard.net> @@ -490,10 +622,10 @@ -- Four new bytecodes, and special compiler functions to compile multiple-value-call, multiple-value-list-internal, values, values-list, and, since it now needs to pass back multiple values - and is a special form, throw. + and is a special form, throw. -- There's a new compiler variable, byte-compile-checks-on-load, which is a list of forms that are evaluated at the very start of a - file, with an error thrown if any of them give nil. + file, with an error thrown if any of them give nil. -- The header is now inserted *after* compilation, giving a chance for the compilation process to influence what those checks are. There is still a check done before compilation for non-ASCII @@ -502,73 +634,73 @@ Space is reserved for checks; comments describing the version of the byte compiler generating the file are inserted if space remains for them. - * bytecomp.el (byte-compile-version): + * bytecomp.el (byte-compile-version): Update this, we're a newer version of the byte compiler. - * byte-optimize.el (byte-optimize-funcall): + * byte-optimize.el (byte-optimize-funcall): Correct a comment. - * bytecomp.el (byte-compile-lapcode): + * bytecomp.el (byte-compile-lapcode): Discard the arg with byte-multiple-value-call. - * bytecomp.el (byte-compile-checks-and-comments-space): + * bytecomp.el (byte-compile-checks-and-comments-space): New variable, describe how many octets to reserve for checks at - the start of byte-compiled files. - * cl-compat.el: + the start of byte-compiled files. + * cl-compat.el: Remove the fake multiple-value implementation. Have the functions - that use it use the real multiple-value implementation instead. - * cl-macs.el (cl-block-wrapper, cl-block-throw): + that use it use the real multiple-value implementation instead. + * cl-macs.el (cl-block-wrapper, cl-block-throw): Revise the byte-compile properties of these symbols to work now we've made throw into a special form; keep the byte-compile properties as anonymous lambdas, since we don't have docstrings - for them. + for them. * cl-macs.el (multiple-value-bind, multiple-value-setq) - (multiple-value-list, nth-value): + (multiple-value-list, nth-value): Update these functions to work with the C support for multiple values. - * cl-macs.el (values): + * cl-macs.el (values): Modify the setf handler for this to call #'multiple-value-list-internal appropriately. - * cl-macs.el (cl-setf-do-store): + * cl-macs.el (cl-setf-do-store): If the store form is a cons, treat it specially as wrapping the store value. - * cl.el (cl-block-wrapper): + * cl.el (cl-block-wrapper): Make this an alias of #'and, not #'identity, since it needs to pass back multiple values. - * cl.el (multiple-value-apply): - We no longer support this, mark it obsolete. - * lisp-mode.el (eval-interactive-verbose): - Remove a useless space in the docstring. - * lisp-mode.el (eval-interactive): + * cl.el (multiple-value-apply): + We no longer support this, mark it obsolete. + * lisp-mode.el (eval-interactive-verbose): + Remove a useless space in the docstring. + * lisp-mode.el (eval-interactive): Update this function and its docstring. It now passes back a list, basically wrapping any eval calls with multiple-value-list. This - allows multiple values to be printed by default in *scratch*. - * lisp-mode.el (prin1-list-as-multiple-values): + allows multiple values to be printed by default in *scratch*. + * lisp-mode.el (prin1-list-as-multiple-values): New function, printing a list as multiple values in the manner of Bruno Haible's clisp, separating each entry with " ;\n". * lisp-mode.el (eval-last-sexp): Call #'prin1-list-as-multiple-values on the return value of - #'eval-interactive. - * lisp-mode.el (eval-defun): + #'eval-interactive. + * lisp-mode.el (eval-defun): Call #'prin1-list-as-multiple-values on the return value of - #'eval-interactive. - * mouse.el (mouse-eval-sexp): + #'eval-interactive. + * mouse.el (mouse-eval-sexp): Deal with lists corresponding to multiple values from #'eval-interactive. Call #'cl-prettyprint, which is always available, instead of sometimes calling #'pprint and sometimes - falling back to prin1. - * obsolete.el (obsolete-throw): + falling back to prin1. + * obsolete.el (obsolete-throw): New function, called from eval.c when #'funcall encounters an attempt to call #'throw (now a special form) as a function. Only - needed for compatibility with 21.4 byte-code. + needed for compatibility with 21.4 byte-code. 2009-08-10 Aidan Kehoe <kehoea@parhasard.net> - * help.el (function-arglist, function-documentation): + * help.el (function-arglist, function-documentation): Deal more gracefully with tabs in the function arglist; in function-documentation, when stripping the arglist, pay attention to the fact that they may span multiple lines. 2009-08-09 Aidan Kehoe <kehoea@parhasard.net> - * faces.el (set-face-background-pixmap-file): + * faces.el (set-face-background-pixmap-file): Remove some extra parentheses revealed by change set 7757334005ae. 2009-08-07 Mike Sperber <mike@xemacs.org> @@ -596,48 +728,48 @@ 2009-07-18 Aidan Kehoe <kehoea@parhasard.net> - * files.el (find-file-create-switch-thunk): + * files.el (find-file-create-switch-thunk): Check that #'buffer-file-name gives non-nil before trying to determine whether that file exists; avoids problems in dired. Thank you Mats Lidell! 2009-07-13 Aidan Kehoe <kehoea@parhasard.net> - * code-files.el (insert-file-contents): + * code-files.el (insert-file-contents): Set the buffer coding system even on error; especially important - when dealing with nonexistent files. + when dealing with nonexistent files. If the `coding-system' property of an undecided coding system is itself undecided, don't use that as a value for - buffer-file-coding-system. + buffer-file-coding-system. 2009-07-12 Aidan Kehoe <kehoea@parhasard.net> - * files.el (after-find-file): + * files.el (after-find-file): If the answer to "The directory containing %s does not exist. Create?" is no, kill the current buffer, since the user probably just misspelled the directory name. Thank you Rodney Sparapani! 2009-07-12 Aidan Kehoe <kehoea@parhasard.net> - * files.el (find-file-create-switch-thunk): + * files.el (find-file-create-switch-thunk): New macro, used to mark buffers created within #'find-file (and related) modified if the associated file doesn't exist. - (find-alternate-file-other-window): - Correct this, pass CODESYS to find-file-other-window. - (find-file-read-only): - Correct behaviour of this function in the presence of wildcards. - (find-file): - (find-file-other-window): - (find-file-other-frame): - (find-file-read-only-other-window): - (find-file-read-only-other-frame): - (find-alternate-file): + (find-alternate-file-other-window): + Correct this, pass CODESYS to find-file-other-window. + (find-file-read-only): + Correct behaviour of this function in the presence of wildcards. + (find-file): + (find-file-other-window): + (find-file-other-frame): + (find-file-read-only-other-window): + (find-file-read-only-other-frame): + (find-alternate-file): Simplify these functions, use #'find-file-create-switch-thunk' - instead of explicit #'switch-to-buffer calls. + instead of explicit #'switch-to-buffer calls. 2009-07-11 Aidan Kehoe <kehoea@parhasard.net> - * code-files.el (insert-file-contents): + * code-files.el (insert-file-contents): Take advantage of more sensible behaviour from #'insert-file-contents-internal, allowing us to actually follow the documented coding system behaviour for nonexistent files (that @@ -651,19 +783,19 @@ 2009-06-14 Aidan Kehoe <kehoea@parhasard.net> - * help.el (describe-function-1): + * help.el (describe-function-1): Check macro-p, not macrop, when describing whether a symbol has an associated macro or an associated function. Relevant with - autoloaded macros. - (function-arglist): + autoloaded macros. + (function-arglist): Accept multi-line arglists in built-in functions, as found in #'write-region-internal. #'dontusethis-set-symbol-value-handler - is still broken for other reasons. + is still broken for other reasons. 2009-06-07 Aidan Kehoe <kehoea@parhasard.net> - * code-files.el (insert-file-contents): - Autodetection may return undecided as a coding system. If the file + * code-files.el (insert-file-contents): + Autodetection may return undecided as a coding system. If the file was zero-length, this is kosher, and we should set buffer-file-coding-system to its default; if it is not zero-length, we still need to set b-f-c-s, but we warn that the @@ -671,21 +803,21 @@ failing is something very distinct from what we use it to mean here.) See http://mid.gmane.org/18986.53111.800393.660612@parhasard.net and - the related thread. + the related thread. 2009-06-06 Aidan Kehoe <kehoea@parhasard.net> - * files.el (cd): + * files.el (cd): Make CDPATH handling portable, accept entries without trailing slashes within it. Some style corrections from Stephen Turnbull, - thank you Stephen. + thank you Stephen. 2009-05-29 Aidan Kehoe <kehoea@parhasard.net> - * bytecomp.el (byte-compile-lambda): + * bytecomp.el (byte-compile-lambda): Even if we are going to store uncompiled interactive forms in the compiled-function object, byte compile (and discard) the code, for - the sake of the warnings generated. + the sake of the warnings generated. 2009-05-18 Stephen J. Turnbull <stephen@xemacs.org> @@ -709,65 +841,65 @@ 2009-03-01 Aidan Kehoe <kehoea@parhasard.net> - * x-compose.el: - Document an XIM bug, and how one might work around it. - (define-compose-map): + * x-compose.el: + Document an XIM bug, and how one might work around it. + (define-compose-map): Revise this macro, call it with compose-caron-map, compose-macron-map, compose-breve-map, compose-dot-map, compose-doubleacute-map, compose-ogonek-map, compose-hook-map, - compose-horn-map as well as the previous existing maps. - (compose-map): + compose-horn-map as well as the previous existing maps. + (compose-map): Add entries for caron, macron, doubleacute, ogonek, breve and - abovedot to this map. + abovedot to this map. Add an assert, this code assumes that a non-Mule build has no - character codes above U+00FF. + character codes above U+00FF. Incorporate all the precomposed Latin characters in UnicodeData.txt that we can into the maps, deciding at runtime on which exactly depending on whether this is a non-Mule or a Mule build. - Remove a commented-out old X11 bug workaround. + Remove a commented-out old X11 bug workaround. Use #'flet instead of defun + unintern for #'alias-colon-to-doublequote. Correct #'electric-diacritic to work with the keyboard macro - versions of the maps. - (compose-help): + versions of the maps. + (compose-help): This has been turned off since 1994; no-one appears to have noticed, since the normal help mechanism offers similar - functionality and is actually maintained. Removed entirely. - Remove a superflous setting of a default value for ctl-arrow. - * x-init.el (x-initialize-compose): + functionality and is actually maintained. Removed entirely. + Remove a superflous setting of a default value for ctl-arrow. + * x-init.el (x-initialize-compose): Support the new dead key maps we just added to x-compose.el with - autoloads here. + autoloads here. 2009-02-22 Aidan Kehoe <kehoea@parhasard.net> * bytecomp.el (byte-compile-force-escape-quoted): New variable, used to force `byte-compile-insert-header' to treat the output as - having characters above ?\xFF. - (byte-compile-from-buffer): + having characters above ?\xFF. + (byte-compile-from-buffer): If the compiled output contains characters above ?\xFF, and byte-compile-dynamic-docstrings or byte-compile-dynamic is non-nil (or we're using an inappropriate coding system) recompile the file, turning off the dynamic features and using a more - appropriate header. + appropriate header. (byte-compile-insert-header): Pay attention to - byte-compile-force-escape-quoted. + byte-compile-force-escape-quoted. 2009-02-18 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (check-coding-systems-region): + * coding.el (check-coding-systems-region): Return null on success, not t. See http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=1723 2009-02-17 Aidan Kehoe <kehoea@parhasard.net> - * mule/mule-cmds.el (finish-set-language-environment): + * mule/mule-cmds.el (finish-set-language-environment): Correct this function, don't try to format non-control characters with ^ followed by their value plus (char-int ?@). 2009-02-17 Aidan Kehoe <kehoea@parhasard.net> - * unicode.el (unicode-query-coding-region): + * unicode.el (unicode-query-coding-region): Avoid eval-when-compile where that gives incorrect results when compiled on a non-Mule XEmacs but run on a Mule XEmacs. Fixes problems seen by @@ -776,7 +908,7 @@ (An equivalent way to get the efficiency of the eval-when-compile would be to provide two defvars, evaluated at dump time, but this code will be in C soon enough, and we can use the relevant - preprocessor constants there.) + preprocessor constants there.) 2009-02-02 Aidan Kehoe <kehoea@parhasard.net> @@ -787,144 +919,144 @@ 2009-02-02 Aidan Kehoe <kehoea@parhasard.net> - * mule/latin.el (macintosh): - Add GNU Emacs' name for this coding system as an alias. + * mule/latin.el (macintosh): + Add GNU Emacs' name for this coding system as an alias. 2009-02-13 Aidan Kehoe <kehoea@parhasard.net> - * mule/mule-cmds.el (init-mule-at-startup): + * mule/mule-cmds.el (init-mule-at-startup): Actually use leim-list-file-name, don't load a hardcoded - leim-list.el in this function. + leim-list.el in this function. 2009-02-11 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (query-coding-string): - Correct the order of arguments passed to #'query-coding-region. - (unencodable-char-position): + * coding.el (query-coding-string): + Correct the order of arguments passed to #'query-coding-region. + (unencodable-char-position): Handle string offsets correctly, they're one less than buffer - offsets. Handle START and END correctly if passed a string. + offsets. Handle START and END correctly if passed a string. 2009-02-08 Aidan Kehoe <kehoea@parhasard.net> - * cl-macs.el (delete-duplicates): + * cl-macs.el (delete-duplicates): Add a new compiler macro, inlining this function if it's called with a literal #'eq or #'equal test arguments and no other keywords. - * font-lock.el (font-lock-unique): - Remove this function. - * font-lock.el (font-lock-prepend-text-property): - (font-lock-append-text-property): + * font-lock.el (font-lock-unique): + Remove this function. + * font-lock.el (font-lock-prepend-text-property): + (font-lock-append-text-property): Use #'delete-duplicates instead of #'font-lock-unique. * font.el (font-unique): Remove this function. - * font.el (font-combine-fonts-internal): - (x-font-families-for-device): - (xft-font-families-for-device): - (ns-font-families-for-device): + * font.el (font-combine-fonts-internal): + (x-font-families-for-device): + (xft-font-families-for-device): + (ns-font-families-for-device): Use #'delete-duplicates instead of #'font-unique. - * fontconfig.el (fc-delete-duplicates): - * fontconfig.el (fc-filter): - Remove these functions. - * fontconfig.el (fc-find-available-font-families): + * fontconfig.el (fc-delete-duplicates): + * fontconfig.el (fc-filter): + Remove these functions. + * fontconfig.el (fc-find-available-font-families): Replace #'fc-delete-duplicates with #'delete-duplicates, #'fc-filter with #'delete-if-not. - * format.el (format-make-relatively-unique): + * format.el (format-make-relatively-unique): Document that this is equivalent to #'nset-exclusive-or with a test of #'equal. 2009-02-07 Aidan Kehoe <kehoea@parhasard.net> * descr-text.el (describe-text-sexp): - pp is in packages, use cl-prettyprint instead. - * mule/mule-coding.el (make-8-bit-generate-helper): + pp is in packages, use cl-prettyprint instead. + * mule/mule-coding.el (make-8-bit-generate-helper): Don't uselessly bind args-out-of-range, thank you the byte - compiler. - * mule/mule-coding.el (8-bit-fixed-query-coding-region): + compiler. + * mule/mule-coding.el (8-bit-fixed-query-coding-region): Don't uselessly bind previous-fail, thank you the byte compiler. - * tty-init.el (make-device-early-tty-entry-point): - Set make-device-early-tty-entry-point-called-p, not - pre-tty-win-initted, thank you the byte compiler. - * unicode.el (unicode-query-coding-region): + * tty-init.el (make-device-early-tty-entry-point): + Set make-device-early-tty-entry-point-called-p, not + pre-tty-win-initted, thank you the byte compiler. + * unicode.el (unicode-query-coding-region): Don't uselessly bind invalid-sequence-p, thank you the - byte-compiler. + byte-compiler. 2009-02-07 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (query-coding-clear-highlights): + * coding.el (query-coding-clear-highlights): Rename the BUFFER argument to BUFFER-OR-STRING, describe it as - possibly being a string in its documentation. - (default-query-coding-region): + possibly being a string in its documentation. + (default-query-coding-region): Add a new IGNORE-INVALID-SEQUENCESP argument, document that this - function does not support it. + function does not support it. Bind case-fold-search to nil, we don't want this to influence what the function thinks is encodable or not. (query-coding-region): Add a new IGNORE-INVALID-SEQUENCESP argument, document what it - does; reflect this new argument in the associated compiler macro. - (query-coding-string): + does; reflect this new argument in the associated compiler macro. + (query-coding-string): Add a new IGNORE-INVALID-SEQUENCESP argument, document what it does. Support the HIGHLIGHT argument correctly. - * unicode.el (unicode-query-coding-region): + * unicode.el (unicode-query-coding-region): Add a new IGNORE-INVALID-SEQUENCESP argument, document what it - does, implement this. Document a potential problem. + does, implement this. Document a potential problem. Use #'query-coding-clear-highlights instead of reimplementing it - ourselves. - Remove some debugging messages. - * mule/arabic.el (iso-8859-6): - * mule/cyrillic.el (iso-8859-5): - * mule/greek.el (iso-8859-7): - * mule/hebrew.el (iso-8859-8): - * mule/latin.el (iso-8859-2): - * mule/latin.el (iso-8859-3): - * mule/latin.el (iso-8859-4): - * mule/latin.el (iso-8859-14): - * mule/latin.el (iso-8859-15): - * mule/latin.el (iso-8859-16): - * mule/latin.el (iso-8859-9): - * mule/latin.el (windows-1252): - * mule/mule-coding.el (iso-8859-1): - Avoid the assumption that characters not given an explicit mapping - in these coding systems map to the ISO 8859-1 characters - corresponding to the octets on disk; this makes it much more - reasonable to implement the IGNORE-INVALID-SEQUENCESP argument to - query-coding-region. - * mule/mule-cmds.el (set-language-info): - Correct the docstring. - * mule/mule-cmds.el (finish-set-language-environment): - Treat invalid Unicode sequences produced from - invalid-sequence-coding-system and corresponding to control - characters the same as control characters in redisplay. - * mule/mule-cmds.el: - Document that encode-coding-char is available in coding.el - * mule/mule-coding.el (make-8-bit-generate-helper): - Change to return the both the encode-program generated and the - relevant non-ASCII charset; update the docstring to reflect this. - * mule/mule-coding.el - (make-8-bit-generate-encode-program-and-skip-chars-strings): - Rename this function; have it return skip-chars-strings as well as - the encode program. Have these skip-chars-strings use ranges for - charsets, where possible. - * mule/mule-coding.el (make-8-bit-create-decode-encode-tables): - Revise this to allow people to specify explicitly characters that - should be undefined (= corresponding to keys in - unicode-error-default-translation-table), and treating unspecified - octets above #x7f as undefined by default. - * mule/mule-coding.el (8-bit-fixed-query-coding-region): - Add a new IGNORE-INVALID-SEQUENCESP argument, implement support - for it using the 8-bit-fixed-invalid-sequences-skip-chars coding - system property; remove some debugging messages. - * mule/mule-coding.el (make-8-bit-coding-system): - This function is dumped, autoloading it makes no sense. + ourselves. + Remove some debugging messages. + * mule/arabic.el (iso-8859-6): + * mule/cyrillic.el (iso-8859-5): + * mule/greek.el (iso-8859-7): + * mule/hebrew.el (iso-8859-8): + * mule/latin.el (iso-8859-2): + * mule/latin.el (iso-8859-3): + * mule/latin.el (iso-8859-4): + * mule/latin.el (iso-8859-14): + * mule/latin.el (iso-8859-15): + * mule/latin.el (iso-8859-16): + * mule/latin.el (iso-8859-9): + * mule/latin.el (windows-1252): + * mule/mule-coding.el (iso-8859-1): + Avoid the assumption that characters not given an explicit mapping + in these coding systems map to the ISO 8859-1 characters + corresponding to the octets on disk; this makes it much more + reasonable to implement the IGNORE-INVALID-SEQUENCESP argument to + query-coding-region. + * mule/mule-cmds.el (set-language-info): + Correct the docstring. + * mule/mule-cmds.el (finish-set-language-environment): + Treat invalid Unicode sequences produced from + invalid-sequence-coding-system and corresponding to control + characters the same as control characters in redisplay. + * mule/mule-cmds.el: + Document that encode-coding-char is available in coding.el + * mule/mule-coding.el (make-8-bit-generate-helper): + Change to return the both the encode-program generated and the + relevant non-ASCII charset; update the docstring to reflect this. + * mule/mule-coding.el + (make-8-bit-generate-encode-program-and-skip-chars-strings): + Rename this function; have it return skip-chars-strings as well as + the encode program. Have these skip-chars-strings use ranges for + charsets, where possible. + * mule/mule-coding.el (make-8-bit-create-decode-encode-tables): + Revise this to allow people to specify explicitly characters that + should be undefined (= corresponding to keys in + unicode-error-default-translation-table), and treating unspecified + octets above #x7f as undefined by default. + * mule/mule-coding.el (8-bit-fixed-query-coding-region): + Add a new IGNORE-INVALID-SEQUENCESP argument, implement support + for it using the 8-bit-fixed-invalid-sequences-skip-chars coding + system property; remove some debugging messages. + * mule/mule-coding.el (make-8-bit-coding-system): + This function is dumped, autoloading it makes no sense. Document what happens when characters above #x7f are not - specified, implement this. - * mule/vietnamese.el: - Correct spelling. + specified, implement this. + * mule/vietnamese.el: + Correct spelling. 2009-02-04 Aidan Kehoe <kehoea@parhasard.net> - * help.el: - (describe-function-1): - * byte-optimize.el: + * help.el: + (describe-function-1): + * byte-optimize.el: Remove any reference to mocklisp as an active technology. 2009-02-04 Aidan Kehoe <kehoea@parhasard.net> @@ -937,8 +1069,8 @@ 2009-02-04 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (force-coding-system-equivalency): - Document this macro and the motivation for it. + * coding.el (force-coding-system-equivalency): + Document this macro and the motivation for it. 2009-01-15 Aidan Kehoe <kehoea@parhasard.net> @@ -956,31 +1088,31 @@ 2009-02-04 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (query-coding-region): + * coding.el (query-coding-region): Revert this to being a defun, add a compiler macro without - needless binding. - (query-coding-string): - Correct a bug here, string indices are zero- not one-based. + needless binding. + (query-coding-string): + Correct a bug here, string indices are zero- not one-based. * mule/general-late.el (unicode-query-coding-skip-chars-arg): - Correct the algorithm used to initialise this variable. + Correct the algorithm used to initialise this variable. 2009-02-04 Aidan Kehoe <kehoea@parhasard.net> - * help.el (describe-function-1): + * help.el (describe-function-1): Distinguish between special forms and subrs; don't bind autoload-file, #'symbol-file returns it like any other function file name. 2009-01-31 Aidan Kehoe <kehoea@parhasard.net> - * mule/mule-cmds.el (finish-set-language-environment): + * mule/mule-cmds.el (finish-set-language-environment): Treat control characters specially in the invalid-sequence-coding-system handling, display them using the - caret notation. + caret notation. 2009-01-31 Aidan Kehoe <kehoea@parhasard.net> - * frame.el (display-graphic-p): + * frame.el (display-graphic-p): Call #'display-device on the DISPLAY argument, ensuring that the argument to #'device-on-window-system-p is correct. @@ -993,7 +1125,7 @@ 2009-01-13 Aidan Kehoe <kehoea@parhasard.net> - * mule/mule-cmds.el (set-language-environment-coding-systems): + * mule/mule-cmds.el (set-language-environment-coding-systems): Fix a cosmetic bug; the relationship between file-name-coding-system and the file-name coding system alias established in coding.el wasn't being maintained. See Katsumi @@ -1014,118 +1146,118 @@ 2008-12-30 Aidan Kehoe <kehoea@parhasard.net> - * make-docfile.el: + * make-docfile.el: Use absolute source file names when checking if DOC is out of date, don't use relative paths that may not be related to the - current directory. + current directory. 2008-12-28 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (query-coding-region): - (query-coding-string): + * coding.el (query-coding-region): + (query-coding-string): Make these defsubsts, they're short enough and they're called explicitly rarely enough that it make some sense. The alternative - would be compiler macros that avoid the binding of the arguments. - (unencodable-char-position): - Document where the docstring and API are from. + would be compiler macros that avoid the binding of the arguments. + (unencodable-char-position): + Document where the docstring and API are from. Correct a special case for zero--check-argument-type returns nil when it succeeds, we can't usefully chain its result in an and - here. + here. (check-coding-systems-region): New. API taken from GNU; docstring - and implementation are independent. - (encode-coding-char): + and implementation are independent. + (encode-coding-char): Add an optional third argument, as used by recent GNU. Document - the origen of the docstring. + the origen of the docstring. (default-query-coding-region): Add a short docstring to the - non-Mule implementation of this function. - * unicode.el: + non-Mule implementation of this function. + * unicode.el: Don't set the query-coding-function property for unicode coding systems if we're on non-mule. Unintern unicode-query-coding-region, unicode-query-coding-skip-chars-arg - in the same context. + in the same context. 2008-12-30 Aidan Kehoe <kehoea@parhasard.net> - * frame.el (display-mouse-p): - (display-popup-menus-p): - (display-images-p): - (display-selections-p): - (display-visual-class): + * frame.el (display-mouse-p): + (display-popup-menus-p): + (display-images-p): + (display-selections-p): + (display-visual-class): Make all these functions more general, do not hard code device - type symbols where that is inappropriate. + type symbols where that is inappropriate. 2008-12-28 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (default-query-coding-region): + * coding.el (default-query-coding-region): Declare using defun*, so we can #'return-from to it on encountering a safe-charsets value of t. Comment out a few - debug messages. - (query-coding-region): + debug messages. + (query-coding-region): Correct the docstring, it deals with a region, not a string. - (unencodable-char-position): + (unencodable-char-position): Correct the implementation for non-nil COUNT, special-case a zero value for count, treat it as one. Don't rely on dynamic scope when calling the main lambda. - * unicode.el (unicode-query-coding-region): - Comment out some debug messages here. - * mule/mule-coding.el (8-bit-fixed-query-coding-region): - Comment out some debug messages here. - - * code-init.el (raw-text): - Add a safe-charsets property to this coding system. - * mule/korean.el (iso-2022-int-1): - * mule/korean.el (euc-kr): - * mule/korean.el (iso-2022-kr): - Add safe-charsets properties for these coding systems. - * mule/japanese.el (iso-2022-jp): - * mule/japanese.el (jis7): - * mule/japanese.el (jis8): - * mule/japanese.el (shift-jis): - * mule/japanese.el (iso-2022-jp-1978-irv): - * mule/japanese.el (euc-jp): - Add safe-charsets properties for all these coding systems. - * mule/iso-with-esc.el: + * unicode.el (unicode-query-coding-region): + Comment out some debug messages here. + * mule/mule-coding.el (8-bit-fixed-query-coding-region): + Comment out some debug messages here. + + * code-init.el (raw-text): + Add a safe-charsets property to this coding system. + * mule/korean.el (iso-2022-int-1): + * mule/korean.el (euc-kr): + * mule/korean.el (iso-2022-kr): + Add safe-charsets properties for these coding systems. + * mule/japanese.el (iso-2022-jp): + * mule/japanese.el (jis7): + * mule/japanese.el (jis8): + * mule/japanese.el (shift-jis): + * mule/japanese.el (iso-2022-jp-1978-irv): + * mule/japanese.el (euc-jp): + Add safe-charsets properties for all these coding systems. + * mule/iso-with-esc.el: Add safe-charsets properties to all the coding systems in here. Comment on the downside of a safe-charsets value of t for iso-latin-1-with-esc. - * mule/hebrew.el (ctext-hebrew): - Add a safe-charsets property for this coding system. - * mule/devanagari.el (in-is13194-devanagari): - Add a safe-charsets property for this coding system. - * mule/chinese.el (cn-gb-2312): - * mule/chinese.el (hz-gb-2312): - * mule/chinese.el (big5): - Add safe-charsets properties for these coding systems. - * mule/latin.el (iso-8859-14): + * mule/hebrew.el (ctext-hebrew): + Add a safe-charsets property for this coding system. + * mule/devanagari.el (in-is13194-devanagari): + Add a safe-charsets property for this coding system. + * mule/chinese.el (cn-gb-2312): + * mule/chinese.el (hz-gb-2312): + * mule/chinese.el (big5): + Add safe-charsets properties for these coding systems. + * mule/latin.el (iso-8859-14): Add an implementation for this, using #'make-8-bit-coding-system. - * mule/mule-coding.el (ctext): - * mule/mule-coding.el (iso-2022-8bit-ss2): - * mule/mule-coding.el (iso-2022-7bit-ss2): - * mule/mule-coding.el (iso-2022-jp-2): - * mule/mule-coding.el (iso-2022-7bit): - * mule/mule-coding.el (iso-2022-8): - * mule/mule-coding.el (escape-quoted): - * mule/mule-coding.el (iso-2022-lock): - Add safe-charsets properties for all these coding systems. + * mule/mule-coding.el (ctext): + * mule/mule-coding.el (iso-2022-8bit-ss2): + * mule/mule-coding.el (iso-2022-7bit-ss2): + * mule/mule-coding.el (iso-2022-jp-2): + * mule/mule-coding.el (iso-2022-7bit): + * mule/mule-coding.el (iso-2022-8): + * mule/mule-coding.el (escape-quoted): + * mule/mule-coding.el (iso-2022-lock): + Add safe-charsets properties for all these coding systems. 2008-12-27 Aidan Kehoe <kehoea@parhasard.net> - * loadhist.el (symbol-file): + * loadhist.el (symbol-file): Use #'defun*, not #'defun, to allow the checks for autoloaded functions and variables to call #'return-from correctly. Use - #'return-from instead of #'return throughout the function. + #'return-from instead of #'return throughout the function. 2008-12-27 Aidan Kehoe <kehoea@parhasard.net> - * loadup.el (load-history): + * loadup.el (load-history): Add the contents of current-load-list to load-history before clearing it. Move the variable declarations earlier in the file to - a format understood by make-docfile.c. + a format understood by make-docfile.c. * custom.el (custom-declare-variable): Add the variable's symbol to the current file's load history entry correctly, don't use a cons. Eliminate a comment that we don't need to worry about, we don't need to check the `initialized' C variable in Lisp. - * bytecomp.el (byte-compile-output-file-form): + * bytecomp.el (byte-compile-output-file-form): Merge Andreas Schwab's pre-GPLv3 GNU change of 19970831 here; treat #'custom-declare-variable correctly, generating the docstrings in a format understood by make-docfile.c. @@ -1136,25 +1268,25 @@ it relative to lisp-directory if the filename corresponds to a Lisp file, and relative to (concat source-directory "/src/") otherwise. - * make-docfile.el (preloaded-file-list): + * make-docfile.el (preloaded-file-list): Rationalise some let bindings a little. Use the "-d" argument to make-docfile.c to supply Lisp paths relative to lisp-directory, not absolutely. Add in loadup.el explicitly to the list of files to be processed by make-docfile.c--it doesn't make sense to add it to preloaded-file-list, since that is used for purposes of - byte-compilation too. + byte-compilation too. 2008-12-22 Aidan Kehoe <kehoea@parhasard.net> - * loadhist.el (symbol-file): + * loadhist.el (symbol-file): Add support for differentiating between variables and functions to - #'symbol-file. - * help.el (describe-function-1): - (describe-variable): + #'symbol-file. + * help.el (describe-function-1): + (describe-variable): Call #'symbol-function explicitly with a 'defun or 'defvar argument, depending on whether we're looking for a variable or a - function. - * cus-face.el (custom-declare-face): + function. + * cus-face.el (custom-declare-face): Record information about the face in the load history; code taken from GNU, pre-GPLv3 revision 1.45. @@ -1181,13 +1313,13 @@ * window.el (only-window-p): New. Check if WINDOW is the only window in some context, normally its frame. - (one-window-p): + (one-window-p): Implemented this in terms of #'only-window-p, calling it on the - selected window. - (window-buffer-height): Uncomment this, make it work. - (count-screen-lines): Support a BUFFER argument. + selected window. + (window-buffer-height): Uncomment this, make it work. + (count-screen-lines): Support a BUFFER argument. (fit-window-to-buffer): Uncomment this, correct its implementation - to work with XEmacs. + to work with XEmacs. * help.el (temp-buffer-resize-mode): New. Name taken from GNU, implementation our own. * (resize-temp-buffer-window): New. GNU-compatible alias for @@ -1197,32 +1329,32 @@ * frame.el: Point to #'temp-buffer-resize-mode in a comment. Some of this code is from GNU; help.el CVS version 1.327 of 2007-03-21, window.el CVS version 1.122, of 2007-06-24. Both these - are GPLV2 or later. + are GPLV2 or later. 2008-08-27 Aidan Kehoe <kehoea@parhasard.net> - * subr.el (skip-chars-quote): + * subr.el (skip-chars-quote): Correct the implementation, following the docstring of #'skip-char-forward more closely rather than the documentation of - character classes in the Lispref. + character classes in the Lispref. 2008-08-23 Aidan Kehoe <kehoea@parhasard.net> * custom.el: Move #'custom-variable-p to C, since it's now called - from #'user-variable-p. + from #'user-variable-p. 2008-08-23 Aidan Kehoe <kehoea@parhasard.net> - - * mule/mule-coding.el (make-8-bit-coding-system): - * mule/general-late.el (posix-charset-to-coding-system-hash): - Use #'skip-chars-quote as appropriate. + + * mule/mule-coding.el (make-8-bit-coding-system): + * mule/general-late.el (posix-charset-to-coding-system-hash): + Use #'skip-chars-quote as appropriate. 2008-08-09 Aidan Kehoe <kehoea@parhasard.net> * subr.el (skip-chars-quote): New. Given STRING, return a string that means that all characters in STRING will be skipped when passed to #'skip-chars-forward, - #'skip-chars-backward. + #'skip-chars-backward. 2008-08-09 Aidan Kehoe <kehoea@parhasard.net> @@ -1230,10 +1362,10 @@ 2008-08-08 Aidan Kehoe <kehoea@parhasard.net> - * unicode.el: - * mule/mule-cmds.el: - * mule/latin.el: - * mule/cyrillic.el: + * unicode.el: + * mule/mule-cmds.el: + * mule/latin.el: + * mule/cyrillic.el: Rework the various identifiers using error-sequence to use invalid-sequence instead. @@ -1243,58 +1375,58 @@ in x-init.el, since we want it even on non-X builds to use the support for displaying Unicode error sequences according to the current locale. - * mule/mule-cmds.el (set-language-info): + * mule/mule-cmds.el (set-language-info): Document error-sequence-coding-system, used to describe how to - display characters that are not valid Unicode on disk. - * mule/mule-cmds.el (finish-set-language-environment): - Implement error-sequence-coding-system. - * unicode.el (unicode-error-sequence-warning-face): + display characters that are not valid Unicode on disk. + * mule/mule-cmds.el (finish-set-language-environment): + Implement error-sequence-coding-system. + * unicode.el (unicode-error-sequence-warning-face): New face, to make it possible to distinguish invalid Unicode sequences from the characters given by the valid Unicode - sequences. - * mule/cyrillic.el ("Russian"): - ("Ukrainian"): - ("Bulgarian"): - ("Belarusian"): + sequences. + * mule/cyrillic.el ("Russian"): + ("Ukrainian"): + ("Bulgarian"): + ("Belarusian"): ("Cyrillic-ALT"): Add support for error-sequence-coding-system for all these languages. - * mule/latin.el: + * mule/latin.el: Add support for error-sequence-coding-system for the Latin-alphabet language environments. 2008-08-05 Aidan Kehoe <kehoea@parhasard.net> - * mule/iso-with-esc.el (greek-iso-8bit-with-esc): - (arabic-iso-8bit-with-esc): + * mule/iso-with-esc.el (greek-iso-8bit-with-esc): + (arabic-iso-8bit-with-esc): Add these two here. Move the implementation of the 'arabic-iso8859-6 character set here, with commentary on why that - is reasonable. - * mule/arabic.el (iso-8859-6): + is reasonable. + * mule/arabic.el (iso-8859-6): Add iso-8859-6, windows-1256 implementations using make-8-bit-coding-system. Remove our non-standard Mule character - sets. + sets. * unicode.el (load-unicode-tables): Remove Arabic since it's no longer dumped. * mule/mule-msw-init-late.el: Remove Arabic. * mule/mule-category.el (predefined-category-list): Remove - Arabic. + Arabic. 2008-07-26 Aidan Kehoe <kehoea@parhasard.net> - * x-init.el (x-initialize-compose): + * x-init.el (x-initialize-compose): Rewrite to use #'loop, as does similar code in x-win-sun.el, x-win-xfree86.el. Locally bind function-key-map to the correct value for the device's console. - * x-win-xfree86.el (x-win-init-xfree86): + * x-win-xfree86.el (x-win-init-xfree86): Locally bind function-key-map to the correct value for the device's console. - * x-win-sun.el (x-win-init-sun): + * x-win-sun.el (x-win-init-sun): Locally bind function-key-map to the correct value for the device's console. 2008-07-20 Aidan Kehoe <kehoea@parhasard.net> - * descr-text.el (describe-char-unicode-data): + * descr-text.el (describe-char-unicode-data): Correct three calls to #'error; it doesn't take #'message style format strings and arguments. @@ -1302,11 +1434,11 @@ * descr-text.el (describe-property-list): Move the (require 'hyper-apropos) call to top level, this isn't the only function - that uses the relevant face. + that uses the relevant face. (describe-char): Wrap the Unihan field descriptions if they are longer than the windows width minus 50. Rename the created buffer to reflect the character's position as - well as its value. + well as its value. 2008-07-07 Aidan Kehoe <kehoea@parhasard.net> @@ -1314,7 +1446,7 @@ various Lisp functions should be called during device creation, not relying on the startup code to decide this. Also, rename initial-window-system to initial-device-type (which makes more - sense in this scheme), always set it. + sense in this scheme), always set it. * startup.el (command-line): Use initial-device-type, not initial-window-system; just call @@ -1341,49 +1473,49 @@ what device-specific things need doing. Don't use create-console-hook in core code. * x-win-xfree86.el (x-win-init-xfree86): Take a DEVICE argument; - use it. - * x-win-sun.el (x-win-init-sun): Take a DEVICE argument; use it. + use it. + * x-win-sun.el (x-win-init-sun): Take a DEVICE argument; use it. * mule/mule-x-init.el: Remove #'init-mule-x-win, an empty - function. + function. * tty-init.el (make-device-early-tty-entry-point-called-p): New. Rename pre-tty-win-initted. (make-device-early-tty-entry-point): New. Rename init-pre-tty-win. (make-frame-after-init-entry-point): New. - Rename init-post-tty-win to better reflect when it's called. + Rename init-post-tty-win to better reflect when it's called. * gtk-init.el (gtk-early-lisp-options-file): New. - Move this path to a documented variable. + Move this path to a documented variable. (gtk-command-switch-alist): Wrap the docstring to fewer than 79 - columns. + columns. (make-device-early-gtk-entry-point-called-p): New. (make-device-late-gtk-entry-point-called-p): New. Renamed gtk-pre-win-initted, gtk-post-win-initted to these. - (make-device-early-gtk-entry-point): New. + (make-device-early-gtk-entry-point): New. (make-device-late-gtk-entry-point): New. Renamed init-pre-gtk-win, init-post-gtk-win to these. Have make-device-late-gtk-entry-point take a device argument, and use it; have make-device-early-gtk-entry-point load the GTK-specific - startup code, instead of doing that in C. + startup code, instead of doing that in C. (init-gtk-win): Deleted, functionality moved to the GTK device - creation code. + creation code. (gtk-define-dead-key): Have it take a DEVICE argument; use this - argument. - (gtk-initialize-compose): Ditto. - - * coding.el (set-terminal-coding-system): - Correct the docstring; the function isn't broken. + argument. + (gtk-initialize-compose): Ditto. + + * coding.el (set-terminal-coding-system): + Correct the docstring; the function isn't broken. 2008-06-29 Aidan Kehoe <kehoea@parhasard.net> - * descr-text.el (describe-char-unicode-data): + * descr-text.el (describe-char-unicode-data): Don't leak the Unihan database handle when looking up non-Han - characters. + characters. 2008-06-04 Aidan Kehoe <kehoea@parhasard.net> - * descr-text.el (describe-property-list): + * descr-text.el (describe-property-list): #'require hyper-apropos, since we use hyper-apropos-face 2008-05-25 Aidan Kehoe <kehoea@parhasard.net> @@ -1392,27 +1524,27 @@ Taken from GNU's GPLV2 version of 2007-02-14, with modifications for XEmacs support and extensions for Unihan.txt support and db/dbm caches. - * simple.el (what-cursor-position): + * simple.el (what-cursor-position): Support an optional prefix argument, as does GNU, calling #'describe-char to giving more detail on the character at point, notably from UnicodeData and (in our case, optionally) Unihan.txt. - * syntax.el (syntax-after): - Make this available for the sake of #'describe-char. + * syntax.el (syntax-after): + Make this available for the sake of #'describe-char. * mule/mule-cmds.el (iso-2022-control-alist): Make this available, for the sake of #'encoded-string-description - and #'describe-char. + and #'describe-char. * mule/mule-cmds.el (encoded-string-description): Make this available, for the sake of #'describe-char. - * unicode.el (unicode-error-default-translation-table): + * unicode.el (unicode-error-default-translation-table): Make this a char table of type generic, not of type char. Makes it possible to have the relevant logic in #'describe-char reasonably clear; also, and this is undocumented, makes it much easier to implement #'frob-unicode-errors-region. I should document this, - and revise #'frob-unicode-errors-region. + and revise #'frob-unicode-errors-region. 2008-05-21 Aidan Kehoe <kehoea@parhasard.net> - * mule/mule-coding.el (make-8-bit-choose-category): + * mule/mule-coding.el (make-8-bit-choose-category): Merge my change of 2008-05-14 to the query-coding-region code. 2008-05-14 Stephen J. Turnbull <stephen@xemacs.org> @@ -1422,7 +1554,7 @@ 2008-05-14 Aidan Kehoe <kehoea@parhasard.net> * subr.el (add-to-list): Implement the same logic with a more - concise syntax; thank you Stephen, in + concise syntax; thank you Stephen, in http://mid.gmane.org/87ablomdwx.fsf@uwakimon.sk.tsukuba.ac.jp . 2008-02-25 bpalmer <bpalmer@gmail.com> @@ -1438,22 +1570,22 @@ 2008-05-13 Aidan Kehoe <kehoea@parhasard.net> - * printer.el (generic-print-region): - (generic-print-buffer): + * printer.el (generic-print-region): + (generic-print-buffer): Use #'valid-device-type-p instead of #'valid-specifier-tag-p to check if the msprinter device is available, now that msprinter is - always available as a specifier tag. + always available as a specifier tag. 2008-05-11 Aidan Kehoe <kehoea@parhasard.net> - * disp-table.el (make-display-table): + * disp-table.el (make-display-table): Update the example code to make it more general, and more compatible with GNU. Also, I previously said #xFF when I meant ?\xFF; correct this. - * mule/cyril-util.el (standard-display-cyrillic-translit): + * mule/cyril-util.el (standard-display-cyrillic-translit): Make the selection of the default language more sensible; change the API a little to make a sensible default Cyrillic language - available, checking current-language-environment. + available, checking current-language-environment. 2007-07-21 Aidan Kehoe <kehoea@parhasard.net> @@ -1462,11 +1594,11 @@ * mule/cyril-util.el (cyrillic-encode-alternativnyj-char): Removed. No-one uses these functions in google.com/codesearch, GNU have a comment doubting their utility, and their - implementation is trivial. + implementation is trivial. * mule/cyril-util.el (cyrillic-language-alist): Reformatted. * mule/cyril-util.el (standard-display-table)): Removed. It wasn't - used anyway. + used anyway. * mule/cyril-util.el (standard-display-cyrillic-translit): Rewrite it to work with character tables as display tables, and not to abort with an error. @@ -1475,11 +1607,11 @@ * disp-table.el: * disp-table.el (make-display-table): Moved earlier in the file in - a weak attempt at making syncing with GNU easier. + a weak attempt at making syncing with GNU easier. * disp-table.el (frob-display-table): Autoload it, accept TAG-SET, for editing specifiers. * disp-table.el (describe-display-table): - Have it handle character sets. + Have it handle character sets. * disp-table.el (standard-display-8bit-1): * disp-table.el (standard-display-8bit): * disp-table.el (standard-display-default-1): @@ -1490,13 +1622,13 @@ * disp-table.el (standard-display-european): Rework them all to use put-char-table, remove-char-table instead of aset. Limit standard-display-g1, standard-display-graphic to - TTYs; have standard-display-underline work on X11 too. - + TTYs; have standard-display-underline work on X11 too. + * font.el (font-caps-display-table): Use put-char-table instead of aset when editing a display table. * x-init.el: * x-init.el (tab): - Create the initial display table as a char-table, not a vector. + Create the initial display table as a char-table, not a vector. 2008-01-20 Aidan Kehoe <kehoea@parhasard.net> @@ -1508,15 +1640,15 @@ 2008-05-07 Aidan Kehoe <kehoea@parhasard.net> * mule/latin.el (windows-1250): Add the Central European Windows - coding system. + coding system. * mule/mule-win32-init.el: Don't use the Windows-specific CP1250 - implementation, rely on that in latin.el instead. + implementation, rely on that in latin.el instead. 2008-05-11 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (query-coding-clear-highlights): + * coding.el (query-coding-clear-highlights): New function--clear any face information added by - `query-coding-region'. + `query-coding-region'. (default-query-coding-region): Use it. 2008-04-13 Henry S. Thompson <ht@inf.ed.ac.uk>, Mike Sperber <mike@xemacs.org> @@ -1526,10 +1658,10 @@ alist mapping the window objects from the original window configuration to the window objects corresponding to them in the restored configuration. - (set-window-configuration): - (saved-window): - (root-window->saved-window): - (really-set-window-configuration): + (set-window-configuration): + (saved-window): + (root-window->saved-window): + (really-set-window-configuration): (restore-saved-window): Record the mapping for above functions. 2008-04-12 Henry S. Thompson <ht@inf.ed.ac.uk> @@ -1538,10 +1670,10 @@ these to the original definitions of `split-window' and `delete-window', and use them in the window-configuration code to make sure it doesn't get affected by advice to these functions. - + 2008-04-10 Aidan Kehoe <kehoea@parhasard.net> - * help.el (describe-function-1): + * help.el (describe-function-1): Rely on #'symbol-file to tell which file an autoloaded function belongs to, don't special-case them. @@ -1604,55 +1736,55 @@ * info.el (Info-suffix-list): Support LZMA compression, as used--oddly--by Mandriva Linux. - * coding.el (decode-coding-string): + * coding.el (decode-coding-string): (encode-coding-string): Accept GNU's NOCOPY argument for - these. Todo; write compiler macros to use it. + these. Todo; write compiler macros to use it. (query-coding-warning-face): New face, to show unencodable - characters. - (default-query-coding-region-safe-charset-skip-chars-map): - New variable, a cache used by #'default-query-coding-region. + characters. + (default-query-coding-region-safe-charset-skip-chars-map): + New variable, a cache used by #'default-query-coding-region. (default-query-coding-region): Default implementation of #'query-coding-region, using the safe-charsets and safe-chars - coding systemproperties. + coding systemproperties. (query-coding-region): New function; can a given coding system - encode a given region? + encode a given region? (query-coding-string): New function; can a given coding system - encode a given string? + encode a given string? (unencodable-char-position): Function API taken from GNU; return - the first unencodable position given a string and coding system. + the first unencodable position given a string and coding system. (encode-coding-char): Function API taken from GNU; return CHAR encoded using CODING-SYSTEM, or nil if CODING-SYSTEM would trash - CHAR. + CHAR. ((unless (featurep 'mule)): Override the default - query-coding-region implementation on non-Mule. + query-coding-region implementation on non-Mule. * mule/mule-coding.el (make-8-bit-generate-helper): Eliminate a - duplicate comment. - (make-8-bit-choose-category): Simplify implementation. + duplicate comment. + (make-8-bit-choose-category): Simplify implementation. (8-bit-fixed-query-coding-region): Implementation of #'query-coding-region for coding systems created with - #'make-8-bit-coding-system. + #'make-8-bit-coding-system. (make-8-bit-coding-system): Initialise the #'query-coding-region - implementation for these character sets. + implementation for these character sets. (make-8-bit-coding-system): Ditto for the compiler macro version - of this function. + of this function. * unicode.el (unicode-query-coding-skip-chars-arg): New variable, used by unicode-query-coding-region, initialised in - mule/general-late.el. + mule/general-late.el. (unicode-query-coding-region): New function, the - #'query-coding-region implementation for Unicode coding systems. + #'query-coding-region implementation for Unicode coding systems. Initialise the query-coding-function property for the Unicode coding systems to #'unicode-query-coding-region. * mule/mule-charset.el (charset-skip-chars-string): New function. Return a #'skip-chars-forward argument that skips all - characters in CHARSET. + characters in CHARSET. (map-charset-chars): Function synced from GNU, modified to work with XEmacs. Map FUNC across the int value charset ranges of - CHARSET. + CHARSET. 2008-01-21 Aidan Kehoe <kehoea@parhasard.net> - * info.el (Info-suffix-list): - Support LZMA compression, as used--oddly--by Mandriva Linux. + * info.el (Info-suffix-list): + Support LZMA compression, as used--oddly--by Mandriva Linux. 2008-01-17 Mike Sperber <mike@xemacs.org>
--- a/lisp/alist.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/alist.el Thu Jan 07 17:01:25 2010 +0000 @@ -89,11 +89,11 @@ ;;;###autoload (defun modify-alist (modifier default) "Modify alist DEFAULT into alist MODIFIER." - (mapcar (function - (lambda (as) - (setq default (put-alist (car as)(cdr as) default)) - )) - modifier) + (mapc + (function + (lambda (as) + (setq default (put-alist (car as)(cdr as) default)))) + modifier) default) ;;;###autoload
--- a/lisp/autoload.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/autoload.el Thu Jan 07 17:01:25 2010 +0000 @@ -767,10 +767,10 @@ ;;#### FSF 21.2 (print-escape-nonascii t) (p (point outbuf)) p2) - (mapcar #'(lambda (elt) - (prin1 elt outbuf) - (princ " " outbuf)) - form) + (mapc #'(lambda (elt) + (prin1 elt outbuf) + (princ " " outbuf)) + form) (with-current-buffer outbuf (setq p2 (point-marker)) (goto-char p) @@ -1021,8 +1021,8 @@ (search-forward generate-autoload-section-trailer) (delete-region begin (point))))) ;; Update or create autoload sections for existing files. - (mapcar 'update-file-autoloads - (directory-files arg t "^[^=].*\\.\\(el\\|c\\)$"))))) + (mapc 'update-file-autoloads + (directory-files arg t "^[^=].*\\.\\(el\\|c\\)$"))))) ((file-exists-p arg) (setq generated-autoload-file (or into-file (expand-file-name autoload-file-name
--- a/lisp/bytecomp.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/bytecomp.el Thu Jan 07 17:01:25 2010 +0000 @@ -684,7 +684,7 @@ (byte-defop 138 0 byte-save-excursion "to make a binding to record the buffer, point and mark") -(byte-defop 139 0 byte-save-window-excursion +(byte-defop 139 0 byte-save-window-excursion ; almost obsolete "to make a binding to record entire window configuration") (byte-defop 140 0 byte-save-restriction "to make a binding to record the current buffer clipping restrictions") @@ -2071,7 +2071,7 @@ (if byte-compile-output (let ((form (byte-compile-out-toplevel t 'file))) (cond ((eq (car-safe form) 'progn) - (mapcar 'byte-compile-output-file-form (cdr form))) + (mapc 'byte-compile-output-file-form (cdr form))) (form (byte-compile-output-file-form form))) (setq byte-compile-constants nil @@ -2862,7 +2862,7 @@ (if byte-compile-generate-call-tree (byte-compile-annotate-call-tree form)) (byte-compile-push-constant (car form)) - (mapcar 'byte-compile-form (cdr form)) ; wasteful, but faster. + (mapc 'byte-compile-form (cdr form)) ; wasteful, but faster. (byte-compile-out 'byte-call (length (cdr form)))) ;; kludge added to XEmacs to work around the bogosities of a nonlexical lisp. @@ -3392,12 +3392,12 @@ ((= nargs 0) (byte-compile-constant nil)) ((< nargs 5) - (mapcar 'byte-compile-form args) + (mapc 'byte-compile-form args) (byte-compile-out (aref [byte-list1 byte-list2 byte-list3 byte-list4] (1- nargs)) 0)) ((< nargs 256) - (mapcar 'byte-compile-form args) + (mapc 'byte-compile-form args) (byte-compile-out 'byte-listN nargs)) (t (byte-compile-normal-call form))))) @@ -3407,14 +3407,14 @@ ;; Concat of one arg is not a no-op if arg is not a string. (cond ((memq nargs '(2 3 4)) - (mapcar 'byte-compile-form args) + (mapc 'byte-compile-form args) (byte-compile-out (aref [byte-concat2 byte-concat3 byte-concat4] (- nargs 2)) 0)) ((eq nargs 0) (byte-compile-form "")) ((< nargs 256) - (mapcar 'byte-compile-form args) + (mapc 'byte-compile-form args) (byte-compile-out 'byte-concatN nargs)) ((byte-compile-normal-call form))))) @@ -3588,7 +3588,7 @@ (cond ((null (cdr form)) (byte-compile-constant nil)) ((<= (length form) 256) - (mapcar 'byte-compile-form (cdr form)) + (mapc 'byte-compile-form (cdr form)) (if (cdr (cdr form)) (byte-compile-out 'byte-insertN (length (cdr form))) (byte-compile-out 'byte-insert 0))) @@ -3945,7 +3945,7 @@ (setq for-effect nil))) (defun byte-compile-funcall (form) - (mapcar 'byte-compile-form (cdr form)) + (mapc 'byte-compile-form (cdr form)) (byte-compile-out 'byte-call (length (cdr (cdr form))))) @@ -4029,7 +4029,6 @@ (byte-defop-compiler-1 save-excursion) (byte-defop-compiler-1 save-current-buffer) (byte-defop-compiler-1 save-restriction) -(byte-defop-compiler-1 save-window-excursion) (byte-defop-compiler-1 with-output-to-temp-buffer) ;; no track-mouse. @@ -4128,11 +4127,6 @@ (byte-compile-body-do-effect (cdr form)) (byte-compile-out 'byte-unbind 1))) -(defun byte-compile-save-window-excursion (form) - (byte-compile-push-constant - (byte-compile-top-level-body (cdr form) for-effect)) - (byte-compile-out 'byte-save-window-excursion 0)) - (defun byte-compile-with-output-to-temp-buffer (form) (byte-compile-form (car (cdr form))) (byte-compile-out 'byte-temp-output-buffer-setup 0) @@ -4154,7 +4148,7 @@ ;; and pushes a new value, the specpdl_depth() at the time it was ;; called. (byte-compile-out 'byte-bind-multiple-value-limits 0) - (mapcar 'byte-compile-form (cdr form)) + (mapc 'byte-compile-form (cdr form)) ;; Most of the other code puts this sort of value in the program stream, ;; not pushing it on the stack. (byte-compile-push-constant (+ 3 (length form))) @@ -4586,7 +4580,7 @@ (if (fboundp 'display-error) ; XEmacs 19.8+ (display-error err nil) (princ (or (get (car err) 'error-message) (car err))) - (mapcar #'(lambda (x) (princ " ") (prin1 x)) (cdr err))) + (mapc #'(lambda (x) (princ " ") (prin1 x)) (cdr err))) (princ "\n") nil)))
--- a/lisp/cl-compat.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/cl-compat.el Thu Jan 07 17:01:25 2010 +0000 @@ -57,7 +57,7 @@ (list* 'defconst x (list 'quote x) (and doc (list doc)))) (defun keyword-of (sym) - (or (keywordp sym) (keywordp (intern (format ":%s" sym))))) + (or (keywordp sym) (keywordp (read (format ":%s" sym))))) ;;; Routines for parsing keyword arguments.
--- a/lisp/cl-extra.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/cl-extra.el Thu Jan 07 17:01:25 2010 +0000 @@ -89,35 +89,128 @@ ;;; Predicates. +;; I'd actually prefer not to have this inline, the space +;; vs. amount-it's-called trade-off isn't reasonable, but that would +;; introduce bytecode problems with the compiler macro in cl-macs.el. +(defsubst cl-string-vector-equalp (cl-string cl-vector) + "Helper function for `equalp', which see." +; (check-argument-type #'stringp cl-string) +; (check-argument-type #'vector cl-vector) + (let ((cl-i (length cl-string)) + cl-char cl-other) + (when (= cl-i (length cl-vector)) + (while (and (>= (setq cl-i (1- cl-i)) 0) + (or (eq (setq cl-char (aref cl-string cl-i)) + (setq cl-other (aref cl-vector cl-i))) + (and (characterp cl-other) ; Note we want to call this + ; as rarely as possible, it + ; doesn't have a bytecode. + (eq (downcase cl-char) (downcase cl-other)))))) + (< cl-i 0)))) + +;; See comment on cl-string-vector-equalp above. +(defsubst cl-bit-vector-vector-equalp (cl-bit-vector cl-vector) + "Helper function for `equalp', which see." +; (check-argument-type #'bit-vector-p cl-bit-vector) +; (check-argument-type #'vectorp cl-vector) + (let ((cl-i (length cl-bit-vector)) + cl-other) + (when (= cl-i (length cl-vector)) + (while (and (>= (setq cl-i (1- cl-i)) 0) + (numberp (setq cl-other (aref cl-vector cl-i))) + ;; Differs from clisp here. + (= (aref cl-bit-vector cl-i) cl-other))) + (< cl-i 0)))) + +;; These two helper functions call equalp recursively, the two above have no +;; need to. +(defsubst cl-vector-array-equalp (cl-vector cl-array) + "Helper function for `equalp', which see." +; (check-argument-type #'vector cl-vector) +; (check-argument-type #'arrayp cl-array) + (let ((cl-i (length cl-vector))) + (when (= cl-i (length cl-array)) + (while (and (>= (setq cl-i (1- cl-i)) 0) + (equalp (aref cl-vector cl-i) (aref cl-array cl-i)))) + (< cl-i 0)))) + +(defsubst cl-hash-table-contents-equalp (cl-hash-table-1 cl-hash-table-2) + "Helper function for `equalp', which see." + (symbol-macrolet + ;; If someone has gone and fished the uninterned symbol out of this + ;; function's constants vector, and subsequently stored it as a value + ;; in a hash table, it's their own damn fault when + ;; `cl-hash-table-contents-equalp' gives the wrong answer. + ((equalp-default '#:equalp-default)) + (loop + for x-key being the hash-key in cl-hash-table-1 + using (hash-value x-value) + with y-value = nil + always (and (not (eq equalp-default + (setq y-value (gethash x-key cl-hash-table-2 + equalp-default)))) + (equalp y-value x-value))))) + (defun equalp (x y) "Return t if two Lisp objects have similar structures and contents. + This is like `equal', except that it accepts numerically equal -numbers of different types (float vs. integer), and also compares -strings case-insensitively." - (cond ((eq x y) t) +numbers of different types (float, integer, bignum, bigfloat), and also +compares strings and characters case-insensitively. + +Arrays (that is, strings, bit-vectors, and vectors) of the same length and +with contents that are `equalp' are themselves `equalp'. + +Two hash tables are `equalp' if they have the same test (see +`hash-table-test'), if they have the same number of entries, and if, for +each entry in one hash table, its key is equivalent to a key in the other +hash table using the hash table test, and its value is `equalp' to the other +hash table's value for that key." + (cond ((eq x y)) ((stringp x) - ;; XEmacs change: avoid downcase - (and (stringp y) - (eq t (compare-strings x nil nil y nil nil t)))) - ;; XEmacs addition: compare characters - ((characterp x) - (and (characterp y) - (or (char-equal x y) - (char-equal (downcase x) (downcase y))))) + (if (stringp y) + (eq t (compare-strings x nil nil y nil nil t)) + (if (vectorp y) + (cl-string-vector-equalp x y) + ;; bit-vectors and strings are only equalp if they're + ;; zero-length: + (and (equal "" x) (equal #* y))))) ((numberp x) (and (numberp y) (= x y))) ((consp x) (while (and (consp x) (consp y) (equalp (car x) (car y))) (setq x (cdr x) y (cdr y))) (and (not (consp x)) (equalp x y))) - ((vectorp x) - (and (vectorp y) (= (length x) (length y)) - (let ((i (length x))) - (while (and (>= (setq i (1- i)) 0) - (equalp (aref x i) (aref y i)))) - (< i 0)))) - (t (equal x y)))) - + (t + ;; From here on, the type tests don't (yet) have bytecodes. + (let ((x-type (type-of x))) + (cond ((eq 'vector x-type) + (if (stringp y) + (cl-string-vector-equalp y x) + (if (vectorp y) + (cl-vector-array-equalp x y) + (if (bit-vector-p y) + (cl-bit-vector-vector-equalp y x))))) + ((eq 'character x-type) + (and (characterp y) + ;; If the characters are actually identical, the + ;; first eq test will have caught them above; we only + ;; need to check them case-insensitively here. + (eq (downcase x) (downcase y)))) + ((eq 'hash-table x-type) + (and (hash-table-p y) + (eq (hash-table-test x) (hash-table-test y)) + (= (hash-table-count x) (hash-table-count y)) + (cl-hash-table-contents-equalp x y))) + ((eq 'bit-vector x-type) + (if (bit-vector-p y) + (equal x y) + (if (vectorp y) + (cl-bit-vector-vector-equalp x y) + ;; bit-vectors and strings are only equalp if they're + ;; zero-length: + (and (equal "" y) (equal #* x))))) + (t (equal x y))))))) ;;; Control structures. @@ -408,7 +501,7 @@ symbols (cdr symbols)) (push `(make-obsolete ',(intern (format "%s*" symbol)) ',symbol "21.5.29") - result) + result) (push `(defun ,(intern (format "%s*" symbol)) (number &optional divisor) ,(format "See `%s'. This returns a list, not multiple values." @@ -605,6 +698,18 @@ ;; XEmacs change: we have a builtin remprop (defalias 'cl-remprop 'remprop) +(defun get-properties (plist indicator-list) + "Find a property from INDICATOR-LIST in PLIST. +Return 3 values: +- the first property found, +- its value, +- the tail of PLIST beginning with the found entry." + (do ((plst plist (cddr plst))) + ((null plst) (values nil nil nil)) + (cond ((atom (cdr plst)) + (error "Malformed property list: %S." plist)) + ((memq (car plst) indicator-list) + (return (values (car plst) (cadr plst) plst)))))) ;;; Hash tables. @@ -671,7 +776,7 @@ (defun cl-do-prettyprint () (skip-chars-forward " ") (if (looking-at "(") - (let ((skip (or (looking-at "((") + (let ((skip (or (looking-at "((") ;; XEmacs: be selective about trailing stuff after prog (looking-at "(prog[nv12\\(ress-feedback\\|n-with-message\\)]") (looking-at "(unwind-protect ")
--- a/lisp/cl-macs.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/cl-macs.el Thu Jan 07 17:01:25 2010 +0000 @@ -440,12 +440,19 @@ (while (and args (not (memq (car args) lambda-list-keywords))) (let ((arg (pop args))) (or (consp arg) (setq arg (list arg))) - (let* ((karg (if (consp (car arg)) (caar arg) - (intern (format ":%s" (car arg))))) + (let* ((karg (if (consp (car arg)) + ;; It's possible to use non-keywords here, as + ;; in the KEYWORD-ARGUMENT-NAME-PACKAGE Common + ;; Lisp issue: + (caar arg) + ;; Use read instead of intern in case we ever + ;; actually get packages and keywords are no + ;; longer in obarray: + (read (concat ":" (symbol-name (car arg)))))) (varg (if (consp (car arg)) (cadar arg) (car arg))) (def (if (cdr arg) (cadr arg) (or (car bind-defs) (cadr (assq varg bind-defs))))) - (look (list 'memq (list 'quote karg) restarg))) + (look (list 'memq (quote-maybe karg) restarg))) (and def bind-enquote (setq def (list 'quote def))) (if (cddr arg) (let* ((temp (or (nth 2 arg) (gensym))) @@ -467,12 +474,7 @@ 'quote (list nil (cl-const-expr-val def))) (list 'list nil def)))))))) - (push karg keys) - ;; XEmacs addition - (if (= (aref (symbol-name karg) 0) ?:) - (progn (set karg karg) - (push (list 'setq karg (list 'quote karg)) - bind-inits))))))) + (push karg keys))))) (setq keys (nreverse keys)) (or (and (eq (car args) '&allow-other-keys) (pop args)) (null keys) (= safety 0) @@ -487,7 +489,7 @@ (list 'setq var (list 'cdr (list 'cdr var)))) (list (list 'car (list 'cdr - (list 'memq (cons 'quote allow) + (list 'memq (car allow) restarg))) (list 'setq var nil)) (list t @@ -2637,8 +2639,7 @@ (gensym "--letf-val--"))) (syms (and (eq 'values (car place)) (gensym "--letf-syms--"))) - (cursor (and syms (gensym "--letf-cursor--"))) - (sym (and syms (gensym "--letf-sym--")))) + (cursor (and syms (gensym "--letf-cursor--")))) (setq lets (nconc (car method) (cond (syms @@ -3349,6 +3350,117 @@ (regexp-quote string) form)) +(define-compiler-macro equalp (&whole form x y) + "Expand calls to `equalp' where X or Y is a constant expression. + +Much of the processing that `equalp' does is dependent on the types of both +of its arguments, and with type information for one of them, we can +eliminate much of the body of the function at compile time. + +Where both X and Y are constant expressions, `equalp' is evaluated at +compile time by byte-optimize.el--this compiler macro passes FORM through to +the byte optimizer in those cases." + ;; Cases where both arguments are constant are handled in + ;; byte-optimize.el, we only need to handle those cases where one is + ;; constant here. + (let* ((equalp-sym (eval-when-compile (gensym))) + (let-form '(progn)) + (check-bit-vector t) + (check-string t) + (original-y y) + equalp-temp checked) + (macrolet + ((unordered-check (check) + `(prog1 + (setq checked + (or ,check + (prog1 ,(sublis '((x . y) (y . x)) check :test #'eq) + (setq equalp-temp x x y y equalp-temp)))) + (when checked + (unless (symbolp y) + (setq let-form `(let ((,equalp-sym ,y))) y equalp-sym)))))) + ;; In the bodies of the below clauses, x is always a constant expression + ;; of the type we're interested in, and y is always a symbol that refers + ;; to the result non-constant side of the comparison. + (cond ((unordered-check (and (arrayp x) (not (cl-const-expr-p y)))) + ;; Strings and other arrays. A vector containing the same + ;; character elements as a given string is equalp to that string; + ;; a bit-vector can only be equalp to a string if both are + ;; zero-length. + (cond + ((member x '("" #* [])) + ;; No need to protect against multiple evaluation here: + `(and (member ,original-y '("" #* [])) t)) + ((stringp x) + `(,@let-form + (if (stringp ,y) + (eq t (compare-strings ,x nil nil + ,y nil nil t)) + (if (vectorp ,y) + (cl-string-vector-equalp ,x ,y))))) + ((bit-vector-p x) + `(,@let-form + (if (bit-vector-p ,y) + ;; No need to call equalp on each element here: + (equal ,x ,y) + (if (vectorp ,y) + (cl-bit-vector-vector-equalp ,x ,y))))) + (t + (loop + for elt across x + ;; We may not need to check the other argument if it's a + ;; string or bit vector, depending on the contents of x: + always (progn + (unless (characterp elt) (setq check-string nil)) + (unless (and (numberp elt) (or (= elt 0) (= elt 1))) + (setq check-bit-vector nil)) + (or check-string check-bit-vector))) + `(,@let-form + (cond + ,@(if check-string + `(((stringp ,y) + (cl-string-vector-equalp ,y ,x)))) + ,@(if check-bit-vector + `(((bit-vector-p ,y) + (cl-bit-vector-vector-equalp ,y ,x)))) + ((vectorp ,y) + (cl-vector-array-equalp ,x ,y))))))) + ((unordered-check (and (characterp x) (not (cl-const-expr-p y)))) + `(,@let-form + (or (eq ,x ,y) + ;; eq has a bytecode, char-equal doesn't. + (and (characterp ,y) + (eq (downcase ,x) (downcase ,y)))))) + ((unordered-check (and (numberp x) (not (cl-const-expr-p y)))) + `(,@let-form + (and (numberp ,y) + (= ,x ,y)))) + ((unordered-check (and (hash-table-p x) (not (cl-const-expr-p y)))) + ;; Hash tables; follow the CL spec. + `(,@let-form + (and (hash-table-p ,y) + (eq ',(hash-table-test x) (hash-table-test ,y)) + (= ,(hash-table-count x) (hash-table-count ,y)) + (cl-hash-table-contents-equalp ,x ,y)))) + ((unordered-check + ;; Symbols; eq. + (and (not (cl-const-expr-p y)) + (or (memq x '(nil t)) + (and (eq (car-safe x) 'quote) (symbolp (second x)))))) + (cons 'eq (cdr form))) + ((unordered-check + ;; Compare conses at runtime, there's no real upside to + ;; unrolling the function -> they fall through to the next + ;; clause in this function. + (and (cl-const-expr-p x) (not (consp x)) + (not (cl-const-expr-p y)))) + ;; All other types; use equal. + (cons 'equal (cdr form))) + ;; Neither side is a constant expression, do all our evaluation at + ;; runtime (or both are, and equalp will be called from + ;; byte-optimize.el). + (t form))))) + (mapc #'(lambda (y) (put (car y) 'side-effect-free t)
--- a/lisp/cl.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/cl.el Thu Jan 07 17:01:25 2010 +0000 @@ -644,9 +644,9 @@ ;; XEmacs change: omit the autoload rules; we handle those a different way ;;; Define data for indentation and edebug. -(mapcar +(mapc-internal #'(lambda (entry) - (mapcar + (mapc-internal #'(lambda (func) (put func 'lisp-indent-function (nth 1 entry)) (put func 'lisp-indent-hook (nth 1 entry))
--- a/lisp/disass.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/disass.el Thu Jan 07 17:01:25 2010 +0000 @@ -247,7 +247,7 @@ (+ indent disassemble-recursive-indent))) ((eq (car-safe (car-safe arg)) 'byte-code) (insert "(<byte code>...)\n") - (mapcar ;recurse on list of byte-code objects + (mapc ;recurse on list of byte-code objects #'(lambda (obj) (disassemble-1 obj
--- a/lisp/dragdrop.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/dragdrop.el Thu Jan 07 17:01:25 2010 +0000 @@ -400,29 +400,6 @@ event nil (list (buffer-substring-no-properties begin end))) (error "CDE functionality not compiled in."))) -;; the OffiX drag stuff will soon move also (perhaps mouse.el) -;; if the drag event is done -(defun offix-start-drag (event data &optional type) - "Implement the OffiX drag operation. -Calls the internal function offix-start-drag-internal to do the actual work. -If type is not given, DndText is assumed." - ;; Oliver Graf <ograf@fga.de> - (interactive "esi") - (if (featurep 'offix) - (funcall (intern "offix-start-drag-internal") event data type) - (error "OffiX functionality not compiled in."))) - -(defun offix-start-drag-region (event begin end) - "Implement the OffiX drag operation for a region. -Calls the internal function offix-start-drag-internal to do the actual work. -This always assumes DndText as type." - ;; Oliver Graf <ograf@fga.de> - (interactive "_er") - (if (featurep 'offix) - (funcall (intern "offix-start-drag-internal") - event (buffer-substring-no-properties begin end)) - (error "OffiX functionality not compiled in."))) - (defun gtk-start-drag (event data &optional type) (interactive "esi") (if (featurep 'gtk)
--- a/lisp/easy-mmode.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/easy-mmode.el Thu Jan 07 17:01:25 2010 +0000 @@ -525,7 +525,7 @@ (let ((char (car cs)) (syntax (cdr cs))) (if (sequencep char) - (mapcar (lambda (c) (modify-syntax-entry c syntax st)) char) + (mapc (lambda (c) (modify-syntax-entry c syntax st)) char) (modify-syntax-entry char syntax st)))) ;; XEmacs change: we do not have set-char-table-parent (if parent (derived-mode-merge-syntax-tables
--- a/lisp/faces.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/faces.el Thu Jan 07 17:01:25 2010 +0000 @@ -407,11 +407,11 @@ "Set the parent of FACE to PARENT, for all properties. This makes all properties of FACE inherit from PARENT." (setq parent (get-face parent)) - (mapcar (lambda (x) - (set-face-property face x (vector parent) locale tag-set - how-to-add)) - (set-difference built-in-face-specifiers - '(display-table background-pixmap inherit))) + (mapc (lambda (x) + (set-face-property face x (vector parent) locale tag-set + how-to-add)) + (set-difference built-in-face-specifiers + '(display-table background-pixmap inherit))) (set-face-background-pixmap face (vector 'inherit ':face parent) locale tag-set how-to-add) nil)
--- a/lisp/files.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/files.el Thu Jan 07 17:01:25 2010 +0000 @@ -607,13 +607,13 @@ (mapcar #'file-name-as-directory trypath)) (list (file-name-as-directory ""))))) (or (catch 'found - (mapcar #'(lambda (x) - (let ((f (expand-file-name (concat x dir)))) - (if (file-directory-p f) - (progn - (cd-absolute f) - (throw 'found t))))) - cd-path) + (mapc #'(lambda (x) + (let ((f (expand-file-name (concat x dir)))) + (if (file-directory-p f) + (progn + (cd-absolute f) + (throw 'found t))))) + cd-path) nil) ;; jwz: give a better error message to those of us with the ;; good taste not to use a kludge like $CDPATH.
--- a/lisp/finder.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/finder.el Thu Jan 07 17:01:25 2010 +0000 @@ -172,7 +172,7 @@ (insert ";; Don't edit this file. It's generated by finder.el\n\n") (insert ";;; Code:\n") (insert "\n(defconst finder-package-info '(\n") - (mapcar + (mapc (lambda (d) (mapcar (lambda (f) @@ -243,7 +243,7 @@ (interactive) (setq buffer-read-only nil) (erase-buffer) - (mapcar + (mapc (lambda (assoc) (let ((keyword (car assoc))) (insert (symbol-name keyword)) @@ -266,7 +266,7 @@ (insert "The following packages match the keyword `" key "':\n\n") (setq finder-headmark (point)) - (mapcar + (mapc (lambda (x) (if (memq id (car (cdr (cdr x)))) (progn
--- a/lisp/frame.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/frame.el Thu Jan 07 17:01:25 2010 +0000 @@ -499,7 +499,7 @@ ;; Wean the frames using frame-initial-frame as ;; their minibuffer frame. - (mapcar + (mapc #'(lambda (frame) (set-frame-property frame 'minibuffer new-minibuffer)) @@ -750,15 +750,15 @@ Emacs uses this to avoid overriding explicit moves and resizings from the user during startup." (setq plist (canonicalize-lax-plist (copy-sequence plist))) - (mapcar #'(lambda (property) - (if (lax-plist-member plist property) - (progn - (setq frame-initial-geometry-arguments - (cons property - (cons (lax-plist-get plist property) - frame-initial-geometry-arguments))) - (setq plist (lax-plist-remprop plist property))))) - '(height width top left user-size user-position)) + (mapc #'(lambda (property) + (if (lax-plist-member plist property) + (progn + (setq frame-initial-geometry-arguments + (cons property + (cons (lax-plist-get plist property) + frame-initial-geometry-arguments))) + (setq plist (lax-plist-remprop plist property))))) + '(height width top left user-size user-position)) plist) ;; XEmacs change: Emacs has focus-follows-mouse here, which lets them
--- a/lisp/ldap.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/ldap.el Thu Jan 07 17:01:25 2010 +0000 @@ -533,13 +533,13 @@ (setq ldap (ldap-open host host-plist)) (if ldap-verbose (message "Adding LDAP entries...")) - (mapcar (function - (lambda (thisentry) - (ldap-add ldap (car thisentry) (cdr thisentry)) - (if ldap-verbose - (message "%d added" i)) - (setq i (1+ i)))) - entries) + (mapc (function + (lambda (thisentry) + (ldap-add ldap (car thisentry) (cdr thisentry)) + (if ldap-verbose + (message "%d added" i)) + (setq i (1+ i)))) + entries) (ldap-close ldap))) @@ -549,7 +549,7 @@ (DN MOD-SPEC1 MOD-SPEC2 ...) where DN is the distinguished name of the entry to modify, the following are modification specifications. A modification specification is itself a list of the form -(MOD-OP ATTR VALUE1 VALUE2 ...) MOD-OP and ATTR are mandatory, +\(MOD-OP ATTR VALUE1 VALUE2 ...) MOD-OP and ATTR are mandatory, VALUEs are optional depending on MOD-OP. MOD-OP is the type of modification, one of the symbols `add', `delete' or `replace'. ATTR is the LDAP attribute type to modify. @@ -573,13 +573,13 @@ (setq ldap (ldap-open host host-plist)) (if ldap-verbose (message "Modifying LDAP entries...")) - (mapcar (function - (lambda (thisentry) - (ldap-modify ldap (car thisentry) (cdr thisentry)) - (if ldap-verbose - (message "%d modified" i)) - (setq i (1+ i)))) - entry-mods) + (mapc (function + (lambda (thisentry) + (ldap-modify ldap (car thisentry) (cdr thisentry)) + (if ldap-verbose + (message "%d modified" i)) + (setq i (1+ i)))) + entry-mods) (ldap-close ldap))) @@ -608,13 +608,13 @@ (let ((i 1)) (if ldap-verbose (message "Deleting LDAP entries...")) - (mapcar (function - (lambda (thisdn) - (ldap-delete ldap thisdn) - (if ldap-verbose - (message "%d deleted" i)) - (setq i (1+ i)))) - dn)) + (mapc (function + (lambda (thisdn) + (ldap-delete ldap thisdn) + (if ldap-verbose + (message "%d deleted" i)) + (setq i (1+ i)))) + dn)) (if ldap-verbose (message "Deleting LDAP entry...")) (ldap-delete ldap dn))
--- a/lisp/list-mode.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/list-mode.el Thu Jan 07 17:01:25 2010 +0000 @@ -174,8 +174,9 @@ (if extent (goto-char (extent-end-position extent))) ;; Move to start of next one. (or (extent-at (point) (current-buffer) 'list-mode-item) - (goto-char (next-single-property-change (point) 'list-mode-item - nil end)))) + (goto-char (next-single-char-property-change (point) + 'list-mode-item + nil end)))) (setq n (1- n))) (while (and (< n 0) (not (bobp))) (let ((extent (extent-at (point) (current-buffer) 'list-mode-item)) @@ -186,7 +187,7 @@ (if (setq extent (extent-at (point) (current-buffer) 'list-mode-item nil 'before)) (goto-char (extent-start-position extent)) - (goto-char (previous-single-property-change + (goto-char (previous-single-char-property-change (point) 'list-mode-item nil end)) (if (setq extent (extent-at (point) (current-buffer) 'list-mode-item nil 'before)) @@ -648,7 +649,7 @@ (if (not (get-buffer-window "*Completions*")) nil (select-window (get-buffer-window "*Completions*")) - (goto-char (next-single-property-change (point-min) 'list-mode-item nil - (point-max))))) + (goto-char (next-single-char-property-change (point-min) 'list-mode-item + nil (point-max))))) ;;; list-mode.el ends here
--- a/lisp/loadhist.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/loadhist.el Thu Jan 07 17:01:25 2010 +0000 @@ -177,7 +177,7 @@ (flet ((reset-aload (x) (let ((aload (get x 'autoload))) (if aload (fset x (cons 'autoload aload)))))) - (mapcar + (mapc #'(lambda (x) (cond ((stringp x) nil) ((consp x)
--- a/lisp/map-ynp.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/map-ynp.el Thu Jan 07 17:01:25 2010 +0000 @@ -141,14 +141,14 @@ ;; its definition. ;; XEmacs map (let ((foomap (make-sparse-keymap))) - (mapcar #'(lambda (elt) - (define-key - foomap - (if (characterp (car elt)) - (char-to-string (car elt)) - (car elt)) - (vector (nth 1 elt)))) - action-alist) + (mapc #'(lambda (elt) + (define-key + foomap + (if (characterp (car elt)) + (char-to-string (car elt)) + (car elt)) + (vector (nth 1 elt)))) + action-alist) (set-keymap-parents foomap (list query-replace-map)) foomap))) (unwind-protect
--- a/lisp/menubar-items.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/menubar-items.el Thu Jan 07 17:01:25 2010 +0000 @@ -247,7 +247,7 @@ (submenu-generate-accelerator-spec (mapcar #'(lambda (bmk) `[,bmk (bookmark-jump ',bmk)]) - (bookmark-all-names))))) + (declare-fboundp (bookmark-all-names)))))) (append menu '("---") items))))) "---" ["Insert %_Contents" bookmark-menu-insert
--- a/lisp/mouse.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/mouse.el Thu Jan 07 17:01:25 2010 +0000 @@ -231,15 +231,7 @@ Returns whether a drag was begun." ;; #### barely implemented. (when (click-inside-selection-p event) - (cond ((featurep 'offix) - (declare-fboundp - (offix-start-drag-region - event - (extent-start-position zmacs-region-extent) - (extent-end-position zmacs-region-extent))) - t) - ((featurep 'cde) - ;; should also work with CDE + (cond ((featurep 'cde) (declare-fboundp (cde-start-drag-region event (extent-start-position zmacs-region-extent) @@ -1003,7 +995,7 @@ (let ((tmp start)) (setq start end end tmp))) (cond ((= start end) ; never delete the last remaining extent - (mapcar 'delete-extent (cdr extents)) + (mapc 'delete-extent (cdr extents)) (setcdr extents nil) (set-extent-endpoints (car extents) start start)) (t @@ -1049,7 +1041,7 @@ (setq last rest rest (cdr rest))) (cond (rest - (mapcar 'delete-extent rest) + (mapc 'delete-extent rest) (setcdr last nil)) ((not (eobp)) (while (not (eobp)) @@ -1320,7 +1312,7 @@ (set-extent-face e 'primary-selection))))) (add-hook 'pre-command-hook 'default-mouse-track-cleanup-extents-hook) (if (consp extent) ; rectangle-p - (mapcar func extent) + (mapc func extent) (if extent (funcall func extent))))) t) @@ -1334,10 +1326,10 @@ (if (consp extent) (if (funcall dead-func extent) (let (newval) - (mapcar (function (lambda (x) - (if (not (funcall dead-func x)) - (setq newval (cons x newval))))) - extent) + (mapc (function (lambda (x) + (if (not (funcall dead-func x)) + (setq newval (cons x newval))))) + extent) (setq default-mouse-track-extent (nreverse newval)))) (if (funcall dead-func extent) (setq default-mouse-track-extent nil)))))
--- a/lisp/mule/arabic.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/mule/arabic.el Thu Jan 07 17:01:25 2010 +0000 @@ -28,9 +28,6 @@ ;;; Code: -;; See iso-with-esc.el for commentary on the ISO standard Arabic character -;; set. - (make-coding-system 'iso-8859-6 'fixed-width "ISO 8859-6 (Arabic)" '(unicode-map
--- a/lisp/mule/ethio-util.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/mule/ethio-util.el Thu Jan 07 17:01:25 2010 +0000 @@ -1055,7 +1055,7 @@ (aset ethio-fidel-to-sera-map 359 "`?") (aset ethio-fidel-to-sera-map 463 "?")) - (mapcar + (mapc #'(lambda (x) (aset (aref ethio-fidel-to-sera-map x) 2 @@ -1300,7 +1300,10 @@ (cond ;; in case of gemination - ((eq (char-charset ch) 'composition) + ;; XEmacs change; the (and nil ...) eliminates a warning about using + ;; decompose-composite-char. The name of the composite charset is + ;; composite, anyway, not composition; and it has never worked. + ((and nil (eq (char-charset ch) 'composition)) (setq ch (string-to-char (decompose-composite-char ch)) composite t)) ;; neither gemination nor fidel
--- a/lisp/mule/iso-with-esc.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/mule/iso-with-esc.el Thu Jan 07 17:01:25 2010 +0000 @@ -120,89 +120,6 @@ safe-charsets (ascii greek-iso8859-7) mnemonic "Grk")) -;; ISO 8859-6 is such a useless character set that it seems a waste of -;; codespace to dump it. Let me count the ways: -;; -;; 1. It doesn't support Persian or Urdu, let alone Sinhalese, despite -;; plenty of unallocated code points. -;; -;; 2. It doesn't encode all the vowel diacritics (the Harakaat) despite that -;; they are necessary, even for the Arabs, for basic things like -;; dictionary entries, children's books, and occasional disambiguation. -;; -;; 3. The Arabs don't use it, they use Windows-1256, which also supports -;; Persian, at least, as well as the French characters necessary in -;; Lebanon and North Africa. - -(make-charset - 'arabic-iso8859-6 - "Right-Hand Part of Latin/Arabic Alphabet (ISO/IEC 8859-6): ISO-IR-127" - '(dimension 1 - registry "ISO8859-6" - chars 96 - columns 1 - direction r2l - final ?G - graphic 1 - short-name "RHP of ISO8859/6" - long-name "RHP of Arabic (ISO 8859-6): ISO-IR-127")) - -(loop - for (iso8859-6 unicode) - in '((#xA0 #x00A0) ;; NO-BREAK SPACE - (#xA4 #x00A4) ;; CURRENCY SIGN - (#xAC #x060C) ;; ARABIC COMMA - (#xAD #x00AD) ;; SOFT HYPHEN - (#xBB #x061B) ;; ARABIC SEMICOLON - (#xBF #x061F) ;; ARABIC QUESTION MARK - (#xC1 #x0621) ;; ARABIC LETTER HAMZA - (#xC2 #x0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE - (#xC3 #x0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE - (#xC4 #x0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE - (#xC5 #x0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW - (#xC6 #x0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE - (#xC7 #x0627) ;; ARABIC LETTER ALEF - (#xC8 #x0628) ;; ARABIC LETTER BEH - (#xC9 #x0629) ;; ARABIC LETTER TEH MARBUTA - (#xCA #x062A) ;; ARABIC LETTER TEH - (#xCB #x062B) ;; ARABIC LETTER THEH - (#xCC #x062C) ;; ARABIC LETTER JEEM - (#xCD #x062D) ;; ARABIC LETTER HAH - (#xCE #x062E) ;; ARABIC LETTER KHAH - (#xCF #x062F) ;; ARABIC LETTER DAL - (#xD0 #x0630) ;; ARABIC LETTER THAL - (#xD1 #x0631) ;; ARABIC LETTER REH - (#xD2 #x0632) ;; ARABIC LETTER ZAIN - (#xD3 #x0633) ;; ARABIC LETTER SEEN - (#xD4 #x0634) ;; ARABIC LETTER SHEEN - (#xD5 #x0635) ;; ARABIC LETTER SAD - (#xD6 #x0636) ;; ARABIC LETTER DAD - (#xD7 #x0637) ;; ARABIC LETTER TAH - (#xD8 #x0638) ;; ARABIC LETTER ZAH - (#xD9 #x0639) ;; ARABIC LETTER AIN - (#xDA #x063A) ;; ARABIC LETTER GHAIN - (#xE0 #x0640) ;; ARABIC TATWEEL - (#xE1 #x0641) ;; ARABIC LETTER FEH - (#xE2 #x0642) ;; ARABIC LETTER QAF - (#xE3 #x0643) ;; ARABIC LETTER KAF - (#xE4 #x0644) ;; ARABIC LETTER LAM - (#xE5 #x0645) ;; ARABIC LETTER MEEM - (#xE6 #x0646) ;; ARABIC LETTER NOON - (#xE7 #x0647) ;; ARABIC LETTER HEH - (#xE8 #x0648) ;; ARABIC LETTER WAW - (#xE9 #x0649) ;; ARABIC LETTER ALEF MAKSURA - (#xEA #x064A) ;; ARABIC LETTER YEH - (#xEB #x064B) ;; ARABIC FATHATAN - (#xEC #x064C) ;; ARABIC DAMMATAN - (#xED #x064D) ;; ARABIC KASRATAN - (#xEE #x064E) ;; ARABIC FATHA - (#xEF #x064F) ;; ARABIC DAMMA - (#xF0 #x0650) ;; ARABIC KASRA - (#xF1 #x0651) ;; ARABIC SHADDA - (#xF2 #x0652));; ARABIC SUKUN - do (set-unicode-conversion (make-char 'arabic-iso8859-6 iso8859-6) - unicode)) - ;;;###autoload (make-coding-system 'arabic-iso-8bit-with-esc 'iso2022 ;; GNU's iso-8859-6 is
--- a/lisp/mule/make-coding-system.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/mule/make-coding-system.el Thu Jan 07 17:01:25 2010 +0000 @@ -322,7 +322,7 @@ to 256 distinct characters." (check-argument-type #'listp unicode-map) (let ((decode-table (make-vector 256 nil)) - (encode-table (make-hash-table :size 256)) + (encode-table (make-hash-table :size 256 :rehash-threshold 0.999)) (private-use-start (encode-char fixed-width-private-use-start 'ucs)) (invalid-sequence-code-point-start (eval-when-compile
--- a/lisp/mule/mule-category.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/mule/mule-category.el Thu Jan 07 17:01:25 2010 +0000 @@ -244,6 +244,7 @@ (latin-iso8859-4 ?l) (latin-iso8859-9 ?l) (cyrillic-iso8859-5 ?y "Cyrillic character set") + (arabic-iso8859-6 ?b "Arabic character set") (greek-iso8859-7 ?g "Greek character set") (hebrew-iso8859-8 ?w "Hebrew character set") (katakana-jisx0201 ?k "Japanese 1-byte Katakana character set")
--- a/lisp/mule/mule-msw-init-late.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/mule/mule-msw-init-late.el Thu Jan 07 17:01:25 2010 +0000 @@ -37,6 +37,7 @@ (greek-iso8859-7 . "Greek") (latin-iso8859-9 . "Turkish") (hebrew-iso8859-8 . "Hebrew") + (arabic-iso8859-6 . "Arabic") (latin-iso8859-4 . "Baltic") (vietnamese-viscii-lower . "Viet Nam") (vietnamese-viscii-upper . "Viet Nam")
--- a/lisp/obsolete.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/obsolete.el Thu Jan 07 17:01:25 2010 +0000 @@ -243,7 +243,7 @@ ;; Don't provide the last three functions unless the menubar feature is ;; available. This approach (with #'unintern) avoids warnings about lost ;; docstrings since make-docfile doesn't parse bytecode. - (mapcar #'unintern '(add-menu-item add-menu package-get-download-menu))) + (mapc #'unintern '(add-menu-item add-menu package-get-download-menu))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;; minibuffer
--- a/lisp/package-get.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/package-get.el Thu Jan 07 17:01:25 2010 +0000 @@ -227,7 +227,6 @@ ; ("Chile (cl.xemacs.org)" "ftp.cl.xemacs.org" "packages") ("China (ftp.cn.xemacs.org)" "ftp.cn.xemacs.org" "pub/xemacs/packages") ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages") - ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "xemacs/packages") ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages") ("France (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/packages") ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages") @@ -302,8 +301,6 @@ "pub/xemacs/beta/experimental/packages") ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages") - ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org" - "xemacs/beta/experimental/packages") ("Finland Pre-Releases (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/beta/experimental/packages") ("France Pre-Releases (fr.xemacs.org)" "ftp.fr.xemacs.org" @@ -667,10 +664,10 @@ (package-get-require-base t) ;; Load a fresh copy (catch 'exit - (mapcar (lambda (pkg) - (if (not (package-get (car pkg) nil 'never)) - (throw 'exit nil))) ;; Bail out if error detected - packages-package-list)) + (mapc (lambda (pkg) + (if (not (package-get (car pkg) nil 'never)) + (throw 'exit nil))) ;; Bail out if error detected + packages-package-list)) (package-net-update-installed-db)) ;;;###autoload
--- a/lisp/package-ui.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/package-ui.el Thu Jan 07 17:01:25 2010 +0000 @@ -350,10 +350,10 @@ (kill-buffer tmpbuf)) (when do-delete (message "Deleting selected packages ...") (sit-for 0) - (mapcar (lambda (pkg) - (package-admin-delete-binary-package - pkg (package-admin-get-install-dir pkg))) - (nreverse pui-deleted-packages)) + (mapc (lambda (pkg) + (package-admin-delete-binary-package + pkg (package-admin-get-install-dir pkg))) + (nreverse pui-deleted-packages)) (message "Packages deleted")))) (let ((tmpbuf "*Packages-To-Install*") @@ -385,11 +385,11 @@ (erase-buffer package-admin-temp-buffer)) (message "Installing selected packages ...") (sit-for 0) (if (catch 'done - (mapcar (lambda (pkg) - (if (not (package-get pkg nil nil - pui-package-install-dest-dir)) - (throw 'done nil))) - (nreverse pui-selected-packages)) + (mapc (lambda (pkg) + (if (not (package-get pkg nil nil + pui-package-install-dest-dir)) + (throw 'done nil))) + (nreverse pui-selected-packages)) t) (progn (pui-list-packages) @@ -615,7 +615,7 @@ ")) (insert sep-string) (setq start (point)) - (mapcar + (mapc #'(lambda (pkg) (let (pkg-sym info version desc b e extent current-vers disp)
--- a/lisp/select.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/select.el Thu Jan 07 17:01:25 2010 +0000 @@ -231,7 +231,7 @@ (if primary-selection-extent (let ((inhibit-quit t)) (if (consp primary-selection-extent) - (mapcar 'delete-extent primary-selection-extent) + (mapc 'delete-extent primary-selection-extent) (delete-extent primary-selection-extent)) (setq primary-selection-extent nil))) (if zmacs-regions (zmacs-deactivate-region))) @@ -239,7 +239,7 @@ (if secondary-selection-extent (let ((inhibit-quit t)) (if (consp secondary-selection-extent) - (mapcar 'delete-extent secondary-selection-extent) + (mapc 'delete-extent secondary-selection-extent) (delete-extent secondary-selection-extent)) (setq secondary-selection-extent nil))))) nil) @@ -324,7 +324,7 @@ nil (condition-case () (if (listp previous-extent) - (mapcar 'delete-extent previous-extent) + (mapc 'delete-extent previous-extent) (delete-extent previous-extent)) (error nil)))
--- a/lisp/simple.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/simple.el Thu Jan 07 17:01:25 2010 +0000 @@ -3716,13 +3716,13 @@ (funcall mode) ;; Set up other local variables. - (mapcar (lambda (v) - (condition-case () ;in case var is read-only - (if (symbolp v) - (makunbound v) - (set (make-local-variable (car v)) (cdr v))) - (error nil))) - lvars) + (mapc (lambda (v) + (condition-case () ;in case var is read-only + (if (symbolp v) + (makunbound v) + (set (make-local-variable (car v)) (cdr v))) + (error nil))) + lvars) ;; Run any hooks (typically set up by the major mode ;; for cloning to work properly).
--- a/lisp/term/tvi970.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/term/tvi970.el Thu Jan 07 17:01:25 2010 +0000 @@ -34,7 +34,7 @@ ;; (define-key function-key-map "\eO" (make-keymap))) ;; Miscellaneous keys -(mapcar (function (lambda (key-binding) +(mapc (function (lambda (key-binding) (define-key function-key-map (car key-binding) (nth 1 key-binding)))) '(
--- a/lisp/term/wyse50.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/term/wyse50.el Thu Jan 07 17:01:25 2010 +0000 @@ -37,7 +37,7 @@ ;;; Code: (define-key function-key-map "\C-a" (make-keymap)) -(mapcar (function (lambda (key-definition) +(mapc (function (lambda (key-definition) (define-key function-key-map (car key-definition) (nth 1 key-definition)))) '( @@ -116,7 +116,7 @@ M-r M-x move-to-window-line, Funct up-arrow or down-arrow are similar " (interactive) - (mapcar (function (lambda (key-definition) + (mapc (function (lambda (key-definition) (global-set-key (car key-definition) (nth 1 key-definition)))) ;; By unsetting C-a and then binding it to a prefix, we
--- a/lisp/unicode.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/unicode.el Thu Jan 07 17:01:25 2010 +0000 @@ -73,6 +73,7 @@ ("8859-3.TXT" latin-iso8859-3 #xA0 #xFF #x-80) ("8859-4.TXT" latin-iso8859-4 #xA0 #xFF #x-80) ("8859-5.TXT" cyrillic-iso8859-5 #xA0 #xFF #x-80) + ("8859-6.TXT" arabic-iso8859-6 #xA0 #xFF #x-80) ("8859-7.TXT" greek-iso8859-7 #xA0 #xFF #x-80) ("8859-8.TXT" hebrew-iso8859-8 #xA0 #xFF #x-80) ("8859-9.TXT" latin-iso8859-9 #xA0 #xFF #x-80) @@ -135,14 +136,14 @@ ("lao.txt" lao) ) ))) - (mapcar #'(lambda (tables) - (let ((undir - (expand-file-name (car tables) data-directory))) - (mapcar #'(lambda (args) - (apply 'load-unicode-mapping-table - (expand-file-name (car args) undir) - (cdr args))) - (cdr tables)))) + (mapc #'(lambda (tables) + (let ((undir + (expand-file-name (car tables) data-directory))) + (mapc #'(lambda (args) + (apply 'load-unicode-mapping-table + (expand-file-name (car args) undir) + (cdr args))) + (cdr tables)))) parse-args) ;; The default-unicode-precedence-list. We set this here to default to ;; *not* mapping various European characters to East Asian characters; @@ -153,7 +154,7 @@ '(ascii control-1 latin-iso8859-1 latin-iso8859-2 latin-iso8859-15 greek-iso8859-7 hebrew-iso8859-8 ipa cyrillic-iso8859-5 latin-iso8859-16 latin-iso8859-3 latin-iso8859-4 latin-iso8859-9 - vietnamese-viscii-lower vietnamese-viscii-upper + vietnamese-viscii-lower vietnamese-viscii-upper arabic-iso8859-6 jit-ucs-charset-0 japanese-jisx0208 japanese-jisx0208-1978 japanese-jisx0212 japanese-jisx0213-1 japanese-jisx0213-2 chinese-gb2312 chinese-sisheng chinese-big5-1 chinese-big5-2 @@ -619,11 +620,11 @@ ;; make-docfile.c pick up symbol and function documentation correctly. An ;; alternative approach would be to fix make-docfile.c to be able to read ;; Lisp. - (mapcar #'unintern - '(ccl-encode-to-ucs-2 unicode-error-default-translation-table - unicode-invalid-regexp-range frob-unicode-errors-region - unicode-error-translate-region unicode-query-coding-region - unicode-query-coding-skip-chars-arg))) + (mapc #'unintern + '(ccl-encode-to-ucs-2 unicode-error-default-translation-table + unicode-invalid-regexp-range frob-unicode-errors-region + unicode-error-translate-region unicode-query-coding-region + unicode-query-coding-skip-chars-arg))) ;; #### UTF-7 is not yet implemented, and it's tricky to do. There's ;; an implementation in appendix A.1 of the Unicode Standard, Version
--- a/lisp/x-font-menu.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/x-font-menu.el Thu Jan 07 17:01:25 2010 +0000 @@ -119,14 +119,14 @@ (vector family (mapcar - '(lambda (weight-symbol) - (let ((pair (assoc weight-symbol - '((:light "Light") - (:medium "Medium") - (:demibold "Demibold") - (:bold "Bold") - (:black "Black"))))) - (if pair (cadr pair)))) + (lambda (weight-symbol) + (let ((pair (assoc weight-symbol + '((:light "Light") + (:medium "Medium") + (:demibold "Demibold") + (:bold "Bold") + (:black "Black"))))) + (if pair (cadr pair)))) weights) '(0) nil))) @@ -140,24 +140,24 @@ (vector (mapcar 'fc-make-font-menu-entry families) (mapcar - '(lambda (family) - (vector family `(font-menu-set-font ,family nil nil) - :style 'radio :active nil :selected nil)) + (lambda (family) + (vector family `(font-menu-set-font ,family nil nil) + :style 'radio :active nil :selected nil)) families) (mapcar - '(lambda (size) - (vector - (number-to-string size) - `(font-menu-set-font nil nil ,size) - :style 'radio :active nil :selected nil)) + (lambda (size) + (vector + (number-to-string size) + `(font-menu-set-font nil nil ,size) + :style 'radio :active nil :selected nil)) ;; common size list in decipoints, fontconfig wants points (mapcar (lambda (x) (/ x 10)) font-menu-common-sizes)) (mapcar - '(lambda (weight) - (vector - weight - `(font-menu-set-font nil ,weight nil) - :style 'radio :active nil :selected nil)) + (lambda (weight) + (vector + weight + `(font-menu-set-font nil ,weight nil) + :style 'radio :active nil :selected nil)) '("Light" "Medium" "Demibold" "Bold" "Black")))) ;; get or initialize the entry for device (dev-cache (or (assq device device-fonts-cache)
--- a/lisp/x-misc.el Fri Jan 01 19:45:39 2010 +0000 +++ b/lisp/x-misc.el Thu Jan 07 17:01:25 2010 +0000 @@ -60,9 +60,9 @@ has a spec in LOCALE, nothing is done.) Finally, if LOCALE is 'global, a check is done for bogus resource specifications." (if (eq locale 'global) - (mapcar #'(lambda (x) - (x-bogosity-check-resource (car x) (cdr x) type)) - resource-list)) + (mapc #'(lambda (x) + (x-bogosity-check-resource (car x) (cdr x) type)) + resource-list)) (if (not (specifier-spec-list specifier locale)) (catch 'done (while resource-list
--- a/lwlib/ChangeLog Fri Jan 01 19:45:39 2010 +0000 +++ b/lwlib/ChangeLog Thu Jan 07 17:01:25 2010 +0000 @@ -1,3 +1,13 @@ +2009-12-09 Jerry James <james@xemacs.org> + + * lwlib-Xlw.c: Include needed Xmu headers instead of obsolete xmu.h. + * xlwcheckbox.c: Ditto. + * xlwradio.c: Ditto. + * xlwgauge.c: Ditto. Unconditionally include HAVE_XMU code. + * xlwtabs.c: Ditto. + * xlwgcs.c: Ditto. Remove pre-X11R5 code. + * xlwgcs.h: Remove pre-X11R5 declarations. + 2009-11-10 Jerry James <james@xemacs.org> * lwlib.c: Drop workaround for old NeXT systems.
--- a/lwlib/lwlib-Xlw.c Fri Jan 01 19:45:39 2010 +0000 +++ b/lwlib/lwlib-Xlw.c Thu Jan 07 17:01:25 2010 +0000 @@ -30,6 +30,7 @@ #include <X11/ObjectP.h> #include <X11/CompositeP.h> #include <X11/Shell.h> +#include <X11/Xmu/Converters.h> #ifdef HAVE_X_WIDGETS #include "../src/EmacsManager.h" #endif @@ -46,7 +47,6 @@ #ifdef NEED_ATHENA #include "lwlib-Xaw.h" #endif -#include "../src/xmu.h" #include "xlwtabs.h" #endif
--- a/lwlib/xlwcheckbox.c Fri Jan 01 19:45:39 2010 +0000 +++ b/lwlib/xlwcheckbox.c Thu Jan 07 17:01:25 2010 +0000 @@ -39,7 +39,6 @@ #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> #include ATHENA_XawInit_h_ -#include "../src/xmu.h" #include "xt-wrappers.h" #include "xlwcheckboxP.h"
--- a/lwlib/xlwgauge.c Fri Jan 01 19:45:39 2010 +0000 +++ b/lwlib/xlwgauge.c Thu Jan 07 17:01:25 2010 +0000 @@ -55,12 +55,10 @@ #include ATHENA_XawInit_h_ #include "xt-wrappers.h" #include "xlwgaugeP.h" -#include "../src/xmu.h" -#ifdef HAVE_XMU #include <X11/Xmu/Atoms.h> #include <X11/Xmu/Drawing.h> +#include <X11/Xmu/Misc.h> #include <X11/Xmu/StdSel.h> -#endif /**************************************************************** @@ -226,10 +224,8 @@ GaugeClassInit (void) { XawInitializeWidgetSet(); -#ifdef HAVE_XMU XtAddConverter(XtRString, XtROrientation, XmuCvtStringToOrientation, - NULL, 0) ; -#endif + NULL, 0) ; } @@ -640,7 +636,6 @@ XGetAtomName(XtDisplay(w),*selection), XGetAtomName(XtDisplay(w),*target)); -#ifdef HAVE_XMU if( *target == XA_TARGETS(XtDisplay(w)) ) { XPointer stdTargets; @@ -669,9 +664,7 @@ return True ; } - else -#endif - if( *target == XA_INTEGER ) + else if( *target == XA_INTEGER ) { *type = XA_INTEGER ; *length = 1 ; @@ -680,12 +673,7 @@ return True ; } - else if( *target == XA_STRING -#ifdef HAVE_XMU - || - *target == XA_TEXT(XtDisplay(w)) -#endif - ) + else if( *target == XA_STRING || *target == XA_TEXT(XtDisplay(w)) ) { *type = *target ; *length = strlen(gw->gauge.selstr)*sizeof(char) ; @@ -697,17 +685,14 @@ else { /* anything else, we just give it to XmuConvertStandardSelection() */ -#ifdef HAVE_XMU req = XtGetSelectionRequest(w, *selection, NULL) ; if( XmuConvertStandardSelection(w, req->time, selection, target, - type, (XPointer *) value, length, format) ) + type, (XPointer *) value, length, format) ) return True ; - else -#endif - { + else { printf( "Gauge: requestor is requesting unsupported selection %s:%s\n", - XGetAtomName(XtDisplay(w),*selection), + XGetAtomName(XtDisplay(w),*selection), XGetAtomName(XtDisplay(w),*target)); return False ; } @@ -782,13 +767,7 @@ XawGaugeSetValue(w, *iptr) ; } - else if( *type == XA_STRING -#ifdef HAVE_XMU - || - *type == XA_TEXT(dpy) -#endif - ) - { + else if( *type == XA_STRING || *type == XA_TEXT(dpy) ) { cptr = (char *)value ; XawGaugeSetValue(w, atoi(cptr)) ; }
--- a/lwlib/xlwgcs.c Fri Jan 01 19:45:39 2010 +0000 +++ b/lwlib/xlwgcs.c Thu Jan 07 17:01:25 2010 +0000 @@ -113,7 +113,8 @@ #include <X11/Xlib.h> #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> -#include "../src/xmu.h" +#include <X11/Xmu/Drawing.h> +#include <X11/Xmu/Misc.h> #include "xlwgcs.h" /* Color & GC allocation. @@ -167,14 +168,6 @@ -#if XtSpecificationRelease < 5 - -static GC XtAllocateGC(Widget, int, unsigned long, XGCValues *, - unsigned long, unsigned long) ; - -#endif - - #if NeedFunctionPrototypes static Pixmap getDitherPixmap(Widget, int contrast) ; #else @@ -231,13 +224,7 @@ GC AllocShadeGC(Widget w, Pixel fg, Pixel bg, Font font, - int contrast, -#ifdef HAVE_XMU - Bool be_nice_to_cmap -#else - Bool UNUSED (be_nice_to_cmap) -#endif - ) + int contrast, Bool be_nice_to_cmap) { XGCValues values ; unsigned long vmask, dcmask ; @@ -255,7 +242,6 @@ dcmask = GCFont|GCSubwindowMode|GCDashOffset| GCDashList|GCArcMode|GCGraphicsExposures ; } -#ifdef HAVE_XMU if( be_nice_to_cmap || w->core.depth == 1) { if( contrast <= 5 ) @@ -269,10 +255,7 @@ } return XtAllocateGC(w, w->core.depth, vmask, &values, 0L, dcmask) ; - } - else -#endif - { + } else { dcmask |= GCBackground ; values.foreground = AllocGreyPixel(w, fg, bg, contrast) ; return XtAllocateGC(w, w->core.depth, vmask, &values, 0L, dcmask) ; @@ -324,13 +307,7 @@ /* return arm-shadow gc. */ GC -AllocArmGC(Widget w, int contrast, -#ifdef HAVE_XMU - Bool be_nice_to_cmap -#else - Bool UNUSED (be_nice_to_cmap) -#endif - ) +AllocArmGC(Widget w, int contrast, Bool be_nice_to_cmap) { Screen *scr = XtScreen (w); XGCValues values ; @@ -338,7 +315,6 @@ /* Not clear exactly what we should do here. Take a look at * Xaw3d to see what they do. */ -#ifdef HAVE_XMU if( w->core.depth == 1 || be_nice_to_cmap ) { values.background = w->core.background_pixel ; @@ -354,10 +330,7 @@ &values, 0L, GCFont|GCSubwindowMode|GCGraphicsExposures| GCDashOffset|GCDashList|GCArcMode) ; - } - else -#endif - { + } else { values.foreground = AllocShadowPixel(w, 100-contrast) ; return XtAllocateGC(w, w->core.depth, GCForeground, &values, @@ -523,18 +496,6 @@ } } -#if XtSpecificationRelease < 5 - -static GC -XtAllocateGC(Widget w, int UNUSED (depth), unsigned long mask, - XGCValues *values, unsigned long UNUSED (dynamic), - unsigned long UNUSED (dontcare)) -{ - return XtGetGC(w, mask, values) ; -} -#endif - - static unsigned char screen0[2] = {0,0} ; static unsigned char screen25[2] = {0,0xaa} ; static unsigned char screen75[2] = {0xaa,0xff} ;
--- a/lwlib/xlwgcs.h Fri Jan 01 19:45:39 2010 +0000 +++ b/lwlib/xlwgcs.h Thu Jan 07 17:01:25 2010 +0000 @@ -116,12 +116,6 @@ extern void Draw3dBox(Widget w, int x, int y, int wid, int hgt, int s, GC topgc, GC botgc) ; -#if XtSpecificationRelease < 5 -extern GC XtAllocateGC(Widget, int depth, unsigned long mask, - XGCValues *, - unsigned long dynamic, unsigned long dontcare) ; -#endif - #else extern GC AllocFgGC() ; @@ -136,10 +130,6 @@ extern Pixel AllocGreyPixelC() ; extern void Draw3dBox() ; -#if XtSpecificationRelease < 5 -extern GC XtAllocateGC() ; -#endif - #endif #endif /* GCS_H */
--- a/lwlib/xlwradio.c Fri Jan 01 19:45:39 2010 +0000 +++ b/lwlib/xlwradio.c Thu Jan 07 17:01:25 2010 +0000 @@ -53,8 +53,8 @@ #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> +#include <X11/Xmu/Misc.h> #include ATHENA_XawInit_h_ -#include "../src/xmu.h" #include "xt-wrappers.h" #include "xlwradioP.h"
--- a/lwlib/xlwtabs.c Fri Jan 01 19:45:39 2010 +0000 +++ b/lwlib/xlwtabs.c Thu Jan 07 17:01:25 2010 +0000 @@ -71,12 +71,13 @@ #include <X11/Xlib.h> #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> +#include <X11/Xmu/Drawing.h> +#include <X11/Xmu/Misc.h> /* #### This may be risky, lwlib-internal.h redefines abort() */ #include "lwlib-fonts.h" #include "lwlib-colors.h" #include "lwlib-internal.h" -#include "../src/xmu.h" #include "xlwtabsP.h" #include "xlwgcs.h" @@ -1570,9 +1571,7 @@ XtReleaseGC(w, tw->tabs.backgroundGC) ; XtReleaseGC(w, tw->tabs.topGC) ; XtReleaseGC(w, tw->tabs.botGC) ; -#ifdef HAVE_XMU XmuReleaseStippledPixmap(XtScreen(w), tw->tabs.grey50) ; -#endif } @@ -2481,7 +2480,6 @@ #else tw->tabs.font->fid; #endif -#ifdef HAVE_XMU if (tw->tabs.be_nice_to_cmap || w->core.depth == 1) { values.fill_style = FillStippled; @@ -2502,7 +2500,6 @@ GCDashList|GCArcMode); } else -#endif { tw->tabs.greyGC = XtAllocateGC(w, w->core.depth,
--- a/man/ChangeLog Fri Jan 01 19:45:39 2010 +0000 +++ b/man/ChangeLog Thu Jan 07 17:01:25 2010 +0000 @@ -1,3 +1,27 @@ +2010-01-06 Jerry James <james@xemacs.org> + + * internals/internals.texi (Debugging and Testing): Document + valgrind configuration and use. + +2009-12-21 Jerry James <james@xemacs.rg> + + * internals/internals.texi (A Summary of the Various XEmacs Modules): + Remove references to OffiX support files. + * lispref/dragndrop.texi (Drag and Drop): Remove reference to OffiX. + (Supported Protocols): Ditto. + (OffiX DND): Remove. + +2009-12-10 Jerry James <james@xemacs.org> + + * lispref/processes.texi (Functions that Create Subprocesses): Refer + to etags instead of the obsolete wakeup program. + +2009-12-09 Jerry James <james@xemacs.org> + + * internals/internals.texi (A Summary of the Various XEmacs Modules): + Remove references to xmu.c and xmu.h. + (Modules for Interfacing with X Windows): Ditto. + 2009-11-10 Jerry James <james@xemacs.org> * internals/internals.texi (XEmacs from the Perspective of Building): @@ -14,6 +38,11 @@ * xemacs-faq.texi (Q1.2.2: What versions of Unix does XEmacs run on?): Ditto. +2009-11-08 Aidan Kehoe <kehoea@parhasard.net> + + * lispref/objects.texi (Equality Predicates): + Document #'equalp here, as well as #'equal and #'eq. + 2009-10-05 Jerry James <james@xemacs.org> * beta.texi (Building XEmacs from a full distribution): Remove
--- a/man/internals/internals.texi Fri Jan 01 19:45:39 2010 +0000 +++ b/man/internals/internals.texi Thu Jan 07 17:01:25 2010 +0000 @@ -3107,10 +3107,6 @@ @item @file{objects-x.h} @tab @ref{Modules for other Display-Related Lisp Objects}. @item @file{objects.c} @tab @ref{Modules for other Display-Related Lisp Objects}. @item @file{objects.h} @tab @ref{Modules for other Display-Related Lisp Objects}. -@item @file{offix-cursors.h} @tab -@item @file{offix-types.h} @tab -@item @file{offix.c} @tab -@item @file{offix.h} @tab @item @file{opaque.c} @tab @ref{Modules for Other Aspects of the Lisp Interpreter and Object System}. @item @file{opaque.h} @tab @ref{Modules for Other Aspects of the Lisp Interpreter and Object System}. @item @file{paths.h.in} @tab @@ -3238,8 +3234,6 @@ @item @file{xmmanagerp.h} @tab @ref{Modules for Interfacing with X Windows}. @item @file{xmotif.h} @tab @item @file{xmprimitivep.h} @tab @ref{Modules for Interfacing with X Windows}. -@item @file{xmu.c} @tab @ref{Modules for Interfacing with X Windows}. -@item @file{xmu.h} @tab @ref{Modules for Interfacing with X Windows}. @end multitable @@ -6231,6 +6225,13 @@ temacs -batch -l loadup.el run-temacs @var{xemacs-args...} @end example +@cindex Valgrind +To make an XEmacs that can tell valgrind to do a memory leak check at +runtime, configure @code{--with-valgrind}. If XEmacs has been +configured @code{--with-newgc}, then valgrind must be invoked with +@code{--vex-iropt-precise-memory-exns=yes} in order to handle signals +properly. + @cindex error checking Before you go through the trouble, are you compiling with all debugging and error-checking off? If not, try that first. Be warned @@ -21576,16 +21577,6 @@ @example -xmu.c -xmu.h -@end example - -These files provide an emulation of the Xmu library for those systems -(i.e. HPUX) that don't provide it as a standard part of X. - - - -@example ExternalClient-Xlib.c ExternalClient.c ExternalClient.h
--- a/man/lispref/dragndrop.texi Fri Jan 01 19:45:39 2010 +0000 +++ b/man/lispref/dragndrop.texi Thu Jan 07 17:01:25 2010 +0000 @@ -12,9 +12,9 @@ interface may change! The current implementation is considered experimental. Drag'n'drop is a way to transfer information between multiple applications. -To do this several GUIs define their own protocols. Examples are OffiX, CDE, -Motif, KDE, MSWindows, GNOME, and many more. To catch all these protocols, -XEmacs provides a generic API. +To do this several GUIs define their own protocols. Examples are CDE, Motif, +KDE, MSWindows, GNOME, and many more. To catch all these protocols, XEmacs +provides a generic API. One prime idea behind the API is to use a data interface that is transparent for all systems. The author thinks that this is best @@ -35,36 +35,11 @@ protocols. Some of these only support limited options available in the API. @menu -* OffiX DND:: A generic X based protocol. * CDE dt:: Common Desktop Environment used on suns. * MSWindows OLE:: Mr. Gates way of live. * Loose ends:: The other protocols. @end menu -@node OffiX DND -@subsection OffiX DND -@cindex OffiX DND - -@emph{WARNING}: If you compile in OffiX, you may not be able to use -multiple X displays successfully. If the two servers are from -different vendors, the results may be unpredictable. - -The OffiX Drag'n'Drop protocol is part of a X API/Widget library created by -Cesar Crusius. It is based on X-Atoms and ClientMessage events, and works with -any X platform supporting them. - -OffiX is supported if 'offix is member of the variable dragdrop-protocols, or -the feature 'offix is defined. - -Unfortunately it uses it's own data types. Examples are: File, Files, -Exe, Link, URL, MIME. The API tries to choose the right type for the data that -is dragged from XEmacs (well, not yet...). - -XEmacs supports both MIME and URL drags and drops using this API. No application -interaction is possible while dragging is in progress. - -For information about the OffiX project have a look at http://leb.net/~offix/ - @node CDE dt @subsection CDE dt @cindex CDE dt @@ -90,7 +65,7 @@ @subsection Loose ends The following protocols will be supported soon: Xdnd, Motif, Xde (if I -get some specs), KDE OffiX (if KDE can find XEmacs windows). +get some specs). In particular Xdnd will be one of the protocols that can benefit from the XEmacs API, cause it also uses MIME types to encode dragged data.
--- a/man/lispref/objects.texi Fri Jan 01 19:45:39 2010 +0000 +++ b/man/lispref/objects.texi Thu Jan 07 17:01:25 2010 +0000 @@ -2424,3 +2424,56 @@ The test for equality is implemented recursively, and circular lists may therefore cause infinite recursion (leading to an error). + +@defun equalp object1 object2 +This function is like @code{equal}, but compares characters and strings +case-insensitively; numbers are compared using @code{=}; arrays (that +is, strings, bit-vectors and vectors) are regarded as being +@code{equalp} if their contents are @code{equalp}; and +@code{hash-tables} are @code{equalp} if their values are @code{equalp} +and they would otherwise be @code{equal}. + +@code{equalp} is recursive with vectors, lists and hash-tables, but not +with other complex types. For types without a defined @code{equalp} +behavior, @code{equalp} behaves as @code{equal} does. + +@example +@group +(equalp "asdf" "ASDF") + @result{} t +@end group +@group +(equalp "asdf" [?a ?s ?D ?F]) + @result{} t +@end group +@group +(equalp "asdf" [?a ?s ?D ?F ?g]) + @result{} nil +@end group +@group +(equalp "" (bit-vector)) + @result{} t +@end group +@group +(equalp #s(hash-table) (make-hash-table)) + @result{} t +@end group +@group +(equalp #s(hash-table data (t "hi there")) + (let ((ht (make-hash-table))) + (puthash t "HI THERE" ht) + ht)) + @result{} t +@group +@end group +(equalp #s(hash-table test eq data (1.0 "hi there")) + (let ((ht (make-hash-table :test 'eql))) + (puthash 1.0 "HI THERE" ht) + ht)) + @result{} nil +@end group +@end example +@end defun + +@code{equalp} can also provoke an error if handed a circular structure, +as with @code{equal}.
--- a/man/lispref/processes.texi Fri Jan 01 19:45:39 2010 +0000 +++ b/man/lispref/processes.texi Thu Jan 07 17:01:25 2010 +0000 @@ -111,12 +111,10 @@ Environment}. @defvar exec-directory -@pindex wakeup +@pindex etags The value of this variable is the name of a directory (a string) that contains programs that come with XEmacs, that are intended for XEmacs -to invoke. The program @code{wakeup} is an example of such a program; -the @code{display-time} command uses it to get a reminder once per -minute. +to invoke. The program @code{etags} is an example of such a program. @end defvar @defopt exec-path
--- a/nt/ChangeLog Fri Jan 01 19:45:39 2010 +0000 +++ b/nt/ChangeLog Thu Jan 07 17:01:25 2010 +0000 @@ -1,3 +1,20 @@ +2009-12-21 Jerry James <james@xemacs.org> + + * xemacs.dsp: Remove references to OffiX files. + +2009-12-15 Jerry James <james@xemacs.org> + + * xemacs.mak: Remove build dependency for lib-src/wakeup. Thanks to + Vin Shelton for the patch. + +2009-12-14 Jerry James <james@xemacs.org> + + * installer: Remove unused Wise installer sources. + +2009-12-09 Jerry James <james@xemacs.org> + + * xemacs.dsp: Drop references to xmu.c and xmu.h. + 2009-11-10 Jerry James <james@xemacs.org> * xemacs.dsp: Drop references to removed source files.
--- a/nt/installer/Wise/ChangeLog Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,129 +0,0 @@ -2009-05-18 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.29 "garbanzo" is released. - -2007-05-21 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.28 "fuki" is released. - -2006-05-16 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.27 "fiddleheads" is released. - -2006-03-31 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.26 "endive" is released. - -2006-02-26 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.25 "eggplant" is released. - -2005-12-18 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.24 "dandelion" is released. - -2005-10-26 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.23 "daikon" is released. - -2005-09-14 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.22 "cucumber" is released. - -2005-05-28 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.21 "corn" is released. - -2005-03-11 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.20 "cilantro" is released. - -2005-02-18 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.19 "chives" is released. - -2004-11-16 Ben Wing <ben@xemacs.org> - - * display-readme.dlg: - -2004-10-22 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.18 "chestnut" is released. - -2004-03-22 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.17 "chayote" is released. - -2003-09-26 Steve Youngs <youngs@xemacs.org> - - * XEmacs 21.5.16 "celeriac" is released. - -2003-09-03 Steve Youngs <youngs@xemacs.org> - - * XEmacs 21.5.15 "celery" is released. - -2003-06-01 Steve Youngs <youngs@xemacs.org> - - * XEmacs 21.5.14 "cassava" is released. - -2003-05-10 Steve Youngs <youngs@xemacs.org> - - * XEmacs 21.5.13 "cauliflower" is released. - -2003-04-24 Steve Youngs <youngs@xemacs.org> - - * XEmacs 21.5.12 "carrot" is released. - -2003-02-16 Steve Youngs <youngs@xemacs.org> - - * XEmacs 21.5.11 "cabbage" is released. - -2003-01-04 Steve Youngs <youngs@xemacs.org> - - * XEmacs 21.5.10 "burdock" is released. - -2002-08-30 Steve Youngs <youngs@xemacs.org> - - * XEmacs 21.5.9 "brussels sprouts" is released. - -2002-07-27 Steve Youngs <youngs@xemacs.org> - - * XEmacs 21.5.8 "broccoli" is released. - -2002-07-02 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.7 "broccoflower" is released. - -2002-04-05 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.6 "bok choi" is released. - -2002-03-12 Ben Wing <ben@xemacs.org> - - * The Great Mule Merge of March 2002: - see node by that name in the Internals Manual. - -2002-03-05 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.5 "beets" is released. - -2002-01-08 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.4 "bamboo" is released. - -2001-09-07 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.3 "asparagus" is released. - -2001-07-28 Stephen J. Turnbull <stephen@xemacs.org> - - * XEmacs 21.5.2 "artichoke" is released. - -2001-05-09 Martin Buchholz <martin@xemacs.org> - - * XEmacs 21.5.1 "anise" is released. - -2001-04-27 Ben Wing <ben@xemacs.org> - - * renamed file `display readme.dlg' to display-readme.dlg. -
--- a/nt/installer/Wise/README Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -To use: - -You need to build and install the XEmacs distribution. Also you need -the xemacs packages in both source and installed versions. - -Edit "dirs.py" to reflect the locations of the above components. - -Edit "version.py" to reflect the current version, as well as the -welcome message. - -Run - python pre_wise.py > xemacs-XXX.wse - - (for XXX use a version or date code of your choosing) - -Run - cmd /c xemacs-XXX.wse - -to produce xemacs-XXX.exe - - -"pre_wise.py" is a preprocessor for the Wise installer maker. It -reads "xemacs.tmpl" which is a Wise input file, except that certain -portions are enclosed in triple angle brackets <<<like this>>> - -These portions are evaluated as Python expressions and replaced by the -string representations of the resulting value. This allows for -things to change from release to release without having to re-do the -Wise installation each time. Also it keeps you from having to -manually drag-n-drop all the package files, which is rather tedious! -
--- a/nt/installer/Wise/dirs.py Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -#Configuration variables - -#where the source is: - -source = r"X:\XEmacs-21" -#where the installed distribution is: -installed = r"C:\Program Files\XEmacs\xemacs-21.0-b62" - -#where the (built and installed) packages are -packages = r"C:\Program Files\XEmacs\xemacs-packages" - -#where the package source is -pkg_src = r"X:\xemacs-packages" - -#Subdirs relative to the base installation directory -#Everything except packages goes here: -dst = "XEmacs-21.0-b62" -#packages go here: -pkg_dst = "xemacs-packages" - -
--- a/nt/installer/Wise/display-readme.dlg Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -Document Type: DLG -item: Custom Dialog - Name=Display ReadMe - Display Variable=DISPLAY - item: Dialog - Title=Read Me File - Title French=Fichier Lisez-moi - Title German=Liesmich-Datei - Title Portuguese=Ficheiro Leia-me - Title Spanish=Archivo Léeme - Title Italian=File Leggimi - Title Danish=Vigtigt fil - Title Dutch=Leesmij-bestand - Title Norwegian=Informasjonsfil - Title Swedish=Läs mig-fil - Width=280 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=172 185 214 199 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=I &Agree > - Text French=&Suivant> - Text German=&Weiter> - Text Portuguese=&Próximo> - Text Spanish=&Siguiente > - Text Italian=&Avanti > - Text Danish=&Næste> - Text Dutch=&Volgende> - Text Norwegian=&Neste> - Text Swedish=&Nästa > - end - item: Push Button - Rectangle=222 185 264 199 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Slet - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=9 177 263 178 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Editbox - Rectangle=85 11 254 170 - Value=%TEMP%\%READMEFILE% - Help Context=16711681 - Create Flags=01010000101000000000100000000100 - end - end -end
--- a/nt/installer/Wise/el.reg Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ - -REGEDIT4 - -[HKEY_CLASSES_ROOT\.el] -@="elfile" -"Content Type"="text/plain" - -[HKEY_CLASSES_ROOT\elfile] -@="Emacs lisp" -"EditFlags"=hex:00,00,01,00 - -[HKEY_CLASSES_ROOT\elfile\Shell] -@="" - -[HKEY_CLASSES_ROOT\elfile\Shell\open] - -[HKEY_CLASSES_ROOT\elfile\Shell\open\command] -@="\"C:\\Program Files\\XEmacs\\XEmacs-21.0\\i386-pc-win32\\runemacs.exe\" \"%1\"" - -[HKEY_CLASSES_ROOT\elfile\Shell\open\ddeexec] -@="open(\"%1\")" - -[HKEY_CLASSES_ROOT\elfile\Shell\open\ddeexec\Application] -@="XEmacs" - -[HKEY_CLASSES_ROOT\elfile\Shell\open\ddeexec\topic] -@="System" - -[HKEY_CLASSES_ROOT\elfile\DefaultIcon] -@="C:\\Program Files\\XEmacs\\XEmacs-21.0\\i386-pc-win32\\runemacs.exe,2" - -[HKEY_CLASSES_ROOT\elfile\QuickView] -@="*" - - -
--- a/nt/installer/Wise/filelist.py Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -import os -import dirs -import string - -def listdir_recursive(basedir): - ret = [] - for f in os.listdir(basedir): - if os.path.isfile(basedir+"\\"+f): - ret.append(f) - elif os.path.isdir(basedir+"\\"+f): - for f1 in listdir_recursive(basedir+"\\"+f): - ret.append(f+"\\"+f1) - return ret - -all = [] - - - -for f in listdir_recursive(dirs.installed): - if string.find(f,'CVS')>=0: - continue - all.append((f, dirs.installed, dirs.dst)) -
--- a/nt/installer/Wise/files.py Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -import os -import dirs - -def listdir_recursive(basedir): - ret = [] - for f in os.listdir(basedir): - if os.path.isfile(basedir+"\\"+f): - ret.append(f) - elif os.path.isdir(basedir+"\\"+f): - for f1 in listdir_recursive(basedir+"\\"+f): - ret.append(f+"\\"+f1) - return ret - -install = [] - -for f in os.listdir(dirs.source+"\\lib-src"): - if f == "DOC" or f[-4:]==".exe": - install.append((f,dirs.source+"\\lib-src",dirs.bin_dst)) - - -for f in ['runemacs.exe', 'xemacs.exe']: - install.append((f,dirs.source+"\\src",dirs.bin_dst)) - -for f in listdir_recursive(dirs.source+"\\lisp"): - install.append((f,dirs.source+"\\lisp",dirs.lisp_dst)) - -for f in listdir_recursive(dirs.source+"\\etc"): - install.append((f,dirs.source+"\\etc",dirs.etc_dst)) - - -for f in os.listdir(dirs.source+"\\info"): - install.append((f,dirs.source+"\\info",dirs.info_dst)) - - - -
--- a/nt/installer/Wise/libs.dlg Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,170 +0,0 @@ -Document Type: DLG -item: Custom Dialog - Name=Select Components - Display Variable=DISPLAY - Flags=00000001 - item: Dialog - Title=Select Components - Title French=Sélectionner les éléments - Title German=Komponenten auswählen - Title Portuguese=Seleccionar Componentes - Title Spanish=Seleccione los Componentes - Title Italian=Seleziona Componenti - Title Danish=Vælg komponenter - Title Dutch=Selecteer onderdelen - Title Norwegian=Velg komponenter - Title Swedish=Välj komponenter - Width=280 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=172 185 214 199 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suivant> - Text German=&Weiter> - Text Portuguese=&Próximo> - Text Spanish=&Siguiente > - Text Italian=&Avanti > - Text Danish=&Næste> - Text Dutch=&Volgende> - Text Norwegian=&Neste> - Text Swedish=&Nästa > - end - item: Push Button - Rectangle=130 185 172 199 - Variable=DIRECTION - Value=B - Create Flags=01010000000000010000000000000000 - Text=< &Back - Text French=<&Retour - Text German=<&Zurück - Text Portuguese=<&Retornar - Text Spanish=<&Retroceder - Text Italian=< &Indietro - Text Danish=<&Tilbage - Text Dutch=<&Terug - Text Norwegian=<&Tilbake - Text Swedish=< &Tillbaka - end - item: Push Button - Rectangle=222 185 264 199 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Annuller - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=9 177 263 178 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=205 156 253 166 - Variable=COMPONENTS - Value=MAINDIR - Create Flags=01010000000000000000000000000010 - end - item: Static - Rectangle=205 148 253 157 - Variable=COMPONENTS - Create Flags=01010000000000000000000000000010 - end - item: Static - Rectangle=95 147 184 158 - Create Flags=01010000000000000000000000000000 - Text=Disk Space Required: - Text French=Espace disque requis - Text German=Benötigter Festplattenspeicher: - Text Portuguese=Espaço de disco necessário: - Text Spanish=Espacio de Disco Requerido: - Text Italian=Spazio su disco richiesto: - Text Danish=Nødvendig diskplads: - Text Dutch=Vereiste hoeveelheid schijfruimte - Text Norwegian=Diskplass nødvendig: - Text Swedish=Erforderligt diskutrymme - end - item: Static - Rectangle=95 157 190 167 - Create Flags=01010000000000000000000000000000 - Text=Disk Space Remaining: - Text French=Espace disque disponible - Text German=Verbleibender Festplattenspeicher: - Text Portuguese=Espaço de disco restante: - Text Spanish=Espacio de Disco Remanente: - Text Italian=Spazio su disco rimanente: - Text Danish=Ledig diskplads: - Text Dutch=Resterende schijfruimte - Text Norwegian=Ledig diskplass: - Text Swedish=Återstående diskutrymme - end - item: Static - Rectangle=90 138 264 168 - Action=1 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=90 8 260 41 - Create Flags=01010000000000000000000000000000 - Text=In the options list below, select the checkboxes for the options that you would like to have installed. The disk space fields reflect the requirements of the options you have selected. - Text French=Dans la liste d'options suivante, veuillez sélectionner les cases des options que vous désirez installer. Le champ d'espace disque indique les conditions requises pour les options choisies - Text German=Wählen Sie in der Optionenliste unten die Kontrollkästchen für diejenigen Optionen, die Sie installieren möchten. Die Speicherfelder zeigen die benötigte Speicherkapazität für die gewählten Optionen an. - Text Portuguese=Na lista de opções abaixo, seleccione as caixas de verificação para as opções que gostaria de ter instalado. Os campos de espaço de disco reflectem os requerimentos das opções que seleccionou. - Text Spanish=En la lista de opciones que se ofrece a continuación, seleccione las casillas de comprobación para las opciones que desea instalar. Los campos del espacio en el disco reflejan los requerimientos de las opciones que ha seleccionado. - Text Italian=Nell’elenco delle opzioni sotto, marca le caselle di controllo delle opzioni che vuoi installare. I campi dello spazio sul disco riflettono i requisiti delle opzioni selezionate. - Text Danish=Marker afkrydsningsfelterne for de komponenter, der skal installeres, på listen herunder. Diskpladsfelterne angiver pladskravene for de valgte komponenter. - Text Dutch=Kruis in de onderstaande lijst het vakje aan naast de opties die u wilt installeren. Achter elke optie staat de benodigde schijfruimte vermeld. - Text Norwegian=I listen over alternativer nedenfor, klikk i kontrollrutene for de alternativene du ønsker å installere. Diskplassfeltene gjenspeiler kravene for de alternativene du har valgt. - Text Swedish=Kryssa för i rutorna nedan vilka alternativ du vill få installerade. I diskutrymmesfälten anges utrymmesbehoven för de alternativ du väljer. - end - item: Checkbox - Rectangle=91 41 126 56 - Variable=COMPONENTS LIBS - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000010000000000000011 - Flags=0000000000000010 - Text=Libraries - Text= - end - item: Checkbox - Rectangle=90 56 148 71 - Variable=COMPONENTS COMM - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000010000000000000011 - Flags=0000000000000010 - Text=Communications - Text= - end - end - item: Dialog - Title=Library Packages - Width=268 - Height=204 - Font Name=Helv - Font Size=8 - end - item: Dialog - Title=Library Packages - Width=268 - Height=204 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=219 170 254 185 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000010000000000000000 - Text=OK - end - end -end
--- a/nt/installer/Wise/packages.py Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,140 +0,0 @@ -#configuration variables - -#package categories -category_names = ["libs", "comm", "oa", "os", "prog", "wp", "games"] - -category_descriptions = {"libs":"Libraries", - "comm":"Communication", - "oa": "Productivity", #??? - "os": "Operating System", - "prog": "Programming", - "wp": "Word Processing", - "games": "Games and Amusements"} - - -#packages to install by default -default=["xemacs-base","edit-utils","efs", - "text-modes","prog-modes", - "dired","apel", - "c-support","cc-mode", - "mail-lib","pc","sounds-wav"] - -def category_of_letter(x): - return category_names[ord(x)-ord('A')] - -def letter_of_category(cat): - return chr(ord('A')+category_names.index(cat)) - -def letter_of_package(x): - return chr(ord('A')+packages_of_category(category_of_package(x)).index(x)) - -import dirs, os -catpkg = {} -pkgcat = {} - -for cat in category_names: - pkgcat[cat]=[] - dd = os.path.join(dirs.pkg_src,cat) - for d in os.listdir(dd): - if d == "CVS": - continue - manifest = dirs.packages + "\\pkginfo\\MANIFEST." + d - if not os.path.exists(manifest): #it's not installed, skip it - continue - if os.path.isdir(os.path.join(dd,d)): - catpkg[d] = cat - pkgcat[cat].append(d) - -def category_of_package(p): - return catpkg[p] - -def packages_of_category(c): - return pkgcat[c] - -#Brief descriptions of the packages. -#This data is up-to-date as of 13 January 1998. -package_descriptions={ - "Sun":"Support for Sparcworks.", - "apel":"A Portable Emacs Library", - "edebug":"A Lisp debugger", - "dired":"The DIRectory EDitor", - "efs":"Access remote filesystems", - "mail-lib":"Fundamental email support", - "tooltalk":"Tooltalk", - "xemacs-base":"Fundamental XEmacs support", - "xemacs-devel":"Lisp developer support.", - "footnote":"Footnoting in mail messages", - "gnats":"XEmacs bug reports", - "gnus":"Newsreader and Mailreader", - "mailcrypt":"Message encryption with PGP.", - "mh-e":"Support for MH mailreader", - "net-utils":"Networking Utilities", - "ph":"CCSO/qi directory client", - "rmail":"An obsolete Emacs mailer", - "supercite":"Mail/News Citation tool", - "tm":"Emacs MIME support", - "vm":"An Emacs mailer", - "w3":"A Web browser", - "cookie":"Spook and Yow (Zippy quotes)", - "games":"Tetris, Sokoban, and Snake", - "mine":"Minehunt", - "misc-games":"Other amusements and diversions", - "egg-its":"Wnn(4.2 and 6)/SJ3 support", - "leim":"Quail", - "locale":"Localized menubars", - "mule-base":"Basic Mule support", - "skk":"Another Japanese Language Input Method", - "calendar":"Calendar and diary", - "edit-utils":"Various XEmacs goodies", - "forms":"Obsolete forms editing support", - "frame-icon":"Change icon based on mode", - "hm--html-menus":"HTML editing", - "ispell":"Spell-checking with ispell", - "pc":"PC style interface emulation", - "psgml":"Validated HTML/SGML editing", - "sgml":"SGML/Linuxdoc-SGML editing", - "slider":"User interface tool", - "speedbar":"??? Document me.", - "strokes":"Mouse enhancement utility", - "text-modes":"Packages for editing text files", - "time":"Display time and date", - "eterm":"Terminal emulator", - "igrep":"Enhanced Grep", - "ilisp":"Front-end for Inferior Lisp", - "os-utils":"Misc. OS utilities", - "view-process":"Unix process viewer", - "ada":"Ada language support", - "c-support":"Add-ons for editing C code", - "cc-mode":"C, C++ and Java language editing", - "debug": "GUD, gdb, dbx debugging support", - "ediff": "Compare files", - "emerge": "Merge files", - "pcl-cvs":"CVS frontend.", - "prog-modes":"Various programming languages", - "scheme":"Front-end for Inferior Scheme", - "sh-script":"Support for editing shell scripts", - "vc":"Version Control", - "vc-cc":"Broken", - "vhdl":"Support for VHDL", - "auctex":"Basic TeX/LaTeX support", - "crisp":"Crisp/Brief emulation", - "edt":"DEC EDIT/EDT emulation", - "texinfo":"XEmacs TeXinfo support.", - "textools":"TeX support", - "tpu":"DEC EDIT/TPU support", - "viper":"VI emulation", - "elib":"Portable elisp utility library", - "fsf-compat": "FSF Emacs compatibility files", - "sounds-wav": "XEmacs Microsoft sound files", - "bbdb": "The Big Brother Data Base", - "eudc": "Emacs Unified Directory Client", - "mew": "Messaging in an Emacs World", - "zenirc": "IRC client", - "calc": "Emacs calculator", - "jde": "Java development environment", - "reftex": "LaTeX cross-referencing and citations" -} - - - -
--- a/nt/installer/Wise/pre_wise.py Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,133 +0,0 @@ -import string -import re -import os -import types - -infile=open("xemacs.tmpl","r") - -import version -import dirs -import filelist -import packages - -def letter(package): - index = packages.all.index(package) - if index>29: - raise "WISE error: too many components" - return chr(ord("A")+index) - -def letters(package_list): - ret = "" - for p in package_list: - ret = ret+letter(p) - return ret - -def describe(package): - if package in packages.descriptions.keys(): - return ": "+packages.descriptions[package] - else: return "" - -def ifblock(var,val): - return("item: If/While Statement\n Variable=%s\n Value=%s\n Flags=00001010\nend\n" % (var,val)) - -def endblock(): - return("item: End Block\nend\n") - -def setvar(var,val): - return("item: Set Variable\n Variable=%s\n Value=%s\n Flags=10000000\nend\n" % (string.upper(var), val)) - -def default_letters_of_category(cat): - val = "" - for p in packages.default: - if packages.category_of_package(p) == cat: - val = val + packages.letter_of_package(p) - return val - -def set_category_defaults(): - ret = "" - for c in packages.category_names: - ret = ret + setvar(c, default_letters_of_category(c)) - return ret - -def do_category(cat): - ret = ifblock("COMPONENTS", packages.letter_of_category(cat)) - for pkg in packages.packages_of_category(cat): - ret = ret + ifblock(string.upper(cat),packages.letter_of_package(pkg)) - for f in files_of_package(pkg): - ret = ret+install_pkg_file(f) - ret = ret + endblock() - ret = ret + endblock() - return ret - -def files_of_package(package): - manifest_file = dirs.packages + "\\pkginfo\\MANIFEST." + package - manifest = open(manifest_file,"r") - lines = manifest.readlines() - lines = map(lambda s:s[:-1], lines) - lines = map(lambda s:string.replace(s,'/','\\'), lines) - return lines - -def category_dialog(cat): - npkg = len(packages.packages_of_category(cat)) - ret="" - ret=ret+" item: Dialog\n Title="+packages.category_descriptions[cat]+" Packages\n" - ret=ret+" Width=210\n" - ret=ret+" Height=%d\n" % (45+npkg*10) - ret=ret+" Font Name=Helv\n" - ret=ret+" Font Size=8\n" - ret=ret+" item: Push Button\n" - ret=ret+" Rectangle=107 %d 147 %d\n" % (5+npkg*10+2, 5+npkg*10+17) - ret=ret+" Create Flags=01010000000000010000000000000001\n" - ret=ret+" Text=OK\n" - ret=ret+" end\n" - ret=ret+" item: Push Button\n" - ret=ret+" Rectangle=153 %d 193 %d\n" % (5+npkg*10+2, 5+npkg*10+17) - ret=ret+" Variable=%s\n" % string.upper(cat) - ret=ret+" Value=%%%s_SAVE%%\n" % string.upper(cat) - ret=ret+" Create Flags=01010000000000010000000000000000\n" - ret=ret+" Flags=0000000000000001\n" - ret=ret+" Text=Cancel\n" - ret=ret+" end\n" - ret=ret+" item: Checkbox\n" - ret=ret+" Rectangle=0 5 191 %d\n" % (10*npkg) - ret=ret+" Variable=%s\n"%string.upper(cat) - ret=ret+" Create Flags=01010000000000010000000000000011\n" - ret=ret+" Flags=0000000000000010\n" - for pkg in packages.packages_of_category(cat): - ret = ret+" Text=%s: %s\n"%( pkg, packages.package_descriptions[pkg]) - ret=ret+" Text=\n" - ret=ret+" end\n" - ret=ret+" end\n" - return ret - -def src_path(src,name): - return src + "\\" + name - -def dst_path(dst,name): - return "%MAINDIR%"+"\\"+dst+"\\" + name - -def install_file(name,src,dst): - return("item: Install File\n Source=%s\n Destination=%s\n Flags=0000000010000010\nend\n" % (src_path(src,name),dst_path(dst,name))) - -def install_pkg_file(name): - return install_file(name,dirs.packages,dirs.pkg_dst) - -def do_package(package): - return ifblock("COMPONENTS",letter(package)) + \ - string.join(map(install_pkg_file,files(package)),"")+ \ - endblock() - -for line in infile.readlines(): - left=string.find(line,"<<<") - if left>=0: - right=string.find(line,">>>") - expr=line[left+3:right] - val=eval(expr) - if type(val)==types.StringType: - print line[:left] + val + line[right+3:], - elif type(val)==types.ListType: - for v in val: - print line[:left] + v + line[right+3:], - else: print line, - -
--- a/nt/installer/Wise/type.dlg Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -Document Type: DLG -item: Custom Dialog - Name=type - item: Dialog - Title=type - Width=238 - Height=208 - Font Name=Helv - Font Size=8 - item: Radio Button - Rectangle=5 5 40 20 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000010000000000001001 - Text=minimal - Text= - end - item: Radio Button - Rectangle=5 25 40 40 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000010000000000001001 - Text=custom - Text= - end - item: Radio Button - Rectangle=5 45 40 60 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000010000000000001001 - Text=full - Text= - end - end -end
--- a/nt/installer/Wise/version.py Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -title="XEmacs 21.0b62 EXPERIMENTAL" -welcome="Welcome to the %APPTITLE% setup program. Please note that this is an experimental release and some features may not work correctly, especially on machines running Windows 95. Please read the file PROBLEMS in the xemacs installation directory. Send comments or bug reports to xemacs-nt@xemacs.org. For more info see http://www.xemacs.org" -
--- a/nt/installer/Wise/welcome.dlg Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -Document Type: DLG -item: Custom Dialog - Name=Welcome - Display Variable=DISPLAY - item: Dialog - Title=Welcome - Title French=Bienvenue - Title German=Willkommen - Title Portuguese=Bem-vindo - Title Spanish=Bienvenido - Title Italian=Benvenuto - Title Danish=Velkommen - Title Dutch=Welkom - Title Norwegian=Velkommen - Title Swedish=Välkommen - Width=280 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=172 185 214 199 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suivant> - Text German=&Weiter> - Text Portuguese=&Próximo> - Text Spanish=&Siguiente > - Text Italian=&Avanti > - Text Danish=&Næste> - Text Dutch=&Volgende> - Text Norwegian=&Neste> - Text Swedish=&Nästa > - end - item: Push Button - Rectangle=222 185 264 199 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Annuller - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=9 177 263 178 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=91 22 245 118 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000000 - Text=Welcome to the %APPTITLE% setup program. Please note that this is an experimental release and some features may not work correctly. Send comments or bug reports to xemacs-nt@xemacs.org rather than one of the other XEmacs mailing lists. For more info see http://www.xemacs.org - end - end -end
--- a/nt/installer/Wise/xemacs.tmpl Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1310 +0,0 @@ -Document Type: WSE -item: Global - Version=7.0 - Title=<<<version.title + " Installation">>> - Flags=00000100 - Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - Japanese Font Name=MS Gothic - Japanese Font Size=10 - Progress Bar DLL=%_WISE_%\Progress\WIZ%_EXE_OS_TYPE_%.DLL - Start Gradient=0 0 255 - End Gradient=0 0 0 - Windows Flags=00000100000000010010110000001000 - Log Pathname=%MAINDIR%\INSTALL.LOG - Message Font=MS Sans Serif - Font Size=8 - Disk Filename=SETUP - Patch Flags=0000000000000001 - Patch Threshold=85 - Patch Memory=4000 - FTP Cluster Size=20 - Dialogs Version=6 - Variable Name1=_SYS_ - Variable Default1=C:\WINDOWS\SYSTEM - Variable Flags1=00001000 - Variable Name2=_WISE_ - Variable Default2=C:\PROGRAM FILES\WISE INSTALLBUILDER - Variable Flags2=00001000 -end -item: Get Temporary Filename - Variable=READMEFILE -end -item: Install File - Source=<<<dirs.source>>>\nt\Wise\Copying.txt - Destination=%TEMP%\%READMEFILE% - Flags=0000000000100010 -end -item: Open/Close INSTALL.LOG - Flags=00000001 -end -item: Check if File/Dir Exists - Pathname=%SYS% - Flags=10000100 -end -item: Set Variable - Variable=SYS - Value=%WIN% -end -item: End Block -end -item: Set Variable - Variable=APPTITLE - Value=<<<version.title>>> - Flags=10000000 -end -item: Set Variable - Variable=GROUP - Value=XEmacs - Flags=10000000 -end -item: Set Variable - Variable=DISABLED - Value=! -end -item: Set Variable - Variable=MAINDIR - Value=XEmacs - Flags=10000000 -end -item: Check Configuration - Flags=10111011 -end -item: Get Registry Key Value - Variable=COMMON - Key=SOFTWARE\Microsoft\Windows\CurrentVersion - Default=C:\Program Files\Common Files - Value Name=CommonFilesDir - Flags=00000100 -end -item: Get Registry Key Value - Variable=PROGRAM_FILES - Key=SOFTWARE\Microsoft\Windows\CurrentVersion - Default=C:\Program Files - Value Name=ProgramFilesDir - Flags=00000100 -end -item: Set Variable - Variable=MAINDIR - Value=%PROGRAM_FILES%\%MAINDIR% - Flags=00001100 -end -item: Set Variable - Variable=EXPLORER - Value=1 -end -item: Else Statement -end -item: Set Variable - Variable=MAINDIR - Value=C:\%MAINDIR% - Flags=00001100 -end -item: End Block -end -item: Set Variable - Variable=BACKUP - Value=%MAINDIR%\BACKUP - Flags=10000000 -end -item: Set Variable - Variable=DOBACKUP - Value=B - Flags=10000000 -end -item: Set Variable - Variable=COMPONENTS - Value=ACE - Flags=10000000 -end -<<<set_category_defaults()>>> -item: Wizard Block - Direction Variable=DIRECTION - Display Variable=DISPLAY - Bitmap Pathname=<<<dirs.source>>>\nt\Wise\gnu.bmp - X Position=9 - Y Position=10 - Filler Color=8421440 - Dialog=Select Program Manager Group - Dialog=Select Backup Directory - Dialog=Display Registration Information - Dialog=Get Registration Information - Variable=EXPLORER - Variable=DOBACKUP - Variable=DOBRAND - Variable=DOBRAND - Value=1 - Value=A - Value=1 - Value=1 - Compare=0 - Compare=1 - Compare=0 - Compare=1 - Flags=00000011 -end -item: Custom Dialog Set - Name=Welcome - Display Variable=DISPLAY - item: Dialog - Title=Welcome - Title French=Bienvenue - Title German=Willkommen - Title Portuguese=Bem-vindo - Title Spanish=Bienvenido - Title Italian=Benvenuto - Title Danish=Velkommen - Title Dutch=Welkom - Title Norwegian=Velkommen - Title Swedish=Välkommen - Width=280 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=172 185 214 199 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suivant> - Text German=&Weiter> - Text Portuguese=&Próximo> - Text Spanish=&Siguiente > - Text Italian=&Avanti > - Text Danish=&Næste> - Text Dutch=&Volgende> - Text Norwegian=&Neste> - Text Swedish=&Nästa > - end - item: Push Button - Rectangle=222 185 264 199 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Annuller - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=9 177 263 178 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=91 22 245 118 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000000 - Text=<<<version.welcome>>> - end - end -end -item: Custom Dialog Set - Name=Display ReadMe - Display Variable=DISPLAY - item: Dialog - Title=Read Me File - Title French=Fichier Lisez-moi - Title German=Liesmich-Datei - Title Portuguese=Ficheiro Leia-me - Title Spanish=Archivo Léeme - Title Italian=File Leggimi - Title Danish=Vigtigt fil - Title Dutch=Leesmij-bestand - Title Norwegian=Informasjonsfil - Title Swedish=Läs mig-fil - Width=280 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=172 185 214 199 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=I &Agree > - Text French=&Suivant> - Text German=&Weiter> - Text Portuguese=&Próximo> - Text Spanish=&Siguiente > - Text Italian=&Avanti > - Text Danish=&Næste> - Text Dutch=&Volgende> - Text Norwegian=&Neste> - Text Swedish=&Nästa > - end - item: Push Button - Rectangle=222 185 264 199 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Slet - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=9 177 263 178 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Editbox - Rectangle=85 11 254 170 - Value=%TEMP%\%READMEFILE% - Help Context=16711681 - Create Flags=01010000101000000000100000000100 - end - end -end -item: Custom Dialog Set - Name=Select Destination Directory - Display Variable=DISPLAY - item: Dialog - Title=Choose Destination Location - Title French=Choisissez la localisation de destination - Title German=Zielpfad wählen - Title Portuguese=Escolher Local de Destino - Title Spanish=Elegir una localización de destino - Title Italian=Scegli Posizione di Destinazione - Title Danish=Vælg destinationsmappe - Title Dutch=Kies doellocatie - Title Norwegian=Velg målplassering - Title Swedish=Välj ställe för installationen - Width=280 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=172 185 214 199 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suivant> - Text German=&Weiter> - Text Portuguese=&Próximo> - Text Spanish=&Siguiente > - Text Italian=&Avanti > - Text Danish=&Næste> - Text Dutch=&Volgende> - Text Norwegian=&Neste> - Text Swedish=&Nästa > - end - item: Push Button - Rectangle=130 185 172 199 - Variable=DIRECTION - Value=B - Create Flags=01010000000000010000000000000000 - Flags=0000000000000001 - Text=< &Back - Text French=<&Retour - Text German=<&Zurück - Text Portuguese=<&Retornar - Text Spanish=<&Retroceder - Text Italian=< &Indietro - Text Danish=<&Tilbage - Text Dutch=<&Terug - Text Norwegian=<&Tilbake - Text Swedish=< &Tillbaka - end - item: Push Button - Rectangle=222 185 264 199 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Annuller - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=9 177 263 178 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=90 10 260 122 - Create Flags=01010000000000000000000000000000 - Text=Setup will install %APPTITLE% in the following folder. - Text= - Text=To install into a different folder, click Browse, and select another folder. - Text= - Text=You can choose not to install %APPTITLE% by clicking Cancel to exit Setup. - Text French=%APPTITLE% va être installé dans le répertoire ci-dessous - Text French= - Text French=Pour l'installer dans un répertoire différent, cliquez sur Parcourir et sélectionnez un autre répertoire - Text French= - Text French=Vous pouvez choisir de ne pas installer %APPTITLE% en cliquant sur Annuler pour quitter l'Installation - Text German=Installation speichert %APPTITLE% im unten angegebenen Ordner: - Text German= - Text German=Zur Installation in einem anderen Ordner auf Blättern klicken und einen anderen Ordner wählen. - Text German= - Text German=Wenn Sie %APPTITLE% nicht installieren möchten, können Sie durch Klicken auf Abbrechen die Installation beenden. - Text Portuguese=Configuração instalará %APPTITLE% na seguinte pasta - Text Portuguese= - Text Portuguese=Para instalar numa pasta diferente, faça um clique sobre Procurar, e seleccione uma outra pasta. - Text Portuguese= - Text Portuguese=Pode escolher não instalar %APPTITLE% clicando no botão Cancelar para sair da Configuração - Text Spanish=El programa de Configuración instalará %APPTITLE% en la siguiente carpeta. - Text Spanish= - Text Spanish=Para instalar en una carpeta diferente, haga un clic en Visualizar, y seleccione otra carpeta. - Text Spanish= - Text Spanish=Puede elegir no instalar %APPTITLE% haciendo un clic en Cancelar para salir de Configuración. - Text Italian=Il programma di installazione installerà %APPTITLE% nella seguente cartella. - Text Italian= - Text Italian=Per effettuare l’installazione in una cartella diversa, fai clic su Sfoglia, e scegli un’altra cartella. - Text Italian= - Text Italian=Puoi scegliere di non installare %APPTITLE% facendo clic su Annulla per uscire dal programma di installazione - Text Danish=Installationsprogrammet installerer %APPTITLE% i denne mappe. - Text Danish= - Text Danish=Man installerer i en anden mappe ved at klikke på Browse og vælge en anden mappe. - Text Danish= - Text Danish=Man kan vælge ikke at installere %APPTITLE% ved at klikke på Slet og forlade installationsprogrammet. - Text Dutch=Het installatieprogramma installeert %APPTITLE% in de volgende directory. - Text Dutch= - Text Dutch=Als u het in een andere directory wilt installeren, klik dan op Bladeren en kies een andere locatie. - Text Dutch= - Text Dutch=U kunt ervoor kiezen om %APPTITLE% niet te installeren: klik op Annuleren om het installatieprogramma te verlaten. - Text Norwegian=Oppsett vil installere %APPTITLE% i følgende mappe. - Text Norwegian= - Text Norwegian=For å installere i en annen mappe, klikk Bla igjennom og velg en annen mappe. - Text Norwegian= - Text Norwegian=Du kan velge å ikke installere %APPTITLE% ved å velge Avbryt for å gå ut av Oppsett. - Text Swedish=Installationsprogrammet installerar %APPTITLE% i följande mapp. - Text Swedish= - Text Swedish=Om du vill att installationen ska göras i en annan mapp, klickar du på Bläddra och väljer en annan mapp. - Text Swedish= - Text Swedish=Du kan välja att inte installera %APPTITLE% genom att klicka på Avbryt för att lämna installationsprogrammet. - end - item: Static - Rectangle=90 134 260 162 - Action=1 - Create Flags=01010000000000000000000000000111 - Text=Destination Folder - Text French=Répertoire de destination - Text German=Zielordner - Text Portuguese=Pasta de Destino - Text Spanish=Carpeta de Destino - Text Italian=Cartella di destinazione - Text Danish=Destinationsmappe - Text Dutch=Doeldirectory - Text Norwegian=Målmappe - Text Swedish=Destinationsmapp - end - item: Push Button - Rectangle=213 143 255 157 - Variable=MAINDIR_SAVE - Value=%MAINDIR% - Destination Dialog=1 - Action=2 - Create Flags=01010000000000010000000000000000 - Text=B&rowse... - Text French=P&arcourir - Text German=B&lättern... - Text Portuguese=P&rocurar - Text Spanish=V&isualizar... - Text Italian=Sfoglia... - Text Danish=&Gennemse... - Text Dutch=B&laderen... - Text Norwegian=Bla igjennom - Text Swedish=&Bläddra - end - item: Static - Rectangle=95 146 211 157 - Destination Dialog=2 - Create Flags=01010000000000000000000000000000 - Text=%MAINDIR% - Text French=%MAINDIR% - Text German=%MAINDIR% - Text Portuguese=%MAINDIR% - Text Spanish=%MAINDIR% - Text Italian=%MAINDIR% - Text Danish=%MAINDIR% - Text Dutch=%MAINDIR% - Text Norwegian=%MAINDIR% - Text Swedish=%MAINDIR% - end - end - item: Dialog - Title=Select Destination Directory - Title French=Choisissez le répertoire de destination - Title German=Zielverzeichnis wählen - Title Portuguese=Seleccionar Directório de Destino - Title Spanish=Seleccione el Directorio de Destino - Title Italian=Seleziona Directory di destinazione - Title Danish=Vælg Destinationsbibliotek - Title Dutch=Kies doeldirectory - Title Norwegian=Velg målkatalog - Title Swedish=Välj destinationskalatog - Width=221 - Height=173 - Font Name=Helv - Font Size=8 - item: Listbox - Rectangle=5 2 160 149 - Variable=MAINDIR - Create Flags=01010000100000010000000101000000 - Flags=0000110000100010 - Text=%MAINDIR% - Text French=%MAINDIR% - Text German=%MAINDIR% - Text Portuguese=%MAINDIR% - Text Spanish=%MAINDIR% - Text Italian=%MAINDIR% - Text Danish=%MAINDIR% - Text Dutch=%MAINDIR% - Text Norwegian=%MAINDIR% - Text Swedish=%MAINDIR% - end - item: Push Button - Rectangle=167 6 212 21 - Create Flags=01010000000000010000000000000001 - Text=OK - Text French=OK - Text German=OK - Text Portuguese=OK - Text Spanish=ACEPTAR - Text Italian=OK - Text Danish=OK - Text Dutch=OK - Text Norwegian=OK - Text Swedish=OK - end - item: Push Button - Rectangle=167 25 212 40 - Variable=MAINDIR - Value=%MAINDIR_SAVE% - Create Flags=01010000000000010000000000000000 - Flags=0000000000000001 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Slet - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - end -end -item: Custom Dialog Set - Name=Select Packages - Display Variable=DISPLAY - item: Dialog - Title=Select Packages - Width=271 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=150 187 195 202 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suite > - Text German=&Weiter > - Text Spanish=&Siguiente > - Text Italian=&Avanti > - end - item: Push Button - Rectangle=105 187 150 202 - Variable=DIRECTION - Value=B - Create Flags=01010000000000010000000000000000 - Text=< &Back - Text French=< &Retour - Text German=< &Zurück - Text Spanish=< &Atrás - Text Italian=< &Indietro - end - item: Push Button - Rectangle=211 187 256 202 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=&Cancel - Text French=&Annuler - Text German=&Abbrechen - Text Spanish=&Cancelar - Text Italian=&Annulla - end - item: Static - Rectangle=8 180 256 181 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=86 8 258 28 - Create Flags=01010000000000000000000000000000 - Flags=0000000000000001 - Name=Times New Roman - Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18 - Text=Select Packages - Text French=Sélectionner les composants - Text German=Komponenten auswählen - Text Spanish=Seleccione componentes - Text Italian=Selezionare i componenti - end - item: Checkbox - Rectangle=83 62 211 146 - Variable=COMPONENTS LIBS,COMM,OA,OS,PROG,WP,GAMES - Create Flags=01010000000000010000000000000011 - Flags=0000000000000110 - Text=Libraries - Text=Communication - Text=Productivity - Text=Operating System - Text=Programming - Text=Word Processing - Text=Games and Amusements - Text= - end - item: Static - Rectangle=194 162 242 172 - Variable=COMPONENTS, LIBS, COMM, OA, OS, PROG, WP, GAMES - Value=MAINDIR - Create Flags=01010000000000000000000000000010 - end - item: Static - Rectangle=194 153 242 162 - Variable=COMPONENTS, LIBS, COMM, OA, OS, PROG, WP, GAMES - Create Flags=01010000000000000000000000000010 - end - item: Static - Rectangle=107 153 196 164 - Create Flags=01010000000000000000000000000000 - Text=Disk Space Required: - Text French=Espace disque requis : - Text German=Notwendiger Speicherplatz: - Text Spanish=Espacio requerido en el disco: - Text Italian=Spazio su disco necessario: - end - item: Static - Rectangle=107 162 196 172 - Create Flags=01010000000000000000000000000000 - Text=Disk Space Remaining: - Text French=Espace disque disponible : - Text German=Verbleibender Speicherplatz: - Text Spanish=Espacio en disco disponible: - Text Italian=Spazio su disco disponibile: - end - item: Static - Rectangle=80 146 256 175 - Action=1 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=83 30 256 57 - Create Flags=01010000000000000000000000000000 - Text=Choose which package categories to install by checking the boxes below. Press the Options buttons to select individual packages. - Text French=Choisissez les composants que vous voulez installer en cochant les cases ci-dessous. - Text German=Wählen Sie die zu installierenden Komponenten, indem Sie in die entsprechenden Kästchen klicken. - Text Spanish=Elija los componentes que desee instalar marcando los cuadros de abajo. - Text Italian=Scegliere quali componenti installare selezionando le caselle sottostanti. - end - item: Push Button - Rectangle=230 62 254 72 - Variable=LIBS_SAVE - Value=%LIBS% - Destination Dialog=1 - Action=2 - Create Flags=01010000000000010000000000000000 - Text=Options - Text French=&Annuler - Text German=&Abbrechen - Text Spanish=&Cancelar - Text Italian=&Annulla - end - item: Push Button - Rectangle=230 74 254 84 - Variable=COMM_SAVE - Value=%COMM% - Destination Dialog=2 - Action=2 - Create Flags=01010000000000010000000000000000 - Text=Options - Text French=&Annuler - Text German=&Abbrechen - Text Spanish=&Cancelar - Text Italian=&Annulla - end - item: Push Button - Rectangle=230 86 254 96 - Variable=OA_SAVE - Value=%OA% - Destination Dialog=3 - Action=2 - Create Flags=01010000000000010000000000000000 - Text=Options - Text French=&Annuler - Text German=&Abbrechen - Text Spanish=&Cancelar - Text Italian=&Annulla - end - item: Push Button - Rectangle=230 98 254 108 - Variable=OS_SAVE - Value=%OS% - Destination Dialog=4 - Action=2 - Create Flags=01010000000000010000000000000000 - Text=Options - Text French=&Annuler - Text German=&Abbrechen - Text Spanish=&Cancelar - Text Italian=&Annulla - end - item: Push Button - Rectangle=230 110 254 120 - Variable=PROG_SAVE - Value=%PROG% - Destination Dialog=5 - Action=2 - Create Flags=01010000000000010000000000000000 - Text=Options - Text French=&Annuler - Text German=&Abbrechen - Text Spanish=&Cancelar - Text Italian=&Annulla - end - item: Push Button - Rectangle=230 122 254 132 - Variable=WP_SAVE - Value=%WP% - Destination Dialog=6 - Action=2 - Create Flags=01010000000000010000000000000000 - Text=Options - Text French=&Annuler - Text German=&Abbrechen - Text Spanish=&Cancelar - Text Italian=&Annulla - end - item: Push Button - Rectangle=230 134 254 144 - Variable=GAMES_SAVE - Value=%GAMES% - Destination Dialog=7 - Action=2 - Create Flags=01010000000000010000000000000000 - Text=Options - Text French=&Annuler - Text German=&Abbrechen - Text Spanish=&Cancelar - Text Italian=&Annulla - end - item: Set Variable - Variable=COMPONENTS - Value=X - Flags=00000001 - end - end -<<<string.join(map(category_dialog,packages.category_names),"")>>> -end -item: Custom Dialog Set - Name=Select Program Manager Group - Display Variable=DISPLAY - item: Dialog - Title=Select Program Manager Group - Title French=Sélectionnez le Groupe du Gestionnaire de Programmes - Title German=Programm-Managergruppe wählen - Title Portuguese=Seleccionar o Grupo Gestor de Programas - Title Spanish=Seleccione el Grupo del Administrador del Programa - Title Italian=Seleziona il gruppo Program Manager - Title Danish=Vælg Programstyringsgruppen - Title Dutch=Kies Programmabeheergroep. - Title Norwegian=Velg Programbehandlingsgruppen - Title Swedish=Välj grupp i Programhanteraren - Width=280 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=172 185 214 199 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suivant> - Text German=&Weiter> - Text Portuguese=&Próximo> - Text Spanish=&Siguiente > - Text Italian=&Avanti > - Text Danish=&Næste> - Text Dutch=&Volgende> - Text Norwegian=&Neste> - Text Swedish=&Nästa > - end - item: Push Button - Rectangle=130 185 172 199 - Variable=DIRECTION - Value=B - Create Flags=01010000000000010000000000000000 - Flags=0000000000000001 - Text=< &Back - Text French=<&Retour - Text German=<&Zurück - Text Portuguese=<&Retornar - Text Spanish=<&Retroceder - Text Italian=< &Indietro - Text Danish=<&Back - Text Dutch=<&Terug - Text Norwegian=<&Tilbake - Text Swedish=< &Tillbaka - end - item: Push Button - Rectangle=222 185 264 199 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Slet - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=9 177 263 178 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=90 10 260 38 - Create Flags=01010000000000000000000000000000 - Text=Enter the name of the Program Manager group to add %APPTITLE% icons to: - Text French=Entrez le nom du groupe du Gestionnaire de Programmes où placer les icônes %APPTITLE% à : - Text German=Den Namen der Programm-Managergruppe wählen, in der die %APPTITLE%-Symbole gespeichert werden sollen: - Text Portuguese=Introduzir o nome do Grupo Gestor de Programa para acrescentar os ícones %APPTITLE% para: - Text Spanish=Introduzca el nombre del grupo del Administrador del Programa para añadir los iconos %APPTITLE para: - Text Italian=Inserisci il nome del gruppo Program Manager per aggiungere le icone di %APPTITLE% a: - Text Danish=Indtast navnet på Programstyringsgruppen der skal tilføjes %APPTITLE% elementer: - Text Dutch=Breng de naam van de programmabeheergroep in waaraan u %APPTITLE%-pictogrammen wilt toevoegen. - Text Norwegian=Tast inn navnet på programbehandlingsgruppen for å legge %APPTITLE%-ikoner til: - Text Swedish=Skriv in namnet på den grupp i Programhanteraren där du vill ha ikonerna för %APPTITLE%: - end - item: Combobox - Rectangle=90 42 260 148 - Variable=GROUP - Create Flags=01010000001000010000001100000001 - Flags=0000000000000001 - Text=%GROUP% - Text= - Text French=%GROUP% - Text French= - Text German=%GROUP% - Text German= - Text Portuguese=%GROUP% - Text Portuguese= - Text Spanish=%GROUP% - Text Spanish= - Text Italian=%GROUP% - Text Italian= - Text Danish=%GROUP% - Text Danish= - Text Dutch=%GROUP% - Text Dutch= - Text Norwegian=%GROUP% - Text Norwegian= - Text Swedish=%GROUP% - Text Swedish= - end - end -end -item: Custom Dialog Set - Name=Start Installation - Display Variable=DISPLAY - item: Dialog - Title=Start Installation - Title French=Commencer l'installation - Title German=Installation beginnen - Title Portuguese=Iniciar Instalação - Title Spanish=Comenzar la Instalación - Title Italian=Avvia Installazione - Title Danish=Start installationen - Title Dutch=Start de installatie. - Title Norwegian=Start installeringen - Title Swedish=Starta installationen - Width=280 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=172 185 214 199 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suivant> - Text German=&Weiter> - Text Portuguese=&Próximo> - Text Spanish=&Siguiente > - Text Italian=&Avanti > - Text Danish=&Næste> - Text Dutch=&Volgende> - Text Norwegian=&Neste> - Text Swedish=&Nästa > - end - item: Push Button - Rectangle=130 185 172 199 - Variable=DIRECTION - Value=B - Create Flags=01010000000000010000000000000000 - Text=< &Back - Text French=<&Retour - Text German=<&Zurück - Text Portuguese=<&Retornar - Text Spanish=<&Retroceder - Text Italian=< &Indietro - Text Danish=<&Tilbage - Text Dutch=<&Terug - Text Norwegian=<&Tilbake - Text Swedish=< &Tillbaka - end - item: Push Button - Rectangle=222 185 264 199 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Annuller - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=9 177 263 178 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=90 10 260 70 - Create Flags=01010000000000000000000000000000 - Text=You are now ready to install %APPTITLE%. - Text= - Text=Press the Next button to begin the installation or the Back button to reenter the installation information. - Text French=Vous êtes maintenant prêt à installer %APPTITLE% - Text French= - Text French=Cliquez sur Suivant pour commencer l'installation ou Retour pour entrer à nouveau les informations d'installation - Text German=Sie sind jetzt zur Installation von %APPTITLE% bereit. - Text German= - Text German=Auf die Schaltfläche Weiter klicken, um mit dem Start der Installation zu beginnen, oder auf die Schaltfläche Zurück, um die Installationsinformationen nochmals aufzurufen. - Text Portuguese=Está agora pronto para instalar %APPTITLE% - Text Portuguese= - Text Portuguese=Pressione o botão Próximo para começar a instalação ou o botão Retornar para introduzir novamente a informação sobre a instalação - Text Spanish=Ahora estará listo para instalar %APPTITLE%. - Text Spanish= - Text Spanish=Pulse el botón de Próximo para comenzar la instalación o el botón Retroceder para volver a introducir la información sobre la instalación. - Text Italian=Sei pronto ad installare %APPTITLE%. - Text Italian= - Text Italian=Premi il tasto Avanti per iniziare l’installazione o il tasto Indietro per rientrare nuovamente nei dati sull’installazione - Text Danish=Du er nu klar til at installere %APPTITLE%. - Text Danish= - Text Danish=Klik på Næste for at starte installationen eller på Tilbage for at ændre installationsoplysningerne. - Text Dutch=U bent nu klaar om %APPTITLE% te installeren. - Text Dutch= - Text Dutch=Druk op Volgende om met de installatie te beginnen of op Terug om de installatie-informatie opnieuw in te voeren. - Text Norwegian=Du er nå klar til å installere %APPTITLE% - Text Norwegian= - Text Norwegian=Trykk på Neste-tasten for å starte installeringen, eller Tilbake-tasten for å taste inn installasjonsinformasjonen på nytt. - Text Swedish=Du är nu redo att installera %APPTITLE%. - Text Swedish= - Text Swedish=Tryck på Nästa för att starta installationen eller på Tillbaka för att skriva in installationsinformationen på nytt. - end - end -end -item: If/While Statement - Variable=DISPLAY - Value=Select Destination Directory -end -item: Set Variable - Variable=BACKUP - Value=%MAINDIR%\BACKUP -end -item: End Block -end -item: End Block -end -item: If/While Statement - Variable=DOBACKUP - Value=A -end -item: Set Variable - Variable=BACKUPDIR - Value=%BACKUP% -end -item: End Block -end -item: Open/Close INSTALL.LOG -end -item: Check Disk Space - Component=COMPONENTS -end -item: Display Graphic - Pathname=<<<dirs.source>>>\nt\Wise\xemacs-beta.bmp - X Position=32784 - Y Position=16 -end -item: Include Script - Pathname=%_WISE_%\INCLUDE\uninstal.wse -end -<<<ifblock("COMPONENTS","X")>>> -<<<string.join(map(lambda x:install_file(x[0],x[1],x[2]),filelist.all),"")>>> -<<<endblock()>>> -<<<map(do_category,packages.category_names)>>> -item: Set Variable - Variable=COMMON - Value=%COMMON% - Flags=00010100 -end -item: Set Variable - Variable=MAINDIR - Value=%MAINDIR% - Flags=00010100 -end -item: Check Configuration - Flags=10111011 -end -item: Get Registry Key Value - Variable=STARTUPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%WIN%\Start Menu\Programs\StartUp - Value Name=StartUp - Flags=00000010 -end -item: Get Registry Key Value - Variable=DESKTOPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%WIN%\Desktop - Value Name=Desktop - Flags=00000010 -end -item: Get Registry Key Value - Variable=STARTMENUDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%WIN%\Start Menu - Value Name=Start Menu - Flags=00000010 -end -item: Get Registry Key Value - Variable=GROUPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%WIN%\Start Menu\Programs - Value Name=Programs - Flags=00000010 -end -item: Get Registry Key Value - Variable=CSTARTUPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%STARTUPDIR% - Value Name=Common Startup - Flags=00000100 -end -item: Get Registry Key Value - Variable=CDESKTOPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%DESKTOPDIR% - Value Name=Common Desktop - Flags=00000100 -end -item: Get Registry Key Value - Variable=CSTARTMENUDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%STARTMENUDIR% - Value Name=Common Start Menu - Flags=00000100 -end -item: Get Registry Key Value - Variable=CGROUPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%GROUPDIR% - Value Name=Common Programs - Flags=00000100 -end -item: Set Variable - Variable=CGROUP_SAVE - Value=%GROUP% -end -item: Set Variable - Variable=GROUP - Value=%GROUPDIR%\%GROUP% -end -item: Create Shortcut - Source=%MAINDIR%\<<<dirs.dst>>>\i386-pc-win32\runemacs.exe - Destination=%GROUP%\XEmacs.lnk - Working Directory=\ - Icon Number=0 -end -item: Create Shortcut - Source=%MAINDIR%\<<<dirs.dst>>>\i386-pc-win32\runemacs.exe - Destination=%DESKTOPDIR%\XEmacs.lnk - Working Directory=\ - Icon Number=0 -end -item: Else Statement -end -item: Add ProgMan Icon - Group=%GROUP% - Icon Name=XEmacs - Command Line=%MAINDIR%\<<<dirs.dst>>>\i386-pc-win32\runemacs.exe - Default Directory=\ - Flags=01000000 -end -item: End Block -end -item: Edit Registry - Total Keys=16 - item: Key - Key=SOFTWARE\GNU\XEmacs - New Value=%MAINDIR% - Value Name=emacs_dir - Root=2 - end - item: Key - Key=SOFTWARE\GNU\XEmacs - New Value=%MAINDIR%\xemacs-packages - Value Name=EMACSPACKAGEPATH - Root=2 - end - item: Key - Key=SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\runemacs.exe - New Value=%MAINDIR%\<<<dirs.dst>>>\i386-pc-win32 - Value Name=Path - Root=2 - end - item: Key - Key=SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\xemacs.exe - New Value=%MAINDIR%\<<<dirs.dst>>>\i386-pc-win32 - Value Name=Path - Root=2 - end - item: Key - Key=.el - New Value=elfile - end - item: Key - Key=.el - New Value=text/plain - Value Name=Content Type - end - item: Key - Key=elfile - New Value=Emacs lisp - end - item: Key - Key=elfile - New Value=00 00 01 00 - Value Name=EditFlags - Data Type=4 - end - item: Key - Key=elfile\DefaultIcon - New Value=%MAINDIR%\<<<dirs.dst>>>\i386-pc-win32\runemacs.exe,2 - end - item: Key - Key=elfile\QuickView - New Value=* - end - item: Key - Key=elfile\Shell - New Value= - end - item: Key - Key=elfile\Shell\open - end - item: Key - Key=elfile\Shell\open\command - New Value=%MAINDIR%\<<<dirs.dst>>>\i386-pc-win32\runemacs.exe "%%1" - end - item: Key - Key=elfile\Shell\open\ddeexec - New Value=open("%%1") - end - item: Key - Key=elfile\Shell\open\ddeexec\Application - New Value=XEmacs - New Value= - end - item: Key - Key=elfile\Shell\open\ddeexec\topic - New Value=System - end -end -item: Wizard Block - Direction Variable=DIRECTION - Display Variable=DISPLAY - Bitmap Pathname=<<<dirs.source>>>\nt\Wise\gnu.bmp - X Position=9 - Y Position=10 - Filler Color=8421440 - Flags=00000011 -end -item: Custom Dialog Set - Name=Finished - Display Variable=DISPLAY - item: Dialog - Title=Installation Complete - Title French=Installation en cours - Title German=Installation abgeschlossen - Title Portuguese=Instalação Completa - Title Spanish=Se ha completado la Instalación - Title Italian=Installazione completata - Title Danish=Installation gennemført - Title Dutch=Installatie afgerond - Title Norwegian=Installasjonen er fullført - Title Swedish=Installationen klar - Width=280 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=170 185 212 199 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Finish > - Text French=&Terminer> - Text German=&Fertigstellen> - Text Portuguese=&Terminar > - Text Spanish=&Finalizar> - Text Italian=&Fine > - Text Danish=&Afslut > - Text Dutch=&Klaar> - Text Norwegian=&Avslutt> - Text Swedish=&Sluta> - end - item: Push Button - Control Name=CANCEL - Rectangle=222 185 264 199 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Annuller - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=9 177 263 178 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=90 10 260 63 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000000 - Text=%APPTITLE% has been successfully installed. - Text= - Text= - Text=Press the Finish button to exit this installation. - Text= - Text French=L'installation de %APPTITLE% est réussie - Text French= - Text French= - Text French=Cliquez sur Terminer pour quitter cette installation - Text French= - Text German=%APPTITLE% wurde erfolgreich installiert. - Text German= - Text German= - Text German=Zum Beenden dieser Installation Fertigstellen anklicken. - Text German= - Text Portuguese=%APPTITLE% foi instalado com êxito - Text Portuguese= - Text Portuguese= - Text Portuguese=Pressionar o botão Terminar para sair desta instalação - Text Portuguese= - Text Spanish=%APPTITLE% se ha instalado con éxito. - Text Spanish= - Text Spanish= - Text Spanish=Pulse el botón de Finalizar para salir de esta instalación. - Text Spanish= - Text Italian=%APPTITLE% è stato installato. - Text Italian= - Text Italian= - Text Italian=Premi il pulsante Fine per uscire dal programma di installazione - Text Italian= - Text Danish=%APPTITLE% er nu installeret korrekt. - Text Danish= - Text Danish= - Text Danish=Klik på Afslut for at afslutte installationen. - Text Danish= - Text Dutch=%APPTITLE% is met succes geïnstalleerd. - Text Dutch= - Text Dutch= - Text Dutch=Druk op Klaar om deze installatie af te ronden. - Text Dutch= - Text Norwegian=Installasjonen av %APPTITLE% er suksessfull. - Text Norwegian= - Text Norwegian= - Text Norwegian=Trykk på Avslutt-tasten for å avslutte denne installasjonen. - Text Norwegian= - Text Swedish=Installationen av %APPTITLE% har lyckats. - Text Swedish= - Text Swedish= - Text Swedish=Tryck på Sluta för att gå ur installationsprogrammet. - Text Swedish= - end - item: Push Button - Control Name=BACK - Rectangle=128 185 170 199 - Variable=DIRECTION - Value=B - Create Flags=01010000000000010000000000000000 - Text=< &Back - Text French=<&Retour - Text German=<&Zurück - Text Portuguese=<&Retornar - Text Spanish=<&Retroceder - Text Italian=< &Indietro - Text Danish=<&Tilbage - Text Dutch=<&Terug - Text Norwegian=<&Tilbake - Text Swedish=< &Tillbaka - end - item: Set Control Attribute - Control Name=BACK - Operation=1 - end - item: Set Control Attribute - Control Name=CANCEL - Operation=1 - end - end -end -item: End Block -end -item: New Event - Name=Cancel -end -item: Include Script - Pathname=%_WISE_%\INCLUDE\rollback.wse -end
--- a/nt/xemacs.dsp Fri Jan 01 19:45:39 2010 +0000 +++ b/nt/xemacs.dsp Thu Jan 07 17:01:25 2010 +0000 @@ -919,22 +919,6 @@ # End Source File # Begin Source File -SOURCE="..\src\offix-cursors.h" -# End Source File -# Begin Source File - -SOURCE="..\src\offix-types.h" -# End Source File -# Begin Source File - -SOURCE=..\src\offix.c -# End Source File -# Begin Source File - -SOURCE=..\src\offix.h -# End Source File -# Begin Source File - SOURCE=..\src\opaque.c # End Source File # Begin Source File @@ -1317,13 +1301,5 @@ SOURCE=..\src\xmprimitivep.h # End Source File -# Begin Source File - -SOURCE=..\src\xmu.c -# End Source File -# Begin Source File - -SOURCE=..\src\xmu.h -# End Source File # End Target # End Project
--- a/nt/xemacs.mak Fri Jan 01 19:45:39 2010 +0000 +++ b/nt/xemacs.mak Thu Jan 07 17:01:25 2010 +0000 @@ -1139,8 +1139,7 @@ $(BLDLIB_SRC)/make-docfile.exe \ $(BLDLIB_SRC)/mmencode.exe \ $(BLDLIB_SRC)/movemail.exe \ - $(BLDLIB_SRC)/sorted-doc.exe \ - $(BLDLIB_SRC)/wakeup.exe + $(BLDLIB_SRC)/sorted-doc.exe !if $(USE_MINITAR) LIB_SRC_TOOLS = \ $(LIB_SRC_TOOLS) \
--- a/src/ChangeLog Fri Jan 01 19:45:39 2010 +0000 +++ b/src/ChangeLog Thu Jan 07 17:01:25 2010 +0000 @@ -1,6 +1,159 @@ +2010-01-07 Aidan Kehoe <kehoea@parhasard.net> + + * mule-charset.c: + (syms_of_mule_charset, complex_vars_of_mule_charset): + * lisp.h: + Restore the creation of arabic-iso8859-6 in C, having it in Lisp + isn't sufficient for X11 input to work. + +2010-01-06 Jerry James <james@xemacs.org> + + * emacs.c (main_1): Only call reinit_vars_of_number if + WITH_NUMBER_TYPES. + +2010-01-06 Jerry James <james@xemacs.org> + + * alloc.c: Include valgrind header if USE_VALGRIND. + (Fvalgrind_leak_check): New function. + (Fvalgrind_quick_leak_check): New function. + (syms_of_alloc): Declare the new functions. + * config.h.in (USE_VALGRIND): New define. + +2010-01-06 Jerry James <james@xemacs.org> + + * emacs.c: Fix FSF address. + (main_1): Call reinit_vars_of_number. + * number-gmp.c: Fix FSF address. + * number-gmp.h: Ditto. + * number-mp.c: Ditto. + * number-mp.h: Ditto. + * number.h: Ditto. + * number.c: Ditto. + (bignum_finalize): New function. + (ratio_finalize): New function. + (bigfloat_finalize): New function. + (vars_of_number): Don't create a bignum here. + (reinit_vars_of_number): New function; create a bignum here. + (init_number): Call reinit_vars_of_number if !PDUMP. + * symsinit.h: Fix FSF address. Declare reinit_vars_of_number. + +2010-01-05 Jerry James <james@xemacs.org> + + * font-mgr.c (Ffc_name_unparse): Return value of FcNameUnparse + must be freed. + +2009-12-31 Aidan Kehoe <kehoea@parhasard.net> + + * eval.c (Ffunctionp): + Special forms no longer give t in this function, in accordance + with recent GNU Emacs and with Common Lisp. + +2009-12-21 Jerry James <james@xemacs.org> + + * config.h.in: Remove OffiX support. + * device-x.c: Ditto. + * dragdrop.c: Ditto. + (vars_of_dragrop): Ditto + * event-Xt.c: Ditto. + (x_event_to_emacs_event): Ditto. + * frame.c (vars_of_frame): Ditto + * frame-x.c: Ditto. + (Foffix_start_drag_internal): Remove. + (syms_of_frame_x): Remove OffiX support.. + * Makefile.in.in: Ditto. + * event-gtk.c: Don't include OffiX headers. + * offix.c: Remove. + * offic.h: Remove. + * offix-cursors.h: Remove. + * offix-types.h: Remove. + * text.h (Qoffix_dnd_encoding): Remove, twice. + * depend: Regenerate. + +2009-11-27 Adrian Aichner <adrian@xemacs.org> + + * nt.c (mswindows_getdcwd): Check first whether drive is valid + with _getdrives() to avoid crash in _wgetdcwd(...) when linking + against msvcrt8. This fix was taken from the Mozilla project + which experienced the same problem. + +2009-12-19 Aidan Kehoe <kehoea@parhasard.net> + + * symbols.c (reject_constant_symbols): + Indicate that accepting attempted modification of keywords is a + temporary thing. + +2009-12-23 Stephen J. Turnbull <stephen@xemacs.org> + + * fns.c (Fcompare_strings): Coerce bounds to be within strings. + +2009-12-18 Jerry James <james@xemacs.org> + + * ppc.ldscript: Remove, obsolete. + +2009-12-17 Aidan Kehoe <kehoea@parhasard.net> + + * events.h (character_to_event_meta_behavior): New enumeration, + describing what character_to_event should do with characters in + the range ?\x80-?\xFF, and passed as the third argument to + character_to_event instead of the binary use_console_meta_flag. + * events.c (character_to_event, Fcharacter_to_event): + * event-unixoid.c (read_event_from_tty_or_stream_desc): + * event-stream.c (maybe_kbd_translate, maybe_kbd_translate): + * event-msw.c (mswindows_need_event): + Use the new enumeration. + * event-Xt.c (x_to_emacs_keysym): + Call character_to_event when we receive XLookupChars events, + passing latin_1_maps_to_itself as the meta_behavior flag, + addressing the problem FKtPp sees in 87bpi9mwpu.fsf@yahoo.com.cn + +2009-12-17 Aidan Kehoe <kehoea@parhasard.net> + + * elhash.c (HASH_TABLE_DEFAULT_REHASH_THRESHOLD): + That last change was wrong in theory though not in practice; we're + comparing function pointers, not enumeration values. + +2009-12-17 Aidan Kehoe <kehoea@parhasard.net> + + * elhash.c (HASH_TABLE_DEFAULT_REHASH_THRESHOLD): + Cast the enumeration values here to integers before comparing + them, fixing the build on VC++. Thank you Vin! + +2009-12-17 Aidan Kehoe <kehoea@parhasard.net> + + * elhash.c (HASH_TABLE_DEFAULT_REHASH_THRESHOLD): + New macro, giving a default value for a hash table's rehash + threshold given its size and test function. + (print_hash_table): Print the hash table's rehash threshold if it + has a non-default value. Ditto for its rehash size. + (Fmake_hash_table): Supply the keyword arguments in a format + understood by #'function-arglist. + +2009-12-17 Aidan Kehoe <kehoea@parhasard.net> + + * alloc.c (resize_string): + Don't attempt to free dumped data in this function, avoiding an + assertion failure. + +2009-12-13 Stephen J. Turnbull <stephen@xemacs.org> + + * unicode.c (unicode_query): Add missing return type. + Thanks to 'mnewsam' on the tracker. + +2009-12-09 Jerry James <james@xemacs.org> + + * config.h.in: Remove HAVE_XMU. + * s/windowsnt.h: Ditto. + * device-x.c: Include needed Xmu headers instead of obsolete xmu.h. + * EmacsFrame.c: Ditto. + * glyphs-x.c: Ditto. + * frame-x.c: Ditto. Always include editres code. + * xmu.c: Removed, obsolete. + * xmu.h: Ditto. + * depend: Regenerate. + 2010-01-01 Aidan Kehoe <kehoea@parhasard.net> - * mule-charset.c (Fmake_charset): + * mule-charset.c (Fmake_charset): Don't intern the symbols used to refer to temporary character sets, that doesn't bring us anything. @@ -455,6 +608,18 @@ 2009-11-08 Aidan Kehoe <kehoea@parhasard.net> + * window.c (Fsave_window_excursion, save_window_excursion_unwind): + Remove these functions, the first was masked by + #'save-window-excursion in window.el, and the second can be easily + replaced with Lisp primitives. + * bytecode.c (Bsave_window_excursion) : Don't pass + save_window_excursion_unwind to record_unwind_protect, now the + former is gone. + * event-stream.c (execute_help_form): + Ditto. + +2009-11-08 Aidan Kehoe <kehoea@parhasard.net> + * sysfile.h (DEFAULT_DIRECTORY_FALLBACK): New #define, "/" on Unix and "C:\\" on Win32 native, a directory that should "always" be available.
--- a/src/EmacsFrame.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/EmacsFrame.c Thu Jan 07 17:01:25 2010 +0000 @@ -40,9 +40,9 @@ #include "objects-x.h" #include <X11/Shell.h> +#include <X11/Xmu/CharSet.h> #include "EmacsFrameP.h" #include "EmacsManager.h" /* for EmacsManagerChangeSize */ -#include "xmu.h" #include "../lwlib/xt-wrappers.h" static void EmacsFrameClassInitialize (void);
--- a/src/Makefile.in.in Fri Jan 01 19:45:39 2010 +0000 +++ b/src/Makefile.in.in Thu Jan 07 17:01:25 2010 +0000 @@ -353,9 +353,9 @@ # endif /* EXTERNAL_WIDGET */ -# if defined (HAVE_OFFIX_DND) || defined (HAVE_CDE) +# if defined (HAVE_CDE) dnd_objs = @dnd_objs@ -# endif /* HAVE_OFFIX_DND || HAVE_CDE */ +# endif /* HAVE_CDE */ X11_objs = EmacsFrame.o EmacsShell.o TopLevelEmacsShell.o TransientEmacsShell.o EmacsManager.o $(external_widget_objs) $(dnd_objs) #endif /* HAVE_X_WINDOWS */
--- a/src/alloc.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/alloc.c Thu Jan 07 17:01:25 2010 +0000 @@ -71,6 +71,9 @@ #ifdef DOUG_LEA_MALLOC #include <malloc.h> #endif +#ifdef USE_VALGRIND +#include <valgrind/memcheck.h> +#endif EXFUN (Fgarbage_collect, 0); @@ -2690,19 +2693,20 @@ } XSET_STRING_DATA (s, new_data); - { - /* We need to mark this chunk of the string_chars_block - as unused so that compact_string_chars() doesn't - freak. */ - struct string_chars *old_s_chars = (struct string_chars *) - ((char *) old_data - offsetof (struct string_chars, chars)); - /* Sanity check to make sure we aren't hosed by strange - alignment/padding. */ - assert (old_s_chars->string == XSTRING (s)); - MARK_STRING_CHARS_AS_FREE (old_s_chars); - ((struct unused_string_chars *) old_s_chars)->fullsize = - oldfullsize; - } + if (!DUMPEDP (old_data)) /* Can't free dumped data. */ + { + /* We need to mark this chunk of the string_chars_block + as unused so that compact_string_chars() doesn't + freak. */ + struct string_chars *old_s_chars = (struct string_chars *) + ((char *) old_data - offsetof (struct string_chars, chars)); + /* Sanity check to make sure we aren't hosed by strange + alignment/padding. */ + assert (old_s_chars->string == XSTRING (s)); + MARK_STRING_CHARS_AS_FREE (old_s_chars); + ((struct unused_string_chars *) old_s_chars)->fullsize = + oldfullsize; + } } } #endif /* not NEW_GC */ @@ -4698,6 +4702,29 @@ } #endif /* ALLOC_TYPE_STATS */ +#ifdef USE_VALGRIND +DEFUN ("valgrind-leak-check", Fvalgrind_leak_check, 0, 0, "", /* +Ask valgrind to perform a memory leak check. +The results of the leak check are sent to stderr. +*/ + ()) +{ + VALGRIND_DO_LEAK_CHECK; + return Qnil; +} + +DEFUN ("valgrind-quick-leak-check", Fvalgrind_quick_leak_check, 0, 0, "", /* +Ask valgrind to perform a quick memory leak check. +This just prints a summary of leaked memory, rather than all the details. +The results of the leak check are sent to stderr. +*/ + ()) +{ + VALGRIND_DO_QUICK_LEAK_CHECK; + return Qnil; +} +#endif /* USE_VALGRIND */ + void recompute_funcall_allocation_flag (void) { @@ -5052,6 +5079,10 @@ #endif DEFSUBR (Ftotal_memory_usage); DEFSUBR (Fconsing_since_gc); +#ifdef USE_VALGRIND + DEFSUBR (Fvalgrind_leak_check); + DEFSUBR (Fvalgrind_quick_leak_check); +#endif } void
--- a/src/bytecode.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/bytecode.c Thu Jan 07 17:01:25 2010 +0000 @@ -1455,11 +1455,15 @@ save_excursion_save ()); break; + /* This bytecode will eventually go away, once we no longer encounter + byte code from 21.4. In 21.5.10 and newer, save-window-excursion is + a macro. */ case Bsave_window_excursion: { int count = specpdl_depth (); - record_unwind_protect (save_window_excursion_unwind, - call1 (Qcurrent_window_configuration, Qnil)); + record_unwind_protect (Feval, + list2 (Qset_window_configuration, + call0 (Qcurrent_window_configuration))); TOP_LVALUE = Fprogn (TOP); unbind_to (count); break;
--- a/src/config.h.in Fri Jan 01 19:45:39 2010 +0000 +++ b/src/config.h.in Thu Jan 07 17:01:25 2010 +0000 @@ -528,10 +528,6 @@ /* Compile in support for GZIP compression */ #undef HAVE_ZLIB -/* Do you have the Xmu library? - This should always be the case except on losing HP-UX systems. */ -#undef HAVE_XMU - /* Compile in support for DBM databases? May require libgdbm or libdbm. */ #undef HAVE_DBM /* Full #include file path for GDBM's or platforms ndbm.h */ @@ -651,6 +647,10 @@ It is only intended for use by the developers. */ #undef PURIFY +/* Define USE_VALGRIND to compile valgrind hints into the code. + It is only intended for use by the developers. */ +#undef USE_VALGRIND + /* Define EXTERNAL_WIDGET to compile support for using the editor as a widget within another program. */ #undef EXTERNAL_WIDGET @@ -663,9 +663,6 @@ Requires libDtSvc, which typically must be present at runtime. */ #undef HAVE_CDE -/* Compile in support for OffiX Drag and Drop? */ -#undef HAVE_OFFIX_DND - /* Compile in generic Drag'n'Drop API */ #undef HAVE_DRAGNDROP
--- a/src/depend Fri Jan 01 19:45:39 2010 +0000 +++ b/src/depend Thu Jan 07 17:01:25 2010 +0000 @@ -35,17 +35,17 @@ objects-xlike-inc.o: #endif #if defined(HAVE_X_WINDOWS) -EmacsFrame.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h charset.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h faces.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h text.h toolbar.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h xmprimitivep.h xmu.h +EmacsFrame.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h charset.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h faces.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h text.h toolbar.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h xmprimitivep.h EmacsManager.o: $(CONFIG_H) $(LWLIB_SRCDIR)/lwlib.h EmacsManager.h EmacsManagerP.h compiler.h xintrinsicp.h xmmanagerp.h xmotif.h xmprimitivep.h EmacsShell-sub.o: $(CONFIG_H) $(LWLIB_SRCDIR)/lwlib.h EmacsShell.h EmacsShellP.h xintrinsic.h xintrinsicp.h EmacsShell.o: $(CONFIG_H) EmacsShell.h ExternalShell.h xintrinsicp.h balloon-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h balloon_help.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h specifier.h symeval.h symsinit.h text.h vdb.h xintrinsic.h balloon_help.o: $(CONFIG_H) balloon_help.h compiler.h xintrinsic.h console-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h elhash.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h process.h redisplay.h specifier.h symeval.h symsinit.h text.h vdb.h xintrinsic.h -device-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h elhash.h events.h faces.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdll.h sysfile.h systime.h text.h vdb.h window-impl.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h xmu.h +device-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h elhash.h events.h faces.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-x.h objects.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdll.h sysfile.h systime.h text.h vdb.h window-impl.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h dialog-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.h casetab.h charset.h chartab.h commands.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h dumper.h events.h frame-impl.h frame.h frameslots.h gc.h general-slots.h gui.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window.h xintrinsic.h -frame-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h EmacsShell.h ExternalShell.h buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h events.h extents.h faces.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h gutter.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-impl.h objects-x-impl.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar-x.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h xmprimitivep.h xmu.h -glyphs-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h bitmaps.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h faces.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h gui.h imgproc.h insdel.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h objects-impl.h objects-x-impl.h objects-x.h objects.h opaque.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xmotif.h xmu.h +frame-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h EmacsShell.h ExternalShell.h buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h events.h extents.h faces.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h gutter.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-impl.h objects-x-impl.h objects-x.h objects.h redisplay.h scrollbar-x.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h xmprimitivep.h +glyphs-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h bitmaps.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h faces.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h gui.h imgproc.h insdel.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h objects-impl.h objects-x-impl.h objects-x.h objects.h opaque.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xmotif.h gui-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h events.h frame.h gc.h general-slots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h menubar.h number-gmp.h number-mp.h number.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xmotif.h intl-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h compiler.h console-x.h console.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h symeval.h symsinit.h text.h vdb.h xintrinsic.h menubar-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.h casetab.h charset.h chartab.h commands.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h events.h frame-impl.h frame.h frameslots.h gc.h general-slots.h gui.h keymap.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h menubar.h number-gmp.h number-mp.h number.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h @@ -70,7 +70,7 @@ dialog-gtk.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h commands.h compiler.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h dumper.h events.h frame.h gc.h general-slots.h gui.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window.h emacs-marshals.o: hash.h emacs-widget-accessors.o: -event-gtk.o: $(CONFIG_H) $(LISP_H) blocktype.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h commands.h compiler.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console-tty.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h elhash.h event-gtk.h event-xlike-inc.c events.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h gtk-xemacs.h gui.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h menubar.h number-gmp.h number-mp.h number.h objects-gtk.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h text.h vdb.h window.h xintrinsic.h +event-gtk.o: $(CONFIG_H) $(LISP_H) blocktype.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h commands.h compiler.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console-tty.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h elhash.h event-gtk.h event-xlike-inc.c events.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h gtk-xemacs.h gui.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h menubar.h number-gmp.h number-mp.h number.h objects-gtk.h objects.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h text.h vdb.h window.h frame-gtk.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h elhash.h events.h extents.h faces.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-gtk.h glyphs.h gtk-xemacs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-gtk-impl.h objects-gtk.h objects-impl.h objects.h redisplay.h scrollbar-gtk.h scrollbar.h specifier.h symeval.h symsinit.h sysdll.h systime.h text.h ui-gtk.h vdb.h window-impl.h window.h winslots.h gccache-gtk.o: $(CONFIG_H) $(LISP_H) compiler.h dumper.h gc.h gccache-gtk.h general-slots.h hash.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h symeval.h symsinit.h text.h vdb.h glade.o: bytecode.h @@ -138,7 +138,7 @@ emodules.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h compiler.h console.h dumper.h emodules.h file-coding.h frame.h gc.h general-slots.h insdel.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h redisplay.h scrollbar.h symeval.h symsinit.h sysdep.h sysdll.h text.h vdb.h window.h esd.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h miscplay.h number-gmp.h number-mp.h number.h sound.h symeval.h symsinit.h sysfile.h text.h vdb.h eval.o: $(CONFIG_H) $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h casetab.h charset.h chartab.h commands.h compiler.h conslots.h console-impl.h console.h device.h dumper.h frame.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h opaque.h profile.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h text.h vdb.h window.h -event-Xt.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h Emacs.ad.h EmacsFrame.h blocktype.h charset.h coding-system-slots.h compiler.h conslots.h console-impl.h console-tty.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h elhash.h event-xlike-inc.c events.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h +event-Xt.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h Emacs.ad.h EmacsFrame.h blocktype.h charset.h coding-system-slots.h compiler.h conslots.h console-impl.h console-tty.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h elhash.h event-xlike-inc.c events.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h objects-x.h objects.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h event-stream.o: $(CONFIG_H) $(LISP_H) backtrace.h blocktype.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h commands.h compiler.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h dumper.h elhash.h events.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h gui.h insdel.h keymap.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h macros.h mc-alloc.h menubar.h number-gmp.h number-mp.h number.h process.h profile.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h syssignal.h systime.h text.h vdb.h window-impl.h window.h winslots.h event-unixoid.o: $(CONFIG_H) $(LISP_H) compiler.h conslots.h console-impl.h console-stream-impl.h console-stream.h console-tty-impl.h console-tty.h console.h device-impl.h device.h devslots.h dumper.h events.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h process.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h text.h vdb.h events.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-tty-impl.h console-tty.h console.h device.h dumper.h events.h extents.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs.h keymap.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h systty.h text.h toolbar.h vdb.h window-impl.h window.h winslots.h @@ -200,7 +200,6 @@ number-mp.o: $(CONFIG_H) $(LISP_H) compiler.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h symeval.h symsinit.h text.h vdb.h number.o: $(CONFIG_H) $(LISP_H) compiler.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h symeval.h symsinit.h text.h vdb.h objects.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-tty.h console.h device-impl.h device.h devslots.h dumper.h elhash.h faces.h frame.h gc.h general-slots.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-impl.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systty.h text.h vdb.h window-impl.h window.h winslots.h -offix.o: offix-cursors.h offix-types.h offix.h xintrinsic.h opaque.o: $(CONFIG_H) $(LISP_H) compiler.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h opaque.h symeval.h symsinit.h text.h vdb.h print.o: $(CONFIG_H) $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-msw.h console-stream-impl.h console-stream.h console-tty-impl.h console-tty.h console.h device-impl.h device.h devslots.h dumper.h extents.h frame.h gc.h general-slots.h insdel.h intl-auto-encap-win32.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h opaque.h redisplay.h specifier.h symeval.h symsinit.h sysfile.h systty.h syswindows.h text.h vdb.h process-nt.o: $(CONFIG_H) $(LISP_H) compiler.h console-msw.h console.h dumper.h events.h gc.h general-slots.h hash.h intl-auto-encap-win32.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h process-slots.h process.h procimpl.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h syswindows.h text.h vdb.h @@ -256,4 +255,3 @@ widget.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h symeval.h symsinit.h text.h vdb.h win32.o: $(CONFIG_H) $(LISP_H) backtrace.h buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h console-msw.h console.h dumper.h gc.h general-slots.h hash.h intl-auto-encap-win32.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h profile.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h syswindows.h text.h vdb.h window.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h commands.h compiler.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h dumper.h elhash.h faces.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs.h gutter.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h text.h vdb.h window-impl.h window.h winslots.h -xmu.o: $(CONFIG_H)
--- a/src/device-x.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/device-x.c Thu Jan 07 17:01:25 2010 +0000 @@ -55,16 +55,12 @@ use XtGetValues(), but ... */ #include "xgccache.h" #include <X11/Shell.h> -#include "xmu.h" +#include <X11/Xmu/Error.h> #if defined(HAVE_SHLIB) && defined(LWLIB_USES_ATHENA) && !defined(HAVE_ATHENA_3D) #include "sysdll.h" #endif /* HAVE_SHLIB and LWLIB_USES_ATHENA and not HAVE_ATHENA_3D */ -#ifdef HAVE_OFFIX_DND -#include "offix.h" -#endif - Lisp_Object Vx_app_defaults_directory; #ifdef MULE Lisp_Object Qget_coding_system_from_locale; @@ -910,11 +906,6 @@ } #endif /* HAVE_WMCOMMAND */ - -#ifdef HAVE_OFFIX_DND - DndInitialize (app_shell); -#endif - Vx_initial_argv_list = make_arg_list (argc, argv); free_argc_argv (argv);
--- a/src/dragdrop.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/dragdrop.c Thu Jan 07 17:01:25 2010 +0000 @@ -26,8 +26,6 @@ /* A short introduction to the new Drag'n'Drop Model: - Currently only drops from OffiX are implemented. - A drop generates a extended misc-user-event, as defined in events.[ch]. This event contains the same as a eval and a button event. The function of a drop is set to 'dragdrop-drop-dispatch' which will be @@ -137,9 +135,6 @@ #ifdef HAVE_CDE Vdragdrop_protocols = Fcons (intern ("cde"), Vdragdrop_protocols); #endif -#ifdef HAVE_OFFIX_DND - Vdragdrop_protocols = Fcons (intern ("offix"), Vdragdrop_protocols); -#endif #ifdef HAVE_GTK Vdragdrop_protocols = Fcons (Qgtk, Vdragdrop_protocols); #endif
--- a/src/elhash.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/elhash.c Thu Jan 07 17:01:25 2010 +0000 @@ -118,6 +118,8 @@ #define HASH_TABLE_DEFAULT_SIZE 16 #define HASH_TABLE_DEFAULT_REHASH_SIZE 1.3 #define HASH_TABLE_MIN_SIZE 10 +#define HASH_TABLE_DEFAULT_REHASH_THRESHOLD(size, test_function) \ + (((size) > 4096 && NULL == (test_function)) ? 0.7 : 0.6) #define HASHCODE(key, ht) \ ((((ht)->hash_function ? (ht)->hash_function (key) : LISP_HASH (key)) \ @@ -353,6 +355,7 @@ int UNUSED (escapeflag)) { Lisp_Hash_Table *ht = XHASH_TABLE (obj); + Ascbyte pigbuf[350]; write_c_string (printcharfun, print_readably ? "#s(hash-table" : "#<hash-table"); @@ -389,6 +392,20 @@ "you-d-better-not-see-this")); } + if (ht->rehash_size != HASH_TABLE_DEFAULT_REHASH_SIZE) + { + float_to_string (pigbuf, ht->rehash_size); + write_fmt_string (printcharfun, " rehash-size %s", pigbuf); + } + + if (ht->rehash_threshold + != HASH_TABLE_DEFAULT_REHASH_THRESHOLD (ht->size, + ht->test_function)) + { + float_to_string (pigbuf, ht->rehash_threshold); + write_fmt_string (printcharfun, " rehash-threshold %s", pigbuf); + } + if (ht->count) print_hash_table_data (ht, printcharfun); @@ -591,7 +608,7 @@ ht->rehash_threshold = rehash_threshold > 0.0 ? rehash_threshold : - size > 4096 && !ht->test_function ? 0.7 : 0.6; + HASH_TABLE_DEFAULT_REHASH_THRESHOLD (size, ht->test_function); if (size < HASH_TABLE_MIN_SIZE) size = HASH_TABLE_MIN_SIZE; @@ -912,7 +929,6 @@ DEFUN ("make-hash-table", Fmake_hash_table, 0, MANY, 0, /* Return a new empty hash table object. Use Common Lisp style keywords to specify hash table properties. - (make-hash-table &key test size rehash-size rehash-threshold weakness) Keyword :test can be `eq', `eql' (default) or `equal'. Comparison between keys is done using this function. @@ -957,7 +973,7 @@ hash table if the value or key are pointed to by something other than a weak hash table, even if the other is not. -arguments: (&rest ARGS) +arguments: (&key TEST SIZE REHASH-SIZE REHASH-THRESHOLD WEAKNESS) */ (int nargs, Lisp_Object *args)) {
--- a/src/emacs.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/emacs.c Thu Jan 07 17:01:25 2010 +0000 @@ -18,8 +18,8 @@ You should have received a copy of the GNU General Public License along with XEmacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, +Boston, MA 02111-1301, USA. */ /* Synched up with: Mule 2.0, FSF 19.28. */ @@ -1895,6 +1895,9 @@ reinit_opaque_early (); #endif /* not NEW_GC */ reinit_eistring_early (); +#ifdef WITH_NUMBER_TYPES + reinit_vars_of_number (); +#endif reinit_console_type_create_stream (); #ifdef HAVE_TTY
--- a/src/eval.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/eval.c Thu Jan 07 17:01:25 2010 +0000 @@ -4144,7 +4144,9 @@ if (SYMBOLP (object)) object = indirect_function (object, 0); - if (COMPILED_FUNCTIONP (object) || SUBRP (object)) + if (COMPILED_FUNCTIONP (object) + || (SUBRP (object) + && (XSUBR (object)->max_args != UNEVALLED))) return Qt; if (CONSP (object)) { @@ -4152,7 +4154,8 @@ if (EQ (car, Qlambda)) return Qt; if (EQ (car, Qautoload) - && NILP (Fcar_safe (Fcdr_safe (Fcdr_safe (Fcdr_safe (XCDR (object))))))) + && NILP (Fcar_safe (Fcdr_safe(Fcdr_safe + (Fcdr_safe (XCDR (object))))))) return Qt; } return Qnil;
--- a/src/event-Xt.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/event-Xt.c Thu Jan 07 17:01:25 2010 +0000 @@ -63,10 +63,6 @@ #include "dragdrop.h" #endif -#if defined (HAVE_OFFIX_DND) -#include "offix.h" -#endif - #ifdef WIN32_ANY extern int mswindows_is_blocking; #endif @@ -967,10 +963,12 @@ Lisp_Object emacs_event = Fmake_event (Qnil, Qnil); Lisp_Event *ev = XEVENT (emacs_event); ev->channel = DEVICE_CONSOLE (d); + XSET_EVENT_TYPE (emacs_event, key_press_event); + /* Make sure space and linefeed and so on get the proper + keysyms. */ + character_to_event (ch, ev, XCONSOLE (ev->channel), + latin_1_maps_to_itself, 0); ev->timestamp = event->time; - XSET_EVENT_TYPE (emacs_event, key_press_event); - XSET_EVENT_KEY_MODIFIERS (emacs_event, 0); - XSET_EVENT_KEY_KEYSYM (emacs_event, make_char (ch)); enqueue_dispatch_event (emacs_event); } Lstream_close (istr); @@ -1315,135 +1313,7 @@ passed as the timestamp of the TAKE_FOCUS, which the ICCCM explicitly prohibits. */ XClientMessageEvent *ev = &x_event->xclient; -#ifdef HAVE_OFFIX_DND - if (DndIsDropMessage (x_event)) - { - unsigned int state; - int modifiers = 0; - int button = 0; - struct frame *frame = x_any_window_to_frame (d, ev->window); - Extbyte *data; - unsigned long size, dtype; - Lisp_Object l_type = Qnil, l_data = Qnil; - Lisp_Object l_dndlist = Qnil, l_item = Qnil; - struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; - - if (! frame) - return 0; /* not for us */ - - GCPRO4 (l_type, l_data, l_dndlist, l_item); - set_event_type (emacs_event, misc_user_event); - SET_EVENT_CHANNEL (emacs_event, wrap_frame (frame)); - SET_EVENT_TIMESTAMP (emacs_event, - DEVICE_X_LAST_SERVER_TIMESTAMP (d)); - state=DndDragButtons (x_event); - - if (state & ShiftMask) modifiers |= XEMACS_MOD_SHIFT; - if (state & ControlMask) modifiers |= XEMACS_MOD_CONTROL; - if (state & xd->MetaMask) modifiers |= XEMACS_MOD_META; - if (state & xd->SuperMask) modifiers |= XEMACS_MOD_SUPER; - if (state & xd->HyperMask) modifiers |= XEMACS_MOD_HYPER; - if (state & xd->AltMask) modifiers |= XEMACS_MOD_ALT; - if (state & Button1Mask) modifiers |= XEMACS_MOD_BUTTON1; - if (state & Button2Mask) modifiers |= XEMACS_MOD_BUTTON2; - if (state & Button3Mask) modifiers |= XEMACS_MOD_BUTTON3; - if (state & Button4Mask) modifiers |= XEMACS_MOD_BUTTON4; - if (state & Button5Mask) modifiers |= XEMACS_MOD_BUTTON5; - - if (state & Button5Mask) button = Button5; - if (state & Button4Mask) button = Button4; - if (state & Button3Mask) button = Button3; - if (state & Button2Mask) button = Button2; - if (state & Button1Mask) button = Button1; - - SET_EVENT_MISC_USER_MODIFIERS (emacs_event, modifiers); - SET_EVENT_MISC_USER_BUTTON (emacs_event, button); - - DndDropCoordinates (FRAME_X_TEXT_WIDGET (frame), x_event, - &(EVENT_MISC_USER_X (emacs_event)), - &(EVENT_MISC_USER_Y (emacs_event))); - DndGetData (x_event, &data, &size); - - dtype = DndDataType (x_event); - switch (dtype) - { - case DndFiles: /* null terminated strings, end null */ - { - int len; - Ibyte *hurl = NULL; - - while (*data) - { - Ibyte *dataint; - len = strlen (data); - EXTERNAL_TO_C_STRING (data, dataint, Qfile_name); - hurl = dnd_url_hexify_string (dataint, - (const Ibyte *) "file:"); - l_item = build_intstring (hurl); - l_dndlist = Fcons (l_item, l_dndlist); - data += len + 1; - xfree (hurl, Ibyte *); - } - l_type = Qdragdrop_URL; - } - break; - case DndText: - l_type = Qdragdrop_MIME; - l_dndlist = list1 (list3 (list1 (build_string ("text/plain")), - build_string ("8bit"), - build_ext_string (data, - Qctext))); - break; - case DndMIME: - /* we have to parse this in some way to extract - content-type and params (in the tm way) and - content encoding. - OR: if data is string, let tm do the job - if data is list[2], give the first two - to tm... - */ - l_type = Qdragdrop_MIME; - l_dndlist = list1 (build_ext_string (data, Qbinary)); - break; - case DndFile: - case DndDir: - case DndLink: - case DndExe: - { - Ibyte *dataint, *hurl; - EXTERNAL_TO_C_STRING (data, dataint, Qfile_name); - hurl = dnd_url_hexify_string (dataint, "file:"); - l_dndlist = list1 (build_intstring (hurl)); - xfree (hurl, Ibyte *); - } - break; - case DndURL: - /* as it is a real URL it should already be escaped - and escaping again will break them (cause % is unsave) */ - l_dndlist = list1 (build_ext_string (data, - Qfile_name)); - l_type = Qdragdrop_URL; - break; - default: /* Unknown, RawData and any other type */ - l_dndlist = list1 (list3 (list1 (build_string - ("application/octet-stream")), - build_string ("8bit"), - make_ext_string (data, size, - Qbinary))); - l_type = Qdragdrop_MIME; - break; - } - - SET_EVENT_MISC_USER_FUNCTION (emacs_event, - Qdragdrop_drop_dispatch); - SET_EVENT_MISC_USER_OBJECT (emacs_event, - Fcons (l_type, l_dndlist)); - - UNGCPRO; - - break; - } -#endif /* HAVE_OFFIX_DND */ + if (ev->message_type == DEVICE_XATOM_WM_PROTOCOLS (d) && (Atom) (ev->data.l[0]) == DEVICE_XATOM_WM_TAKE_FOCUS (d) && (Atom) (ev->data.l[1]) == 0)
--- a/src/event-gtk.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/event-gtk.c Thu Jan 07 17:01:25 2010 +0000 @@ -62,10 +62,6 @@ # include "menubar.h" #endif -#if defined (HAVE_OFFIX_DND) -#include "offix.h" -#endif - #include <gdk/gdkx.h> #include "event-gtk.h"
--- a/src/event-msw.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/event-msw.c Thu Jan 07 17:01:25 2010 +0000 @@ -1616,7 +1616,8 @@ /* Here we really do want to set the use_console_meta_flag because the char is from the TTY. */ - character_to_event (ch, XEVENT (event), con, 1, 1); + character_to_event (ch, XEVENT (event), con, + use_console_meta_flag, 1); XSET_EVENT_CHANNEL (event, porca_troia); enqueue_dispatch_event (event); }
--- a/src/event-stream.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/event-stream.c Thu Jan 07 17:01:25 2010 +0000 @@ -839,8 +839,9 @@ struct gcpro gcpro1, gcpro2; GCPRO2 (echo, help); - record_unwind_protect (save_window_excursion_unwind, - call1 (Qcurrent_window_configuration, Qnil)); + record_unwind_protect (Feval, + list2 (Qset_window_configuration, + call0 (Qcurrent_window_configuration))); reset_key_echo (command_builder, 1); help = IGNORE_MULTIPLE_VALUES (Feval (Vhelp_form)); @@ -3188,7 +3189,8 @@ Lisp_Object ev2 = Fmake_event (Qnil, Qnil); character_to_event (XCHAR (traduit), XEVENT (ev2), - XCONSOLE (XEVENT_CHANNEL (event)), 0, 1); + XCONSOLE (XEVENT_CHANNEL (event)), + high_bit_is_meta, 1); XSET_EVENT_KEY_KEYSYM (event, XEVENT_KEY_KEYSYM (ev2)); XSET_EVENT_KEY_MODIFIERS (event, XEVENT_KEY_MODIFIERS (ev2)); Fdeallocate_event (ev2); @@ -3213,7 +3215,8 @@ Lisp_Object ev2 = Fmake_event (Qnil, Qnil); character_to_event (XCHAR (traduit), XEVENT (ev2), - XCONSOLE (XEVENT_CHANNEL (event)), 0, 1); + XCONSOLE (XEVENT_CHANNEL (event)), + high_bit_is_meta, 1); XSET_EVENT_KEY_KEYSYM (event, XEVENT_KEY_KEYSYM (ev2)); XSET_EVENT_KEY_MODIFIERS (event, XEVENT_KEY_MODIFIERS (event) |
--- a/src/event-unixoid.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/event-unixoid.c Thu Jan 07 17:01:25 2010 +0000 @@ -118,9 +118,7 @@ } else { - /* Here we really do want to set the use_console_meta_flag because - the char is from the TTY. */ - character_to_event (ch, event, con, 1, 1); + character_to_event (ch, event, con, use_console_meta_flag, 1); event->channel = console; return 1; }
--- a/src/events.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/events.c Thu Jan 07 17:01:25 2010 +0000 @@ -1195,7 +1195,12 @@ } } -/* USE_CONSOLE_META_FLAG is as in `character-to-event'. +/* META_BEHAVIOR can be one of the following values, defined in events.h: + + high_bit_is_meta + use_console_meta_flag + latin_1_maps_to_itself + DO_BACKSPACE_MAPPING means that if CON is a TTY, and C is a the TTY's backspace character, the event will have keysym `backspace' instead of '(control h). It is clearly correct to do this conversion is the @@ -1245,7 +1250,7 @@ void character_to_event (Ichar c, Lisp_Event *event, struct console *con, - int use_console_meta_flag, + character_to_event_meta_behavior meta_behavior, int USED_IF_TTY (do_backspace_mapping)) { Lisp_Object k = Qnil; @@ -1256,13 +1261,10 @@ #ifndef MULE c &= 255; #endif - if (c > 127 && c <= 255) + if (meta_behavior != latin_1_maps_to_itself && c > 127 && c <= 255) { - /* #### What if the user wanted a Latin-1 char? Perhaps the answer - is what was suggested above. - */ int meta_flag = 1; - if (use_console_meta_flag && CONSOLE_TTY_P (con)) + if (meta_behavior == use_console_meta_flag && CONSOLE_TTY_P (con)) meta_flag = TTY_FLAGS (con).meta_key; switch (meta_flag) { @@ -1451,7 +1453,7 @@ inverse functions, since events contain much more information than the Lisp character object type can encode. */ - (keystroke, event, console, use_console_meta_flag)) + (keystroke, event, console, use_console_meta_flag_)) { struct console *con = decode_console (console); if (NILP (event)) @@ -1464,7 +1466,8 @@ { CHECK_CHAR_COERCE_INT (keystroke); character_to_event (XCHAR (keystroke), XEVENT (event), con, - !NILP (use_console_meta_flag), 1); + (NILP (use_console_meta_flag_) ? + high_bit_is_meta : use_console_meta_flag), 1); } return event; }
--- a/src/events.h Fri Jan 01 19:45:39 2010 +0000 +++ b/src/events.h Thu Jan 07 17:01:25 2010 +0000 @@ -951,13 +951,20 @@ /* Maybe this should be trickier */ #define KEYSYM(x) (intern (x)) +typedef enum character_to_event_meta_behavior +{ + high_bit_is_meta, + use_console_meta_flag, + latin_1_maps_to_itself +} character_to_event_meta_behavior; + /* from events.c */ void format_event_object (Eistring *buf, Lisp_Object event, int brief); /*void format_event_data_object (Eistring *buf, Lisp_Object data, int brief);*/ -void character_to_event (Ichar c, Lisp_Event *event, - struct console *con, - int use_console_meta_flag, +void character_to_event (Ichar, Lisp_Event *, struct console *, + character_to_event_meta_behavior meta_flag, int do_backspace_mapping); + void zero_event (Lisp_Event *e); #define MECR_DEALLOCATE_EVENT 1
--- a/src/fns.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/fns.c Thu Jan 07 17:01:25 2010 +0000 @@ -315,9 +315,12 @@ Compare the contents of two strings, maybe ignoring case. In string STR1, skip the first START1 characters and stop at END1. In string STR2, skip the first START2 characters and stop at END2. -END1 and END2 default to the full lengths of the respective strings. - -Case is significant in this comparison if IGNORE-CASE is nil. +END1 and END2 default to the full lengths of the respective strings, +and arguments that are outside the string (negative STARTi or ENDi +greater than length) are coerced to 0 or string length as appropriate. + +Optional IGNORE-CASE non-nil means use case-insensitive comparison. +Case is significant by default. The value is t if the strings (or specified portions) match. If string STR1 is less, the value is a negative number N; @@ -335,9 +338,9 @@ CHECK_STRING (str1); CHECK_STRING (str2); get_string_range_char (str1, start1, end1, &ccstart1, &ccend1, - GB_HISTORICAL_STRING_BEHAVIOR); + GB_HISTORICAL_STRING_BEHAVIOR|GB_COERCE_RANGE); get_string_range_char (str2, start2, end2, &ccstart2, &ccend2, - GB_HISTORICAL_STRING_BEHAVIOR); + GB_HISTORICAL_STRING_BEHAVIOR|GB_COERCE_RANGE); bstart1 = string_index_char_to_byte (str1, ccstart1); blen1 = string_offset_char_to_byte_len (str1, bstart1, ccend1 - ccstart1);
--- a/src/font-mgr.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/font-mgr.c Thu Jan 07 17:01:25 2010 +0000 @@ -260,8 +260,13 @@ */ (pattern)) { + FcChar8 *name; + Lisp_Object result; CHECK_FCPATTERN(pattern); - return build_fcapi_string (FcNameUnparse (XFCPATTERN_PTR (pattern))); + name = FcNameUnparse (XFCPATTERN_PTR (pattern)); + result = build_fcapi_string (name); + xfree (name, FcChar8 *); + return result; } DEFUN("fc-pattern-duplicate", Ffc_pattern_duplicate, 1, 1, 0, /*
--- a/src/frame-x.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/frame-x.c Thu Jan 07 17:01:25 2010 +0000 @@ -48,7 +48,7 @@ use XtGetValues(), but ... */ #include <X11/Shell.h> #include <X11/ShellP.h> -#include "xmu.h" +#include <X11/Xmu/Editres.h> #include "EmacsManager.h" #include "EmacsFrameP.h" #include "EmacsShell.h" @@ -60,10 +60,6 @@ #include "dragdrop.h" #endif -#ifdef HAVE_OFFIX_DND -#include "offix.h" -#endif - /* Default properties to use when creating frames. */ Lisp_Object Vdefault_x_frame_plist; @@ -1002,7 +998,7 @@ frame_title_format_already_set = 1; } -#if defined (HAVE_CDE) || defined (HAVE_OFFIX_DND) +#if defined (HAVE_CDE) static Extbyte * start_drag_internal_1 (Lisp_Object event, Lisp_Object data, @@ -1095,7 +1091,7 @@ return dnd_data; } -#endif /* defined (HAVE_CDE) || defined (HAVE_OFFIX_DND) */ +#endif /* defined (HAVE_CDE) */ #ifdef HAVE_CDE #include <Dt/Dt.h> @@ -1333,46 +1329,6 @@ } #endif /* HAVE_CDE */ -#ifdef HAVE_OFFIX_DND - -DEFUN ("offix-start-drag-internal", Foffix_start_drag_internal, 2, 3, 0, /* -Start a OffiX drag from a buffer. -First arg is the event that started the drag, -second arg should be some string, and the third -is the type of the data (this should be an int). -The type defaults to DndText (4). -*/ - (event, data, dtyp)) -{ - Extbyte *dnd_data; - XEvent x_event; - Bytecount dnd_len; - Widget wid; - int num_items; - int dnd_type = DndText; - - if (!NILP (dtyp)) - { - CHECK_INT (dtyp); - dnd_type = XINT (dtyp); - } - - dnd_data = start_drag_internal_1 (event, data, Qoffix_dnd_encoding, - &x_event, dnd_type == DndFiles, - &wid, &dnd_len, &num_items); - - DndSetData (dnd_type, (UExtbyte *) dnd_data, dnd_len); - xfree (dnd_data, Extbyte *); - - /* the next thing blocks everything... */ - if (DndHandleDragging (wid, &x_event)) - return Qt; - - return Qnil; -} - -#endif /* HAVE_OFFIX_DND */ - /************************************************************************/ /* widget creation */ @@ -2044,7 +2000,6 @@ XIM_init_frame (f); #endif /* HAVE_XIM */ -#ifdef HACK_EDITRES /* Allow XEmacs to respond to EditRes requests. See the O'Reilly Xt */ /* Intrinsics Programming Manual, Motif Edition, Aug 1993, Sect 14.14, */ /* pp. 483-493. */ @@ -2053,7 +2008,6 @@ True, /* called on non-maskable events? */ (XtEventHandler) _XEditResCheckMessages, /* the handler */ NULL); -#endif /* HACK_EDITRES */ #ifdef HAVE_CDE { @@ -2813,9 +2767,6 @@ #ifdef HAVE_CDE DEFSUBR (Fcde_start_drag_internal); #endif -#ifdef HAVE_OFFIX_DND - DEFSUBR (Foffix_start_drag_internal); -#endif } void
--- a/src/frame.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/frame.c Thu Jan 07 17:01:25 2010 +0000 @@ -3751,10 +3751,6 @@ Fprovide (intern ("cde")); #endif -#ifdef HAVE_OFFIX_DND - Fprovide (intern ("offix")); -#endif - #if 0 /* FSFmacs stupidity */ xxDEFVAR_LISP ("emacs-iconified", &Vemacs_iconified /* Non-nil if all of emacs is iconified and frame updates are not needed.
--- a/src/glyphs-x.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/glyphs-x.c Thu Jan 07 17:01:25 2010 +0000 @@ -70,7 +70,6 @@ #include "console-x-impl.h" #include "glyphs-x.h" #include "objects-x-impl.h" -#include "xmu.h" #include "sysfile.h" #include "sysproc.h" /* for qxe_getpid() */ @@ -82,6 +81,7 @@ #include <Xm/Scale.h> #endif #include <X11/IntrinsicP.h> +#include <X11/Xmu/CurUtil.h> #define LISP_DEVICE_TO_X_SCREEN(dev) XDefaultScreenOfDisplay (DEVICE_X_DISPLAY (XDEVICE (dev)))
--- a/src/keymap.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/keymap.c Thu Jan 07 17:01:25 2010 +0000 @@ -1103,7 +1103,8 @@ struct gcpro gcpro1; GCPRO1 (event); character_to_event (XCHAR (idx), XEVENT (event), - XCONSOLE (Vselected_console), 0, 0); + XCONSOLE (Vselected_console), + high_bit_is_meta, 0); indirection.keysym = XEVENT_KEY_KEYSYM (event); indirection.modifiers = XEVENT_KEY_MODIFIERS (event); UNGCPRO; @@ -1529,7 +1530,7 @@ struct gcpro gcpro1; GCPRO1 (event); character_to_event (XCHAR_OR_CHAR_INT (spec), XEVENT (event), - XCONSOLE (Vselected_console), 0, 0); + XCONSOLE (Vselected_console), high_bit_is_meta, 0); SET_KEY_DATA_KEYSYM (returned_value, XEVENT_KEY_KEYSYM (event)); SET_KEY_DATA_MODIFIERS (returned_value, XEVENT_KEY_MODIFIERS (event)); @@ -3526,7 +3527,8 @@ Lisp_Object event = Fmake_event (Qnil, Qnil); CHECK_CHAR_COERCE_INT (key); character_to_event (XCHAR (key), XEVENT (event), - XCONSOLE (Vselected_console), 0, 1); + XCONSOLE (Vselected_console), + high_bit_is_meta, 1); format_event_object (buf, event, 1); Fdeallocate_event (event); }
--- a/src/lisp.h Fri Jan 01 19:45:39 2010 +0000 +++ b/src/lisp.h Thu Jan 07 17:01:25 2010 +0000 @@ -5243,6 +5243,7 @@ extern Lisp_Object Vcharset_latin_iso8859_4; extern Lisp_Object Vcharset_thai_tis620; extern Lisp_Object Vcharset_greek_iso8859_7; +extern Lisp_Object Vcharset_arabic_iso8859_6; extern Lisp_Object Vcharset_hebrew_iso8859_8; extern Lisp_Object Vcharset_katakana_jisx0201; extern Lisp_Object Vcharset_latin_jisx0201;
--- a/src/mule-charset.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/mule-charset.c Thu Jan 07 17:01:25 2010 +0000 @@ -47,6 +47,7 @@ Lisp_Object Vcharset_latin_iso8859_4; Lisp_Object Vcharset_thai_tis620; Lisp_Object Vcharset_greek_iso8859_7; +Lisp_Object Vcharset_arabic_iso8859_6; Lisp_Object Vcharset_hebrew_iso8859_8; Lisp_Object Vcharset_katakana_jisx0201; Lisp_Object Vcharset_latin_jisx0201; @@ -93,6 +94,7 @@ Qlatin_iso8859_4, Qthai_tis620, Qgreek_iso8859_7, + Qarabic_iso8859_6, Qhebrew_iso8859_8, Qkatakana_jisx0201, Qlatin_jisx0201, @@ -1105,6 +1107,7 @@ DEFSYMBOL (Qlatin_iso8859_4); DEFSYMBOL (Qthai_tis620); DEFSYMBOL (Qgreek_iso8859_7); + DEFSYMBOL (Qarabic_iso8859_6); DEFSYMBOL (Qhebrew_iso8859_8); DEFSYMBOL (Qkatakana_jisx0201); DEFSYMBOL (Qlatin_jisx0201); @@ -1228,6 +1231,15 @@ build_msg_string ("ISO8859-7 (Greek)"), build_msg_string ("ISO8859-7 (Greek)"), vector1(build_string("iso8859-7")), 0, 0); + staticpro (&Vcharset_arabic_iso8859_6); + Vcharset_arabic_iso8859_6 = + make_charset (LEADING_BYTE_ARABIC_ISO8859_6, Qarabic_iso8859_6, 2, + CHARSET_TYPE_96, 1, 1, 'G', + CHARSET_RIGHT_TO_LEFT, + build_string ("ISO8859-6"), + build_msg_string ("ISO8859-6 (Arabic)"), + build_msg_string ("ISO8859-6 (Arabic)"), + vector1(build_string ("iso8859-6")), 0, 0); staticpro (&Vcharset_hebrew_iso8859_8); Vcharset_hebrew_iso8859_8 = make_charset (LEADING_BYTE_HEBREW_ISO8859_8, Qhebrew_iso8859_8, 2,
--- a/src/nt.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/nt.c Thu Jan 07 17:01:25 2010 +0000 @@ -1815,7 +1815,27 @@ { Extbyte *cwdext; Ibyte *cwd; - + /* Following comment and two-liner fix comes from + https://bugzilla.mozilla.org/show_bug.cgi?id=419326 which + apparently fell prey to this feature of msvcrt8 as well. */ + /* We need to worry about IPH, for details read bug 419326. + * _getdrives - http://msdn2.microsoft.com/en-us/library/xdhk0xd2.aspx + * uses a bitmask, bit 0 is 'a:' + * _chdrive - http://msdn2.microsoft.com/en-us/library/0d1409hb.aspx + * _getdcwd - http://msdn2.microsoft.com/en-us/library/7t2zk3s4.aspx + * take an int, 1 is 'a:'. + * + * Because of this, we need to do some math. Subtract 1 to convert from + * _chdrive/_getdcwd format to _getdrives drive numbering. + * Shift left x bits to convert from integer indexing to bitfield indexing. + * And of course, we need to find out if the drive is in the bitmask. + * + * If we're really unlucky, we can still lose, but only if the user + * manages to eject the drive between our call to _getdrives() and + * our *calls* to _wgetdcwd. + */ + if (!((1 << (drivelet - 1)) & _getdrives())) + return NULL; if (XEUNICODE_P) cwdext = (Extbyte *) _wgetdcwd (drivelet, NULL, 0); else
--- a/src/number-gmp.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/number-gmp.c Thu Jan 07 17:01:25 2010 +0000 @@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with XEmacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, +Boston, MA 02111-1301, USA. */ /* Synched up with: Not in FSF. */
--- a/src/number-gmp.h Fri Jan 01 19:45:39 2010 +0000 +++ b/src/number-gmp.h Thu Jan 07 17:01:25 2010 +0000 @@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with XEmacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, +Boston, MA 02111-1301, USA. */ /* Synched up with: Not in FSF. */
--- a/src/number-mp.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/number-mp.c Thu Jan 07 17:01:25 2010 +0000 @@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with XEmacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, +Boston, MA 02111-1301, USA. */ /* Synched up with: Not in FSF. */ @@ -221,7 +221,7 @@ mbase = MP_ITOM ((short) base); MP_MOVE (bignum_zero, b); - + for (digit = char_to_number (*s); digit >= 0 && digit < base; digit = char_to_number (*++s)) {
--- a/src/number-mp.h Fri Jan 01 19:45:39 2010 +0000 +++ b/src/number-mp.h Thu Jan 07 17:01:25 2010 +0000 @@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with XEmacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, +Boston, MA 02111-1301, USA. */ /* Synched up with: Not in FSF. */
--- a/src/number.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/number.c Thu Jan 07 17:01:25 2010 +0000 @@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with XEmacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, +Boston, MA 02111-1301, USA. */ /* Synched up with: Not in FSF. */ @@ -58,6 +58,21 @@ xfree (bstr, CIbyte *); } +#ifdef NEW_GC +static void +bignum_finalize (void *header, int for_disksave) +{ + if (!for_disksave) + { + struct Lisp_Bignum *num = (struct Lisp_Bignum *) header; + bignum_fini (num->data); + } +} +#define BIGNUM_FINALIZE bignum_finalize +#else +#define BIGNUM_FINALIZE 0 +#endif + static int bignum_equal (Lisp_Object obj1, Lisp_Object obj2, int UNUSED (depth)) { @@ -107,8 +122,9 @@ }; DEFINE_BASIC_LRECORD_IMPLEMENTATION ("bignum", bignum, 1, 0, bignum_print, - 0, bignum_equal, bignum_hash, - bignum_description, Lisp_Bignum); + BIGNUM_FINALIZE, bignum_equal, + bignum_hash, bignum_description, + Lisp_Bignum); #endif /* HAVE_BIGNUM */ @@ -166,6 +182,21 @@ xfree (rstr, CIbyte *); } +#ifdef NEW_GC +static void +ratio_finalize (void *header, int for_disksave) +{ + if (!for_disksave) + { + struct Lisp_Ratio *num = (struct Lisp_Ratio *) header; + ratio_fini (num->data); + } +} +#define RATIO_FINALIZE ratio_finalize +#else +#define RATIO_FINALIZE 0 +#endif + static int ratio_equal (Lisp_Object obj1, Lisp_Object obj2, int UNUSED (depth)) { @@ -184,7 +215,7 @@ }; DEFINE_BASIC_LRECORD_IMPLEMENTATION ("ratio", ratio, 0, 0, ratio_print, - 0, ratio_equal, ratio_hash, + RATIO_FINALIZE, ratio_equal, ratio_hash, ratio_description, Lisp_Ratio); #endif /* HAVE_RATIO */ @@ -253,6 +284,21 @@ xfree (fstr, CIbyte *); } +#ifdef NEW_GC +static void +bigfloat_finalize (void *header, int for_disksave) +{ + if (!for_disksave) + { + struct Lisp_Bigfloat *num = (struct Lisp_Bigfloat *) header; + bigfloat_fini (num->bf); + } +} +#define BIGFLOAT_FINALIZE bigfloat_finalize +#else +#define BIGFLOAT_FINALIZE 0 +#endif + static int bigfloat_equal (Lisp_Object obj1, Lisp_Object obj2, int UNUSED (depth)) { @@ -271,7 +317,7 @@ }; DEFINE_BASIC_LRECORD_IMPLEMENTATION ("bigfloat", bigfloat, 1, 0, - bigfloat_print, 0, + bigfloat_print, BIGFLOAT_FINALIZE, bigfloat_equal, bigfloat_hash, bigfloat_description, Lisp_Bigfloat); @@ -345,7 +391,7 @@ #ifdef HAVE_BIGFLOAT if (INTP (*val)) prec = XINT (*val); - else + else { if (!bignum_fits_ulong_p (XBIGNUM_DATA (*val))) args_out_of_range_3 (*val, Qzero, Vbigfloat_max_prec); @@ -655,7 +701,7 @@ 0UL); return type2; } - + if (type2 < type1) { *arg2 = internal_coerce_number (*arg2, type1, @@ -800,12 +846,9 @@ */); #ifdef HAVE_BIGFLOAT -#ifdef HAVE_BIGNUM - Vbigfloat_max_prec = make_bignum (0L); - bignum_set_ulong (XBIGNUM_DATA (Vbigfloat_max_prec), ULONG_MAX); -#else + /* Don't create a bignum here. Otherwise, we lose with NEW_GC + pdump. + See reinit_vars_of_number(). */ Vbigfloat_max_prec = make_int (EMACS_INT_MAX); -#endif #else Vbigfloat_max_prec = make_int (0); #endif /* HAVE_BIGFLOAT */ @@ -833,6 +876,15 @@ } void +reinit_vars_of_number (void) +{ +#if defined(HAVE_BIGFLOAT) && defined(HAVE_BIGNUM) + Vbigfloat_max_prec = make_bignum (0L); + bignum_set_ulong (XBIGNUM_DATA (Vbigfloat_max_prec), ULONG_MAX); +#endif +} + +void init_number (void) { if (!number_initialized) @@ -860,5 +912,9 @@ bigfloat_init (scratch_bigfloat); bigfloat_init (scratch_bigfloat2); #endif + +#ifndef PDUMP + reinit_vars_of_number (); +#endif } }
--- a/src/number.h Fri Jan 01 19:45:39 2010 +0000 +++ b/src/number.h Thu Jan 07 17:01:25 2010 +0000 @@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with XEmacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, +Boston, MA 02111-1301, USA. */ /* Synched up with: Not in FSF. */
--- a/src/offix-cursors.h Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,346 +0,0 @@ -#define app_width 42 -#define app_height 32 -#define app_x_hot 1 -#define app_y_hot 1 -static unsigned char app_bits[] = { - 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x02, 0x40, 0x00, 0x80, 0x01, 0x00, - 0x06, 0x40, 0x00, 0x80, 0x02, 0x00, 0x0e, 0x40, 0x00, 0x80, 0x04, 0x00, - 0x1e, 0x40, 0x00, 0x80, 0x08, 0x00, 0x3e, 0x40, 0x00, 0x80, 0x10, 0x00, - 0x7e, 0x40, 0x00, 0x80, 0x20, 0x00, 0xfe, 0x40, 0x00, 0x80, 0x7f, 0x00, - 0xfe, 0x41, 0x00, 0x00, 0x60, 0x00, 0x3e, 0x40, 0xfe, 0xff, 0x67, 0x00, - 0x36, 0x40, 0xaa, 0xaa, 0x6e, 0x00, 0x62, 0x40, 0x56, 0x55, 0x6d, 0x00, - 0x60, 0x40, 0xfe, 0xff, 0x6f, 0x00, 0xc0, 0x40, 0x02, 0x00, 0x6c, 0x00, - 0xc0, 0x40, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, - 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, - 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, - 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, - 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, - 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x40, 0xfe, 0xff, 0x6f, 0x00, - 0x00, 0x40, 0xfc, 0xff, 0x6f, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define app_mask_width 42 -#define app_mask_height 32 -#define app_mask_x_hot 1 -#define app_mask_y_hot 1 -static unsigned char app_mask_bits[] = { - 0x03, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x07, 0xc0, 0xff, 0xff, 0x01, 0x00, - 0x0f, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x07, 0x00, - 0x3f, 0xc0, 0xff, 0xff, 0x0f, 0x00, 0x7f, 0xc0, 0xff, 0xff, 0x1f, 0x00, - 0xff, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, - 0x7f, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xf7, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0xf3, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define cursor_width 10 -#define cursor_height 16 -#define cursor_x_hot 0 -#define cursor_y_hot 0 -#if 0 /* unused */ -static unsigned char cursor_bits[] = { - 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x00, - 0x7e, 0x00, 0xfe, 0x00, 0xfe, 0x01, 0x3e, 0x00, 0x36, 0x00, 0x62, 0x00, - 0x60, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x00, 0x00}; -#endif /* unused */ -#define dir_width 42 -#define dir_height 24 -#define dir_x_hot 1 -#define dir_y_hot 1 -static unsigned char dir_bits[] = { - 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x02, 0x80, 0x00, 0x02, 0x00, 0x00, - 0x06, 0x40, 0x00, 0x04, 0x00, 0x00, 0x0e, 0x20, 0x00, 0x08, 0x00, 0x00, - 0x1e, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x3e, 0x10, 0x00, 0x00, 0x00, 0x02, - 0x7e, 0x10, 0x00, 0x00, 0x00, 0x02, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x02, - 0xfe, 0x11, 0x00, 0x00, 0x00, 0x02, 0x3e, 0x10, 0x00, 0x00, 0x00, 0x02, - 0x36, 0x10, 0x00, 0x00, 0x00, 0x02, 0x62, 0x10, 0x00, 0x00, 0x00, 0x02, - 0x60, 0x10, 0x00, 0x00, 0x00, 0x02, 0xc0, 0x10, 0x00, 0x00, 0x00, 0x02, - 0xc0, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03}; -#define dir_mask_width 42 -#define dir_mask_height 24 -#define dir_mask_x_hot 1 -#define dir_mask_y_hot 1 -static unsigned char dir_mask_bits[] = { - 0x03, 0x00, 0xff, 0x01, 0x00, 0x00, 0x07, 0x80, 0xff, 0x03, 0x00, 0x00, - 0x0f, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x1f, 0xe0, 0xff, 0x0f, 0x00, 0x00, - 0x3f, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x7f, 0xf0, 0xff, 0xff, 0xff, 0x03, - 0xff, 0xf0, 0xff, 0xff, 0xff, 0x03, 0xff, 0xf1, 0xff, 0xff, 0xff, 0x03, - 0xff, 0xf3, 0xff, 0xff, 0xff, 0x03, 0xff, 0xf3, 0xff, 0xff, 0xff, 0x03, - 0x7f, 0xf0, 0xff, 0xff, 0xff, 0x03, 0xf7, 0xf0, 0xff, 0xff, 0xff, 0x03, - 0xf3, 0xf0, 0xff, 0xff, 0xff, 0x03, 0xe0, 0xf1, 0xff, 0xff, 0xff, 0x03, - 0xe0, 0xf1, 0xff, 0xff, 0xff, 0x03, 0xc0, 0xf0, 0xff, 0xff, 0xff, 0x03, - 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, - 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, - 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, - 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03}; -#define file_width 42 -#define file_height 32 -#define file_x_hot 1 -#define file_y_hot 1 -static unsigned char file_bits[] = { - 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x02, 0x40, 0x00, 0x00, 0x0a, 0x00, - 0x06, 0x40, 0x00, 0x00, 0x12, 0x00, 0x0e, 0x40, 0x00, 0x00, 0x22, 0x00, - 0x1e, 0x40, 0x00, 0x00, 0x3e, 0x00, 0x3e, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x7e, 0x40, 0x00, 0x00, 0x20, 0x00, 0xfe, 0x40, 0x00, 0x00, 0x20, 0x00, - 0xfe, 0x41, 0x00, 0x00, 0x20, 0x00, 0x3e, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x36, 0x40, 0x00, 0x00, 0x20, 0x00, 0x62, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x60, 0x40, 0x00, 0x00, 0x20, 0x00, 0xc0, 0x40, 0x00, 0x00, 0x20, 0x00, - 0xc0, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; -#define file_mask_width 42 -#define file_mask_height 32 -#define file_mask_x_hot 1 -#define file_mask_y_hot 1 -static unsigned char file_mask_bits[] = { - 0x03, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x07, 0xc0, 0xff, 0xff, 0x0f, 0x00, - 0x0f, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x3f, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x7f, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0xff, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xc1, 0xff, 0xff, 0x3f, 0x00, - 0xff, 0xc3, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xc3, 0xff, 0xff, 0x3f, 0x00, - 0x7f, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0xf7, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0xf3, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0xe0, 0xc1, 0xff, 0xff, 0x3f, 0x00, - 0xe0, 0xc1, 0xff, 0xff, 0x3f, 0x00, 0xc0, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; -#define files_width 42 -#define files_height 32 -#define files_x_hot 1 -#define files_y_hot 1 -static unsigned char files_bits[] = { - 0x00, 0xf8, 0xff, 0xff, 0x01, 0x00, 0x02, 0x08, 0x00, 0x80, 0x02, 0x00, - 0x06, 0x08, 0x00, 0x80, 0x04, 0x00, 0x0e, 0x08, 0x00, 0x80, 0x08, 0x00, - 0x1e, 0x08, 0x00, 0x80, 0x1f, 0x00, 0x3e, 0x08, 0x00, 0x00, 0x28, 0x00, - 0x7e, 0x08, 0x00, 0x00, 0x78, 0x00, 0xfe, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0xfe, 0x09, 0x00, 0x00, 0xe8, 0x00, 0x3e, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x36, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x62, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x60, 0x08, 0x00, 0x00, 0xa8, 0x00, 0xc0, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0xc0, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xaf, 0x00, - 0x00, 0x10, 0x00, 0x00, 0xa0, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xbf, 0x00, - 0x00, 0x20, 0x00, 0x00, 0x80, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x00}; -#define files_mask_width 42 -#define files_mask_height 32 -#define files_mask_x_hot 1 -#define files_mask_y_hot 1 -static unsigned char files_mask_bits[] = { - 0x03, 0xf8, 0xff, 0xff, 0x01, 0x00, 0x07, 0xf8, 0xff, 0xff, 0x03, 0x00, - 0x0f, 0xf8, 0xff, 0xff, 0x07, 0x00, 0x1f, 0xf8, 0xff, 0xff, 0x0f, 0x00, - 0x3f, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x7f, 0xf8, 0xff, 0xff, 0x3f, 0x00, - 0xff, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xf9, 0xff, 0xff, 0xff, 0x00, - 0xff, 0xfb, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfb, 0xff, 0xff, 0xff, 0x00, - 0x7f, 0xf8, 0xff, 0xff, 0xff, 0x00, 0xf7, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0xf3, 0xf8, 0xff, 0xff, 0xff, 0x00, 0xe0, 0xf9, 0xff, 0xff, 0xff, 0x00, - 0xe0, 0xf9, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xf0, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x00}; -#define grey_width 42 -#define grey_height 32 -#define grey_x_hot 1 -#define grey_y_hot 1 -static unsigned char grey_bits[] = { - 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x02, 0x40, 0x55, 0xd5, 0x01, 0x00, - 0x06, 0xc0, 0xaa, 0xaa, 0x03, 0x00, 0x0e, 0x40, 0x55, 0xd5, 0x07, 0x00, - 0x1e, 0xc0, 0xaa, 0xaa, 0x0f, 0x00, 0x3e, 0x40, 0x55, 0xd5, 0x1f, 0x00, - 0x7e, 0xc0, 0xaa, 0xaa, 0x3f, 0x00, 0xfe, 0x40, 0x55, 0xd5, 0x7f, 0x00, - 0xfe, 0xc1, 0xaa, 0xaa, 0x7f, 0x00, 0x3e, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x36, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x72, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x60, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0xc0, 0x40, 0x55, 0x55, 0x75, 0x00, - 0xc0, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define grey_mask_width 42 -#define grey_mask_height 32 -#define grey_mask_x_hot 1 -#define grey_mask_y_hot 1 -static unsigned char grey_mask_bits[] = { - 0x03, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x07, 0xc0, 0xff, 0xff, 0x01, 0x00, - 0x0f, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x07, 0x00, - 0x3f, 0xc0, 0xff, 0xff, 0x0f, 0x00, 0x7f, 0xc0, 0xff, 0xff, 0x1f, 0x00, - 0xff, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, - 0x7f, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0xf3, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define link_width 42 -#define link_height 32 -#define link_x_hot 1 -#define link_y_hot 1 -static unsigned char link_bits[] = { - 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, - 0x06, 0x40, 0x00, 0x00, 0x05, 0x00, 0x0e, 0x40, 0x00, 0x00, 0x09, 0x00, - 0x1e, 0x40, 0x00, 0x00, 0x11, 0x00, 0x3e, 0x40, 0x00, 0x00, 0x21, 0x00, - 0x7e, 0x40, 0x00, 0x00, 0x7f, 0x00, 0xfe, 0x40, 0x00, 0x00, 0x60, 0x00, - 0xfe, 0x41, 0x00, 0x00, 0x60, 0x00, 0x3e, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x36, 0xc0, 0xc3, 0x1f, 0x7e, 0x00, 0x62, 0x40, 0xa5, 0x2a, 0x75, 0x00, - 0x60, 0xc0, 0xdb, 0xdf, 0x7e, 0x00, 0xc0, 0x40, 0xff, 0xf8, 0x67, 0x00, - 0xc0, 0xc0, 0x55, 0xad, 0x6a, 0x00, 0x00, 0xc0, 0xaa, 0x55, 0x6d, 0x00, - 0x00, 0x40, 0xff, 0xf8, 0x67, 0x00, 0x00, 0xc0, 0xdb, 0xdf, 0x7e, 0x00, - 0x00, 0x40, 0xa5, 0x2a, 0x75, 0x00, 0x00, 0xc0, 0xc3, 0x1f, 0x7e, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, 0x00, 0x40, 0x88, 0x52, 0x62, 0x00, - 0x00, 0x40, 0x88, 0x56, 0x61, 0x00, 0x00, 0x40, 0x88, 0xda, 0x60, 0x00, - 0x00, 0x40, 0x88, 0x52, 0x61, 0x00, 0x00, 0x40, 0xb8, 0x52, 0x62, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define link_mask_width 42 -#define link_mask_height 32 -#define link_mask_x_hot 1 -#define link_mask_y_hot 1 -static unsigned char link_mask_bits[] = { - 0x03, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x07, 0xc0, 0xff, 0xff, 0x03, 0x00, - 0x0f, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x0f, 0x00, - 0x3f, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x7f, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0xff, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, - 0x7f, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xf7, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0xf3, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define mime_width 30 -#define mime_height 20 -#define mime_x_hot 1 -#define mime_y_hot 1 -static unsigned char mime_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x80, 0x01, 0x06, 0x00, 0x80, 0x01, - 0x0e, 0x00, 0x00, 0x00, 0x1e, 0xb0, 0x99, 0x01, 0x3e, 0x70, 0xb7, 0x01, - 0x7e, 0x30, 0xb3, 0x01, 0xfe, 0x30, 0xb3, 0x01, 0xfe, 0x31, 0xb3, 0x01, - 0x3e, 0x30, 0xb3, 0x01, 0x36, 0x30, 0xb3, 0x01, 0x62, 0x00, 0x00, 0x00, - 0x60, 0xb0, 0x19, 0x0f, 0xc0, 0x70, 0xb7, 0x19, 0xc0, 0x30, 0xb3, 0x19, - 0x00, 0x30, 0xb3, 0x1f, 0x00, 0x30, 0xb3, 0x01, 0x00, 0x30, 0xb3, 0x11, - 0x00, 0x30, 0x33, 0x0f, 0x00, 0x00, 0x00, 0x00}; -#define mime_mask_width 30 -#define mime_mask_height 20 -static unsigned char mime_mask_bits[] = { - 0x03, 0x00, 0x80, 0x01, 0x07, 0x00, 0xc0, 0x03, 0x0f, 0x00, 0xc0, 0x03, - 0x1f, 0xb8, 0x99, 0x01, 0x3f, 0xf8, 0xff, 0x03, 0x7f, 0xf8, 0xff, 0x03, - 0xff, 0xf8, 0xff, 0x03, 0xff, 0xf9, 0xff, 0x03, 0xff, 0xfb, 0xff, 0x03, - 0xff, 0xf9, 0xff, 0x03, 0x7f, 0xf8, 0xff, 0x03, 0xf7, 0xf8, 0xff, 0x0f, - 0xf3, 0xf8, 0xff, 0x1f, 0xe0, 0xf9, 0xff, 0x3f, 0xe0, 0xf9, 0xff, 0x3f, - 0xc0, 0xf8, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0x3f, - 0x00, 0xf8, 0xff, 0x1f, 0x00, 0xf8, 0xff, 0x0f}; -#define text_width 42 -#define text_height 32 -#define text_x_hot 1 -#define text_y_hot 1 -static unsigned char text_bits[] = { - 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x02, 0x40, 0x00, 0x80, 0x01, 0x00, - 0x06, 0x40, 0x00, 0x80, 0x02, 0x00, 0x0e, 0x40, 0xde, 0xbd, 0x04, 0x00, - 0x1e, 0x40, 0x00, 0x80, 0x08, 0x00, 0x3e, 0x40, 0x00, 0x80, 0x10, 0x00, - 0x7e, 0x40, 0xb8, 0xef, 0x20, 0x00, 0xfe, 0x40, 0x00, 0x80, 0x7f, 0x00, - 0xfe, 0x41, 0xfe, 0xf6, 0x64, 0x00, 0x3e, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x36, 0x40, 0xf6, 0xce, 0x67, 0x00, 0x62, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x60, 0x40, 0xba, 0xfb, 0x60, 0x00, 0xc0, 0x40, 0x00, 0x00, 0x60, 0x00, - 0xc0, 0x40, 0x00, 0x00, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0x14, 0x3b, 0x63, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0xf4, 0xba, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0x74, 0x07, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0xff, 0xf6, 0x67, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0xf7, 0x7d, 0x66, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0xdf, 0xef, 0x63, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0x00, 0x06, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define text_mask_width 42 -#define text_mask_height 32 -#define text_mask_x_hot 1 -#define text_mask_y_hot 1 -static unsigned char text_mask_bits[] = { - 0x03, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x07, 0xc0, 0xff, 0xff, 0x01, 0x00, - 0x0f, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x07, 0x00, - 0x3f, 0xc0, 0xff, 0xff, 0x0f, 0x00, 0x7f, 0xc0, 0xff, 0xff, 0x1f, 0x00, - 0xff, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, - 0x7f, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xf7, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0xf3, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define url_width 33 -#define url_height 23 -#define url_x_hot 1 -#define url_y_hot 1 -static unsigned char url_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xf8, 0x03, 0x00, 0x06, 0x00, - 0xee, 0x0e, 0x00, 0x0e, 0x00, 0x77, 0x1c, 0x00, 0x1e, 0x80, 0x1f, 0x38, - 0x00, 0x3e, 0xc0, 0x0f, 0x6c, 0x00, 0x7e, 0xe0, 0x07, 0xf4, 0x00, 0xfe, - 0xe0, 0x05, 0xfe, 0x00, 0xfe, 0xf1, 0x00, 0xfe, 0x01, 0x3e, 0xd0, 0x00, - 0xfc, 0x01, 0x36, 0xb0, 0x01, 0xfc, 0x01, 0x62, 0x10, 0x0f, 0xe8, 0x01, - 0x60, 0x30, 0x1f, 0xf0, 0x01, 0xc0, 0x10, 0x3f, 0xfa, 0x01, 0xc0, 0x10, - 0x3e, 0xfd, 0x01, 0x00, 0x60, 0xbc, 0xfe, 0x00, 0x00, 0xa0, 0x1c, 0xff, - 0x00, 0x00, 0xc0, 0xcd, 0x7f, 0x00, 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, - 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0xf8, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; -#define url_mask_width 33 -#define url_mask_height 23 -static unsigned char url_mask_bits[] = { - 0x03, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0xf8, 0x03, 0x00, 0x0f, 0x00, - 0xfe, 0x0f, 0x00, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x3f, 0x80, 0xff, 0x3f, - 0x00, 0x7f, 0xc0, 0xff, 0x7f, 0x00, 0xff, 0xe0, 0xff, 0xff, 0x00, 0xff, - 0xe1, 0xff, 0xff, 0x00, 0xff, 0xf3, 0xff, 0xff, 0x01, 0xff, 0xf1, 0xff, - 0xff, 0x01, 0x7f, 0xf0, 0xff, 0xff, 0x01, 0xf7, 0xf0, 0xff, 0xff, 0x01, - 0xf3, 0xf0, 0xff, 0xff, 0x01, 0xe0, 0xf1, 0xff, 0xff, 0x01, 0xe0, 0xf1, - 0xff, 0xff, 0x01, 0xc0, 0xe0, 0xff, 0xff, 0x00, 0x00, 0xe0, 0xff, 0xff, - 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, - 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0xf8, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
--- a/src/offix-types.h Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -Copyright (C) 1996 César Crusius - -This file is part of the DND Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#ifndef INCLUDED_offix_types_h_ -#define INCLUDED_offix_types_h_ - -#define DndNotDnd -1 -#define DndUnknown 0 -#define DndRawData 1 -#define DndFile 2 -#define DndFiles 3 -#define DndText 4 -#define DndDir 5 -#define DndLink 6 -#define DndExe 7 -#define DndURL 8 -#define DndMIME 9 - -#define DndEND 10 - -#endif /* INCLUDED_offix_types_h_ */
--- a/src/offix.c Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,451 +0,0 @@ -/* -This is a modified DND 1.0 library which does not depend on Xt -event handling. -Modifications Copyright (c) 1997 Oliver Graf <ograf@fga.de> - -Original DND lib -Copyright (C) 1996 César Crusius - -This file is part of the DND Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -/* #define DEBUG */ - -#include "offix.h" -#include <X11/cursorfont.h> -#include <X11/Xatom.h> -#include <X11/Xmu/WinUtil.h> -#include <stdio.h> -#include <stdlib.h> -#include <limits.h> - -/* Local variables */ -static Display *dpy; /* current display */ -static int DragPrecision; /* minimum dx,dy to start drag */ -static int Dragging; /* Drag state flag */ -static int DataOK; /* Non-zero if data registered */ -static Atom DndProtocol; /* ClientMessage identifier */ -static Atom DndSelection; /* For the data transfers */ -static Atom OldDndProtocol; /* Version 0 atom */ -static Atom OldDndSelection;/* Version 0 atom */ -static Atom WM_STATE; /* Needed for icon stuff */ -static Window Target; /* Drop window */ -static Widget MainWidget; /* Main widget of application */ -static int DataType; /* Current drag data type */ -static int RootFlag; /* Non-zero if dropped on root */ -static XColor Black,White; /* For the cursors */ - -/*========================================================================= - * Data for the standard Dnd cursors - *=========================================================================*/ -#include "offix-cursors.h" - -/*=============================================================== CursorData - * CursorData contains all the data for the cursors bitmaps - *==========================================================================*/ -typedef struct -{ - int Width,Height; - unsigned char *ImageData,*MaskData; - int HotSpotX,HotSpotY; - Pixmap ImagePixmap,MaskPixmap; - Cursor CursorID; -} CursorData; - -static CursorData DndCursor[DndEND]={ - { 0,0,NULL,NULL,0,0,0 }, - { grey_width, grey_height,grey_bits,grey_mask_bits, - grey_x_hot,grey_y_hot}, - { file_width,file_height,file_bits,file_mask_bits, - file_x_hot,file_y_hot}, - { files_width,files_height,files_bits,files_mask_bits, - files_x_hot,files_y_hot}, - { text_width,text_height,text_bits,text_mask_bits, - text_x_hot,text_y_hot }, - { dir_width,dir_height,dir_bits,dir_mask_bits, - dir_x_hot,dir_y_hot }, - { link_width,link_height,link_bits,link_mask_bits, - link_x_hot,link_y_hot}, - { app_width,app_height,app_bits,app_mask_bits, - app_x_hot,app_y_hot }, - { url_width,url_height,url_bits,url_mask_bits, - url_x_hot,url_y_hot }, - { mime_width,mime_height,mime_bits,mime_mask_bits, - mime_x_hot,mime_y_hot } -}; - -/* Local prototypes */ -int DndIsDragging(void); -void DndStartAction(Widget widget, - XtPointer data, - XEvent *event, - Boolean *p); -void DndPropertyHandler(Widget widget, - XtPointer data, - XEvent *event, - Boolean *p); - -/*======================================================== DndHandleDragging - * Takes care of the drag and drop process. Wait until the pointer had moved - * a little. Then takes control over the pointer until the buttons are - * released. After that send a Drag And Drop ClientMessage event. Returns - * non-zero if a drop did take place. - *===========================================================================*/ -int -DndHandleDragging(Widget widget,XEvent *event) -{ - XEvent Event; - Window root = RootWindowOfScreen(XtScreenOfObject(widget)); - XtAppContext app= XtWidgetToApplicationContext(widget); - Window DispatchWindow; - int DropX,DropY; - - if(Dragging) return 0; - - XUngrabPointer(dpy,CurrentTime); - /* Take control over the pointer */ - XGrabPointer(dpy,root,False, - ButtonMotionMask|ButtonPressMask|ButtonReleaseMask, - GrabModeSync,GrabModeAsync,root, - DndCursor[DataType].CursorID, - CurrentTime); - - /* Wait for button release */ - Dragging=1; RootFlag=0; - while(Dragging) - { - XAllowEvents(dpy,SyncPointer,CurrentTime); - XtAppNextEvent(app,&Event); - switch(Event.type) - { - case ButtonRelease: - if(Event.xbutton.subwindow) - RootFlag=0; - else - RootFlag=1; - Dragging=0; - break; - default: - XtDispatchEvent(&Event); - break; - } - } - DataOK=0; - /* Now release the pointer */ - XUngrabPointer(dpy,CurrentTime); - /* Try to guess if the drop occurred in the root window */ - if(!RootFlag) - { - Target=XmuClientWindow(dpy,Event.xbutton.subwindow); - if (Target==Event.xbutton.subwindow) - DispatchWindow=Target; - else - DispatchWindow=PointerWindow; - } - else - Target=DispatchWindow=XtWindow(MainWidget); - - /* Now build the event structure */ - DropX=Event.xbutton.x_root; - DropY=Event.xbutton.y_root; - Event.xclient.type = ClientMessage; - Event.xclient.display = dpy; - Event.xclient.message_type = DndProtocol; - Event.xclient.format = 32; - Event.xclient.window = Target; - Event.xclient.data.l[0] = DataType; - Event.xclient.data.l[1] = (long)event->xbutton.state; - Event.xclient.data.l[2] = (long)XtWindow(widget); - Event.xclient.data.l[3] = DropX + 65536L*(long)DropY; - Event.xclient.data.l[4] = 1; - - /* Send the drop message */ - XSendEvent(dpy,DispatchWindow,True,NoEventMask,&Event); - /* Send an old style version of the message just in case */ - Event.xclient.message_type = OldDndProtocol; - XSendEvent(dpy,DispatchWindow,True,NoEventMask,&Event); - -#ifdef DEBUG - fprintf(stderr,"ClientMessage sent to 0x%x(0x%x).\n", - DispatchWindow,Target); - fprintf(stderr,"The drop coordinates are (%d,%d).\n",DropX,DropY); -#endif - - return 1; -} - -/*=============================================================== DndIsIcon - * Return non-zero if the application is iconic (widget=toplevel) - *========================================================================*/ -int -DndIsIcon(Widget widget) -{ - Atom JunkAtom; - int JunkInt; - unsigned long WinState,JunkLong; - unsigned char *Property; - - XGetWindowProperty(dpy,XtWindow(widget),WM_STATE, - 0L,2L,False,AnyPropertyType, - &JunkAtom,&JunkInt,&WinState,&JunkLong, - &Property); - WinState=(unsigned long)(*((long*)Property)); - return (WinState==3); -} - -/*============================================================ DndInitialize - * Must be called anywhere before the top level widget creation and the - * main loop. Initialize global variables and bind the DndDispatch function - * to the top level widget. Creates the cursors to be used in drag actions. - *=========================================================================*/ -void -DndInitialize(Widget shell) -{ - int screen,i; - Colormap colormap; - Window root; - - dpy = XtDisplayOfObject(shell); - screen = DefaultScreen(dpy); - colormap= DefaultColormap(dpy,screen); - root = DefaultRootWindow(dpy); - - - Black.pixel=BlackPixel(dpy,screen); - White.pixel=WhitePixel(dpy,screen); - XQueryColor(dpy,colormap,&Black); - XQueryColor(dpy,colormap,&White); - - for(i=1;i!=DndEND;i++) - { - DndCursor[i].ImagePixmap= - XCreateBitmapFromData(dpy,root, - (char *) DndCursor[i].ImageData, - DndCursor[i].Width, - DndCursor[i].Height); - DndCursor[i].MaskPixmap= - XCreateBitmapFromData(dpy,root, - (char *) DndCursor[i].MaskData, - DndCursor[i].Width, - DndCursor[i].Height); - DndCursor[i].CursorID= - XCreatePixmapCursor(dpy,DndCursor[i].ImagePixmap, - DndCursor[i].MaskPixmap, - &Black,&White, - DndCursor[i].HotSpotX, - DndCursor[i].HotSpotY); - } - - DndCursor[0].CursorID=XCreateFontCursor(dpy,XC_question_arrow); - - /* These two are for older versions */ - OldDndProtocol=XInternAtom(dpy,"DndProtocol",FALSE); - OldDndSelection=XInternAtom(dpy,"DndSelection",FALSE); - /* Now the correct stuff */ - DndProtocol=XInternAtom(dpy,"_DND_PROTOCOL",FALSE); - DndSelection=XInternAtom(dpy,"_DND_SELECTION",FALSE); - - WM_STATE=XInternAtom(dpy,"WM_STATE",True); - Dragging=0; - DragPrecision=10; - RootFlag=0; - MainWidget=shell; -} - -int -DndIsDragging(void) -{ - return Dragging; -} - -/*================================================================= DndSetData - * Updates the selection data. - *===========================================================================*/ -void -DndSetData(int Type,unsigned char *Data,unsigned long Size) -{ - Window root = DefaultRootWindow(dpy); - int AuxSize; - unsigned char *AuxData; - unsigned long BackSize=Size; - - if (DataOK) return; - - /* Set the data type -- allow any type */ - DataType = Type; - - /* Set the data */ - AuxData = Data; - AuxSize = ( Size <= INT_MAX ? (int)Size : INT_MAX ); - XChangeProperty(dpy,root,DndSelection,XA_STRING,8, - PropModeReplace,Data,AuxSize); - for(Size-=(unsigned long)AuxSize;Size;Size-=(unsigned long)AuxSize) - { - Data+=AuxSize; - AuxSize = ( (Size<=(INT_MAX)) ? (int)Size : (INT_MAX) ); - XChangeProperty(dpy,root,DndSelection,XA_STRING,8, - PropModeAppend,Data,AuxSize); - } - - /* Set the data for old DND version */ - Size = BackSize; - AuxData = Data; - AuxSize = ( Size <= INT_MAX ? (int)Size : INT_MAX ); - XChangeProperty(dpy,root,OldDndSelection,XA_STRING,8, - PropModeReplace,Data,AuxSize); - for(Size-=(unsigned long)AuxSize;Size;Size-=(unsigned long)AuxSize) - { - Data+=AuxSize; - AuxSize = ( (Size<=(INT_MAX)) ? (int)Size : (INT_MAX) ); - XChangeProperty(dpy,root,OldDndSelection,XA_STRING,8, - PropModeAppend,Data,AuxSize); - } - - /* Everything is now ok */ - DataOK=1; -} - -/*================================================================== DndGetData - * Return a pointer to the current data. See HOWTO for more details. - *===========================================================================*/ -void -DndGetData(XEvent *event, unsigned char **Data,unsigned long *Size) -{ - Window root = DefaultRootWindow(dpy); - - Atom ActualType,ActualDndSelection; - int ActualFormat; - unsigned long RemainingBytes; - - ActualDndSelection=(DndProtocolVersion(event) == 0L ? - OldDndSelection : - DndSelection ); - - XGetWindowProperty(dpy,root,ActualDndSelection, - 0L,1000000L, - FALSE,AnyPropertyType, - &ActualType,&ActualFormat, - Size,&RemainingBytes, - Data); -} - -/*================================== DndDataType DndDragButtons DndSourceWidget - * - * Return information about the Dnd event received. If a non-dnd event is - * passed, the function DndDataType returns DndNotDnd, and the others - * return zero. - *===========================================================================*/ -int -DndDataType(XEvent *event) -{ - int Type; - - if(!DndIsDropMessage(event)) return DndNotDnd; - Type=(int)(event->xclient.data.l[0]); - if(Type>=DndEND) Type=DndUnknown; - return Type; -} - -int -DndDragButtons(XEvent *event) -{ - if(!DndIsDropMessage(event)) return 0; - return (int)(event->xclient.data.l[1]); -} - -Window -DndSourceWindow(XEvent *event) -{ - if(!DndIsDropMessage(event)) return 0; - if(DndProtocolVersion(event)<__DragAndDropH__) - /* We will try to do something about it, but nothing is certain */ - return XtWindow((Widget)(event->xclient.data.l[2])); - return (Window)(event->xclient.data.l[2]); -} - -void -DndDropRootCoordinates(XEvent *event,int *x,int *y) -{ - if(!DndIsDropMessage(event)) - { - *x=0; *y=0; - return; - } - - /* If it is an old protocol version we try to get the coordinates - using the current pointer position. Of course, the pointer may have - moved since the drop, but there's nothing we can do about it. - */ - if(DndProtocolVersion(event)<1L) - { - Window root_return,child_return; - int win_x_return,win_y_return; - unsigned int mask_return; - - XQueryPointer(dpy,DefaultRootWindow(dpy), - &root_return,&child_return,x,y, - &win_x_return,&win_y_return,&mask_return); - return; - } - /* Thanks god you are using a decent protocol version */ - *x=(int)((long)(event->xclient.data.l[3]) & 0xffff); - *y=(int)((long)(event->xclient.data.l[3])/65536); -} - -void -DndDropCoordinates(Widget widget,XEvent *event,int *x,int *y) -{ - int root_x,root_y; - Window child_return; - - DndDropRootCoordinates(event,&root_x,&root_y); - XTranslateCoordinates(dpy,DefaultRootWindow(dpy), - XtWindow(widget), - root_x,root_y, - x,y, - &child_return); -} - -long -DndProtocolVersion(XEvent *event) -{ - if(!DndIsDropMessage(event)) return -1L; - return event->xclient.data.l[4]; -} - -int -DndIsDropMessage(XEvent *event) -{ - if(event->xclient.type != ClientMessage) return 0; - if(event->xclient.message_type == OldDndProtocol && - event->xclient.data.l[4]==0) return 1; - if(event->xclient.message_type == DndProtocol) return 1; - return 0; -} - -void -DndChangeCursor(int Type,int width,int height,char *image,char *mask, - int hot_x,int hot_y) -{ - DndCursor[Type].ImagePixmap= - XCreateBitmapFromData(dpy,DefaultRootWindow(dpy), - image,width,height); - DndCursor[Type].MaskPixmap= - XCreateBitmapFromData(dpy,DefaultRootWindow(dpy), - mask,width,height); - DndCursor[Type].CursorID= - XCreatePixmapCursor(dpy,DndCursor[Type].ImagePixmap, - DndCursor[Type].MaskPixmap, - &Black,&White, - hot_x,hot_y); -}
--- a/src/offix.h Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* -This is a modified DND 1.0 library which does not depend on Xt -event handling. -Modifications Copyright (c) 1997 Oliver Graf <ograf@fga.de> - -Original DND lib -Copyright (C) 1996 César Crusius - -This file is part of the DND Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#ifndef __DragAndDropH__ -#define __DragAndDropH__ 1L - -/* The standard DND types are defined here */ -#include "offix-types.h" - -/* Xt stuff is defined here */ -#include "xintrinsic.h" - -void DndInitialize(Widget shell); - -int -DndHandleDragging(Widget widget, - XEvent* event); - -void DndSetData(int Type, unsigned char *Data, unsigned long Size); -void DndGetData(XEvent *event, unsigned char **Data, unsigned long *Size); - -int DndIsIcon(Widget widget); -int DndDataType(XEvent *event); -int DndDragButtons(XEvent *event); -Window DndSourceWindow(XEvent *event); - -void -DndDropCoordinates(Widget widget, - XEvent *event, - int *x, - int *y); -void -DndDropRootCoordinates(XEvent *event, - int *x, - int *y); - -long -DndProtocolVersion(XEvent *event); - -int -DndIsDropMessage(XEvent *event); - -void -DndChangeCursor(int Type, - int width,int height, - char *image,char *mask, - int hot_x,int hot_y); -#endif - -
--- a/src/ppc.ldscript Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,149 +0,0 @@ -OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc", - "elf32-powerpc") -OUTPUT_ARCH(powerpc) -ENTRY(_start) -SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/powerpc-unknown-linux-gnulibc1/lib); -/* Do we need any of these for elf? - __DYNAMIC = 0; */ -PROVIDE (__stack = 0); -SECTIONS -{ - /* Read-only sections, merged into text segment: */ - . = 0x01800000 + SIZEOF_HEADERS; - .interp : { *(.interp) } - .hash : { *(.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - .rela.text : - { *(.rela.text) *(.rela.gnu.linkonce.t*) } - .rela.data : - { *(.rela.data) *(.rela.gnu.linkonce.d*) } - .rela.rodata : - { *(.rela.rodata) *(.rela.gnu.linkonce.r*) } - .rela.got : { *(.rela.got) } - .rela.got1 : { *(.rela.got1) } - .rela.got2 : { *(.rela.got2) } - .rela.ctors : { *(.rela.ctors) } - .rela.dtors : { *(.rela.dtors) } - .rela.init : { *(.rela.init) } - .rela.fini : { *(.rela.fini) } - .rela.bss : { *(.rela.bss) } - .rela.plt : { *(.rela.plt) } - .rela.sdata : { *(.rela.sdata) } - .rela.sbss : { *(.rela.sbss) } - .rela.sdata2 : { *(.rela.sdata2) } - .rela.sbss2 : { *(.rela.sbss2) } - .text : - { - *(.text) - /* .gnu.warning sections are handled specially by elf32.em. */ - *(.gnu.warning) - *(.gnu.linkonce.t*) - } =0 - .init : { *(.init) } =0 - .fini : { *(.fini) } =0 - .rodata : { *(.rodata) *(.gnu.linkonce.r*) } - .rodata1 : { *(.rodata1) } - _etext = .; - PROVIDE (etext = .); - .sdata2 : { *(.sdata2) } - .sbss2 : { *(.sbss2) } - /* Adjust the address for the data segment. We want to adjust up to - the same address within the page on the next page up. It would - be more correct to do this: - . = .; - The current expression does not correctly handle the case of a - text segment ending precisely at the end of a page; it causes the - data segment to skip a page. The above expression does not have - this problem, but it will currently (2/95) cause BFD to allocate - a single segment, combining both text and data, for this case. - This will prevent the text segment from being shared among - multiple executions of the program; I think that is more - important than losing a page of the virtual address space (note - that no actual memory is lost; the page which is skipped can not - be referenced). */ - . = .; - .data : - { - *(.data) - *(.gnu.linkonce.d*) - CONSTRUCTORS - } - .data1 : { *(.data1) } - .got1 : { *(.got1) } - .dynamic : { *(.dynamic) } - /* Put .ctors and .dtors next to the .got2 section, so that the pointers - get relocated with -mrelocatable. Also put in the .fixup pointers. - The current compiler no longer needs this, but keep it around for 2.7.2 */ - PROVIDE (_GOT2_START_ = .); - .got2 : { *(.got2) } - PROVIDE (__CTOR_LIST__ = .); - .ctors : { *(.ctors) } - PROVIDE (__CTOR_END__ = .); - PROVIDE (__DTOR_LIST__ = .); - .dtors : { *(.dtors) } - PROVIDE (__DTOR_END__ = .); - PROVIDE (_FIXUP_START_ = .); - .fixup : { *(.fixup) } - PROVIDE (_FIXUP_END_ = .); - PROVIDE (_GOT2_END_ = .); - PROVIDE (_GOT_START_ = .); - .got : { *(.got) } - .got.plt : { *(.got.plt) } - PROVIDE (_GOT_END_ = .); - /* We want the small data sections together, so single-instruction offsets - can access them all, and initialized data all before uninitialized, so - we can shorten the on-disk segment size. */ - .sdata : { *(.sdata) } - _edata = .; - PROVIDE (edata = .); - .sbss : - { - } - .bss : - { - PROVIDE (__sbss_start = .); - *(.sbss) - *(.scommon) - PROVIDE (__sbss_end = .); - PROVIDE (__bss_start = .); - *(.dynbss) - *(.bss) - *(COMMON) - } - _end = . ; - PROVIDE (end = .); - /* These are needed for ELF backends which have not yet been - converted to the new style linker. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } - /* These must appear regardless of . */ -}
--- a/src/s/windowsnt.h Fri Jan 01 19:45:39 2010 +0000 +++ b/src/s/windowsnt.h Thu Jan 07 17:01:25 2010 +0000 @@ -39,7 +39,6 @@ #define HAVE_XREGISTERIMINSTANTIATECALLBACK #define THIS_IS_X11R6 -#define HAVE_XMU #define HAVE_XLOCALE_H #define HAVE_X11_LOCALE_H #define GETTIMEOFDAY_ONE_ARGUMENT
--- a/src/symbols.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/symbols.c Thu Jan 07 17:01:25 2010 +0000 @@ -600,7 +600,10 @@ !(unloading_module && UNBOUNDP(newval)) && #endif (symbol_is_constant (sym, val) - || (SYMBOL_IS_KEYWORD (sym) && !EQ (newval, sym)))) +#ifndef NO_NEED_TO_HANDLE_21_4_CODE + || (SYMBOL_IS_KEYWORD (sym) && !EQ (newval, sym)) +#endif + )) signal_error_1 (Qsetting_constant, UNBOUNDP (newval) ? list1 (sym) : list2 (sym, newval)); }
--- a/src/symsinit.h Fri Jan 01 19:45:39 2010 +0000 +++ b/src/symsinit.h Thu Jan 07 17:01:25 2010 +0000 @@ -16,8 +16,8 @@ You should have received a copy of the GNU General Public License along with XEmacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, +Boston, MA 02111-1301, USA. */ /* Synched up with: Not in FSF. */ @@ -398,6 +398,7 @@ void reinit_vars_of_mule_wnn (void); void vars_of_nt (void); void vars_of_number (void); +void reinit_vars_of_number (void); void vars_of_objects (void); void vars_of_font_mgr (void); void reinit_vars_of_font_mgr (void);
--- a/src/text.h Fri Jan 01 19:45:39 2010 +0000 +++ b/src/text.h Thu Jan 07 17:01:25 2010 +0000 @@ -3111,7 +3111,6 @@ /* !!#### Verify these! */ #define Qxt_widget_arg_encoding Qnative #define Qdt_dnd_encoding Qnative -#define Qoffix_dnd_encoding Qnative /* RedHat 6.2 contains a locale called "Francais" with the C-cedilla encoded in ISO2022! */ @@ -3119,9 +3118,6 @@ #define Qstrerror_encoding Qnative -/* Encoding for strings coming from Offix drag-n-drop */ -#define Qoffix_dnd_encoding Qnative - /* !!#### This exists to remind us that our hexify routine is totally un-Muleized. */ #define Qdnd_hexify_encoding Qascii
--- a/src/unicode.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/unicode.c Thu Jan 07 17:01:25 2010 +0000 @@ -3093,6 +3093,7 @@ return result; } #else /* !MULE */ +static Lisp_Object unicode_query (Lisp_Object UNUSED (codesys), struct buffer * UNUSED (buf), Charbpos UNUSED (end), int UNUSED (flags))
--- a/src/window.c Fri Jan 01 19:45:39 2010 +0000 +++ b/src/window.c Thu Jan 07 17:01:25 2010 +0000 @@ -5267,30 +5267,6 @@ mark_window_as_deleted (w); } -Lisp_Object -save_window_excursion_unwind (Lisp_Object window_config) -{ - Lisp_Object val = call1 (Qset_window_configuration, window_config); - return val; -} - -DEFUN ("save-window-excursion", Fsave_window_excursion, 0, UNEVALLED, 0, /* -Execute BODY, preserving window sizes and contents. -Restores which buffer appears in which window, where display starts, -as well as the current buffer. -Does not restore the value of point in current buffer. - -arguments: (&rest BODY) -*/ - (args)) -{ - /* This function can GC */ - int speccount = specpdl_depth (); - - record_unwind_protect (save_window_excursion_unwind, - call1 (Qcurrent_window_configuration, Qnil)); - return unbind_to_1 (speccount, Fprogn (args)); -} static int get_current_pixel_pos (Lisp_Object window, Lisp_Object pos, @@ -5558,7 +5534,6 @@ #ifdef MEMORY_USAGE_STATS DEFSUBR (Fwindow_memory_usage); #endif - DEFSUBR (Fsave_window_excursion); DEFSUBR (Fcurrent_pixel_column); DEFSUBR (Fcurrent_pixel_row); }
--- a/src/window.h Fri Jan 01 19:45:39 2010 +0000 +++ b/src/window.h Thu Jan 07 17:01:25 2010 +0000 @@ -105,7 +105,6 @@ EXFUN (Fwindow_point, 1); EXFUN (Fwindow_start, 1); -Lisp_Object save_window_excursion_unwind (Lisp_Object); extern Lisp_Object Qcurrent_window_configuration, Qset_window_configuration; Lisp_Object display_buffer (Lisp_Object, Lisp_Object, Lisp_Object);
--- a/src/xmu.c Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,327 +0,0 @@ -/* This file contains compatibility routines for systems without Xmu. - * You would be better served by installing Xmu on your machine or - * yelling at your vendor to ship it. - */ - -/* XEmacs changes: rindex -> strrchr */ - -/* Synched up with: Not in FSF. */ - -#include <config.h> - -#ifndef HAVE_XMU -/* - * Copyright 1989 Massachusetts Institute of Technology - * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in advertising - * or publicity pertaining to distribution of the software without specific, - * written prior permission. M.I.T. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T. - * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION - * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ -#include <X11/cursorfont.h> -#include <X11/Xlib.h> -#include <X11/Xutil.h> -#include <X11/Intrinsic.h> - -/* for XmuCopyISOLatin1Lowered */ -#define XK_LATIN1 -#include <X11/keysymdef.h> -#undef XK_LATIN1 - -#if (XtSpecificationRelease >= 5) -/* - * Don't know why, but this works with X11R5, not X11R4. - * Anyway, _XExtension is defined in Xlib.h in X11R4, so we do not need - * Xlibint in that case... - */ -#include <X11/Xlibint.h> -#endif -#include <X11/Xproto.h> -#include <stdio.h> -#include <ctype.h> - - -int XmuCursorNameToIndex (const char *name) -{ - static const struct _CursorName { - const char *name; - unsigned int shape; - } cursor_names[] = { - {"x_cursor", XC_X_cursor}, - {"arrow", XC_arrow}, - {"based_arrow_down", XC_based_arrow_down}, - {"based_arrow_up", XC_based_arrow_up}, - {"boat", XC_boat}, - {"bogosity", XC_bogosity}, - {"bottom_left_corner", XC_bottom_left_corner}, - {"bottom_right_corner", XC_bottom_right_corner}, - {"bottom_side", XC_bottom_side}, - {"bottom_tee", XC_bottom_tee}, - {"box_spiral", XC_box_spiral}, - {"center_ptr", XC_center_ptr}, - {"circle", XC_circle}, - {"clock", XC_clock}, - {"coffee_mug", XC_coffee_mug}, - {"cross", XC_cross}, - {"cross_reverse", XC_cross_reverse}, - {"crosshair", XC_crosshair}, - {"diamond_cross", XC_diamond_cross}, - {"dot", XC_dot}, - {"dotbox", XC_dotbox}, - {"double_arrow", XC_double_arrow}, - {"draft_large", XC_draft_large}, - {"draft_small", XC_draft_small}, - {"draped_box", XC_draped_box}, - {"exchange", XC_exchange}, - {"fleur", XC_fleur}, - {"gobbler", XC_gobbler}, - {"gumby", XC_gumby}, - {"hand1", XC_hand1}, - {"hand2", XC_hand2}, - {"heart", XC_heart}, - {"icon", XC_icon}, - {"iron_cross", XC_iron_cross}, - {"left_ptr", XC_left_ptr}, - {"left_side", XC_left_side}, - {"left_tee", XC_left_tee}, - {"leftbutton", XC_leftbutton}, - {"ll_angle", XC_ll_angle}, - {"lr_angle", XC_lr_angle}, - {"man", XC_man}, - {"middlebutton", XC_middlebutton}, - {"mouse", XC_mouse}, - {"pencil", XC_pencil}, - {"pirate", XC_pirate}, - {"plus", XC_plus}, - {"question_arrow", XC_question_arrow}, - {"right_ptr", XC_right_ptr}, - {"right_side", XC_right_side}, - {"right_tee", XC_right_tee}, - {"rightbutton", XC_rightbutton}, - {"rtl_logo", XC_rtl_logo}, - {"sailboat", XC_sailboat}, - {"sb_down_arrow", XC_sb_down_arrow}, - {"sb_h_double_arrow", XC_sb_h_double_arrow}, - {"sb_left_arrow", XC_sb_left_arrow}, - {"sb_right_arrow", XC_sb_right_arrow}, - {"sb_up_arrow", XC_sb_up_arrow}, - {"sb_v_double_arrow", XC_sb_v_double_arrow}, - {"shuttle", XC_shuttle}, - {"sizing", XC_sizing}, - {"spider", XC_spider}, - {"spraycan", XC_spraycan}, - {"star", XC_star}, - {"target", XC_target}, - {"tcross", XC_tcross}, - {"top_left_arrow", XC_top_left_arrow}, - {"top_left_corner", XC_top_left_corner}, - {"top_right_corner", XC_top_right_corner}, - {"top_side", XC_top_side}, - {"top_tee", XC_top_tee}, - {"trek", XC_trek}, - {"ul_angle", XC_ul_angle}, - {"umbrella", XC_umbrella}, - {"ur_angle", XC_ur_angle}, - {"watch", XC_watch}, - {"xterm", XC_xterm}, - }; - const struct _CursorName *table; - int i; - char tmp[40]; - - if (strlen (name) >= sizeof (tmp)) return -1; - for (i=0; i<strlen(name); i++) - if (isupper((unsigned char) name[i])) - tmp[i] = tolower((unsigned char) name[i]); - else - tmp[i] = name[i]; - tmp[i] = 0; - - for (i=0, table=cursor_names; i < XtNumber(cursor_names); i++, table++ ) { - if (strcmp(tmp, table->name) == 0) return table->shape; - } - - return -1; -} - -/* Definition of XmuReadBitmapDataFromFile replaced with the code in - * glyphs-shared.c - * - * wmperry Jun 1, 2001 - */ - -/* - * XmuPrintDefaultErrorMessage - print a nice error that looks like the usual - * message. Return 1 if the caller should consider exiting, else 0. - */ -int XmuPrintDefaultErrorMessage (Display *dpy, XErrorEvent *event, FILE *fp) -{ - char buffer[BUFSIZ]; - char mesg[BUFSIZ]; - char number[32]; - char *mtype = "XlibMessage"; - _XExtension *ext = (_XExtension *)NULL; - XGetErrorText(dpy, event->error_code, buffer, BUFSIZ); - XGetErrorDatabaseText(dpy, mtype, "XError", "X Error", mesg, BUFSIZ); - fprintf(fp, "%s: %s\n ", mesg, buffer); - XGetErrorDatabaseText(dpy, mtype, "MajorCode", "Request Major code %d", - mesg, BUFSIZ); - fprintf(fp, mesg, event->request_code); - if (event->request_code < 128) { - sprintf(number, "%d", event->request_code); - XGetErrorDatabaseText(dpy, "XRequest", number, "", buffer, BUFSIZ); - } else { - /* XXX this is non-portable */ - for (ext = dpy->ext_procs; - ext && (ext->codes.major_opcode != event->request_code); - ext = ext->next) - ; - if (ext) - strcpy(buffer, ext->name); - else - buffer[0] = '\0'; - } - fprintf(fp, " (%s)", buffer); - fputs("\n ", fp); -#if (XtSpecificationRelease >= 5) - if (event->request_code >= 128) { - XGetErrorDatabaseText(dpy, mtype, "MinorCode", "Request Minor code %d", - mesg, BUFSIZ); - fprintf(fp, mesg, event->minor_code); - if (ext) { - sprintf(mesg, "%s.%d", ext->name, event->minor_code); - XGetErrorDatabaseText(dpy, "XRequest", mesg, "", buffer, BUFSIZ); - fprintf(fp, " (%s)", buffer); - } - fputs("\n ", fp); - } - if (event->error_code >= 128) { - /* let extensions try to print the values */ - /* XXX this is non-portable code */ - for (ext = dpy->ext_procs; ext; ext = ext->next) { - if (ext->error_values) - (*ext->error_values)(dpy, event, fp); - } - /* the rest is a fallback, providing a simple default */ - /* kludge, try to find the extension that caused it */ - buffer[0] = '\0'; - for (ext = dpy->ext_procs; ext; ext = ext->next) { - if (ext->error_string) - (*ext->error_string)(dpy, event->error_code, &ext->codes, - buffer, BUFSIZ); - if (buffer[0]) - break; - } - if (buffer[0]) - sprintf(buffer, "%s.%d", ext->name, - event->error_code - ext->codes.first_error); - else - strcpy(buffer, "Value"); - XGetErrorDatabaseText(dpy, mtype, buffer, "", mesg, BUFSIZ); - if (*mesg) { - fprintf(fp, mesg, event->resourceid); - fputs("\n ", fp); - } - } else if ((event->error_code == BadWindow) || - (event->error_code == BadPixmap) || - (event->error_code == BadCursor) || - (event->error_code == BadFont) || - (event->error_code == BadDrawable) || - (event->error_code == BadColor) || - (event->error_code == BadGC) || - (event->error_code == BadIDChoice) || - (event->error_code == BadValue) || - (event->error_code == BadAtom)) { - if (event->error_code == BadValue) - XGetErrorDatabaseText(dpy, mtype, "Value", "Value 0x%x", - mesg, BUFSIZ); - else if (event->error_code == BadAtom) - XGetErrorDatabaseText(dpy, mtype, "AtomID", "AtomID 0x%x", - mesg, BUFSIZ); - else - XGetErrorDatabaseText(dpy, mtype, "ResourceID", "ResourceID 0x%x", - mesg, BUFSIZ); - fprintf(fp, mesg, event->resourceid); - fputs("\n ", fp); - } -#elif (XtSpecificationRelease == 4) - XGetErrorDatabaseText(dpy, mtype, "MinorCode", "Request Minor code %d", - mesg, BUFSIZ); - fprintf(fp, mesg, event->minor_code); - fputs("\n ", fp); - if (ext) { - sprintf(mesg, "%s.%d", ext->name, event->minor_code); - XGetErrorDatabaseText(dpy, "XRequest", mesg, "", buffer, BUFSIZ); - fprintf(fp, " (%s)", buffer); - } - XGetErrorDatabaseText(dpy, mtype, "ResourceID", "ResourceID 0x%x", - mesg, BUFSIZ); - fprintf(fp, mesg, event->resourceid); - fputs("\n ", fp); -#else -ERROR! Unsupported release of X11 -#endif - XGetErrorDatabaseText(dpy, mtype, "ErrorSerial", "Error Serial #%d", - mesg, BUFSIZ); - fprintf(fp, mesg, event->serial); - fputs("\n ", fp); - XGetErrorDatabaseText(dpy, mtype, "CurrentSerial", "Current Serial #%d", - mesg, BUFSIZ); - fprintf(fp, mesg, NextRequest(dpy)-1); - fputs("\n", fp); - if (event->error_code == BadImplementation) return 0; - return 1; -} - - -/* - * XmuSimpleErrorHandler - ignore errors for XQueryTree, XGetWindowAttributes, - * and XGetGeometry; print a message for everything else. In all case, do - * not exit. - */ -int XmuSimpleErrorHandler (Display *dpy, XErrorEvent *errorp) -{ - switch (errorp->request_code) { - case X_QueryTree: - case X_GetWindowAttributes: - if (errorp->error_code == BadWindow) return 0; - break; - case X_GetGeometry: - if (errorp->error_code == BadDrawable) return 0; - break; - } - /* got a "real" X error */ - return XmuPrintDefaultErrorMessage (dpy, errorp, stderr); -} - -void XmuCopyISOLatin1Lowered(char *dst, const char *src) -{ - unsigned char *dest = (unsigned char *) dst; - unsigned char *source = (unsigned char *) src; - - for ( ; *source; source++, dest++) - { - if ((*source >= XK_A) && (*source <= XK_Z)) - *dest = *source + (XK_a - XK_A); - else if ((*source >= XK_Agrave) && (*source <= XK_Odiaeresis)) - *dest = *source + (XK_agrave - XK_Agrave); - else if ((*source >= XK_Ooblique) && (*source <= XK_Thorn)) - *dest = *source + (XK_oslash - XK_Ooblique); - else - *dest = *source; - } - *dest = '\0'; -} -#endif /* !HAVE_XMU */
--- a/src/xmu.h Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* Compatibility routines based on code from the MIT Xmu library */ - -/* Synched up with: Not in FSF. */ - -#ifndef INCLUDED_xmu_h_ -#define INCLUDED_xmu_h_ - -#ifdef HAVE_XMU - -# include <X11/Xmu/CharSet.h> -# include <X11/Xmu/Converters.h> -# include <X11/Xmu/CurUtil.h> -# include <X11/Xmu/Drawing.h> -# include <X11/Xmu/Error.h> -# include <X11/Xmu/Misc.h> - -/* Do the EDITRES protocol if running X11R5 (or later) version */ -#if (XtSpecificationRelease >= 5) -/* #### No dice if we don't have XMU until someone ports - _XEditResCheckMessages to xmu.c */ -#define HACK_EDITRES -#include <X11/Xmu/Editres.h> -#endif /* R5+ */ - -#else - -int XmuCursorNameToIndex (const char *name); -int XmuReadBitmapDataFromFile (const char *filename, unsigned int *width, - unsigned int *height, unsigned char **datap, - int *x_hot, int *y_hot); -int XmuPrintDefaultErrorMessage (Display *dpy, XErrorEvent *event, FILE *fp); -void XmuCopyISOLatin1Lowered (char *, const char *); - -#define Max(x, y) (((x) > (y)) ? (x) : (y)) -#define Min(x, y) (((x) < (y)) ? (x) : (y)) -#define AssignMax(x, y) {if ((y) > (x)) x = (y);} -#define AssignMin(x, y) {if ((y) < (x)) x = (y);} -typedef enum {XtorientHorizontal, XtorientVertical} XtOrientation; - -#endif /* HAVE_XMU */ - -#endif /* INCLUDED_xmu_h_ */
--- a/tests/ChangeLog Fri Jan 01 19:45:39 2010 +0000 +++ b/tests/ChangeLog Thu Jan 07 17:01:25 2010 +0000 @@ -1,3 +1,33 @@ +2010-01-01 Aidan Kehoe <kehoea@parhasard.net> + + * automated/lisp-tests.el: + Test #'functionp, making sure it gives nil for special forms. + +2009-12-31 Aidan Kehoe <kehoea@parhasard.net> + + * automated/lisp-tests.el: + Test much of the functionality of equalp; add a pointer to Paul + Dietz' ANSI test suite for this function, converted to Emacs + Lisp. Not including the tests themselves in XEmacs because who + owns the copyright on the files is unclear and the GCL people + didn't respond to my queries. + +2009-12-21 Jerry James <james@xemacs.org> + + * Dnd/README: Remove references to OffiX drag-and-drop. + * Dnd/droptest.el (start-drag): Remove OffiX support. + (start-region-drag): Ditto. + +2009-12-18 Jerry James <james@xemacs.org> + + * glyph-test.el: Add copyright and GPL v2 or later header with + permission of Andy Piper. + * gutter-test.el: Ditto. + +2009-12-10 Jerry James <james@xemacs.org> + + * auc-tex-test: Remove obsolete file. + 2009-11-10 Jerry James <james@xemacs.org> * autoconf/regressiontest.pl: Remove reference to dynodump.
--- a/tests/Dnd/README Fri Jan 01 19:45:39 2010 +0000 +++ b/tests/Dnd/README Thu Jan 07 17:01:25 2010 +0000 @@ -9,14 +9,8 @@ 3) Try to do some internal DnD by using the sources and targets in the new buffer 4) Do some external DnD: - 4a) OffiX: use files and editor of OffiX - drag something from files or editor into XEmacs - drag something from XEmacs to xv (only with OffiX patch, - editor or files -- files can only move and copy within - itself, cause OffiX is not quite the right thing to do) - 4b) CDE: use dtfile and dtpad instead, but here everything should - work. - 4c) MSWindows: well, explorer should do. But only file data + 4a) CDE: use dtfile and dtpad + 4b) MSWindows: well, explorer should do. But only file data should work, and I don't know if the test already handles this.
--- a/tests/Dnd/droptest.el Fri Jan 01 19:45:39 2010 +0000 +++ b/tests/Dnd/droptest.el Thu Jan 07 17:01:25 2010 +0000 @@ -13,11 +13,7 @@ (defun start-drag (event what &optional typ) ;; short drag interface, until the real one is implemented - (cond ((featurep 'offix) - (if (numberp typ) - (offix-start-drag event what typ) - (offix-start-drag event what))) - ((featurep 'cde) + (cond ((featurep 'cde) (if (not typ) (funcall (intern "cde-start-drag-internal") event nil (list what)) (funcall (intern "cde-start-drag-internal") event t what))) @@ -27,16 +23,11 @@ (interactive "_e") (if (click-inside-extent-p event zmacs-region-extent) ;; okay, this is a drag - (cond ((featurep 'offix) - (offix-start-drag-region event - (extent-start-position zmacs-region-extent) - (extent-end-position zmacs-region-extent))) - ((featurep 'cde) - ;; should also work with CDE + (cond ((featurep 'cde) (cde-start-drag-region event (extent-start-position zmacs-region-extent) (extent-end-position zmacs-region-extent))) - (t (error "No offix or CDE support compiled in"))))) + (t (error "No CDE support compiled in"))))) (defun make-drop-targets () (let ((buf (get-buffer-create "*DND misc-user extent test buffer*"))
--- a/tests/auc-tex-test Fri Jan 01 19:45:39 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -Per Abrahamsen <abraham@dina.kvl.dk> writes: - - xemacs -q - - (require 'tex-site) RET - - C-x C-f test.tex RET - - ==> I now get the AUC TeX menus. - - C-c C-e RET RET german - - " - - ==> Inserts `` - - C-c C-n " - - ==> Inserts " - -This means it find AUC TeX correctly, as well as the style files.
--- a/tests/automated/lisp-tests.el Fri Jan 01 19:45:39 2010 +0000 +++ b/tests/automated/lisp-tests.el Thu Jan 07 17:01:25 2010 +0000 @@ -2085,14 +2085,100 @@ (* three one-four-one-five-nine))) "checking letf handles #'values in a basic sense")) -(Assert (equalp "hi there" "Hi There") - "checking equalp isn't case-sensitive") -(Assert (equalp 99 99.0) - "checking equalp compares numerical values of different types") -(Assert (null (equalp 99 ?c)) - "checking equalp does not convert characters to numbers") -;; Fixed in Hg d0ea57eb3de4. -(Assert (null (equalp "hi there" [hi there])) - "checking equalp doesn't error with string and non-string") +;; #'equalp tests. +(let ((string-variable "aBcDeeFgH\u00Edj") + (eacute-character ?\u00E9) + (Eacute-character ?\u00c9) + (+base-chars+ (loop + with res = (make-string 96 ?\x20) + for int-char from #x20 to #x7f + for char being each element in-ref res + do (setf char (int-to-char int-char)) + finally return res))) + (Assert (equalp "hi there" "Hi There") + "checking equalp isn't case-sensitive") + (Assert (equalp 99 99.0) + "checking equalp compares numerical values of different types") + (Assert (null (equalp 99 ?c)) + "checking equalp does not convert characters to numbers") + ;; Fixed in Hg d0ea57eb3de4. + (Assert (null (equalp "hi there" [hi there])) + "checking equalp doesn't error with string and non-string") + (Assert (eq t (equalp "ABCDEEFGH\u00CDJ" string-variable)) + "checking #'equalp is case-insensitive with an upcased constant") + (Assert (eq t (equalp "abcdeefgh\xedj" string-variable)) + "checking #'equalp is case-insensitive with a downcased constant") + (Assert (eq t (equalp string-variable string-variable)) + "checking #'equalp works when handed the same string twice") + (Assert (eq t (equalp string-variable "aBcDeeFgH\u00Edj")) + "check #'equalp is case-insensitive with a variable-cased constant") + (Assert (eq t (equalp "" (bit-vector))) + "check empty string and empty bit-vector are #'equalp.") + (Assert (eq t (equalp (string) (bit-vector))) + "check empty string and empty bit-vector are #'equalp, no constants") + (Assert (eq t (equalp "hi there" (vector ?h ?i ?\ ?t ?h ?e ?r ?e))) + "check string and vector with same contents #'equalp") + (Assert (eq t (equalp (string ?h ?i ?\ ?t ?h ?e ?r ?e) + (vector ?h ?i ?\ ?t ?h ?e ?r ?e))) + "check string and vector with same contents #'equalp, no constants") + (Assert (eq t (equalp [?h ?i ?\ ?t ?h ?e ?r ?e] + (string ?h ?i ?\ ?t ?h ?e ?r ?e))) + "check string and vector with same contents #'equalp, vector constant") + (Assert (eq t (equalp [0 1.0 0.0 0 1] + (bit-vector 0 1 0 0 1))) + "check vector and bit-vector with same contents #'equalp,\ + vector constant") + (Assert (eq t (equalp #*01001 + (vector 0 1.0 0.0 0 1))) + "check vector and bit-vector with same contents #'equalp,\ + bit-vector constant") + (Assert (eq t (equalp ?\u00E9 Eacute-character)) + "checking characters are case-insensitive, one constant") + (Assert (eq nil (equalp ?\u00E9 (aref (format "%c" ?a) 0))) + "checking distinct characters are not equalp, one constant") + (Assert (eq t (equalp t (and))) + "checking symbols are correctly #'equalp") + (Assert (eq nil (equalp t (or nil '#:t))) + "checking distinct symbols with the same name are not #'equalp") + (Assert (eq t (equalp #s(char-table type generic data (?\u0080 "hi-there")) + (let ((aragh (make-char-table 'generic))) + (put-char-table ?\u0080 "hi-there" aragh) + aragh))) + "checking #'equalp succeeds correctly, char-tables") + (Assert (eq nil (equalp #s(char-table type generic data (?\u0080 "hi-there")) + (let ((aragh (make-char-table 'generic))) + (put-char-table ?\u0080 "HI-THERE" aragh) + aragh))) + "checking #'equalp fails correctly, char-tables")) + +;; There are more tests available for equalp here: +;; +;; http://www.parhasard.net/xemacs/equalp-tests.el +;; +;; They are taken from Paul Dietz' GCL ANSI test suite, licensed under the +;; LGPL and part of GNU Common Lisp; the GCL people didn't respond to +;; several requests for information on who owned the copyright for the +;; files, so I haven't included the tests with XEmacs. Anyone doing XEmacs +;; development on equalp should still run them, though. Aidan Kehoe, Thu Dec +;; 31 14:53:52 GMT 2009. + +(loop + for special-form in '(multiple-value-call setq-default quote throw + save-current-buffer and or) + with not-special-form = nil + do + (Assert (special-form-p special-form) + (format "checking %S is a special operator" special-form)) + (setq not-special-form + (intern (format "%s-gMAu" (symbol-name special-form)))) + (Assert (not (special-form-p not-special-form)) + (format "checking %S is a special operator" special-form)) + (Assert (not (functionp special-form)) + (format "checking %S is not a function" special-form))) + +(loop + for real-function in '(find-file quote-maybe + - find-file-read-only) + do (Assert (functionp real-function) + (format "checking %S is a function" real-function))) ;;; end of lisp-tests.el
--- a/tests/glyph-test.el Fri Jan 01 19:45:39 2010 +0000 +++ b/tests/glyph-test.el Thu Jan 07 17:01:25 2010 +0000 @@ -1,3 +1,22 @@ +;;; Copyright (C) 1998 Andy Piper + +;;; This file is part of XEmacs. + +;;; XEmacs is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 2, or (at your +;;; option) any later version. + +;;; XEmacs is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;;; General Public License for more details. + +;;; You should have received a copy of the GNU General Public License +;;; along with XEmacs; see the file COPYING. If not, write to the Free +;;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;;; Boston, MA 02110-1301, USA. + (set-extent-begin-glyph (make-extent (point) (point)) (setq im (make-glyph [xbm :file "xemacsicon.xbm"])))
--- a/tests/gutter-test.el Fri Jan 01 19:45:39 2010 +0000 +++ b/tests/gutter-test.el Thu Jan 07 17:01:25 2010 +0000 @@ -1,3 +1,22 @@ +;;; Copyright (C) 1998 Andy Piper + +;;; This file is part of XEmacs. + +;;; XEmacs is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 2, or (at your +;;; option) any later version. + +;;; XEmacs is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;;; General Public License for more details. + +;;; You should have received a copy of the GNU General Public License +;;; along with XEmacs; see the file COPYING. If not, write to the Free +;;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;;; Boston, MA 02110-1301, USA. + (setq str "Hello\nAgain") (setq str-ext (make-extent 0 5 str)) (set-extent-begin-glyph