From: tomo Date: Thu, 26 Sep 2002 07:56:07 +0000 (+0000) Subject: Sync with r21-4-9-utf-2000-0_19-b5. X-Git-Tag: r21-4-9-utf-2000-0_19-5 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=4328b54281c1fa5907a34519e1825ca3654734da;p=chise%2Fxemacs-chise.git.1 Sync with r21-4-9-utf-2000-0_19-b5. --- diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index 7a7fc50..0000000 --- a/.cvsignore +++ /dev/null @@ -1,13 +0,0 @@ -typescript -config.log -Makefile -Installation -Installation.el -config.status -GNUmakefile -Makefile.in -so_locations -xemacs-packages -mule-packages -site-packages -gmon.out diff --git a/CHANGES-msw b/CHANGES-msw index 41b1460..dcd21d5 100644 --- a/CHANGES-msw +++ b/CHANGES-msw @@ -10,6 +10,56 @@ platforms. Caveat Emptor. See the file 'CHANGES-release' for a full list of mainline changes. +to XEmacs 21.4.8 "Honest Recruiter (Windows)" + + - All changes from 21.4.6 and 21.4.7. + - Make sure revert temporaries are not visiting files. Suggested by + Mike Alexander. + - File renaming fix from Mathias Grimmberger. + - Fix printer metrics on windows 95 from Jonathan Harris. + - Fix layout of widgets so that the search dialog works. + - Fix focus capture of widgets under X. + - Buffers tab doc fixes from John Palmieri. + - Sync with FSF custom :set-after behavior. + - Virtual window manager freeze fix from Rick Rankin. + - Fix various printing problems. + - Enable windows printing on cygwin. + +to XEmacs 21.4.7 "Economic Science (Windows)" + + - All changes from 21.4.6. + - Fix problems with auto-revert with noconfirm. + - Undo autoconf 2.5x changes. + - Undo 21.4.7 process change. + +to XEmacs 21.4.6 "Common Lisp (Windows)" + + - Made native registry entries match the installer. + - Fixed mousewheel lockups. + - Frame iconifcation fix from Adrian Aichner. + - Fixed some printing problems. + - Netinstaller updated to support kit revisions. + - Fixed customize popup menus. + - Fixed problems with too many dialog popups. + - Netinstaller fixed to correctly upgrade shortcuts when upgrading + core XEmacs. + - Fix for virtual window managers from Adrian Aichner. + - Installer registers all C++ file types. + - Short-filename fix from Peter Arius. + - Fix for GC assertions from Adrian Aichner. + - Winclient DDE client from Alastair Houghton. + - Fix event assert from Mike Alexander. + - Warning removal noticed by Ben Wing. + - Redisplay glyph height fix from Ben Wing. + - Printer margin fix from Jonathan Harris. + - Error dialog fix suggested by Thomas Vogler. + - Fixed revert-buffer to not revert in the case that there is + nothing to be done. + - Glyph-baseline fix from Nix. + - Fixed clipping of wide glyphs in non-zero-length extents. + - Windows build fixes. + - Fixed :initial-focus so that it works. + to XEmacs 21.4.5 "Civil Service (Windows)" - Fixed a scrollbar problem when selecting the frame with focus. diff --git a/CHANGES-release b/CHANGES-release index 949f8f6..1c4df12 100644 --- a/CHANGES-release +++ b/CHANGES-release @@ -22,6 +22,69 @@ build-time, and "documentation and data" changes. For more details, including developers involved and dates, see the ChangeLogs, or use CVS diff to view the patches. +to 21.4.9 "Informed Management" + +-- (**) (MS Windows) new winclient -- Andy Piper, others +-- (**) Mule auto-decompresses in find-library -- Steve Youngs +-- (**) PUI displays author and package versions, balloon-help -- Steve Youngs +-- (**) autoload and bind `replace-rectangle -- Didier Verna +-- Crash fix: (HP/UX) in Motif on updating non-labels -- Darryl Okahata, + Andy Piper +-- Crash fix: (MS Windows) on bogus time -- Nick Pakoulin, Stephen Turnbull +-- Crash fix: in handling of dead consoles -- Ben Wing +-- Crash fix: in process handling (several) -- Mike Sperber +-- Crash fix: in skip-chars -- Ben Wing, Stephen Turnbull +-- Crash fix: on finding non-existent XML file -- Stephen Turnbull, Ben Wing, + Michael Sperber +-- Fix: URL handling (Cygwin) -- Andy Piper +-- Fix: bogus arguments in custom-theme-set-variables -- Andy Piper +-- Fix: bogus reinitialization breaking ru-keys.el -- Dmitry Astapov +-- Fix: call-process-region deletes region after use -- Mike Alexander +-- Fix: case (in)sensitivity in replace-in-string -- Didier Verna +-- Fix: completion refers to correct history -- Christoph Wedler +-- Fix: don't use RTLD_GLOBAL in DSOs -- Jerry James +-- Fix: failures to redisplay (MS Windows) -- Mike Alexander, Andy Piper, + Adrian Aichner +-- Fix: file renaming (MS Windows) -- Mathias Grimmberger +-- Fix: find architecture directory correctly -- Jerry James +-- Fix: freeze on virtual desktop switch (MS Windows) -- Rick Rankin +-- Fix: glyph handling, especially baselines -- Andy Piper, Nix +-- Fix: handle popup dialogs correlcty (MS Windows) -- Andy Piper +-- Fix: mousewheel handling (MS Windows) -- Andy Piper +-- Fix: short file name handling (MS Windows) -- Andy Piper, Peter Arius +-- Fix: shrink to fit windows work -- Jerry James +-- Fix: toolbar doesn't update if gutters move bug -- Andy Piper +-- Fix: uneven horizontal window splits -- Jerry James +-- Improve: GNU synchs in Lisp API: join-line, :set-after, add-to-list, + custom-local-buffer, font-lock-doc-face, font-lock-builtin-face, + font-lock-constant-face, custom-set-default + -- Ville Skyttä, John Paul Wallington, Andy Piper +-- Improve: revert-buffer omits expensive operations if no change -- Andy Piper +-- Improve: change registry key to XEmacs (MS Windows) -- Andy Piper +-- Improve: 2d arg of split-string-by-char is required -- Brian A Palmer +-- Improve: printer handling on MS (native and Cygwin) -- Andy Piper +-- Fix: (Build) allow disabling Internet sockets in gnuserv -- Gregory Steuck +-- Fix: (Build) unsigned-signed compare warnings -- Stephen Turnbull +-- Fix: (Build/Cygwin) X + Windows build gets widgets -- Andy Piper +-- Fix: (Build/Unix) configure --usage -- Jerry James +-- Fix: (Build/Unix) protect linker args for PPC -- Malcolm Purvis +-- Improve: (Build) make-autoload supports define-derived-mode + -- Stephen Turnbull and Didier Verna +-- Improve: (Build/MS Windows) Maintainer build process -- Andy Piper +-- Improve: (Build/MS Windows) default to pdump -- Jonathan Harris +-- Improve: (Build/MS Windows) update documentation -- Jonathan Harris +-- Improve: (Build/Unix) 64-bit ELF support -- Gregory Steuck +-- Improve: (Build/Unix) OpenBSD support -- Gregory Steuck +-- Docs: "vanity" updates -- Andy Piper +-- Docs: Info minor updates -- Simon Josefsson, Ville Skyttä, Adrian Aichner, + Steve Youngs, Jerry James +-- Docs: Info new nodes: Regression Testing XEmacs -- Stephen Turnbull +-- Docs: Info typo fixes -- Adrian Aichner (many!) +-- Docs: docstring typo fixes -- John Paul Wallington, Stephen Turnbull, + Ville Skyttä, Andy Piper, Jerry James, Adrian Aichner +-- Docs: new FAQs: Killing is slow, Q2.0.15 -- Stephen Turnbull, Adrian Aichner +-- Docs: new PROBLEMS -- Stephen Turnbull + to XEmacs 21.4.8 "Honest Recruiter" -- Fix: "yank-pop twice" bug -- Jerry James, Stephen J. Turnbull diff --git a/ChangeLog b/ChangeLog index 3e661a8..eee29f4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -71,6 +71,70 @@ * configure.in: Add new option `--with-utf-2000'; define `UTF2000' if it is specified. +2002-08-23 Stephen J. Turnbull + + * XEmacs 21.4.9 "Informed Management" is released. + +2002-05-22 Andy Piper + + * build-msw-release.sh (TMPINSTALL): install to a tmpdir so that + xemacs can be running while we build a dist. + +2002-04-26 Andy Piper + + * configure.in: make sure that a combined X and windows build gets + widgets. + +2002-08-10 Stephen J. Turnbull + + * etc/package-index.LATEST.pgp: Update. + +2002-08-10 Stephen J. Turnbull + + * PROBLEMS (General advice): Define runtime and build problems. + +2002-07-24 Stephen J. Turnbull + + * PROBLEMS (Running, Linux): Rewrite "Hannibal Lecter" ld stuff. + +2002-07-12 Stephen J. Turnbull + + * etc/BETA (Large contributions): Typo fix per JPW. + +2002-07-12 Stephen J. Turnbull + + * etc/BETA (Large contributions): New section. Reorganize file. + +2002-06-04 Jerry James + + * configure.usage: Identify --with-modules as autodetecting. + +2002-07-04 Stephen J. Turnbull + + * PROBLEMS: Add two basic configuration questions. + +2002-05-17 Stephen J. Turnbull + + * PROBLEMS: Describe "Hannibal Lecter" crash on Linux. Reorder + Linux runtime issues section. + * INSTALL: Improve description of mail locking. + +2002-05-10 Stephen J. Turnbull + + * etc/OXYMORONS (21.4.15): New. Not a reference to Vin. + + * build-msw-release.sh: Synch to Andy. + +2002-03-18 Gregory Steuck + + * configure.in: Improve OpenBSD support: correct check for + socklen_t, check for libtermcap is libncurses. + +2002-02-28 Malcolm Purvis + + * configure.in: Protect nocomboreloc linker arguments to avoid + problem on the ppc. + 2002-05-09 Stephen J. Turnbull * XEmacs 21.4.8 "Honest Recruiter" is released. diff --git a/INSTALL b/INSTALL index 44a27d5..8282e8b 100644 --- a/INSTALL +++ b/INSTALL @@ -373,11 +373,16 @@ supports. MAIL LOCKING ============ -Find out what the preferred method for locking mail spool files is in -your environment. Presently, XEmacs supports lockf, flock, and dot -locking. Specify the locking method via the --mail-locking=METHOD -option to configure. Valid values for METHOD are --mail-locking are -`lockf', `flock', and `dot'. +For most platforms, configure or the src/s file have the preferred +method for locking mail spool files preconfigured. Otherwise you must +find out for youself. Do not choose a locking protocol "on the +objective merits." XEmacs must use the same method as other mail +utilities on your system, or you will lose mail. + +Presently, XEmacs supports lockf, flock, and dot locking. Specify the +locking method via the --mail-locking=METHOD option to configure. +Valid values for METHOD are --mail-locking are `lockf', `flock', and +`dot'. RUNNING CONFIGURE ================= diff --git a/PROBLEMS b/PROBLEMS index 52f2b30..ccce14f 100644 --- a/PROBLEMS +++ b/PROBLEMS @@ -17,19 +17,48 @@ Use `C-c C-f' to move to the next equal level of outline, and `C-c C-b' to move to previous equal level. `C-h m' will give more info about the Outline mode. -Also, Try finding the things you need using one of the search commands +Also, try finding the things you need using one of the search commands XEmacs provides (e.g. `C-s'). General advice: + WATCH OUT for your init file! (~/.xemacs/init.el or ~/.emacs) If you observe strange problems, invoke XEmacs with the `-vanilla' option and see if you can repeat the problem. + Note that most of the problems described here manifest at RUN + time, even those described as BUILD problems. It is quite unusual + for a released XEmacs to fail to build. So a "build problem" + requires you to tweak the build environment, then rebuild XEmacs. + A "runtime problem" is one that can be fixed by proper + configuration of the existing build. Compatibility problems and + Mule issues are generally runtime problems, but are treated + separately for convenience. + * Problems with building XEmacs =============================== ** General + Much general information is in INSTALL. If it's covered in + INSTALL, we don't repeat it here. + +*** How does I configure to get the buffer tabs/progress bars? + +These features depend on support for "native widgets". Use the +--with-widgets option to configure. Configuration of widgets is +automatic for "modern" toolkits (MS Windows, GTK, and Motif), but if +you are using Xt and the Athena widgets, you will probably want to +specify a "3d" widget set. See configure --usage, and don't forget to +install the corresponding development libraries. + +*** I know I have libfoo installed, but configure doesn't find it. + +Typical of Linux systems with package managers. To link with a shared +library, you only need the shared library. To compile objects that +link with it, you need the headers---and distros don't provide them with +the libraries. You need the additional "development" package, too. + *** Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures without also using `-fno-schedule-insns'. @@ -1362,6 +1391,34 @@ affected virtually all ioctl() calls. ** Linux +*** XEmacs crashes on startup, in make-frame. + +Typically the Lisp backtrace includes + + make-frame(nil #) + +somewhere near the top. One problem is due to an improvement in GNU +ld that sorts the ELF reloc sections in the executable, giving +dramatic speedups in startup for large executables. It also confuses +the traditional unexec code in XEmacs, leading to the core dump. The +solution is to use either the `--ldflags="-z nocombreloc" or the +"--pdump" option to configure. "--pdump" is recommended. + +Recent 21.4 and 21.5 versions of XEmacs autodetect this feature of ld +in configure. Unfortunately, Red Hat and SuSE (at least) distributed +prerelease versions of ld (numbered around 2.11.90.x.y, nicknamed +"Hannibal Lecter" at XEmacs.ORG) where autodetection fails but the +feature is enabled by default. The recommended procedure is to +upgrade to binutils >= 2.12 and rerun configure. Otherwise you must +apply the flags by hand. + +Andrew Jaffe reported a problem on Red Hat 7.3 with identical +symptoms, except that ld was already being invoked with -z +nocombreloc. Switching dialogs and widgets from Motif to Athena +eliminated the problem. Both LessTif and OpenMotif were installed, +and a bad interaction is suspected. This problem has not yet been +fully analyzed. + *** Debian **** XEmacs warns "Symbol `toggleClassRec' has different size in shared object, consider re-linking / Symbol `labelClassRec' has different @@ -1456,30 +1513,6 @@ http://www.geocities.com/kensanata/color-emacs.html#ansicolors This is written for the mainline GNU Emacs but the author has made efforts to adapt it to XEmacs. YMMV. -*** You get crashes in a non-C locale with Linux GNU Libc 2.0. - -Internationalization was not the top priority for GNU Libc 2.0. -As of this writing (1998-12-28) you may get crashes while running -XEmacs in a non-C locale. For example, `LC_ALL=en_US xemacs' crashes -while `LC_ALL=C xemacs' runs fine. This happens for example with GNU -libc 2.0.7. Installing libintl.a and libintl.h built from gettext -0.10.35 and re-building XEmacs solves the crashes. Presumably soon -everyone will upgrade to GNU Libc 2.1 and this problem will go away. - -*** `C-z', or `M-x suspend-emacs' hangs instead of suspending. - -If you build with `gpm' support on Linux, you cannot suspend XEmacs -because gpm installs a buggy SIGTSTP handler. Either compile with -`--with-gpm=no', or don't suspend XEmacs on the Linux console until -this bug is fixed. - -*** With certain fonts, when the cursor appears on a character, the -character doesn't appear--you get a solid box instead. - -One user on a Linux system reported that this problem went away with -installation of a new X server. The failing server was XFree86 3.1.1. -XFree86 3.1.2 works. - *** Slow startup on Linux. People using systems based on the Linux kernel sometimes report that @@ -1561,6 +1594,30 @@ second SIGUSR1 causes the default behavior of ending the process. The solution is either to build XEmacs with -sound=native,noesd or to make sure that esd is in fact running. +*** You get crashes in a non-C locale with Linux GNU Libc 2.0. + +Internationalization was not the top priority for GNU Libc 2.0. +As of this writing (1998-12-28) you may get crashes while running +XEmacs in a non-C locale. For example, `LC_ALL=en_US xemacs' crashes +while `LC_ALL=C xemacs' runs fine. This happens for example with GNU +libc 2.0.7. Installing libintl.a and libintl.h built from gettext +0.10.35 and re-building XEmacs solves the crashes. Presumably soon +everyone will upgrade to GNU Libc 2.1 and this problem will go away. + +*** `C-z', or `M-x suspend-emacs' hangs instead of suspending. + +If you build with `gpm' support on Linux, you cannot suspend XEmacs +because gpm installs a buggy SIGTSTP handler. Either compile with +`--with-gpm=no', or don't suspend XEmacs on the Linux console until +this bug is fixed. + +*** With certain fonts, when the cursor appears on a character, the +character doesn't appear--you get a solid box instead. + +One user on a Linux system reported that this problem went away with +installation of a new X server. The failing server was XFree86 3.1.1. +XFree86 3.1.2 works. + ** IRIX *** On Irix, I don't see the toolbar icons and I'm getting lots of entries in the warnings buffer. diff --git a/build-msw-release.sh b/build-msw-release.sh index 7cf8ccd..0d396b4 100755 --- a/build-msw-release.sh +++ b/build-msw-release.sh @@ -7,6 +7,7 @@ # configuration NATIVE_ZLIB_DIR=/usr/local/mingw/lib PROGRAM_FILES='c:/Program Files/XEmacs' +TMPINSTALL=/tmp/local # no configuration past this point INSTALL= @@ -29,13 +30,9 @@ done # decide on names emacs_ver=${emacs_major_version}.${emacs_minor_version}.${emacs_beta_version} -cygwin_tarball=xemacs-i686-pc-cygwin-${emacs_ver}.tar.gz -win32_tarball=xemacs-i586-pc-win32-${emacs_ver}.tar.gz +cygwin_tarball=xemacs-i686-pc-cygwin-${emacs_ver}${emacs_kit_version}.tar.gz +win32_tarball=xemacs-i586-pc-win32-${emacs_ver}${emacs_kit_version}.tar.gz -# create a dist directory -mkdir -p windows/cygwin32 -mkdir -p windows/win32 -mkdir -p /usr/local DISTDIR=`pwd`/windows # check to see if we should build @@ -49,8 +46,18 @@ if [ -f Makefile ] ; then make distclean fi +# nuke the dist dir. +rm -rf windows + +# create a dist directory +mkdir -p windows/cygwin32 +mkdir -p windows/win32 +mkdir -p /usr/local +mkdir -p ${TMPINSTALL} + # first build win32 (cd nt; + nmake -f xemacs.mak clean; nmake -f xemacs.mak) (cd "${PROGRAM_FILES}"; rm -rf ./XEmacs-${emacs_ver}) @@ -79,8 +86,8 @@ cp netinstall/setup.exe \ ./XEmacs-${emacs_ver}) # make the tarball -make install -(cd /usr/local; +make prefix=${TMPINSTALL} bindir=${TMPINSTALL}/bin/i686-pc-cygwin install +(cd ${TMPINSTALL}; tar czvf ${DISTDIR}/cygwin32/${cygwin_tarball} \ ./bin/i686-pc-cygwin \ ./lib/xemacs-${emacs_ver} \ @@ -91,7 +98,8 @@ make install ./man/man1/gnuclient.1 \ ./man/man1/gnudoit.1 \ ./man/man1/gnuserv.1 \ - ./man/man1/xemacs.1) + ./man/man1/xemacs.1; + rm -rf bin lib man) # figure out the ini file. cygwin_tarball_size=`ls -l windows/cygwin32/${cygwin_tarball} | awk '{ print $5; }'` @@ -99,7 +107,8 @@ win32_tarball_size=`ls -l windows/win32/${win32_tarball} | awk '{ print $5; }'` (cd netinstall; make CYGWIN_SIZE=${cygwin_tarball_size} \ - WIN32_SIZE=${win32_tarball_size} setup-bin.ini ) + WIN32_SIZE=${win32_tarball_size} \ + KIT_VERSION=${emacs_kit_version} setup-bin.ini ) cp netinstall/setup-bin.ini windows # tidy up diff --git a/configure b/configure index 3cdf766..1a990ad 100755 --- a/configure +++ b/configure @@ -2847,6 +2847,17 @@ esac echo "$ac_t""no" 1>&6 fi +if test "$pdump" != "yes"; then + echo $ac_n "checking for \"-z nocombreloc\" linker flag""... $ac_c" 1>&6 +echo "configure:2853: checking for \"-z nocombreloc\" linker flag" >&5 + case "`ld --help 2>&1`" in + *-z\ nocombreloc* ) echo "$ac_t""yes" 1>&6 + ld_switch_site="-z nocombreloc $ld_switch_site" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-z nocombreloc\" to \$ld_switch_site"; fi ;; + *) echo "$ac_t""no" 1>&6 ;; + esac +fi + + if test "$GCC" = "yes"; then set x $ld_switch_system; shift; ld_switch_system="" @@ -2875,6 +2886,19 @@ if test "$GCC" = "yes"; then fi if test "$GCC" = "yes"; then + set x $ld_switch_site; shift; ld_switch_site="" + while test -n "$1"; do + case $1 in + -L | -l | -u ) ld_switch_site="$ld_switch_site $1 $2"; shift ;; + -L* | -l* | -u* | -Wl* | -pg ) ld_switch_site="$ld_switch_site $1" ;; + -Xlinker* ) ;; + * ) ld_switch_site="$ld_switch_site -Xlinker $1" ;; + esac + shift + done +fi + +if test "$GCC" = "yes"; then set x $LDFLAGS; shift; LDFLAGS="" while test -n "$1"; do case $1 in @@ -2914,7 +2938,7 @@ test "$pdump" = "yes" && extra_objs="$extra_objs dumper.o" && if test "$extra_v fi echo $ac_n "checking for dynodump""... $ac_c" 1>&6 -echo "configure:2918: checking for dynodump" >&5 +echo "configure:2942: checking for dynodump" >&5 if test "$unexec" != "unexsol2.o"; then echo "$ac_t""no" 1>&6 else @@ -2952,12 +2976,12 @@ if test "$unexec" = "unexaix.o"; then done echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6 -echo "configure:2956: checking for terminateAndUnload in -lC" >&5 +echo "configure:2980: checking for terminateAndUnload in -lC" >&5 ac_lib_var=`echo C'_'terminateAndUnload | sed 'y%./+-%__p_%'` xe_check_libs=" -lC " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3076,7 +3100,7 @@ fi if test "$add_runtime_path" = "yes"; then echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6 -echo "configure:3080: checking "for runtime libraries flag"" >&5 +echo "configure:3104: checking "for runtime libraries flag"" >&5 case "$opsys" in sol2 ) dash_r="-R" ;; decosf* | linux* | irix*) dash_r="-rpath " ;; @@ -3098,14 +3122,14 @@ if test "$GCC" = "yes"; then done fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* dash_r="$try_dash_r" else @@ -3206,10 +3230,10 @@ else fi after_morecore_hook_exists=yes echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6 -echo "configure:3210: checking for malloc_set_state" >&5 +echo "configure:3234: checking for malloc_set_state" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3260: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_malloc_set_state=yes" else @@ -3252,16 +3276,16 @@ doug_lea_malloc=no fi echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6 -echo "configure:3256: checking whether __after_morecore_hook exists" >&5 +echo "configure:3280: checking whether __after_morecore_hook exists" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -3317,7 +3341,7 @@ fi # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3321: checking for $ac_word" >&5 +echo "configure:3345: checking for $ac_word" >&5 if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -3372,7 +3396,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:3376: checking for a BSD compatible install" >&5 +echo "configure:3400: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" @@ -3426,7 +3450,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3430: checking for $ac_word" >&5 +echo "configure:3454: checking for $ac_word" >&5 if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. @@ -3458,15 +3482,15 @@ for ac_hdr in a.out.h elf.h cygwin/version.h fcntl.h inttypes.h libg do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3462: checking for $ac_hdr" >&5 +echo "configure:3486: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3470: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3494: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3496,10 +3520,10 @@ fi done echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:3500: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:3524: checking for sys/wait.h that is POSIX.1 compatible" >&5 cat > conftest.$ac_ext < #include @@ -3515,7 +3539,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:3519: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3543: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -3539,10 +3563,10 @@ EOF fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:3543: checking for ANSI C header files" >&5 +echo "configure:3567: checking for ANSI C header files" >&5 cat > conftest.$ac_ext < #include @@ -3550,7 +3574,7 @@ cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3554: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3578: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3567,7 +3591,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -3585,7 +3609,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -3603,7 +3627,7 @@ fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -3614,7 +3638,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:3618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:3642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -3640,10 +3664,10 @@ EOF fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:3644: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:3668: checking whether time.h and sys/time.h may both be included" >&5 cat > conftest.$ac_ext < #include @@ -3652,7 +3676,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:3656: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3680: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -3676,10 +3700,10 @@ EOF fi echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 -echo "configure:3680: checking for sys_siglist declaration in signal.h or unistd.h" >&5 +echo "configure:3704: checking for sys_siglist declaration in signal.h or unistd.h" >&5 cat > conftest.$ac_ext < #include @@ -3691,7 +3715,7 @@ int main() { char *msg = *(sys_siglist + 1); ; return 0; } EOF -if { (eval echo configure:3695: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3719: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes else @@ -3717,9 +3741,9 @@ fi echo $ac_n "checking for utime""... $ac_c" 1>&6 -echo "configure:3721: checking for utime" >&5 +echo "configure:3745: checking for utime" >&5 cat > conftest.$ac_ext < #include @@ -3727,7 +3751,7 @@ int main() { struct utimbuf x; x.actime = x.modtime = 0; utime ("/", &x); ; return 0; } EOF -if { (eval echo configure:3731: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3755: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 { test "$extra_verbose" = "yes" && cat << \EOF @@ -3746,10 +3770,10 @@ else for ac_func in utimes do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3750: checking for $ac_func" >&5 +echo "configure:3774: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3804,10 +3828,10 @@ rm -f conftest* echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:3808: checking return type of signal handlers" >&5 +echo "configure:3832: checking return type of signal handlers" >&5 cat > conftest.$ac_ext < #include @@ -3824,7 +3848,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:3828: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3852: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -3846,10 +3870,10 @@ EOF echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3850: checking for size_t" >&5 +echo "configure:3874: checking for size_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3880,10 +3904,10 @@ EOF fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:3884: checking for pid_t" >&5 +echo "configure:3908: checking for pid_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3914,10 +3938,10 @@ EOF fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:3918: checking for uid_t in sys/types.h" >&5 +echo "configure:3942: checking for uid_t in sys/types.h" >&5 cat > conftest.$ac_ext < EOF @@ -3953,10 +3977,10 @@ EOF fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:3957: checking for mode_t" >&5 +echo "configure:3981: checking for mode_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3987,10 +4011,10 @@ EOF fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3991: checking for off_t" >&5 +echo "configure:4015: checking for off_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -4021,10 +4045,10 @@ EOF fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:4025: checking for ssize_t" >&5 +echo "configure:4049: checking for ssize_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -4056,10 +4080,11 @@ fi echo $ac_n "checking for socklen_t""... $ac_c" 1>&6 -echo "configure:4060: checking for socklen_t" >&5 +echo "configure:4084: checking for socklen_t" >&5 cat > conftest.$ac_ext < #include socklen_t x; @@ -4067,7 +4092,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:4071: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4096: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -4076,8 +4101,9 @@ else rm -rf conftest* cat > conftest.$ac_ext < #include int accept (int, struct sockaddr *, size_t *); @@ -4085,7 +4111,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:4089: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4115: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""size_t" 1>&6 @@ -4117,9 +4143,9 @@ fi rm -f conftest* echo $ac_n "checking for struct timeval""... $ac_c" 1>&6 -echo "configure:4121: checking for struct timeval" >&5 +echo "configure:4147: checking for struct timeval" >&5 cat > conftest.$ac_ext < @@ -4135,7 +4161,7 @@ int main() { static struct timeval x; x.tv_sec = x.tv_usec; ; return 0; } EOF -if { (eval echo configure:4139: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4165: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 HAVE_TIMEVAL=yes @@ -4157,10 +4183,10 @@ fi rm -f conftest* echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 -echo "configure:4161: checking whether struct tm is in sys/time.h or time.h" >&5 +echo "configure:4187: checking whether struct tm is in sys/time.h or time.h" >&5 cat > conftest.$ac_ext < #include @@ -4168,7 +4194,7 @@ int main() { struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:4172: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4198: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -4192,10 +4218,10 @@ EOF fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 -echo "configure:4196: checking for tm_zone in struct tm" >&5 +echo "configure:4222: checking for tm_zone in struct tm" >&5 cat > conftest.$ac_ext < #include <$ac_cv_struct_tm> @@ -4203,7 +4229,7 @@ int main() { struct tm tm; tm.tm_zone; ; return 0; } EOF -if { (eval echo configure:4207: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4233: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes else @@ -4226,10 +4252,10 @@ EOF else echo $ac_n "checking for tzname""... $ac_c" 1>&6 -echo "configure:4230: checking for tzname" >&5 +echo "configure:4256: checking for tzname" >&5 cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ @@ -4239,7 +4265,7 @@ int main() { atoi(*tzname); ; return 0; } EOF -if { (eval echo configure:4243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_var_tzname=yes else @@ -4265,10 +4291,10 @@ fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:4269: checking for working const" >&5 +echo "configure:4295: checking for working const" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -4342,7 +4368,7 @@ fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:4346: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:4372: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` cat > conftestmake <<\EOF @@ -4367,12 +4393,12 @@ fi echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:4371: checking whether byte ordering is bigendian" >&5 +echo "configure:4397: checking whether byte ordering is bigendian" >&5 ac_cv_c_bigendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext < #include @@ -4383,11 +4409,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:4387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4413: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # It does; now see whether it defined to BIG_ENDIAN or not. cat > conftest.$ac_ext < #include @@ -4398,7 +4424,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:4402: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4428: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -4415,7 +4441,7 @@ fi rm -f conftest* if test $ac_cv_c_bigendian = unknown; then cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_bigendian=no else @@ -4455,10 +4481,10 @@ fi echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:4459: checking size of short" >&5 +echo "configure:4485: checking size of short" >&5 cat > conftest.$ac_ext < #include @@ -4470,7 +4496,7 @@ main() exit(0); } EOF -if { (eval echo configure:4474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4500: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_short=`cat conftestval` else @@ -4498,10 +4524,10 @@ if test "$ac_cv_sizeof_short" = 0; then exit 1 fi echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:4502: checking size of int" >&5 +echo "configure:4528: checking size of int" >&5 cat > conftest.$ac_ext < #include @@ -4513,7 +4539,7 @@ main() exit(0); } EOF -if { (eval echo configure:4517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4543: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_int=`cat conftestval` else @@ -4535,10 +4561,10 @@ EOF echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:4539: checking size of long" >&5 +echo "configure:4565: checking size of long" >&5 cat > conftest.$ac_ext < #include @@ -4550,7 +4576,7 @@ main() exit(0); } EOF -if { (eval echo configure:4554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_long=`cat conftestval` else @@ -4572,10 +4598,10 @@ EOF echo $ac_n "checking size of long long""... $ac_c" 1>&6 -echo "configure:4576: checking size of long long" >&5 +echo "configure:4602: checking size of long long" >&5 cat > conftest.$ac_ext < #include @@ -4587,7 +4613,7 @@ main() exit(0); } EOF -if { (eval echo configure:4591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_long_long=`cat conftestval` else @@ -4609,10 +4635,10 @@ EOF echo $ac_n "checking size of void *""... $ac_c" 1>&6 -echo "configure:4613: checking size of void *" >&5 +echo "configure:4639: checking size of void *" >&5 cat > conftest.$ac_ext < #include @@ -4624,7 +4650,7 @@ main() exit(0); } EOF -if { (eval echo configure:4628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_void_p=`cat conftestval` else @@ -4647,7 +4673,7 @@ EOF echo $ac_n "checking for long file names""... $ac_c" 1>&6 -echo "configure:4651: checking for long file names" >&5 +echo "configure:4677: checking for long file names" >&5 ac_cv_sys_long_file_names=yes # Test for long file names in all the places we know might matter: @@ -4693,10 +4719,10 @@ fi echo $ac_n "checking for sin""... $ac_c" 1>&6 -echo "configure:4697: checking for sin" >&5 +echo "configure:4723: checking for sin" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_sin=yes" else @@ -4737,12 +4763,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 -echo "configure:4741: checking for sin in -lm" >&5 +echo "configure:4767: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` xe_check_libs=" -lm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4797,14 +4823,14 @@ EOF cat > conftest.$ac_ext < int main() { return atanh(1.0) + asinh(1.0) + acosh(1.0); ; return 0; } EOF -if { (eval echo configure:4808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_INVERSE_HYPERBOLIC @@ -4821,14 +4847,14 @@ fi rm -f conftest* echo "checking type of mail spool file locking" 1>&6 -echo "configure:4825: checking type of mail spool file locking" >&5 +echo "configure:4851: checking type of mail spool file locking" >&5 for ac_func in lockf flock do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4829: checking for $ac_func" >&5 +echo "configure:4855: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4933,12 +4959,12 @@ test "$mail_locking" = "locking" -a "$ac_cv_func_locking" != "yes" && \ case "$opsys" in decosf*) echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6 -echo "configure:4937: checking for cma_open in -lpthreads" >&5 +echo "configure:4963: checking for cma_open in -lpthreads" >&5 ac_lib_var=`echo pthreads'_'cma_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lpthreads " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4986,7 +5012,7 @@ esac echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6 -echo "configure:4990: checking whether the -xildoff compiler flag is required" >&5 +echo "configure:5016: checking whether the -xildoff compiler flag is required" >&5 if ${CC-cc} '-###' -xildon no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then echo "$ac_t""no" 1>&6; @@ -4998,7 +5024,7 @@ fi if test "$opsys" = "sol2"; then if test "$os_release" -ge 56; then echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6 -echo "configure:5002: checking for \"-z ignore\" linker flag" >&5 +echo "configure:5028: checking for \"-z ignore\" linker flag" >&5 case "`ld -h 2>&1`" in *-z\ ignore\|record* ) echo "$ac_t""yes" 1>&6 ld_switch_site="-z ignore $ld_switch_site" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-z ignore\" to \$ld_switch_site"; fi ;; @@ -5007,19 +5033,9 @@ echo "configure:5002: checking for \"-z ignore\" linker flag" >&5 fi fi -if test "$pdump" != "yes"; then - echo $ac_n "checking for \"-z nocombreloc\" linker flag""... $ac_c" 1>&6 -echo "configure:5013: checking for \"-z nocombreloc\" linker flag" >&5 - case "`ld --help 2>&1`" in - *-z\ nocombreloc* ) echo "$ac_t""yes" 1>&6 - ld_switch_site="-z nocombreloc $ld_switch_site" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-z nocombreloc\" to \$ld_switch_site"; fi ;; - *) echo "$ac_t""no" 1>&6 ;; - esac -fi - echo "checking "for specified window system"" 1>&6 -echo "configure:5023: checking "for specified window system"" >&5 +echo "configure:5039: checking "for specified window system"" >&5 GNOME_CONFIG=no @@ -5027,7 +5043,7 @@ GTK_CONFIG=no if test "$with_gnome" != "no"; then echo $ac_n "checking for GNOME configuration script""... $ac_c" 1>&6 -echo "configure:5031: checking for GNOME configuration script" >&5 +echo "configure:5047: checking for GNOME configuration script" >&5 for possible in gnome-config do possible_version=`${possible} --version 2> /dev/null` @@ -5058,7 +5074,7 @@ fi if test "$with_gtk" != "no";then echo $ac_n "checking for GTK configuration script""... $ac_c" 1>&6 -echo "configure:5062: checking for GTK configuration script" >&5 +echo "configure:5078: checking for GTK configuration script" >&5 for possible in gtk12-config gtk14-config gtk-config do possible_version=`${possible} --version 2> /dev/null` @@ -5080,18 +5096,18 @@ fi if test "${GTK_CONFIG}" != "no"; then echo $ac_n "checking gtk version""... $ac_c" 1>&6 -echo "configure:5084: checking gtk version" >&5 +echo "configure:5100: checking gtk version" >&5 GTK_VERSION=`${GTK_CONFIG} --version` echo "$ac_t""${GTK_VERSION}" 1>&6 echo $ac_n "checking gtk libs""... $ac_c" 1>&6 -echo "configure:5089: checking gtk libs" >&5 +echo "configure:5105: checking gtk libs" >&5 GTK_LIBS=`${GTK_CONFIG} --libs` libs_gtk="$libs_gtk ${GTK_LIBS}" && if test "$extra_verbose" = "yes"; then echo " Appending \"${GTK_LIBS}\" to \$libs_gtk"; fi echo "$ac_t""${GTK_LIBS}" 1>&6 echo $ac_n "checking gtk cflags""... $ac_c" 1>&6 -echo "configure:5095: checking gtk cflags" >&5 +echo "configure:5111: checking gtk cflags" >&5 GTK_CFLAGS=`${GTK_CONFIG} --cflags` if test "$GCC" = "yes"; then GTK_CFLAGS="${GTK_CFLAGS} -Wno-shadow" @@ -5101,19 +5117,19 @@ echo "configure:5095: checking gtk cflags" >&5 echo $ac_n "checking for main in -lgdk_imlib""... $ac_c" 1>&6 -echo "configure:5105: checking for main in -lgdk_imlib" >&5 +echo "configure:5121: checking for main in -lgdk_imlib" >&5 ac_lib_var=`echo gdk_imlib'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lgdk_imlib " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5135,12 +5151,12 @@ fi echo $ac_n "checking for Imlib_init in -lImlib""... $ac_c" 1>&6 -echo "configure:5139: checking for Imlib_init in -lImlib" >&5 +echo "configure:5155: checking for Imlib_init in -lImlib" >&5 ac_lib_var=`echo Imlib'_'Imlib_init | sed 'y%./+-%__p_%'` xe_check_libs=" -lImlib " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5174,10 +5190,10 @@ fi for ac_func in gdk_imlib_init do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5178: checking for $ac_func" >&5 +echo "configure:5194: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5279,15 +5295,15 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5283: checking for $ac_hdr" >&5 +echo "configure:5299: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5291: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5307: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5318,19 +5334,19 @@ done echo $ac_n "checking for main in -lxml""... $ac_c" 1>&6 -echo "configure:5322: checking for main in -lxml" >&5 +echo "configure:5338: checking for main in -lxml" >&5 ac_lib_var=`echo xml'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lxml " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5352,19 +5368,19 @@ fi echo $ac_n "checking for main in -lglade""... $ac_c" 1>&6 -echo "configure:5356: checking for main in -lglade" >&5 +echo "configure:5372: checking for main in -lglade" >&5 ac_lib_var=`echo glade'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lglade " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5386,19 +5402,19 @@ fi echo $ac_n "checking for main in -lglade-gnome""... $ac_c" 1>&6 -echo "configure:5390: checking for main in -lglade-gnome" >&5 +echo "configure:5406: checking for main in -lglade-gnome" >&5 ac_lib_var=`echo glade-gnome'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lglade-gnome " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5419,7 +5435,7 @@ fi cat > conftest.$ac_ext < EOF @@ -5478,7 +5494,7 @@ if test "$with_x11" != "no"; then # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 -echo "configure:5482: checking for X" >&5 +echo "configure:5498: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -5538,12 +5554,12 @@ if test "$ac_x_includes" = NO; then # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5547: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5563: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5612,14 +5628,14 @@ if test "$ac_x_libraries" = NO; then ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -5728,17 +5744,17 @@ else case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 -echo "configure:5732: checking whether -R must be followed by a space" >&5 +echo "configure:5748: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else @@ -5754,14 +5770,14 @@ rm -f conftest* else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else @@ -5797,12 +5813,12 @@ ac_cv_lib_dnet_dnet_ntoa=no else echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:5801: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:5817: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` xe_check_libs=" -ldnet " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5837,12 +5853,12 @@ fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 -echo "configure:5841: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:5857: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` xe_check_libs=" -ldnet_stub " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5873: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5882,10 +5898,10 @@ fi # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:5886: checking for gethostbyname" >&5 +echo "configure:5902: checking for gethostbyname" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -5929,12 +5945,12 @@ fi if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:5933: checking for gethostbyname in -lnsl" >&5 +echo "configure:5949: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` xe_check_libs=" -lnsl " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5975,10 +5991,10 @@ fi # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:5979: checking for connect" >&5 +echo "configure:5995: checking for connect" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -6024,12 +6040,12 @@ fi xe_msg_checking="for connect in -lsocket" test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:6028: checking "$xe_msg_checking"" >&5 +echo "configure:6044: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` xe_check_libs=" -lsocket $X_EXTRA_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6064,10 +6080,10 @@ fi # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 -echo "configure:6068: checking for remove" >&5 +echo "configure:6084: checking for remove" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_remove=yes" else @@ -6111,12 +6127,12 @@ fi if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:6115: checking for remove in -lposix" >&5 +echo "configure:6131: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` xe_check_libs=" -lposix " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6147: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6151,10 +6167,10 @@ fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:6155: checking for shmat" >&5 +echo "configure:6171: checking for shmat" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6197: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else @@ -6198,12 +6214,12 @@ fi if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:6202: checking for shmat in -lipc" >&5 +echo "configure:6218: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` xe_check_libs=" -lipc " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6250,12 +6266,12 @@ fi xe_msg_checking="for IceConnectionNumber in -lICE" test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:6254: checking "$xe_msg_checking"" >&5 +echo "configure:6270: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` xe_check_libs=" -lICE $X_EXTRA_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6433,7 +6449,7 @@ EOF echo "checking for X defines extracted by xmkmf" 1>&6 -echo "configure:6437: checking for X defines extracted by xmkmf" >&5 +echo "configure:6453: checking for X defines extracted by xmkmf" >&5 rm -fr conftestdir if mkdir conftestdir; then cd conftestdir @@ -6482,15 +6498,15 @@ EOF ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6 -echo "configure:6486: checking for X11/Intrinsic.h" >&5 +echo "configure:6502: checking for X11/Intrinsic.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6494: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6510: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6514,12 +6530,12 @@ fi echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:6518: checking for XOpenDisplay in -lX11" >&5 +echo "configure:6534: checking for XOpenDisplay in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6555,12 +6571,12 @@ fi xe_msg_checking="for XGetFontProperty in -lX11" test -n "-b i486-linuxaout" && xe_msg_checking="$xe_msg_checking using extra libs -b i486-linuxaout" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:6559: checking "$xe_msg_checking"" >&5 +echo "configure:6575: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo X11'_'XGetFontProperty | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 -b i486-linuxaout" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6598,12 +6614,12 @@ fi echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6 -echo "configure:6602: checking for XShapeSelectInput in -lXext" >&5 +echo "configure:6618: checking for XShapeSelectInput in -lXext" >&5 ac_lib_var=`echo Xext'_'XShapeSelectInput | sed 'y%./+-%__p_%'` xe_check_libs=" -lXext " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6637,12 +6653,12 @@ fi echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6 -echo "configure:6641: checking for XtOpenDisplay in -lXt" >&5 +echo "configure:6657: checking for XtOpenDisplay in -lXt" >&5 ac_lib_var=`echo Xt'_'XtOpenDisplay | sed 'y%./+-%__p_%'` xe_check_libs=" -lXt " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6676,14 +6692,14 @@ fi echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6 -echo "configure:6680: checking the version of X11 being used" >&5 +echo "configure:6696: checking the version of X11 being used" >&5 cat > conftest.$ac_ext < int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; } EOF -if { (eval echo configure:6687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:6703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest foobar; x11_release=$? else @@ -6714,10 +6730,10 @@ EOF for ac_func in XConvertCase do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6718: checking for $ac_func" >&5 +echo "configure:6734: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6772,15 +6788,15 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6776: checking for $ac_hdr" >&5 +echo "configure:6792: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6784: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6800: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6813,10 +6829,10 @@ done for ac_func in XRegisterIMInstantiateCallback do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6817: checking for $ac_func" >&5 +echo "configure:6833: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6859: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6867,9 +6883,9 @@ fi done echo $ac_n "checking for standard XRegisterIMInstantiateCallback prototype""... $ac_c" 1>&6 -echo "configure:6871: checking for standard XRegisterIMInstantiateCallback prototype" >&5 +echo "configure:6887: checking for standard XRegisterIMInstantiateCallback prototype" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6901: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -6902,12 +6918,12 @@ rm -f conftest* test -z "$with_xmu" && { echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6 -echo "configure:6906: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 +echo "configure:6922: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 ac_lib_var=`echo Xmu'_'XmuReadBitmapDataFromFile | sed 'y%./+-%__p_%'` xe_check_libs=" -lXmu " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6957,19 +6973,19 @@ EOF echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 -echo "configure:6961: checking for main in -lXbsd" >&5 +echo "configure:6977: checking for main in -lXbsd" >&5 ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lXbsd " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7006,22 +7022,22 @@ fi fi if test "$with_msw" != "no"; then echo "checking for MS-Windows" 1>&6 -echo "configure:7010: checking for MS-Windows" >&5 +echo "configure:7026: checking for MS-Windows" >&5 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6 -echo "configure:7013: checking for main in -lgdi32" >&5 +echo "configure:7029: checking for main in -lgdi32" >&5 ac_lib_var=`echo gdi32'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lgdi32 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7094,12 +7110,12 @@ EOF fi fi cat > conftest.$ac_ext < int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; } EOF -if { (eval echo configure:7103: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:7119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then need_event_unixoid=yes; { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_MSG_SELECT @@ -7163,15 +7179,15 @@ fi if test "$with_x11" = "yes"; then ac_safe=`echo "X11/extensions/shape.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/extensions/shape.h""... $ac_c" 1>&6 -echo "configure:7167: checking for X11/extensions/shape.h" >&5 +echo "configure:7183: checking for X11/extensions/shape.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7175: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7191: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7223,7 +7239,7 @@ case "$x_libraries" in *X11R4* ) esac echo "checking for WM_COMMAND option" 1>&6 -echo "configure:7227: checking for WM_COMMAND option" >&5; +echo "configure:7243: checking for WM_COMMAND option" >&5; if test "$with_wmcommand" != "no"; then { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_WMCOMMAND @@ -7238,15 +7254,15 @@ fi test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no test -z "$with_xauth" && { ac_safe=`echo "X11/Xauth.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xauth.h""... $ac_c" 1>&6 -echo "configure:7242: checking for X11/Xauth.h" >&5 +echo "configure:7258: checking for X11/Xauth.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7250: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7266: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7269,12 +7285,12 @@ fi } test -z "$with_xauth" && { echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6 -echo "configure:7273: checking for XauGetAuthByAddr in -lXau" >&5 +echo "configure:7289: checking for XauGetAuthByAddr in -lXau" >&5 ac_lib_var=`echo Xau'_'XauGetAuthByAddr | sed 'y%./+-%__p_%'` xe_check_libs=" -lXau " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7330,15 +7346,15 @@ if test "$with_tooltalk" != "no" ; then for dir in "" "Tt/" "desktop/" ; do ac_safe=`echo "${dir}tt_c.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ${dir}tt_c.h""... $ac_c" 1>&6 -echo "configure:7334: checking for ${dir}tt_c.h" >&5 +echo "configure:7350: checking for ${dir}tt_c.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7342: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7358: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7374,12 +7390,12 @@ if test "$with_tooltalk" != "no" ; then xe_msg_checking="for tt_message_create in -ltt" test -n "$extra_libs" && xe_msg_checking="$xe_msg_checking using extra libs $extra_libs" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:7378: checking "$xe_msg_checking"" >&5 +echo "configure:7394: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo tt'_'tt_message_create | sed 'y%./+-%__p_%'` xe_check_libs=" -ltt $extra_libs" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7447,15 +7463,15 @@ fi test -z "$with_cde" && { ac_safe=`echo "Dt/Dt.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Dt/Dt.h""... $ac_c" 1>&6 -echo "configure:7451: checking for Dt/Dt.h" >&5 +echo "configure:7467: checking for Dt/Dt.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7459: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7475: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7478,12 +7494,12 @@ fi } test -z "$with_cde" && { echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6 -echo "configure:7482: checking for DtDndDragStart in -lDtSvc" >&5 +echo "configure:7498: checking for DtDndDragStart in -lDtSvc" >&5 ac_lib_var=`echo DtSvc'_'DtDndDragStart | sed 'y%./+-%__p_%'` xe_check_libs=" -lDtSvc " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7514: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7567,7 +7583,7 @@ fi if test "$with_dragndrop" != "no" ; then echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6 -echo "configure:7571: checking if drag and drop API is needed" >&5 +echo "configure:7587: checking if drag and drop API is needed" >&5 if test -n "$dragndrop_proto" ; then with_dragndrop=yes echo "$ac_t""yes (${dragndrop_proto} )" 1>&6 @@ -7587,18 +7603,18 @@ EOF fi echo "checking for LDAP" 1>&6 -echo "configure:7591: checking for LDAP" >&5 +echo "configure:7607: checking for LDAP" >&5 test -z "$with_ldap" && { ac_safe=`echo "ldap.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ldap.h""... $ac_c" 1>&6 -echo "configure:7594: checking for ldap.h" >&5 +echo "configure:7610: checking for ldap.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7602: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7618: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7621,15 +7637,15 @@ fi } test -z "$with_ldap" && { ac_safe=`echo "lber.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for lber.h""... $ac_c" 1>&6 -echo "configure:7625: checking for lber.h" >&5 +echo "configure:7641: checking for lber.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7633: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7649: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7653,12 +7669,12 @@ fi if test "$with_ldap" != "no"; then echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6 -echo "configure:7657: checking for ldap_search in -lldap" >&5 +echo "configure:7673: checking for ldap_search in -lldap" >&5 ac_lib_var=`echo ldap'_'ldap_search | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7694,12 +7710,12 @@ fi xe_msg_checking="for ldap_open in -lldap" test -n "-llber" && xe_msg_checking="$xe_msg_checking using extra libs -llber" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:7698: checking "$xe_msg_checking"" >&5 +echo "configure:7714: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap -llber" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7735,12 +7751,12 @@ fi xe_msg_checking="for ldap_open in -lldap" test -n "-llber -lkrb" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:7739: checking "$xe_msg_checking"" >&5 +echo "configure:7755: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap -llber -lkrb" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7776,12 +7792,12 @@ fi xe_msg_checking="for ldap_open in -lldap" test -n "-llber -lkrb -ldes" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb -ldes" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:7780: checking "$xe_msg_checking"" >&5 +echo "configure:7796: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap -llber -lkrb -ldes" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7812: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7843,10 +7859,10 @@ EOF for ac_func in ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7847: checking for $ac_func" >&5 +echo "configure:7863: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7900,20 +7916,20 @@ fi if test "$with_postgresql" != "no"; then echo "checking for PostgreSQL" 1>&6 -echo "configure:7904: checking for PostgreSQL" >&5 +echo "configure:7920: checking for PostgreSQL" >&5 for header_dir in "" "pgsql/" "postgresql/"; do ac_safe=`echo "${header_dir}libpq-fe.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ${header_dir}libpq-fe.h""... $ac_c" 1>&6 -echo "configure:7909: checking for ${header_dir}libpq-fe.h" >&5 +echo "configure:7925: checking for ${header_dir}libpq-fe.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7917: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7933: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7937,12 +7953,12 @@ fi test -n "$libpq_fe_h_file" && { echo $ac_n "checking for PQconnectdb in -lpq""... $ac_c" 1>&6 -echo "configure:7941: checking for PQconnectdb in -lpq" >&5 +echo "configure:7957: checking for PQconnectdb in -lpq" >&5 ac_lib_var=`echo pq'_'PQconnectdb | sed 'y%./+-%__p_%'` xe_check_libs=" -lpq " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7986,12 +8002,12 @@ EOF echo $ac_n "checking for PQconnectStart in -lpq""... $ac_c" 1>&6 -echo "configure:7990: checking for PQconnectStart in -lpq" >&5 +echo "configure:8006: checking for PQconnectStart in -lpq" >&5 ac_lib_var=`echo pq'_'PQconnectStart | sed 'y%./+-%__p_%'` xe_check_libs=" -lpq " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8050,7 +8066,7 @@ fi if test "$window_system" != "none"; then echo "checking for graphics libraries" 1>&6 -echo "configure:8054: checking for graphics libraries" >&5 +echo "configure:8070: checking for graphics libraries" >&5 libpath_xpm= incpath_xpm= @@ -8076,10 +8092,10 @@ echo "configure:8054: checking for graphics libraries" >&5 CFLAGS=""$incpath_xpm" $CFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$incpath_xpm"\" to \$CFLAGS"; fi LDFLAGS=""$libpath_xpm" $LDFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$libpath_xpm"\" to \$LDFLAGS"; fi echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6 -echo "configure:8080: checking for Xpm - no older than 3.4f" >&5 +echo "configure:8096: checking for Xpm - no older than 3.4f" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext < @@ -8088,7 +8104,7 @@ echo "configure:8080: checking for Xpm - no older than 3.4f" >&5 XpmIncludeVersion != XpmLibraryVersion() ? 1 : XpmIncludeVersion < 30406 ? 2 : 0 ;} EOF -if { (eval echo configure:8092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:8108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest dummy_arg; xpm_status=$?; if test "$xpm_status" = "0"; then @@ -8132,17 +8148,17 @@ EOF libs_x="-lXpm $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXpm\" to \$libs_x"; fi CFLAGS=""$incpath_xpm" $CFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$incpath_xpm"\" to \$CFLAGS"; fi echo $ac_n "checking for \"FOR_MSW\" xpm""... $ac_c" 1>&6 -echo "configure:8136: checking for \"FOR_MSW\" xpm" >&5 +echo "configure:8152: checking for \"FOR_MSW\" xpm" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* xpm_for_msw=no else @@ -8168,15 +8184,15 @@ EOF test -z "$with_xface" && { ac_safe=`echo "compface.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for compface.h""... $ac_c" 1>&6 -echo "configure:8172: checking for compface.h" >&5 +echo "configure:8188: checking for compface.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8196: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8199,12 +8215,12 @@ fi } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:8203: checking for UnGenFace in -lcompface" >&5 +echo "configure:8219: checking for UnGenFace in -lcompface" >&5 ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'` xe_check_libs=" -lcompface " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8267,12 +8283,12 @@ EOF if test "$with_png $with_tiff" != "no no"; then echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6 -echo "configure:8271: checking for inflate in -lc" >&5 +echo "configure:8287: checking for inflate in -lc" >&5 ac_lib_var=`echo c'_'inflate | sed 'y%./+-%__p_%'` xe_check_libs=" -lc " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8302,12 +8318,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6 -echo "configure:8306: checking for inflate in -lz" >&5 +echo "configure:8322: checking for inflate in -lz" >&5 ac_lib_var=`echo z'_'inflate | sed 'y%./+-%__p_%'` xe_check_libs=" -lz " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8337,12 +8353,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6 -echo "configure:8341: checking for inflate in -lgz" >&5 +echo "configure:8357: checking for inflate in -lgz" >&5 ac_lib_var=`echo gz'_'inflate | sed 'y%./+-%__p_%'` xe_check_libs=" -lgz " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8383,15 +8399,15 @@ fi test -z "$with_jpeg" && { ac_safe=`echo "jpeglib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for jpeglib.h""... $ac_c" 1>&6 -echo "configure:8387: checking for jpeglib.h" >&5 +echo "configure:8403: checking for jpeglib.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8395: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8411: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8414,12 +8430,12 @@ fi } test -z "$with_jpeg" && { echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6 -echo "configure:8418: checking for jpeg_destroy_decompress in -ljpeg" >&5 +echo "configure:8434: checking for jpeg_destroy_decompress in -ljpeg" >&5 ac_lib_var=`echo jpeg'_'jpeg_destroy_decompress | sed 'y%./+-%__p_%'` xe_check_libs=" -ljpeg " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8466,10 +8482,10 @@ EOF png_problem="" test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6 -echo "configure:8470: checking for pow" >&5 +echo "configure:8486: checking for pow" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_pow=yes" else @@ -8513,15 +8529,15 @@ fi } test -z "$with_png" && { ac_safe=`echo "png.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for png.h""... $ac_c" 1>&6 -echo "configure:8517: checking for png.h" >&5 +echo "configure:8533: checking for png.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8525: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8541: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8544,12 +8560,12 @@ fi } test -z "$with_png" && { echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6 -echo "configure:8548: checking for png_read_image in -lpng" >&5 +echo "configure:8564: checking for png_read_image in -lpng" >&5 ac_lib_var=`echo png'_'png_read_image | sed 'y%./+-%__p_%'` xe_check_libs=" -lpng " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8583,10 +8599,10 @@ fi } if test -z "$with_png"; then echo $ac_n "checking for workable png version information""... $ac_c" 1>&6 -echo "configure:8587: checking for workable png version information" >&5 +echo "configure:8603: checking for workable png version information" >&5 xe_check_libs="-lpng -lz" cat > conftest.$ac_ext < int main(int c, char **v) { @@ -8594,7 +8610,7 @@ echo "configure:8587: checking for workable png version information" >&5 if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1; return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;} EOF -if { (eval echo configure:8598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:8614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest dummy_arg; png_status=$?; if test "$png_status" = "0"; then @@ -8637,15 +8653,15 @@ EOF test -z "$with_tiff" && { ac_safe=`echo "tiffio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for tiffio.h""... $ac_c" 1>&6 -echo "configure:8641: checking for tiffio.h" >&5 +echo "configure:8657: checking for tiffio.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8649: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8665: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8668,12 +8684,12 @@ fi } test -z "$with_tiff" && { echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6 -echo "configure:8672: checking for TIFFClientOpen in -ltiff" >&5 +echo "configure:8688: checking for TIFFClientOpen in -ltiff" >&5 ac_lib_var=`echo tiff'_'TIFFClientOpen | sed 'y%./+-%__p_%'` xe_check_libs=" -ltiff " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8723,15 +8739,15 @@ fi if test "$with_gtk" = "yes"; then test -z "$with_xface" && { ac_safe=`echo "compface.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for compface.h""... $ac_c" 1>&6 -echo "configure:8727: checking for compface.h" >&5 +echo "configure:8743: checking for compface.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8735: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8751: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8754,12 +8770,12 @@ fi } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:8758: checking for UnGenFace in -lcompface" >&5 +echo "configure:8774: checking for UnGenFace in -lcompface" >&5 ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'` xe_check_libs=" -lcompface " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8809,7 +8825,7 @@ fi if test "$with_x11" = "yes"; then echo "checking for X11 graphics libraries" 1>&6 -echo "configure:8813: checking for X11 graphics libraries" >&5 +echo "configure:8829: checking for X11 graphics libraries" >&5 fi case "$with_widgets" in @@ -8819,7 +8835,7 @@ esac if test "$with_x11" = "yes" -a "$detect_athena" = "yes" ; then echo "checking for the Athena widgets" 1>&6 -echo "configure:8823: checking for the Athena widgets" >&5 +echo "configure:8839: checking for the Athena widgets" >&5 case "$with_athena" in "xaw" | "") athena_variant=Xaw athena_3d=no ;; @@ -8833,12 +8849,12 @@ echo "configure:8823: checking for the Athena widgets" >&5 if test "$athena_3d" = "no"; then echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8837: checking for XawScrollbarSetThumb in -l$athena_variant" >&5 +echo "configure:8853: checking for XawScrollbarSetThumb in -l$athena_variant" >&5 ac_lib_var=`echo $athena_variant'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'` xe_check_libs=" -l$athena_variant " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8865,12 +8881,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8869: checking for threeDClassRec in -l$athena_variant" >&5 +echo "configure:8885: checking for threeDClassRec in -l$athena_variant" >&5 ac_lib_var=`echo $athena_variant'_'threeDClassRec | sed 'y%./+-%__p_%'` xe_check_libs=" -l$athena_variant " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8912,12 +8928,12 @@ fi else echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8916: checking for threeDClassRec in -l$athena_variant" >&5 +echo "configure:8932: checking for threeDClassRec in -l$athena_variant" >&5 ac_lib_var=`echo $athena_variant'_'threeDClassRec | sed 'y%./+-%__p_%'` xe_check_libs=" -l$athena_variant " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8948: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8946,12 +8962,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for threeDClassRec in -lXaw""... $ac_c" 1>&6 -echo "configure:8950: checking for threeDClassRec in -lXaw" >&5 +echo "configure:8966: checking for threeDClassRec in -lXaw" >&5 ac_lib_var=`echo Xaw'_'threeDClassRec | sed 'y%./+-%__p_%'` xe_check_libs=" -lXaw " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8993,15 +9009,15 @@ fi if test "$athena_3d" = "no"; then ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6 -echo "configure:8997: checking for X11/Xaw/ThreeD.h" >&5 +echo "configure:9013: checking for X11/Xaw/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9005: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9021: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9021,15 +9037,15 @@ else echo "$ac_t""no" 1>&6 ac_safe=`echo "X11/Xaw/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/XawInit.h""... $ac_c" 1>&6 -echo "configure:9025: checking for X11/Xaw/XawInit.h" >&5 +echo "configure:9041: checking for X11/Xaw/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9033: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9049: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9055,15 +9071,15 @@ fi else ac_safe=`echo "X11/$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/$athena_variant/XawInit.h""... $ac_c" 1>&6 -echo "configure:9059: checking for X11/$athena_variant/XawInit.h" >&5 +echo "configure:9075: checking for X11/$athena_variant/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9067: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9083: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9080,15 +9096,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "X11/$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/$athena_variant/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9084: checking for X11/$athena_variant/ThreeD.h" >&5 +echo "configure:9100: checking for X11/$athena_variant/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9092: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9108: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9116,15 +9132,15 @@ fi if test -z "$athena_h_path"; then ac_safe=`echo "$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $athena_variant/XawInit.h""... $ac_c" 1>&6 -echo "configure:9120: checking for $athena_variant/XawInit.h" >&5 +echo "configure:9136: checking for $athena_variant/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9128: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9144: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9141,15 +9157,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $athena_variant/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9145: checking for $athena_variant/ThreeD.h" >&5 +echo "configure:9161: checking for $athena_variant/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9153: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9169: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9178,15 +9194,15 @@ fi if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then ac_safe=`echo "X11/Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw3d/XawInit.h""... $ac_c" 1>&6 -echo "configure:9182: checking for X11/Xaw3d/XawInit.h" >&5 +echo "configure:9198: checking for X11/Xaw3d/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9206: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9203,15 +9219,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "X11/Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw3d/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9207: checking for X11/Xaw3d/ThreeD.h" >&5 +echo "configure:9223: checking for X11/Xaw3d/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9215: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9231: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9243,15 +9259,15 @@ fi if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then ac_safe=`echo "Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xaw3d/XawInit.h""... $ac_c" 1>&6 -echo "configure:9247: checking for Xaw3d/XawInit.h" >&5 +echo "configure:9263: checking for Xaw3d/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9255: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9271: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9268,15 +9284,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xaw3d/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9272: checking for Xaw3d/ThreeD.h" >&5 +echo "configure:9288: checking for Xaw3d/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9280: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9296: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9308,15 +9324,15 @@ fi if test -z "$athena_h_path"; then ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9312: checking for X11/Xaw/ThreeD.h" >&5 +echo "configure:9328: checking for X11/Xaw/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9320: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9336: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9355,15 +9371,15 @@ fi if test "$with_x11" = "yes"; then ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6 -echo "configure:9359: checking for Xm/Xm.h" >&5 +echo "configure:9375: checking for Xm/Xm.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9367: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9383: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9380,12 +9396,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6 -echo "configure:9384: checking for XmStringFree in -lXm" >&5 +echo "configure:9400: checking for XmStringFree in -lXm" >&5 ac_lib_var=`echo Xm'_'XmStringFree | sed 'y%./+-%__p_%'` xe_check_libs=" -lXm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9425,9 +9441,9 @@ fi if test "$have_motif" = "yes"; then echo $ac_n "checking for Lesstif""... $ac_c" 1>&6 -echo "configure:9429: checking for Lesstif" >&5 +echo "configure:9445: checking for Lesstif" >&5 cat > conftest.$ac_ext < #ifdef LESSTIF_VERSION @@ -9851,7 +9867,7 @@ fi if test "$with_mule" = "yes" ; then echo "checking for Mule-related features" 1>&6 -echo "configure:9855: checking for Mule-related features" >&5 +echo "configure:9871: checking for Mule-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining MULE EOF @@ -9892,15 +9908,15 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:9896: checking for $ac_hdr" >&5 +echo "configure:9912: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9904: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9920: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9931,12 +9947,12 @@ done echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6 -echo "configure:9935: checking for strerror in -lintl" >&5 +echo "configure:9951: checking for strerror in -lintl" >&5 ac_lib_var=`echo intl'_'strerror | sed 'y%./+-%__p_%'` xe_check_libs=" -lintl " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9999,18 +10015,18 @@ EOF fi echo "checking for Mule input methods" 1>&6 -echo "configure:10003: checking for Mule input methods" >&5 +echo "configure:10019: checking for Mule input methods" >&5 case "$with_xim" in "" | "yes" ) echo "checking for XIM" 1>&6 -echo "configure:10006: checking for XIM" >&5 +echo "configure:10022: checking for XIM" >&5 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6 -echo "configure:10009: checking for XOpenIM in -lX11" >&5 +echo "configure:10025: checking for XOpenIM in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenIM | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10045,12 +10061,12 @@ fi if test "$have_motif $have_lesstif" = "yes no"; then echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6 -echo "configure:10049: checking for XmImMbLookupString in -lXm" >&5 +echo "configure:10065: checking for XmImMbLookupString in -lXm" >&5 ac_lib_var=`echo Xm'_'XmImMbLookupString | sed 'y%./+-%__p_%'` xe_check_libs=" -lXm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10126,15 +10142,15 @@ EOF if test "$with_xfs" = "yes" ; then echo "checking for XFontSet" 1>&6 -echo "configure:10130: checking for XFontSet" >&5 +echo "configure:10146: checking for XFontSet" >&5 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6 -echo "configure:10133: checking for XmbDrawString in -lX11" >&5 +echo "configure:10149: checking for XmbDrawString in -lX11" >&5 ac_lib_var=`echo X11'_'XmbDrawString | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10185,15 +10201,15 @@ EOF test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support test -z "$with_wnn" && { ac_safe=`echo "wnn/jllib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wnn/jllib.h""... $ac_c" 1>&6 -echo "configure:10189: checking for wnn/jllib.h" >&5 +echo "configure:10205: checking for wnn/jllib.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10197: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10213: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10216,15 +10232,15 @@ fi } test -z "$with_wnn" && { ac_safe=`echo "wnn/commonhd.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wnn/commonhd.h""... $ac_c" 1>&6 -echo "configure:10220: checking for wnn/commonhd.h" >&5 +echo "configure:10236: checking for wnn/commonhd.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10228: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10244: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10249,10 +10265,10 @@ fi for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10253: checking for $ac_func" >&5 +echo "configure:10269: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10295: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10304,12 +10320,12 @@ done test "$ac_cv_func_crypt" != "yes" && { echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:10308: checking for crypt in -lcrypt" >&5 +echo "configure:10324: checking for crypt in -lcrypt" >&5 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'` xe_check_libs=" -lcrypt " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10355,12 +10371,12 @@ fi if test -z "$with_wnn" -o "$with_wnn" = "yes"; then echo $ac_n "checking for jl_dic_list_e in -lwnn""... $ac_c" 1>&6 -echo "configure:10359: checking for jl_dic_list_e in -lwnn" >&5 +echo "configure:10375: checking for jl_dic_list_e in -lwnn" >&5 ac_lib_var=`echo wnn'_'jl_dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10389,12 +10405,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6 -echo "configure:10393: checking for jl_dic_list_e in -lwnn4" >&5 +echo "configure:10409: checking for jl_dic_list_e in -lwnn4" >&5 ac_lib_var=`echo wnn4'_'jl_dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn4 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10425: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10423,12 +10439,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6 -echo "configure:10427: checking for jl_dic_list_e in -lwnn6" >&5 +echo "configure:10443: checking for jl_dic_list_e in -lwnn6" >&5 ac_lib_var=`echo wnn6'_'jl_dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn6 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10457,12 +10473,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6 -echo "configure:10461: checking for dic_list_e in -lwnn6_fromsrc" >&5 +echo "configure:10477: checking for dic_list_e in -lwnn6_fromsrc" >&5 ac_lib_var=`echo wnn6_fromsrc'_'dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn6_fromsrc " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10521,12 +10537,12 @@ EOF if test "$with_wnn6" != "no"; then echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6 -echo "configure:10525: checking for jl_fi_dic_list in -l$libwnn" >&5 +echo "configure:10541: checking for jl_fi_dic_list in -l$libwnn" >&5 ac_lib_var=`echo $libwnn'_'jl_fi_dic_list | sed 'y%./+-%__p_%'` xe_check_libs=" -l$libwnn " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10572,15 +10588,15 @@ EOF if test "$with_canna" != "no"; then ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6 -echo "configure:10576: checking for canna/jrkanji.h" >&5 +echo "configure:10592: checking for canna/jrkanji.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10584: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10600: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10607,15 +10623,15 @@ fi c_switch_site="$c_switch_site -I/usr/local/canna/include" ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6 -echo "configure:10611: checking for canna/jrkanji.h" >&5 +echo "configure:10627: checking for canna/jrkanji.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10635: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10643,15 +10659,15 @@ fi test -z "$with_canna" && { ac_safe=`echo "canna/RK.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/RK.h""... $ac_c" 1>&6 -echo "configure:10647: checking for canna/RK.h" >&5 +echo "configure:10663: checking for canna/RK.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10671: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10674,12 +10690,12 @@ fi } test -z "$with_canna" && { echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6 -echo "configure:10678: checking for RkBgnBun in -lRKC" >&5 +echo "configure:10694: checking for RkBgnBun in -lRKC" >&5 ac_lib_var=`echo RKC'_'RkBgnBun | sed 'y%./+-%__p_%'` xe_check_libs=" -lRKC " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10713,12 +10729,12 @@ fi } test -z "$with_canna" && { echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6 -echo "configure:10717: checking for jrKanjiControl in -lcanna" >&5 +echo "configure:10733: checking for jrKanjiControl in -lcanna" >&5 ac_lib_var=`echo canna'_'jrKanjiControl | sed 'y%./+-%__p_%'` xe_check_libs=" -lcanna " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10778,12 +10794,12 @@ if test "$need_motif" = "yes" ; then libs_x="-lXm $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXm\" to \$libs_x"; fi echo $ac_n "checking for layout_object_getvalue in -li18n""... $ac_c" 1>&6 -echo "configure:10782: checking for layout_object_getvalue in -li18n" >&5 +echo "configure:10798: checking for layout_object_getvalue in -li18n" >&5 ac_lib_var=`echo i18n'_'layout_object_getvalue | sed 'y%./+-%__p_%'` xe_check_libs=" -li18n " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10880,10 +10896,10 @@ fi for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strerror tzset ulimit usleep waitpid vsnprintf fsync ftruncate umask do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10884: checking for $ac_func" >&5 +echo "configure:10900: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10938,10 +10954,10 @@ done for ac_func in getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10942: checking for $ac_func" >&5 +echo "configure:10958: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10993,10 +11009,10 @@ done echo $ac_n "checking for openpty""... $ac_c" 1>&6 -echo "configure:10997: checking for openpty" >&5 +echo "configure:11013: checking for openpty" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_openpty=yes" else @@ -11038,12 +11054,12 @@ else echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6 -echo "configure:11042: checking for openpty in -lutil" >&5 +echo "configure:11058: checking for openpty in -lutil" >&5 ac_lib_var=`echo util'_'openpty | sed 'y%./+-%__p_%'` xe_check_libs=" -lutil " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11089,15 +11105,15 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11093: checking for $ac_hdr" >&5 +echo "configure:11109: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11101: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11117: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11133,15 +11149,15 @@ for ac_hdr in stropts.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11137: checking for $ac_hdr" >&5 +echo "configure:11153: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11145: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11161: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11174,10 +11190,10 @@ if test "$ac_cv_header_stropts_h" = "yes"; then for ac_func in isastream do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11178: checking for $ac_func" >&5 +echo "configure:11194: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11231,15 +11247,15 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11235: checking for $ac_hdr" >&5 +echo "configure:11251: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11243: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11259: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11276,10 +11292,10 @@ extra_objs="$extra_objs realpath.o" && if test "$extra_verbose" = "yes"; then for ac_func in getloadavg do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11280: checking for $ac_func" >&5 +echo "configure:11296: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11335,15 +11351,15 @@ if test "$ac_cv_func_getloadavg" = "yes"; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11339: checking for $ac_hdr" >&5 +echo "configure:11355: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11347: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11363: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11379,12 +11395,12 @@ else echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6 -echo "configure:11383: checking for kstat_open in -lkstat" >&5 +echo "configure:11399: checking for kstat_open in -lkstat" >&5 ac_lib_var=`echo kstat'_'kstat_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lkstat " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11430,15 +11446,15 @@ fi do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11434: checking for $ac_hdr" >&5 +echo "configure:11450: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11442: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11458: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11470,12 +11486,12 @@ done echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6 -echo "configure:11474: checking for kvm_read in -lkvm" >&5 +echo "configure:11490: checking for kvm_read in -lkvm" >&5 ac_lib_var=`echo kvm'_'kvm_read | sed 'y%./+-%__p_%'` xe_check_libs=" -lkvm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11520,16 +11536,16 @@ fi fi echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 -echo "configure:11524: checking whether netdb declares h_errno" >&5 +echo "configure:11540: checking whether netdb declares h_errno" >&5 cat > conftest.$ac_ext < int main() { return h_errno; ; return 0; } EOF -if { (eval echo configure:11533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 { test "$extra_verbose" = "yes" && cat << \EOF @@ -11549,16 +11565,16 @@ fi rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 -echo "configure:11553: checking for sigsetjmp" >&5 +echo "configure:11569: checking for sigsetjmp" >&5 cat > conftest.$ac_ext < int main() { sigjmp_buf bar; sigsetjmp (bar, 0); ; return 0; } EOF -if { (eval echo configure:11562: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11578: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 { test "$extra_verbose" = "yes" && cat << \EOF @@ -11578,11 +11594,11 @@ fi rm -f conftest* echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 -echo "configure:11582: checking whether localtime caches TZ" >&5 +echo "configure:11598: checking whether localtime caches TZ" >&5 if test "$ac_cv_func_tzset" = "yes"; then cat > conftest.$ac_ext < #if STDC_HEADERS @@ -11617,7 +11633,7 @@ main() exit (0); } EOF -if { (eval echo configure:11621: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:11637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then emacs_cv_localtime_cache=no else @@ -11647,9 +11663,9 @@ fi if test "$HAVE_TIMEVAL" = "yes"; then echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6 -echo "configure:11651: checking whether gettimeofday accepts one or two arguments" >&5 +echo "configure:11667: checking whether gettimeofday accepts one or two arguments" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""two" 1>&6 else @@ -11692,19 +11708,19 @@ fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:11696: checking for inline" >&5 +echo "configure:11712: checking for inline" >&5 ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11724: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -11745,17 +11761,17 @@ if test "$__DECC" != "yes"; then # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:11749: checking for working alloca.h" >&5 +echo "configure:11765: checking for working alloca.h" >&5 cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:11759: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -11779,10 +11795,10 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:11783: checking for alloca" >&5 +echo "configure:11799: checking for alloca" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11830: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -11849,10 +11865,10 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:11853: checking whether alloca needs Cray hooks" >&5 +echo "configure:11869: checking whether alloca needs Cray hooks" >&5 cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11880: checking for $ac_func" >&5 +echo "configure:11896: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11932,10 +11948,10 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:11936: checking stack direction for C alloca" >&5 +echo "configure:11952: checking stack direction for C alloca" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:11974: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_stack_direction=1 else @@ -11984,15 +12000,15 @@ fi ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 -echo "configure:11988: checking for vfork.h" >&5 +echo "configure:12004: checking for vfork.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11996: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12012: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12020,10 +12036,10 @@ else fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:12024: checking for working vfork" >&5 +echo "configure:12040: checking for working vfork" >&5 cat > conftest.$ac_ext < @@ -12118,7 +12134,7 @@ main() { } } EOF -if { (eval echo configure:12122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_vfork_works=yes else @@ -12144,10 +12160,10 @@ fi echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 -echo "configure:12148: checking for working strcoll" >&5 +echo "configure:12164: checking for working strcoll" >&5 cat > conftest.$ac_ext < main () @@ -12157,7 +12173,7 @@ main () strcoll ("123", "456") >= 0); } EOF -if { (eval echo configure:12161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_strcoll_works=yes else @@ -12185,10 +12201,10 @@ fi for ac_func in getpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12189: checking for $ac_func" >&5 +echo "configure:12205: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12231: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12239,10 +12255,10 @@ fi done echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 -echo "configure:12243: checking whether getpgrp takes no argument" >&5 +echo "configure:12259: checking whether getpgrp takes no argument" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12317: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_getpgrp_void=yes else @@ -12324,10 +12340,10 @@ fi echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:12328: checking for working mmap" >&5 +echo "configure:12344: checking for working mmap" >&5 case "$opsys" in ultrix* ) have_mmap=no ;; *) cat > conftest.$ac_ext < #include @@ -12360,7 +12376,7 @@ int main (int argc, char *argv[]) return 1; } EOF -if { (eval echo configure:12364: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12380: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then have_mmap=yes else @@ -12389,9 +12405,9 @@ test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no if test "$rel_alloc $have_mmap" = "default yes"; then if test "$doug_lea_malloc" = "yes"; then echo $ac_n "checking for M_MMAP_THRESHOLD""... $ac_c" 1>&6 -echo "configure:12393: checking for M_MMAP_THRESHOLD" >&5 +echo "configure:12409: checking for M_MMAP_THRESHOLD" >&5 cat > conftest.$ac_ext < int main() { @@ -12403,7 +12419,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:12407: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12423: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* rel_alloc=no; echo "$ac_t""yes" 1>&6; else @@ -12428,15 +12444,15 @@ EOF ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termios.h""... $ac_c" 1>&6 -echo "configure:12432: checking for termios.h" >&5 +echo "configure:12448: checking for termios.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12440: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12456: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12479,15 +12495,15 @@ else echo "$ac_t""no" 1>&6 ac_safe=`echo "termio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termio.h""... $ac_c" 1>&6 -echo "configure:12483: checking for termio.h" >&5 +echo "configure:12499: checking for termio.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12491: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12507: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12519,10 +12535,10 @@ fi echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:12523: checking for socket" >&5 +echo "configure:12539: checking for socket" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_socket=yes" else @@ -12560,15 +12576,15 @@ if eval "test \"`echo '$ac_cv_func_'socket`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "netinet/in.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for netinet/in.h""... $ac_c" 1>&6 -echo "configure:12564: checking for netinet/in.h" >&5 +echo "configure:12580: checking for netinet/in.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12572: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12588: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12585,15 +12601,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "arpa/inet.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for arpa/inet.h""... $ac_c" 1>&6 -echo "configure:12589: checking for arpa/inet.h" >&5 +echo "configure:12605: checking for arpa/inet.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12597: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12613: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12618,9 +12634,9 @@ EOF } echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6 -echo "configure:12622: checking "for sun_len member in struct sockaddr_un"" >&5 +echo "configure:12638: checking "for sun_len member in struct sockaddr_un"" >&5 cat > conftest.$ac_ext < @@ -12631,7 +12647,7 @@ int main() { static struct sockaddr_un x; x.sun_len = 1; ; return 0; } EOF -if { (eval echo configure:12635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12651: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_SOCKADDR_SUN_LEN @@ -12649,9 +12665,9 @@ else fi rm -f conftest* echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6 -echo "configure:12653: checking "for ip_mreq struct in netinet/in.h"" >&5 +echo "configure:12669: checking "for ip_mreq struct in netinet/in.h"" >&5 cat > conftest.$ac_ext < @@ -12661,7 +12677,7 @@ int main() { static struct ip_mreq x; ; return 0; } EOF -if { (eval echo configure:12665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12681: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_MULTICAST @@ -12692,10 +12708,10 @@ fi echo $ac_n "checking for msgget""... $ac_c" 1>&6 -echo "configure:12696: checking for msgget" >&5 +echo "configure:12712: checking for msgget" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_msgget=yes" else @@ -12733,15 +12749,15 @@ if eval "test \"`echo '$ac_cv_func_'msgget`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "sys/ipc.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/ipc.h""... $ac_c" 1>&6 -echo "configure:12737: checking for sys/ipc.h" >&5 +echo "configure:12753: checking for sys/ipc.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12745: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12761: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12758,15 +12774,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "sys/msg.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/msg.h""... $ac_c" 1>&6 -echo "configure:12762: checking for sys/msg.h" >&5 +echo "configure:12778: checking for sys/msg.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12770: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12786: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12804,15 +12820,15 @@ fi ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dirent.h""... $ac_c" 1>&6 -echo "configure:12808: checking for dirent.h" >&5 +echo "configure:12824: checking for dirent.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12816: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12832: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12839,15 +12855,15 @@ else echo "$ac_t""no" 1>&6 ac_safe=`echo "sys/dir.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/dir.h""... $ac_c" 1>&6 -echo "configure:12843: checking for sys/dir.h" >&5 +echo "configure:12859: checking for sys/dir.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12851: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12867: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12880,15 +12896,15 @@ fi ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for nlist.h""... $ac_c" 1>&6 -echo "configure:12884: checking for nlist.h" >&5 +echo "configure:12900: checking for nlist.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12892: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12908: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12918,22 +12934,22 @@ fi echo "checking "for sound support"" 1>&6 -echo "configure:12922: checking "for sound support"" >&5 +echo "configure:12938: checking "for sound support"" >&5 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes if test "$with_native_sound" != "no"; then if test -n "$native_sound_lib"; then ac_safe=`echo "multimedia/audio_device.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for multimedia/audio_device.h""... $ac_c" 1>&6 -echo "configure:12929: checking for multimedia/audio_device.h" >&5 +echo "configure:12945: checking for multimedia/audio_device.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12937: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12953: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12981,12 +12997,12 @@ fi if test -z "$native_sound_lib"; then echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6 -echo "configure:12985: checking for ALopenport in -laudio" >&5 +echo "configure:13001: checking for ALopenport in -laudio" >&5 ac_lib_var=`echo audio'_'ALopenport | sed 'y%./+-%__p_%'` xe_check_libs=" -laudio " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13028,12 +13044,12 @@ fi if test -z "$native_sound_lib"; then echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6 -echo "configure:13032: checking for AOpenAudio in -lAlib" >&5 +echo "configure:13048: checking for AOpenAudio in -lAlib" >&5 ac_lib_var=`echo Alib'_'AOpenAudio | sed 'y%./+-%__p_%'` xe_check_libs=" -lAlib " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13089,15 +13105,15 @@ fi for dir in "machine" "sys" "linux"; do ac_safe=`echo "${dir}/soundcard.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ${dir}/soundcard.h""... $ac_c" 1>&6 -echo "configure:13093: checking for ${dir}/soundcard.h" >&5 +echo "configure:13109: checking for ${dir}/soundcard.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13101: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13117: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13151,15 +13167,15 @@ fi if test "$with_nas_sound" != "no"; then ac_safe=`echo "audio/audiolib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for audio/audiolib.h""... $ac_c" 1>&6 -echo "configure:13155: checking for audio/audiolib.h" >&5 +echo "configure:13171: checking for audio/audiolib.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13163: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13179: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13177,12 +13193,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6 -echo "configure:13181: checking for AuOpenServer in -laudio" >&5 +echo "configure:13197: checking for AuOpenServer in -laudio" >&5 ac_lib_var=`echo audio'_'AuOpenServer | sed 'y%./+-%__p_%'` xe_check_libs=" -laudio " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13232,7 +13248,7 @@ EOF fi libs_x="-laudio $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-laudio\" to \$libs_x"; fi cat > conftest.$ac_ext < EOF @@ -13263,7 +13279,7 @@ if test "$with_esd_sound" != "no"; then # Extract the first word of "esd-config", so it can be a program name with args. set dummy esd-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:13267: checking for $ac_word" >&5 +echo "configure:13283: checking for $ac_word" >&5 if test -n "$have_esd_config"; then ac_cv_prog_have_esd_config="$have_esd_config" # Let the user override the test. @@ -13292,10 +13308,10 @@ fi c_switch_site="$c_switch_site `esd-config --cflags`" && if test "$extra_verbose" = "yes"; then echo " Appending \"`esd-config --cflags`\" to \$c_switch_site"; fi LIBS="`esd-config --libs` $LIBS" && if test "$extra_verbose" = "yes"; then echo " Prepending \"`esd-config --libs`\" to \$LIBS"; fi echo $ac_n "checking for esd_play_stream""... $ac_c" 1>&6 -echo "configure:13296: checking for esd_play_stream" >&5 +echo "configure:13312: checking for esd_play_stream" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_esd_play_stream=yes" else @@ -13369,7 +13385,7 @@ test -z "$with_tty" && with_tty=yes if test "$with_tty" = "yes" ; then echo "checking for TTY-related features" 1>&6 -echo "configure:13373: checking for TTY-related features" >&5 +echo "configure:13389: checking for TTY-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_TTY EOF @@ -13385,12 +13401,12 @@ EOF if test -z "$with_ncurses"; then echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6 -echo "configure:13389: checking for tgetent in -lncurses" >&5 +echo "configure:13405: checking for tgetent in -lncurses" >&5 ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -lncurses " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13421: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13434,15 +13450,15 @@ EOF ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:13438: checking for ncurses/curses.h" >&5 +echo "configure:13454: checking for ncurses/curses.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13446: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13462: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13464,15 +13480,15 @@ fi ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6 -echo "configure:13468: checking for ncurses/term.h" >&5 +echo "configure:13484: checking for ncurses/term.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13476: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13492: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13502,15 +13518,15 @@ fi c_switch_site="$c_switch_site -I/usr/include/ncurses" ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:13506: checking for ncurses/curses.h" >&5 +echo "configure:13522: checking for ncurses/curses.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13514: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13530: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13545,12 +13561,12 @@ fi for lib in curses termlib termcap; do echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6 -echo "configure:13549: checking for tgetent in -l$lib" >&5 +echo "configure:13565: checking for tgetent in -l$lib" >&5 ac_lib_var=`echo $lib'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -l$lib " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13583,21 +13599,76 @@ fi done fi - else extra_objs="$extra_objs tparam.o" && if test "$extra_verbose" = "yes"; then + else if test -n "$libs_termcap" -a "$opsys" = "openbsd"; then + +echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6 +echo "configure:13606: checking for tgoto in -ltermcap" >&5 +ac_lib_var=`echo termcap'_'tgoto | sed 'y%./+-%__p_%'` + +xe_check_libs=" -ltermcap " +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +xe_check_libs="" + +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo termcap | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + { test "$extra_verbose" = "yes" && cat << EOF + Defining $ac_tr_lib +EOF +cat >> confdefs.h <&6 +extra_objs="$extra_objs tparam.o" && if test "$extra_verbose" = "yes"; then echo " xemacs will be linked with \"tparam.o\"" fi +fi + + + else + extra_objs="$extra_objs tparam.o" && if test "$extra_verbose" = "yes"; then + echo " xemacs will be linked with \"tparam.o\"" + fi + fi case "$opsys" in *-hp-hpux* ) libs_termcap="-ltermcap" ;; esac if test -n "$libs_termcap"; then LIBS="$libs_termcap $LIBS" && if test "$extra_verbose" = "yes"; then echo " Prepending \"$libs_termcap\" to \$LIBS"; fi else echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6 -echo "configure:13596: checking for tgetent in -lcurses" >&5 +echo "configure:13667: checking for tgetent in -lcurses" >&5 ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -lcurses " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13626,12 +13697,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6 -echo "configure:13630: checking for tgetent in -ltermcap" >&5 +echo "configure:13701: checking for tgetent in -ltermcap" >&5 ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -ltermcap " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13690,15 +13761,15 @@ EOF test -z "$with_gpm" && { ac_safe=`echo "gpm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for gpm.h""... $ac_c" 1>&6 -echo "configure:13694: checking for gpm.h" >&5 +echo "configure:13765: checking for gpm.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13702: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13773: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13721,12 +13792,12 @@ fi } test -z "$with_gpm" && { echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:13725: checking for Gpm_Open in -lgpm" >&5 +echo "configure:13796: checking for Gpm_Open in -lgpm" >&5 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'` xe_check_libs=" -lgpm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13812: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13787,20 +13858,20 @@ test "$with_x11" = "yes" -o "$with_tty" = "yes" -o "$need_event_unixoid" = "yes" test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \ != "no no no" && echo "checking for database support" 1>&6 -echo "configure:13791: checking for database support" >&5 +echo "configure:13862: checking for database support" >&5 if test "$with_database_gdbm $with_database_dbm" != "no no"; then ac_safe=`echo "ndbm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ndbm.h""... $ac_c" 1>&6 -echo "configure:13796: checking for ndbm.h" >&5 +echo "configure:13867: checking for ndbm.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13804: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13875: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13830,12 +13901,12 @@ fi if test "$with_database_gdbm" != "no"; then echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:13834: checking for dbm_open in -lgdbm" >&5 +echo "configure:13905: checking for dbm_open in -lgdbm" >&5 ac_lib_var=`echo gdbm'_'dbm_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lgdbm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13874,10 +13945,10 @@ fi if test "$with_database_dbm" != "no"; then echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:13878: checking for dbm_open" >&5 +echo "configure:13949: checking for dbm_open" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_dbm_open=yes" else @@ -13919,12 +13990,12 @@ else echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:13923: checking for dbm_open in -ldbm" >&5 +echo "configure:13994: checking for dbm_open in -ldbm" >&5 ac_lib_var=`echo dbm'_'dbm_open | sed 'y%./+-%__p_%'` xe_check_libs=" -ldbm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13976,10 +14047,10 @@ EOF if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6 -echo "configure:13980: checking for Berkeley db.h" >&5 +echo "configure:14051: checking for Berkeley db.h" >&5 for header in "db/db.h" "db.h"; do cat > conftest.$ac_ext < @@ -14001,7 +14072,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14005: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14076: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* db_h_file="$header"; break else @@ -14017,9 +14088,9 @@ rm -f conftest* if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6 -echo "configure:14021: checking for Berkeley DB version" >&5 +echo "configure:14092: checking for Berkeley DB version" >&5 cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 1 @@ -14031,7 +14102,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "yes" >/dev/null 2>&1; then rm -rf conftest* cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 2 @@ -14058,10 +14129,10 @@ fi rm -f conftest* echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6 -echo "configure:14062: checking for $dbfunc" >&5 +echo "configure:14133: checking for $dbfunc" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$dbfunc=yes" else @@ -14103,12 +14174,12 @@ else echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6 -echo "configure:14107: checking for $dbfunc in -ldb" >&5 +echo "configure:14178: checking for $dbfunc in -ldb" >&5 ac_lib_var=`echo db'_'$dbfunc | sed 'y%./+-%__p_%'` xe_check_libs=" -ldb " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14193,12 +14264,12 @@ fi if test "$with_socks" = "yes"; then echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6 -echo "configure:14197: checking for SOCKSinit in -lsocks" >&5 +echo "configure:14268: checking for SOCKSinit in -lsocks" >&5 ac_lib_var=`echo socks'_'SOCKSinit | sed 'y%./+-%__p_%'` xe_check_libs=" -lsocks " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14264,22 +14335,22 @@ fi if test "$with_modules" != "no"; then echo "checking for module support" 1>&6 -echo "configure:14268: checking for module support" >&5 +echo "configure:14339: checking for module support" >&5 if test "$with_msw" = "yes"; then have_dl=yes; else ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6 -echo "configure:14275: checking for dlfcn.h" >&5 +echo "configure:14346: checking for dlfcn.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:14283: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14354: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -14296,16 +14367,16 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6 -echo "configure:14300: checking for dlopen in -lc" >&5 +echo "configure:14371: checking for dlopen in -lc" >&5 cat > conftest.$ac_ext < int main() { dlopen ("", 0); ; return 0; } EOF -if { (eval echo configure:14309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14380: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_dl=yes else @@ -14314,18 +14385,18 @@ else rm -rf conftest* echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:14318: checking for dlopen in -ldl" >&5 +echo "configure:14389: checking for dlopen in -ldl" >&5 ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext < int main() { dlopen ("", 0); ; return 0; } EOF -if { (eval echo configure:14329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_dl=yes else @@ -14354,12 +14425,12 @@ EOF else echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:14358: checking for shl_load in -ldld" >&5 +echo "configure:14429: checking for shl_load in -ldld" >&5 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` xe_check_libs=" -ldld " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14397,12 +14468,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6 -echo "configure:14401: checking for dld_init in -ldld" >&5 +echo "configure:14472: checking for dld_init in -ldld" >&5 ac_lib_var=`echo dld'_'dld_init | sed 'y%./+-%__p_%'` xe_check_libs=" -ldld " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14458,7 +14529,7 @@ xehost=$canonical xealias=$internal_configuration echo "checking how to build dynamic libraries for ${xehost}" 1>&6 -echo "configure:14462: checking how to build dynamic libraries for ${xehost}" >&5 +echo "configure:14533: checking how to build dynamic libraries for ${xehost}" >&5 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts. case "$xehost" in *-*-linux-gnu*) ;; @@ -14486,9 +14557,9 @@ if test "$GCC" = "yes"; then XEGCC=yes else echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:14490: checking checking whether we are using GNU C" >&5 +echo "configure:14561: checking checking whether we are using GNU C" >&5 cat > conftest.$ac_ext <&6 -echo "configure:14514: checking how to produce PIC code" >&5 +echo "configure:14585: checking how to produce PIC code" >&5 wl= can_build_shared=yes @@ -14611,18 +14682,18 @@ if test -n "$dll_cflags"; then # Check to make sure the dll_cflags actually works. echo $ac_n "checking if PIC flag ${dll_cflags} really works""... $ac_c" 1>&6 -echo "configure:14615: checking if PIC flag ${dll_cflags} really works" >&5 +echo "configure:14686: checking if PIC flag ${dll_cflags} really works" >&5 save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $dll_cflags -DPIC" cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14697: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also @@ -14653,7 +14724,7 @@ cc_produces_so=no xldf= xcldf= echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6 -echo "configure:14657: checking if C compiler can produce shared libraries" >&5 +echo "configure:14728: checking if C compiler can produce shared libraries" >&5 if test "$XEGCC" = yes; then xcldf="-shared" xldf="-shared" @@ -14704,14 +14775,14 @@ if test -n "$xcldf"; then xe_libs= ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5' cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cc_produces_so=yes else @@ -14736,7 +14807,7 @@ if test -z "$LTLD"; then if test "$XEGCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 -echo "configure:14740: checking for ld used by GCC" >&5 +echo "configure:14811: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. @@ -14762,7 +14833,7 @@ echo "configure:14740: checking for ld used by GCC" >&5 esac else echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:14766: checking for GNU ld" >&5 +echo "configure:14837: checking for GNU ld" >&5 fi if test -z "$LTLD"; then @@ -14800,7 +14871,7 @@ ld_dynamic_link_flags= # Check to see if it really is or isn't GNU ld. echo $ac_n "checking if the linker is GNU ld""... $ac_c" 1>&6 -echo "configure:14804: checking if the linker is GNU ld" >&5 +echo "configure:14875: checking if the linker is GNU ld" >&5 # I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LTLD -v 2>&1 &5; then xe_gnu_ld=yes @@ -14828,7 +14899,7 @@ else # OK - only NOW do we futz about with ld. # See if the linker supports building shared libraries. echo $ac_n "checking whether the linker supports shared libraries""... $ac_c" 1>&6 -echo "configure:14832: checking whether the linker supports shared libraries" >&5 +echo "configure:14903: checking whether the linker supports shared libraries" >&5 dll_ld=$CC dll_ldflags=$LDFLAGS ld_shlibs=yes @@ -15039,10 +15110,10 @@ EOF for ac_func in dlerror _dlerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15043: checking for $ac_func" >&5 +echo "configure:15114: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15104,11 +15175,11 @@ done fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:15183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else diff --git a/configure.in b/configure.in index 37ed142..fbc5f47 100644 --- a/configure.in +++ b/configure.in @@ -2004,6 +2004,21 @@ esac AC_MSG_RESULT(no) fi +dnl GNU ld now defaults to combreloc, which screws up unexec, but not pdump. +dnl Note that it's OK if the GNU style long option causes non-GNU ld to barf +dnl a usage message, that's often good enough. Please report it, though. +dnl #### Should make this Solaris-friendly. +dnl Link with -z nocombreloc for now. +if test "$pdump" != "yes"; then + AC_MSG_CHECKING(for \"-z nocombreloc\" linker flag) + case "`ld --help 2>&1`" in + *-z\ nocombreloc* ) AC_MSG_RESULT(yes) + XE_PREPEND(-z nocombreloc, ld_switch_site) ;; + *) AC_MSG_RESULT(no) ;; + esac +fi + + dnl Inform compiler that certain flags are meant for the linker dnl XE_PROTECT_LINKER_FLAGS(shell_var) define([XE_PROTECT_LINKER_FLAGS], [ @@ -2021,6 +2036,7 @@ if test "$GCC" = "yes"; then fi])dnl XE_PROTECT_LINKER_FLAGS(ld_switch_system) XE_PROTECT_LINKER_FLAGS(ld_switch_machine) +XE_PROTECT_LINKER_FLAGS(ld_switch_site) XE_PROTECT_LINKER_FLAGS(LDFLAGS) XE_PROTECT_LINKER_FLAGS(ld_call_shared) @@ -2405,10 +2421,12 @@ AC_CHECK_TYPE(ssize_t, int) dnl check for Unix98 socklen_t AC_MSG_CHECKING(for socklen_t) -AC_TRY_COMPILE([#include +AC_TRY_COMPILE([#include +#include socklen_t x; ],[],[AC_MSG_RESULT(yes)],[ -AC_TRY_COMPILE([#include +AC_TRY_COMPILE([#include +#include int accept (int, struct sockaddr *, size_t *); ],[],[ AC_MSG_RESULT(size_t) @@ -2531,20 +2549,6 @@ if test "$opsys" = "sol2"; then fi fi -dnl GNU ld now defaults to combreloc, which screws up unexec, but not pdump. -dnl Note that it's OK if the GNU style long option causes non-GNU ld to barf -dnl a usage message, that's often good enough. Please report it, though. -dnl #### Should make this Solaris-friendly. -dnl Link with -z nocombreloc for now. -if test "$pdump" != "yes"; then - AC_MSG_CHECKING(for \"-z nocombreloc\" linker flag) - case "`ld --help 2>&1`" in - *-z\ nocombreloc* ) AC_MSG_RESULT(yes) - XE_PREPEND(-z nocombreloc, ld_switch_site) ;; - *) AC_MSG_RESULT(no) ;; - esac -fi - dnl ---------------------- dnl Choose a window system dnl ---------------------- @@ -4262,7 +4266,14 @@ if test "$with_tty" = "yes" ; then done fi else dnl "$have_terminfo" = "no" && "with_ncurses" = "no" - XE_ADD_OBJS(tparam.o) + if test -n "$libs_termcap" -a "$opsys" = "openbsd"; then + dnl We need to check if tgoto does not exist in termcap yet + dnl because on OpenBSD libtermcap is another name for libcurses + dnl which provides the same tgoto as ncurses + AC_CHECK_LIB(termcap, tgoto, , XE_ADD_OBJS(tparam.o)) + else + XE_ADD_OBJS(tparam.o) + fi dnl The HP-UX curses library seems to have a badly broken version of select(2) dnl that makes "poll: interrupted system call" messages to appear and dnl Emacs subprocesses to hang (e.g. TeX compilation w/ AUCTeX) */ diff --git a/configure.usage b/configure.usage index 2a4aeee..361a596 100644 --- a/configure.usage +++ b/configure.usage @@ -169,7 +169,7 @@ Additional features: development environment. --with-socks Compile with support for SOCKS (an Internet proxy). --with-dnet (*) Compile with support for DECnet. ---with-modules Compile in experimental support for dynamically +--with-modules (*) Compile in experimental support for dynamically loaded libraries (Dynamic Shared Objects). --with-netinstall Compile in support for installation over the internet. Only functional on the MS Windows platforms. diff --git a/etc/BETA b/etc/BETA index cb00c65..26a91fd 100644 --- a/etc/BETA +++ b/etc/BETA @@ -151,7 +151,7 @@ and go play minesweep for a while on an older XEmacs while the binary is rebuilt. ** Building XEmacs from a full distribution -============================================== +=========================================== Locate a convenient place where you have at least 100MB of free space and issue the command @@ -266,7 +266,97 @@ build report should include: of the developers. -* Patching XEmacs +* Packages +========== + +[Note: these instructions have been partly updated, but not carefully +reviewed in some time. Caveat tester.] + +Starting with XEmacs 21.1, much of the functionality of XEmacs has +been unbundled into "the packages." For more information about the +package system, see the Info nodes on Packages (in the XEmacs User +Manual) and on Packaging (in the Lisp Reference). + +When bootstrapping XEmacs, you may need to manually install some +packages (at least xemacs-base and efs). These packages are available +by FTP at ftp://ftp.xemacs.org/pub/xemacs/packages/. + +** Binary package installation +============================== + +Prerequisite: XEmacs 21.0-b1. + +Binary packages are complete entities that can be untarred at the top +level of an XEmacs package hierarchy and work at runtime. To install files +in this directory, run the command `M-x package-admin-add-binary-package' +and fill in appropriate values to the prompts. + +** Manual procedures for package management +=========================================== + +Prerequisite: XEmacs 21.0 + +When adding and deleting files from a lisp directory the +auto-autoloads.el (global symbols) and custom-load.el (Customization +groups) must be kept in synch. Assuming one is manipulating a +directory called `lisp-utils', the command to rebuild the +auto-autoloads.el file is: + +xemacs -vanilla -batch -l autoload -f batch-update-directory lisp-utils + +The command to rebuild the custom-load.el file is: + +xemacs -vanilla -batch -l cus-dep -f Custom-make-dependencies lisp-utils + +To bytecompile both of these files the command is: + +xemacs -vanilla -batch -f batch-byte-compile \ + lisp-utils/auto-autoloads.el lisp-utils/custom-load.el + +** Building XEmacs and XEmacs packages from scratch +=================================================== + +To build everything completely from scratch (not a high priority as a +design goal), the following procedure should work. (I don't recommend +building this way). + +*** Phase 1 -- Get a minimal XEmacs binary with mule to build the package + lisp with. + +**** Grab a mule-base tarball and install it into a newly created package + directory. + +**** Configure XEmacs with mule and a package-path including the + directory created above. + +**** Do a `make dist' to build an XEmacs binary. + +*** Phase 2 -- Build and install the package lisp. + +**** Modify XEmacs.rules for local paths and the XEmacs binary created in + Phase 1. + +**** Do a make from the top level package lisp source directory.[1] + +**** Do `make bindist's on all the packages you wish to install and + remove the byproduct .tar.gz's. + +*** Phase 3 -- If necessary, redump XEmacs + with the packages that require dump-time support and install it. + +**** Reconfigure without Mule if you don't wish a Mule-ish XEmacs, and + rebuild XEmacs. + +- or - + +**** rm lib-src/DOC src/xemacs; make + +**** Install or run in-place. + +Note that this is in essence what `make all-elc' has always done. + + +* Improving XEmacs ================= ** Creating patches for submission @@ -386,91 +476,93 @@ then post a short COMMIT notice to xemacs-patches when you commit to CVS. Members of the Review Board will also post short notices of administrative action (APPROVE, VETO, QUERY, etc) to xemacs-patches. -* Packages -==================================== - -[Note: these instructions have been partly updated, but not carefully -reviewed in some time. Caveat tester.] - -Starting with XEmacs 21.1, much of the functionality of XEmacs has -been unbundled into "the packages." For more information about the -package system, see the Info nodes on Packages (in the XEmacs User -Manual) and on Packaging (in the Lisp Reference). - -When bootstrapping XEmacs, you may need to manually install some -packages (at least xemacs-base and efs). These packages are available -by FTP at ftp://ftp.xemacs.org/pub/xemacs/packages/. - -** Binary package installation -================================================ - -Prerequisite: XEmacs 21.0-b1. - -Binary packages are complete entities that can be untarred at the top -level of an XEmacs package hierarchy and work at runtime. To install files -in this directory, run the command `M-x package-admin-add-binary-package' -and fill in appropriate values to the prompts. - -** Manual procedures for package management -=========================================== - -Prerequisite: XEmacs 21.0 - -When adding and deleting files from a lisp directory the -auto-autoloads.el (global symbols) and custom-load.el (Customization -groups) must be kept in synch. Assuming one is manipulating a -directory called `lisp-utils', the command to rebuild the -auto-autoloads.el file is: - -xemacs -vanilla -batch -l autoload -f batch-update-directory lisp-utils - -The command to rebuild the custom-load.el file is: - -xemacs -vanilla -batch -l cus-dep -f Custom-make-dependencies lisp-utils - -To bytecompile both of these files the command is: - -xemacs -vanilla -batch -f batch-byte-compile \ - lisp-utils/auto-autoloads.el lisp-utils/custom-load.el - -** Building XEmacs and XEmacs packages from scratch -=================================================== - -To build everything completely from scratch (not a high priority as a -design goal), the following procedure should work. (I don't recommend -building this way). - -*** Phase 1 -- Get a minimal XEmacs binary with mule to build the package - lisp with. - -**** Grab a mule-base tarball and install it into a newly created package - directory. - -**** Configure XEmacs with mule and a package-path including the - directory created above. - -**** Do a `make dist' to build an XEmacs binary. - -*** Phase 2 -- Build and install the package lisp. - -**** Modify XEmacs.rules for local paths and the XEmacs binary created in - Phase 1. - -**** Do a make from the top level package lisp source directory.[1] - -**** Do `make bindist's on all the packages you wish to install and - remove the byproduct .tar.gz's. - -*** Phase 3 -- If necessary, redump XEmacs - with the packages that require dump-time support and install it. - -**** Reconfigure without Mule if you don't wish a Mule-ish XEmacs, and - rebuild XEmacs. - -- or - - -**** rm lib-src/DOC src/xemacs; make - -**** Install or run in-place. - -Note that this is in essence what `make all-elc' has always done. +** Large contributions +====================== + +Perhaps you have a whole new mode, or a major synchronization with +upstream for a neglected package, or a synchronization with GNU Emacs +you would like to contribute. We welcome such contributions, but they +are likely to be relatively controversial, generate more comments and +requests for revision, and take longer to integrate. Please be +patient with the process. + +*** Updates to existing packages +-------------------------------- + +If a package has gotten a bit out of date, or even started to bitrot, +we welcome patches to synchronize it with upstream/GNU Emacs versions. +Most packages end up varying somewhat from their GNU origins. See +"Syncing with GNU Emacs" for hints. Note that if you do a reasonably +large amount of syncing with GNU Emacs, you should log this in the +file itself as well as in the ChangeLog. + +If the package is important to you, please consider becoming the +maintainer. (See "New packages", below.) + +*** New packages +---------------- + +If you have a new mode or other large addition that does not require +changes to the core, please consider submitting it as a package, and +becoming the maintainer. You get direct commit privileges to the +repository for your package, "approval" privileges for your own +patches as well as third party patches to your package, and some +degree of veto power over patches you don't like. In return, you are +expected to maintain friendly liaison with the upstream developer (if +you aren't the upstream developer), keep watch on the XEmacs Patches +list for relevant patches, and be available by email to other +developers for discussion of changes that impact your package. It's +also a pretty standard route to the "core" development group, where we +have plenty of extra work waiting for volunteers. + +You don't have to become the maintainer, but it virtually ensures +rapid acceptance of the package. + +For help in creating new packages, see the (rather sparse) discussions +in the XEmacs User's Guide and the Lisp Reference Manual. The XEmacs +Package Release Engineer (Ville Skyttä is +currently serving with Peter Brown +assisting; Steve Youngs and Stephen Turnbull + also can help) is the most likely source of advice. + +*** Syncing with GNU Emacs +-------------------------- + +Syncing with GNU Emacs is an important activity. Although each +version has its advantages and areas of concentration, it is very +desirable that common functionality share specifications and APIs. +When porting GNU code to XEmacs, the following points should be given +special attention: + + o Recent GNU Emacsen cannot be built without Mule, but XEmacs can. + Make sure your changes do not assume the presence of Mule. + + o GNU Emacs nomenclature often differs from that of XEmacs. + Sometimes syncing the names is desirable, other times not. + + o GNU Emacs functionality often differs from that of XEmacs. + Syncing functionality is often controversial. + +It is important that you let other developers know that +synchronization has taken place, to what degree, and when. For this +purpose, we use comments of the form + +/* Synched up with: FSF 21.3 by Stephen Turnbull */ + +in the source file itself, as the last element of the prefatory +material (copyright notice and commentary). Obviously the comment +marker needs to be changed to leading semicolons for Lisp, but +otherwise the format is the same. + +Of course you should note syncing as the purpose in the ChangeLog, +too. But entries get buried deep in the ChangeLog file, and may even +get moved to a separate ChangeLog.OLD file for rarely synched files. + +Rather than dates we use the version of GNU Emacs to sync to. If the +synchronization is partial, add a new comment describing what has +actually been synched, leaving the description of the last full sync +in place. At each full sync, remove all previous synchronization +comments. + +This applies to Lisp that we have broken out into packages, but +remains in the GNU Emacs core, as well to core Lisp in XEmacs. diff --git a/etc/OXYMORONS b/etc/OXYMORONS index acb23c0..91d8b12 100644 --- a/etc/OXYMORONS +++ b/etc/OXYMORONS @@ -35,9 +35,10 @@ theme for the releases following the promotion of 21.4 from "gamma" to 21.4.12: Rational FORTRAN 21.4.13: Reasonable Discussion 21.4.14: Security Through Obscurity -21.4.15: Standard C -21.4.16: Successful IPO -21.4.17: Sufficiently Smart Compiler +21.4.15: Stable Release Maintainer +21.4.16: Standard C +21.4.17: Successful IPO +21.4.18: Sufficiently Smart Compiler N.B. Only incredibly redeeming suggestions can be accepted now. diff --git a/etc/package-index.LATEST.pgp b/etc/package-index.LATEST.pgp index 0db2465..46b7e8d 100644 --- a/etc/package-index.LATEST.pgp +++ b/etc/package-index.LATEST.pgp @@ -1,6 +1,50 @@ ;; Package Index file -- Do not edit manually. ;;;@@@ (package-get-update-base-entry (quote +(ess + (standards-version 1.1 + version "1.02" + author-version "5.1.21" + date "2002-06-04" + build-date "2002-06-04" + maintainer "A.J. Rossini " + distribution xemacs + priority medium + category "standard" + dump nil + description "ESS: Emacs Speaks Statistics." + filename "ess-1.02-pkg.tar.gz" + md5sum "3eff981706623221b5af048dc8a00f17" + size 469304 + provides (ess-batch ess-comp ess-cust ess-dump ess-emcs ess-font-lock ess-help ess-inf ess-iw32 ess-latex-mode ess-menu ess-mode ess-mous ess-noweb ess-site ess-sysdp ess-utils ess-vars ess essa-r essa-sas essd-arc essd-els essd-r essd-omg essd-r essd-s3 essd-s4 essd-sas essd-sp3 essd-sp4 essd-sp5 essd-sp6 essd-sta essd-vst essd-xls essddr essdsp6w essl-bug essl-lsp essl-omg essl-py essl-s essl-sas essl-sta make-regexp mouseme msdos noweb-font-lock-mode noweb-mode) + requires (xemacs-base mail-lib fsf-compat edit-utils) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(haskell-mode + (standards-version 1.1 + version "1.03" + author-version "1.43" + date "2002-05-07" + build-date "2002-05-07" + maintainer "Ville Skyttä " + distribution xemacs + priority low + category "standard" + dump nil + description "Haskell editing support." + filename "haskell-mode-1.03-pkg.tar.gz" + md5sum "c734831433d7330094064fe3959d94f1" + size 91983 + provides (haskell-decl-scan haskell-doc haskell-font-lock haskell-indent haskell-mode haskell-simple-indent) + requires (dired mail-lib xemacs-base edit-utils) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote (xslide (standards-version 1.1 version "1.01" @@ -25,19 +69,19 @@ (package-get-update-base-entry (quote (liece (standards-version 1.1 - version "1.02" + version "1.07" author-version "1.4.7" - date "2002-03-27" - build-date "2002-03-27" + date "2002-07-14" + build-date "2002-07-14" maintainer "Daiki Ueno " distribution xemacs priority high category "standard" dump nil description "IRC (Internet Relay Chat) client for Emacs." - filename "liece-1.02-pkg.tar.gz" - md5sum "7c899f30aa09060a654293ea34cc69a2" - size 197898 + filename "liece-1.07-pkg.tar.gz" + md5sum "10a70f816b57757a6dc58b29f342881f" + size 197755 provides (liece-xemacs gettext liece-clfns liece-handler liece-compat liece-version liece-vars liece-globals liece-inlines liece-filter liece-coding liece-dcc liece-menu liece-000 liece-200 liece-300 liece-400 liece-500 liece-nick liece-channel liece-commands liece-ctcp liece-q-el liece-message liece-handle liece-hilit liece-intl liece-mail liece-minibuf liece-misc liece-tcp liece-url liece-x-face liece-window liece) requires (apel mail-lib fsf-compat xemacs-base) type regular @@ -47,19 +91,19 @@ (package-get-update-base-entry (quote (latin-unity (standards-version 1.1 - version "1.02" - author-version "1.02" - date "2002-03-27" - build-date "2002-03-27" + version "1.05" + author-version "1.05" + date "2002-05-07" + build-date "2002-05-07" maintainer "Stephen J. Turnbull " distribution mule priority high category "mule" dump nil description "MULE: find single ISO 8859 character set to encode a buffer." - filename "latin-unity-1.02-pkg.tar.gz" - md5sum "a805ae51271723aa4bf50b43e24d197f" - size 84953 + filename "latin-unity-1.05-pkg.tar.gz" + md5sum "fc968dc2682d52ab37634e22028d8598" + size 86755 provides (latin-unity latin-unity-tables latin-unity-utils) requires (mule-base mule-ucs leim fsf-compat) type regular @@ -91,19 +135,19 @@ (package-get-update-base-entry (quote (ibuffer (standards-version 1.1 - version "1.04" - author-version "21.5b5" - date "2002-03-25" - build-date "2002-03-25" + version "1.08" + author-version "21.5b6" + date "2002-07-14" + build-date "2002-07-14" maintainer "John Paul Wallington " distribution xemacs priority medium category "standard" dump nil description "Advanced replacement for buffer-menu" - filename "ibuffer-1.04-pkg.tar.gz" - md5sum "318cb38fcc9f27227ae147327e924d73" - size 78461 + filename "ibuffer-1.08-pkg.tar.gz" + md5sum "e7203eeeca98a89c2bfe051d81c729de" + size 87113 provides (ibuf-ext ibuf-macs ibuffer) requires (ibuffer xemacs-base) type regular @@ -113,19 +157,19 @@ (package-get-update-base-entry (quote (xemacs-base (standards-version 1.1 - version "1.61" - author-version "21.5b5" - date "2002-03-27" - build-date "2002-03-27" + version "1.66" + author-version "21.5b6" + date "2002-07-14" + build-date "2002-07-14" maintainer "XEmacs Development Team " distribution xemacs priority high category "standard" dump nil description "Fundamental XEmacs support, you almost certainly need this." - filename "xemacs-base-1.61-pkg.tar.gz" - md5sum "f6e0bb7401bfce2d5a670c352b2376bb" - size 457628 + filename "xemacs-base-1.66-pkg.tar.gz" + md5sum "108cb98a37dd6270618b942e0fe97b48" + size 464634 provides (add-log advice-preload advice annotations assoc case-table chistory comint-xemacs comint compile debug ebuff-menu echistory edmacro ehelp electric enriched env facemenu ffap helper imenu iso-syntax macros novice outline passwd pp regexp-opt regi ring shell skeleton sort thing time-stamp timezone tq xbm-button xpm-button) requires () type regular @@ -135,19 +179,19 @@ (package-get-update-base-entry (quote (tramp (standards-version 1.1 - version "1.04" + version "1.05" author-version "2002-02-18" - date "2002-03-25" - build-date "2002-03-26" + date "2002-04-24" + build-date "2002-04-24" maintainer "Kai Großjohann " distribution xemacs priority low category "standard" dump nil description "Remote shell-based file editing." - filename "tramp-1.04-pkg.tar.gz" - md5sum "76d676178f448ba174e74a964d1dbfaf" - size 135053 + filename "tramp-1.05-pkg.tar.gz" + md5sum "a0c020f425b6344ea0c133dc26e7f689" + size 136196 provides (tramp tramp-util tramp-vc trampcache) requires (tramp xemacs-base vc fsf-compat efs dired mail-lib gnus) type regular @@ -157,20 +201,20 @@ (package-get-update-base-entry (quote (text-modes (standards-version 1.1 - version "1.40" - author-version "21.5b5" - date "2002-03-25" - build-date "2002-03-25" + version "1.48" + author-version "21.5b6" + date "2002-06-27" + build-date "2002-06-27" maintainer "XEmacs Development Team " distribution xemacs priority high category "standard" dump nil description "Miscellaneous support for editing text files." - filename "text-modes-1.40-pkg.tar.gz" - md5sum "add592d9c4166ae6d46f0f49d1934f85" - size 271468 - provides (ansi-color autoinsert crontab-edit filladapt flyspell folding fold-isearch hexl htmlize image-mode iso-acc iso-ascii iso-cvt iso-insert iso-swed rtf-support swedish tabify whitespace-mode winmgr-mode xpm-mode xrdb-mode) + filename "text-modes-1.48-pkg.tar.gz" + md5sum "f2df17af03a7f47e3b2e7b970d0b9f0b" + size 345796 + provides (ansi-color autoinsert crontab-edit filladapt flyspell folding fold-isearch hexl htmlize image-mode iso-acc iso-ascii iso-cvt iso-insert iso-swed rtf-support swedish tabify whitespace-mode winmgr-mode xpm-mode xrdb-mode apache-mode po-mode css-mode) requires (ispell fsf-compat xemacs-base) type regular )) @@ -179,19 +223,19 @@ (package-get-update-base-entry (quote (pcl-cvs (standards-version 1.1 - version "1.60" + version "1.63" author-version "R-2_9_9" - date "2002-03-25" - build-date "2002-03-25" + date "2002-06-04" + build-date "2002-06-04" maintainer "XEmacs Development Team " distribution xemacs priority low category "standard" dump nil description "CVS frontend." - filename "pcl-cvs-1.60-pkg.tar.gz" - md5sum "d9927da2c1602b6e1797ca64b9974164" - size 163055 + filename "pcl-cvs-1.63-pkg.tar.gz" + md5sum "87b7a9ebd1aa6d24ee4c3c0ff914daad" + size 161146 provides (cvs-compat cvs-edit cvs-log cvs-status easy-mmode pcl-cvs-defs pcl-cvs-info pcl-cvs-parse pcl-cvs-util pcl-cvs) requires (xemacs-base elib vc dired edebug ediff edit-utils mail-lib prog-modes) type regular @@ -201,21 +245,21 @@ (package-get-update-base-entry (quote (mail-lib (standards-version 1.1 - version "1.44" - author-version "21.5b5" - date "2002-03-25" - build-date "2002-03-25" + version "1.47" + author-version "21.5b6" + date "2002-07-14" + build-date "2002-07-14" maintainer "Simon Josefsson " distribution xemacs priority medium category "standard" dump nil description "Fundamental lisp files for providing email support." - filename "mail-lib-1.44-pkg.tar.gz" - md5sum "8b45218d6c18a7bebcfce5c82ef47356" - size 183119 - provides (base64 browse-url-xemacs browse-url highlight-headers mail-abbrevs mail-extr mail-utils mailheader pop3 reporter rfc2104 rfc822 rmail rmail-mini rmailout sendmail smtpmail starttls) - requires (eterm xemacs-base) + filename "mail-lib-1.47-pkg.tar.gz" + md5sum "3cba556078ece30b7538ade56e138041" + size 186598 + provides (base64 browse-url-xemacs browse-url highlight-headers mail-abbrevs mail-extr mail-utils mailheader netrc pop3 reporter rfc2104 rfc822 rmail rmail-mini rmailout sendmail smtpmail starttls) + requires (eterm xemacs-base fsf-compat sh-script) type regular )) )) @@ -223,21 +267,21 @@ (package-get-update-base-entry (quote (jde (standards-version 1.1 - version "1.34" + version "1.35" author-version "2.2.8" - date "2002-03-28" - build-date "2002-03-28" + date "2002-05-09" + build-date "2002-05-10" maintainer "Paul Kinnucan " distribution xemacs priority medium category "standard" dump nil description "Java language and development support." - filename "jde-1.34-pkg.tar.gz" - md5sum "b72427bec9bd028931e4893a0a91dbdb" - size 1635561 + filename "jde-1.35-pkg.tar.gz" + md5sum "b0289c057ce2a0d95c417409f5f17ba4" + size 1635420 provides (jde) - requires (jde cc-mode semantic debug speedbar edit-utils eterm mail-lib xemacs-base xemacs-devel eieio elib sh-script) + requires (jde cc-mode semantic debug speedbar edit-utils eterm mail-lib xemacs-base xemacs-devel eieio elib sh-script fsf-compat) type regular )) )) @@ -267,19 +311,19 @@ (package-get-update-base-entry (quote (edit-utils (standards-version 1.1 - version "1.82" - author-version "21.5b5" - date "2002-03-25" - build-date "2002-03-25" + version "1.89" + author-version "21.5b6" + date "2002-06-27" + build-date "2002-06-27" maintainer "XEmacs Development Team " distribution xemacs priority high category "standard" dump nil description "Miscellaneous editor extensions, you probably need this." - filename "edit-utils-1.82-pkg.tar.gz" - md5sum "0d37ebd1f1841c864809c7486d1dc47b" - size 649444 + filename "edit-utils-1.89-pkg.tar.gz" + md5sum "b7d94a10cda4795bbb759e0ee88ae86e" + size 650996 provides (abbrevlist after-save-commands atomic-extents avoid backup-dir balloon-help big-menubar blink-cursor blink-paren bookmark compare-w completion dabbrev desktop detached-minibuf edit-toolbar fast-lock file-part floating-toolbar flow-ctrl foldout func-menu hippie-exp icomplete id-select info-look iswitchb lazy-lock lazy-shot live-icon makesum man mic-paren paren mode-motion+ outl-mouse outln-18 page-ext blink-paren paren permanent-buffers popper power-macros recent-files redo reportmail resume rsz-minibuf saveconf savehist saveplace scroll-in-place setnu shell-font tempo toolbar-utils tree-menu uniquify vertical-mode where-was-i-db winring) requires (xemacs-base fsf-compat dired mail-lib) type single @@ -289,19 +333,19 @@ (package-get-update-base-entry (quote (skk (standards-version 1.1 - version "1.21" + version "1.22" author-version "10.62a" - date "2002-01-26" - build-date "2002-01-27" + date "2002-04-30" + build-date "2002-04-30" maintainer "XEmacs Development Team " distribution mule priority medium category "mule" dump nil description "MULE: Japanese Language Input Method." - filename "skk-1.21-pkg.tar.gz" - md5sum "9552a22b8f1cb3c4fb79c7a182f46e2b" - size 1504736 + filename "skk-1.22-pkg.tar.gz" + md5sum "05457e10b156dbcc2e0f735d46d934a1" + size 1461781 provides (skk-auto skk-comp skk-cursor skk-develop skk-foreword skk-gadget skk-isearch skk-kakasi skk-kcode skk-leim skk-look skk-num skk-obsolete skk-server skk-tut skk-vars skk-viper skk vip) requires (viper mule-base elib xemacs-base apel) type regular @@ -311,19 +355,19 @@ (package-get-update-base-entry (quote (ps-print (standards-version 1.1 - version "1.03" + version "1.04" author-version "6.5.6" - date "2002-02-01" - build-date "2002-02-13" + date "2002-04-24" + build-date "2002-04-24" maintainer "XEmacs Development Team " distribution xemacs priority medium category "standard" dump nil description "Printing functions and utilities" - filename "ps-print-1.03-pkg.tar.gz" - md5sum "b2d8db1073568d4301eb1c3a0935fa4e" - size 153654 + filename "ps-print-1.04-pkg.tar.gz" + md5sum "e4c3f93b960454cf6dc559a0704fb084" + size 154281 provides (lpr ps-bdf ps-mule ps-print) requires (text-modes) type regular @@ -333,19 +377,19 @@ (package-get-update-base-entry (quote (sieve (standards-version 1.1 - version "1.02" - author-version "21.5b5" - date "2002-03-25" - build-date "2002-03-25" + version "1.07" + author-version "21.5b6" + date "2002-06-04" + build-date "2002-06-04" maintainer "Simon Josefsson " distribution xemacs priority low category "standard" dump nil description "Manage Sieve email filtering scripts." - filename "sieve-1.02-pkg.tar.gz" - md5sum "146231a5fe41f68ed0387ffe1846843c" - size 23338 + filename "sieve-1.07-pkg.tar.gz" + md5sum "d86e60ea1b6c552be2b6db7cca60e151" + size 23498 provides (sieve sieve-mode sieve-manage) requires (xemacs-base mail-lib cc-mode) type regular @@ -377,19 +421,19 @@ (package-get-update-base-entry (quote (clearcase (standards-version 1.0 - version "1.03" - author-version "21.5b4" - date "2002-02-12" - build-date "2002-02-13" + version "1.04" + author-version "21.5b6" + date "2002-06-27" + build-date "2002-06-27" maintainer "Michael Diers " distribution xemacs priority low category "standard" dump nil description "New Clearcase Version Control for XEmacs (UNIX, Windows)." - filename "clearcase-1.03-pkg.tar.gz" - md5sum "f77f179bbb57b496a5ca9a8199858e29" - size 89096 + filename "clearcase-1.04-pkg.tar.gz" + md5sum "c60546db0605910ec57af7151a7fc9a7" + size 89274 provides (clearcase) requires (dired fsf-compat mail-lib xemacs-base) type regular @@ -399,19 +443,19 @@ (package-get-update-base-entry (quote (dictionary (standards-version 1.1 - version "1.08" - author-version "1.7" - date "2002-03-25" - build-date "2002-03-25" + version "1.11" + author-version "1.8" + date "2002-05-20" + build-date "2002-05-20" maintainer "Torsten Hilbrich " distribution xemacs priority low category "standard" dump nil description "Interface to RFC2229 dictionary servers." - filename "dictionary-1.08-pkg.tar.gz" - md5sum "908bf76c8f0e5d5463ff1282ae66f9b8" - size 38956 + filename "dictionary-1.11-pkg.tar.gz" + md5sum "6bead861baac049fb1807dd2e03a1475" + size 39886 provides (dictionary connection link) requires (xemacs-base) type regular @@ -421,19 +465,19 @@ (package-get-update-base-entry (quote (build (standards-version 1.0 - version "1.05" - author-version "21.5b4" - date "2002-01-07" - build-date "2002-01-14" + version "1.06" + author-version "2.00" + date "2002-07-20" + build-date "2002-07-20" maintainer "Adrian Aichner " distribution stable priority low category "standard" dump nil description "Build XEmacs from within (UNIX, Windows)." - filename "build-1.05-pkg.tar.gz" - md5sum "3d6158756a1990e92ff2ed77d6e39425" - size 31606 + filename "build-1.06-pkg.tar.gz" + md5sum "2d0fb08caf67bb89759be4ac54b6a0fb" + size 39500 provides (build) requires (xemacs-base pcl-cvs dired w3 prog-modes) type regular @@ -443,21 +487,21 @@ (package-get-update-base-entry (quote (xslt-process (standards-version 1.0 - version "1.06" + version "1.10" author-version "1.2.1" - date "2002-01-15" - build-date "2002-01-15" + date "2002-07-14" + build-date "2002-07-14" maintainer "Ovidiu Predescu " distribution xemacs priority medium category "standard" dump nil description "XSLT processing support." - filename "xslt-process-1.06-pkg.tar.gz" - md5sum "29c91cf906a685b3197bc4ab13d27735" - size 200263 + filename "xslt-process-1.10-pkg.tar.gz" + md5sum "b6fedc8eb356d6e4277ff505324a2abe" + size 199744 provides (xslt-process) - requires (jde cc-mode semantic debug speedbar edit-utils eterm mail-lib xemacs-base elib eieio sh-script) + requires (jde cc-mode semantic debug speedbar edit-utils eterm mail-lib xemacs-base elib eieio sh-script fsf-compat) type regular )) )) @@ -531,19 +575,19 @@ (package-get-update-base-entry (quote (lookup (standards-version 1.1 - version "1.10" + version "1.12" author-version "1.0" - date "2002-03-25" - build-date "2002-03-25" + date "2002-06-27" + build-date "2002-06-27" maintainer "XEmacs Development Team " distribution mule priority high category "mule" dump nil description "MULE: Dictionary support" - filename "lookup-1.10-pkg.tar.gz" - md5sum "e3938ad866de0a22df8cc1042ddb62f3" - size 214515 + filename "lookup-1.12-pkg.tar.gz" + md5sum "f07a3791e49f75c7f1504edb077a5560" + size 190864 provides (evi-mule evi lookup-content lookup-defs lookup-entry lookup-select lookup-package lookup-select lookup-types lookup-utils lookup-vars lookup-vse lookup ndcookie ndeb ndic ndict ndkks ndmisc ndnmz ndspell ndsrd ndtp sdicf stem) requires (mule-base cookie lookup) type regular @@ -553,19 +597,19 @@ (package-get-update-base-entry (quote (leim (standards-version 1.1 - version "1.17" - author-version "21.1" - date "2000-11-08" - build-date "2001-01-15" + version "1.18" + author-version "21.5b5" + date "2002-04-24" + build-date "2002-04-24" maintainer "XEmacs Development Team " distribution mule priority medium category "mule" dump nil description "MULE: Quail. All non-English and non-Japanese language support." - filename "leim-1.17-pkg.tar.gz" - md5sum "61d39ee096e39219651b01648a37ef2e" - size 1708067 + filename "leim-1.18-pkg.tar.gz" + md5sum "b0467e2a3a93b46590bd2fe9bbf9675e" + size 1708615 provides () requires (mule-base fsf-compat xemacs-base) type regular @@ -597,19 +641,19 @@ (package-get-update-base-entry (quote (mule-base (standards-version 1.1 - version "1.39" - author-version "21.5b1" - date "2001-05-23" - build-date "2001-06-14" + version "1.42" + author-version "21.5b6" + date "2002-06-27" + build-date "2002-06-27" maintainer "XEmacs Development Team " distribution mule priority high category "mule" dump nil description "MULE: Basic Mule support, required for building with Mule." - filename "mule-base-1.39-pkg.tar.gz" - md5sum "5686febbb08c950ead2b4d0b1707c09e" - size 443543 + filename "mule-base-1.42-pkg.tar.gz" + md5sum "d521ca4256a8333db5dc686b9d719232" + size 443826 provides (canna-leim canna char-table china-util cyril-util isearch-ext japan-util ccl can-n-egg mule-help) requires (fsf-compat xemacs-base apel) type regular @@ -707,19 +751,19 @@ (package-get-update-base-entry (quote (psgml (standards-version 1.1 - version "1.27" + version "1.28" author-version "1.22" - date "2002-02-15" - build-date "2002-02-23" + date "2002-05-09" + build-date "2002-05-10" maintainer "XEmacs Development Team " distribution xemacs priority medium category "standard" dump nil description "Validated HTML/SGML editing." - filename "psgml-1.27-pkg.tar.gz" - md5sum "e2ee0ca808175b7904e03865fb5e9f2f" - size 652565 + filename "psgml-1.28-pkg.tar.gz" + md5sum "e559c5b88300e414654550806eab8c7a" + size 651867 provides (iso-sgml psgml-api psgml-charent psgml-debug psgml-dtd psgml-edit psgml-fs psgml-html psgml-info psgml-parse psgml-xemacs psgml sgml-mode) requires (xemacs-base edit-utils edebug xemacs-devel mail-lib) type regular @@ -729,19 +773,19 @@ (package-get-update-base-entry (quote (pc (standards-version 1.1 - version "1.21" - author-version "21.5b4" - date "2002-01-10" - build-date "2002-01-14" + version "1.25" + author-version "21.5b6" + date "2002-06-04" + build-date "2002-06-04" maintainer "XEmacs Development Team " distribution xemacs priority low category "standard" dump nil description "PC style interface emulation." - filename "pc-1.21-pkg.tar.gz" - md5sum "5e4818857e3132288c7c1d069f2aa75e" - size 17095 + filename "pc-1.25-pkg.tar.gz" + md5sum "03b7fcc55e1ce79a6017cdfa7fd49f3d" + size 17429 provides (delbs fusion pc-select pending-del s-region) requires (xemacs-base) type regular @@ -861,21 +905,21 @@ (package-get-update-base-entry (quote (calc (standards-version 1.1 - version "1.19" + version "1.23" author-version "2.02fX3" - date "2002-03-25" - build-date "2002-03-25" + date "2002-05-09" + build-date "2002-05-10" maintainer "XEmacs Development Team " distribution xemacs priority low category "standard" dump nil description "Emacs calculator" - filename "calc-1.19-pkg.tar.gz" - md5sum "50adc786650be5b3c07f752a0e9481d3" - size 1614659 + filename "calc-1.23-pkg.tar.gz" + md5sum "e66651dacc67325f6e6d033f80f2e989" + size 1615158 provides (calc-ext calc-macs calc) - requires () + requires (xemacs-base) type regular )) )) @@ -971,19 +1015,19 @@ (package-get-update-base-entry (quote (os-utils (standards-version 1.1 - version "1.26" - author-version "21.5b4" - date "2002-01-13" - build-date "2002-01-14" + version "1.28" + author-version "21.5b6" + date "2002-05-10" + build-date "2002-05-10" maintainer "XEmacs Development Team " distribution xemacs priority medium category "standard" dump nil description "Miscellaneous O/S utilities." - filename "os-utils-1.26-pkg.tar.gz" - md5sum "f347b3ea62543a6e637eaf73e6772c0a" - size 198764 + filename "os-utils-1.28-pkg.tar.gz" + md5sum "57d2aa4e6f7d1ad321e1d1d84b2c458c" + size 200020 provides (archive-mode background crypt++ crypt ftelnet inf-lisp jka-compr mchat rlogin ssh tar-mode telnet terminal uncompress) requires (xemacs-base) type single @@ -993,19 +1037,19 @@ (package-get-update-base-entry (quote (ilisp (standards-version 1.1 - version "1.20" - author-version "5.11.1" - date "2002-01-13" - build-date "2002-01-14" + version "1.27" + author-version "5.12.0" + date "2002-06-27" + build-date "2002-06-27" maintainer "ilisp Maintainers " distribution xemacs priority low category "standard" dump nil description "Front-end for Inferior Lisp." - filename "ilisp-1.20-pkg.tar.gz" - md5sum "0ee4440213bb4cb3144af60300c3dbc9" - size 335386 + filename "ilisp-1.27-pkg.tar.gz" + md5sum "a95a698b28301250971e8076d7ce89fd" + size 335702 provides (bridge comint-ipc comint completer ilcompat compat-fsf18 compat-fsf-19 compat-fsf-20 ilisp-chs ilisp-cl-easy-menu ilisp-ext ilisp-lw ilisp-key ilisp-menu ilisp-mnb ilisp-scheme-easy-menu ilisp il-luc19 il-luc19) requires (xemacs-base mail-lib fsf-compat eterm) type regular @@ -1059,19 +1103,19 @@ (package-get-update-base-entry (quote (viper (standards-version 1.1 - version "1.33" + version "1.34" author-version "3.09" - date "2002-03-25" - build-date "2002-03-26" + date "2002-04-24" + build-date "2002-04-24" maintainer "Michael Kifer " distribution xemacs priority low category "standard" dump nil description "VI emulation support." - filename "viper-1.33-pkg.tar.gz" - md5sum "68a659e67f5f9c533f76229ad3a9a1b5" - size 328311 + filename "viper-1.34-pkg.tar.gz" + md5sum "c438c8c42dbedd5634c773623db5a4ff" + size 329580 provides (viper-cmd viper-ex viper-init viper-keym viper-macs viper-mous viper-util viper) requires (xemacs-base) type regular @@ -1213,19 +1257,19 @@ (package-get-update-base-entry (quote (auctex (standards-version 1.1 - version "1.30" + version "1.32" author-version "10.0g" - date "2002-03-25" - build-date "2002-03-25" + date "2002-06-27" + build-date "2002-06-27" maintainer "XEmacs Development Team " distribution xemacs priority medium category "standard" dump nil description "Basic TeX/LaTeX support." - filename "auctex-1.30-pkg.tar.gz" - md5sum "52459679ad7e9fa4eb558c59d19e51c4" - size 385528 + filename "auctex-1.32-pkg.tar.gz" + md5sum "7d532a5a3d673f89f01c9dd3ed75ac80" + size 385505 provides (auc-old auc-tex bib-cite font-latex latex multi-prompt tex-buf tex-info tex-jp tex-mik tex-site tex texmathp) requires (xemacs-base) type regular @@ -1257,20 +1301,20 @@ (package-get-update-base-entry (quote (vc (standards-version 1.1 - version "1.30" - author-version "21.5b3" - date "2001-12-17" - build-date "2001-12-17" + version "1.33" + author-version "21.5b6" + date "2002-06-04" + build-date "2002-06-04" maintainer "XEmacs Development Team " distribution xemacs priority low category "standard" dump nil description "Version Control for Free systems." - filename "vc-1.30-pkg.tar.gz" - md5sum "f62e070f0f5e04c8b9ee4ec7badaa787" - size 91668 - provides (vc) + filename "vc-1.33-pkg.tar.gz" + md5sum "f3b8db930389eb6288af946398286ab6" + size 91716 + provides (vc vc-hooks) requires (dired xemacs-base vc mail-lib ediff) type regular )) @@ -1279,20 +1323,20 @@ (package-get-update-base-entry (quote (vc-cc (standards-version 1.1 - version "1.18" - author-version "21.5b3" - date "2001-12-10" - build-date "2001-12-10" + version "1.21" + author-version "21.5b6" + date "2002-06-04" + build-date "2002-06-04" maintainer "XEmacs Development Team " distribution xemacs priority low category "standard" dump nil description "Version Control for ClearCase (UnFree) systems." - filename "vc-cc-1.18-pkg.tar.gz" - md5sum "6885bb091d1fd108a7ec4353a96016ec" - size 94520 - provides (vc) + filename "vc-cc-1.21-pkg.tar.gz" + md5sum "eb7ad3f9407b32509fa95fa272476b7d" + size 94556 + provides (vc-cc vc-cc-hooks) requires (dired xemacs-base) type regular )) @@ -1301,19 +1345,19 @@ (package-get-update-base-entry (quote (sh-script (standards-version 1.1 - version "1.14" + version "1.15" author-version "2.0e" - date "2002-03-02" - build-date "2002-03-06" + date "2002-04-24" + build-date "2002-04-24" maintainer "XEmacs Development Team " distribution xemacs priority low category "standard" dump nil description "Support for editing shell scripts." - filename "sh-script-1.14-pkg.tar.gz" - md5sum "c8b3614f5fc4696e552d7d76806ce032" - size 35380 + filename "sh-script-1.15-pkg.tar.gz" + md5sum "72214e735ea0fda9147c051fbc3b6965" + size 36163 provides (sh-script executable) requires (xemacs-base) type regular @@ -1345,21 +1389,21 @@ (package-get-update-base-entry (quote (prog-modes (standards-version 1.1 - version "1.53" - author-version "21.5b5" - date "2002-03-25" - build-date "2002-03-25" + version "1.60" + author-version "21.5b6" + date "2002-07-14" + build-date "2002-07-14" maintainer "Ville Skyttä " distribution xemacs priority medium category "standard" dump nil description "Support for various programming languages." - filename "prog-modes-1.53-pkg.tar.gz" - md5sum "aed44c778da85591f3c267af073f928a" - size 944335 - provides (autoconf-mode awk-mode c-mode cperl-mode cvs diff-mode eiffel3 f90 fortran inf-ruby javascript-mode ksh-mode m4-mode makefile mode-compile mode-compile-kill modula2 p4 perl-mode php-mode postscript pydoc python-mode rexx-mode ruby-mode simula-mode sql tcl teco verilog-mode) - requires (mail-lib xemacs-devel xemacs-base cc-mode ps-print fsf-compat edit-utils ediff emerge efs vc speedbar dired ilisp) + filename "prog-modes-1.60-pkg.tar.gz" + md5sum "74909e13093afae889e3f43a1879e51c" + size 985711 + provides (autoconf-mode awk-mode c-mode cperl-mode cvs diff-mode eiffel-mode f90 fortran icon inf-ruby javascript-mode ksh-mode m4-mode makefile mode-compile mode-compile-kill modula2 p4 perl-mode php-mode postscript pydoc python-mode rexx-mode rpm-spec-mode ruby-mode simula-mode sql tcl teco verilog-mode) + requires (mail-lib xemacs-devel xemacs-base cc-mode ps-print fsf-compat edit-utils ediff emerge efs vc speedbar dired ilisp sh-script) type regular )) )) @@ -1411,19 +1455,19 @@ (package-get-update-base-entry (quote (ediff (standards-version 1.1 - version "1.39" + version "1.41" author-version "2.75" - date "2002-03-25" - build-date "2002-03-25" + date "2002-04-30" + build-date "2002-04-30" maintainer "Michael Kifer " distribution xemacs priority medium category "standard" dump nil description "Interface over GNU patch." - filename "ediff-1.39-pkg.tar.gz" - md5sum "d679f8d1a43dda8f51d6e6ba3cf24a35" - size 301259 + filename "ediff-1.41-pkg.tar.gz" + md5sum "4a4b9435a99e5d1cb0ac2fc0843d92fa" + size 303663 provides (ediff-diff ediff-help ediff-hook ediff-init ediff-merg ediff-mult ediff-ptch ediff-tbar ediff-util ediff-vers ediff-wind ediff) requires (pcl-cvs elib dired xemacs-base edebug prog-modes) type regular @@ -1433,20 +1477,20 @@ (package-get-update-base-entry (quote (debug (standards-version 1.1 - version "1.14" - author-version "21.2b42" - date "2000-11-07" - build-date "2001-01-27" + version "1.15" + author-version "21.5b6" + date "2002-05-01" + build-date "2002-05-01" maintainer "XEmacs Development Team " distribution xemacs priority low - category "prog" + category "standard" dump nil description "GUD, gdb, dbx debugging support." - filename "debug-1.14-pkg.tar.gz" - md5sum "20312f80900f1c99f3eeecddf75026ca" - size 103296 - provides (dbx gdb-highlight gdb gdbsrc gud history) + filename "debug-1.15-pkg.tar.gz" + md5sum "2b44d4c660f4cda44d4a159b40a6f457" + size 107347 + provides (dbx debug-toolbar gdb-highlight gdb gdbsrc gud history) requires (xemacs-base) type regular )) @@ -1499,19 +1543,19 @@ (package-get-update-base-entry (quote (cc-mode (standards-version 1.1 - version "1.27" + version "1.28" author-version "5.28" - date "2002-01-13" - build-date "2002-01-14" + date "2002-05-09" + build-date "2002-05-10" maintainer "Martin Stjernholm " distribution xemacs priority medium category "standard" dump nil description "C, C++ and Java language support." - filename "cc-mode-1.27-pkg.tar.gz" - md5sum "40d0d6638b94ec0fe40f1b29df6d4efd" - size 262878 + filename "cc-mode-1.28-pkg.tar.gz" + md5sum "d2c87709e503e11755c480f2aa50ea8c" + size 262921 provides (cc-bytecomp cc-align cc-cmds cc-compat cc-defs cc-engine cc-guess cc-langs cc-lobotomy cc-menus cc-mode-19 cc-mode cc-styles cc-vars) requires (xemacs-base mail-lib) type regular @@ -1631,19 +1675,19 @@ (package-get-update-base-entry (quote (bbdb (standards-version 1.1 - version "1.20" + version "1.21" author-version "2.34" - date "2002-03-25" - build-date "2002-03-25" + date "2002-06-27" + build-date "2002-06-27" maintainer "Ronan Waide " distribution xemacs priority medium category "standard" dump nil description "The Big Brother Data Base" - filename "bbdb-1.20-pkg.tar.gz" - md5sum "f5f772c6e77a6d97f53a60acb5203bf7" - size 373721 + filename "bbdb-1.21-pkg.tar.gz" + md5sum "8b1d6fe03d444a4977a358a431f1430e" + size 373823 provides (bbdb-com bbdb-ftp bbdb-gnus bbdb-gui bbdb-hooks bbdb-merge bbdb-mhe bbdb-migrate bbdb-print bbdb-reportmail bbdb-rmail bbdb-sc bbdb-snarf bbdb-srv bbdb-vm bbdb-w3 bbdb-whois bbdb-xemacs bbdb) requires (bbdb edit-utils gnus mh-e rmail supercite vm tm apel mail-lib xemacs-base w3) type regular @@ -1697,19 +1741,19 @@ (package-get-update-base-entry (quote (tm (standards-version 1.1 - version "1.32" - author-version "21.5b5" - date "2002-03-27" - build-date "2002-03-27" + version "1.34" + author-version "21.5b6" + date "2002-06-27" + build-date "2002-06-27" maintainer "XEmacs Development Team " distribution xemacs priority low category "standard" dump nil description "Emacs MIME support. Not needed for gnus >= 5.8.0" - filename "tm-1.32-pkg.tar.gz" - md5sum "f4b825c093897e785ef3dc06c9e263a2" - size 189142 + filename "tm-1.34-pkg.tar.gz" + md5sum "80c9bf5cf48f9ba61b1b6395751c44e4" + size 189067 provides (char-util cless gnus-art-mime gnus-charset gnus-mime gnus-sum-mime latex-math-symbol mel-b mel-g mel-q mel-u mel message-mime mime-setup mu-bbdb mu-cite range sc-setup signature texi-util tl-atype tl-list tl-misc tl-num tl-seq tl-str tm-bbdb tm-def tm-edit-mc tm-edit tm-ew-d tm-ew-e tm-file tm-ftp tm-html tm-image tm-latex tm-mail tm-mh-e tm-parse tm-partial tm-pgp tm-play tm-rmail tm-setup tm-tar tm-text tm-view tm-vm tmh-comp) requires (gnus mh-e rmail vm mailcrypt mail-lib apel xemacs-base fsf-compat) type regular @@ -1719,19 +1763,19 @@ (package-get-update-base-entry (quote (gnus (standards-version 1.1 - version "1.59" + version "1.62" author-version "5.8.8" - date "2002-03-25" - build-date "2002-03-25" + date "2002-06-27" + build-date "2002-06-27" maintainer "XEmacs Development Team " distribution xemacs priority medium category "standard" dump nil description "The Gnus Newsreader and Mailreader." - filename "gnus-1.59-pkg.tar.gz" - md5sum "3dfb92934e1723f88a6cab69f2c97be1" - size 2350665 + filename "gnus-1.62-pkg.tar.gz" + md5sum "b84bb02eab349e7c36b84d5f6bd5f194" + size 2356932 provides (binhex drums earcon flow-fill format-spec gnus-agent gnus-art gnus-async gnus-audio gnus-bcklg gnus-cache gnus-cite gnus-cus gnus-demon gnus-draft gnus-dup gnus-eform gnus-ems gnus-gl gnus-group gnus-int gnus-kill gnus-load gnus-logic gnus-mh gnus-ml gnus-mlspl gnus-move gnus-msg gnus-nocem gnus-picon gnus-range gnus-salt gnus-score gnus-setup gnus-soup gnus-spec gnus-srvr gnus-start gnus-sum gnus-topic gnus-undo gnus-util gnus-uu gnus-vm gnus-win gnus-xmas gnus ietf-drums imap lpath mail-parse mail-prsvr mail-source mailcap md5 message messagexmas messcompat mm-bodies mm-decode mm-encode mm-util mm-uu mm-view mml-smime mml nnagent nnbabyl nndb nndir nndoc nndraft nneething nnfolder nngateway nnheader nnheaderxm nnimap nnkiboze nnlistserv nnmail nnmbox nnmh nnml nnoo nnslashdot nnsoup nnspool nntp nnultimate nnvirtual nnwarchive nnweb nnwfm parse-time qp rfc1843 rfc2015 rfc2045 rfc2047 rfc2231 score-mode smiley smiley smime time-date utf7 uudecode vcard webmail) requires (gnus w3 mh-e mailcrypt rmail eterm mail-lib xemacs-base fsf-compat) type regular @@ -1829,19 +1873,19 @@ (package-get-update-base-entry (quote (gnats (standards-version 1.1 - version "1.14" + version "1.15" author-version "3.101" - date "2002-03-25" - build-date "2002-03-25" + date "2002-06-27" + build-date "2002-06-27" maintainer "XEmacs Development Team " distribution xemacs priority high category "standard" dump nil description "XEmacs bug reports." - filename "gnats-1.14-pkg.tar.gz" - md5sum "f5bcbcdb6ec241c9f22a29105b1debc9" - size 189561 + filename "gnats-1.15-pkg.tar.gz" + md5sum "9503a79e2e396eb13151aec7eadf561b" + size 189524 provides (gnats gnats-admin send-pr) requires (mail-lib xemacs-base) type regular @@ -1851,19 +1895,19 @@ (package-get-update-base-entry (quote (footnote (standards-version 1.1 - version "1.14" + version "1.15" author-version "0.18x" - date "2002-02-12" - build-date "2002-02-13" + date "2002-04-24" + build-date "2002-04-24" maintainer "SL Baur " distribution xemacs priority low category "standard" dump nil description "Footnoting in mail message editing modes." - filename "footnote-1.14-pkg.tar.gz" - md5sum "0052618f7875e79c20f2024e985d39fb" - size 21817 + filename "footnote-1.15-pkg.tar.gz" + md5sum "1cbe1e587881611006d9a8fc82be3be1" + size 21917 provides (footnote-cyrillic footnote-greek footnote-han footnote-hebrew footnote-kana footnote) requires (mail-lib xemacs-base) type regular @@ -1895,19 +1939,19 @@ (package-get-update-base-entry (quote (net-utils (standards-version 1.1 - version "1.24" - author-version "21.5b4" - date "2002-02-23" - build-date "2002-02-23" + version "1.27" + author-version "21.5b6" + date "2002-06-27" + build-date "2002-06-27" maintainer "XEmacs Development Team " distribution xemacs priority low category "standard" dump nil description "Miscellaneous Networking Utilities." - filename "net-utils-1.24-pkg.tar.gz" - md5sum "316b8f852ea625d89535b75028de1c1c" - size 119981 + filename "net-utils-1.27-pkg.tar.gz" + md5sum "45563ca39defd1328c9dabd933d9a0f5" + size 120333 provides (ilisp-browse-cltl2 xemacsbug feedmail metamail net-utils rcompile shadowfile webjump webster-www) requires (w3 efs mail-lib xemacs-base) type single @@ -1917,19 +1961,19 @@ (package-get-update-base-entry (quote (w3 (standards-version 1.1 - version "1.22" + version "1.25" author-version "4.0pre46" - date "2002-03-25" - build-date "2002-03-26" + date "2002-06-27" + build-date "2002-06-27" maintainer "XEmacs Development Team " distribution xemacs priority high category "standard" dump nil description "A Web browser." - filename "w3-1.22-pkg.tar.gz" - md5sum "1ac52ca40fd12b250e5a639f6549f652" - size 689366 + filename "w3-1.25-pkg.tar.gz" + md5sum "5eef9e6136c651a922d5cc341c8c7b56" + size 689340 provides (css devices w3-auto dsssl-flow dsssl font images md5 mm mule-sysdp socks ssl urlauth url-cache url-cookie url-file url-gopher url-gw url-http url-ldap url-mail url-misc url-news url-ns url-parse url-vars url w3-about w3-auto w3-cfg w3-cus w3-display w3-emacs19 w3-e19 w3-e20 w3-elisp w3-emulate w3-forms w3-hot w3-hotindex w3-imap w3-java w3-jscript w3-keyword w3-latex w3-menu w3-mouse w3-parse w3-print w3-props w3-script w3-structure w3-speak w3-style w3-sysdp w3-toolbar w3-vars w3-widget w3-xemacs w3-xemac w3) requires (w3 mail-lib xemacs-base) type regular @@ -1939,19 +1983,19 @@ (package-get-update-base-entry (quote (vm (standards-version 1.1 - version "7.03" - author-version "7.03" - date "2002-03-25" - build-date "2002-03-26" + version "7.07" + author-version "7.07" + date "2002-06-08" + build-date "2002-06-08" maintainer "Kyle Jones " distribution xemacs priority medium category "standard" dump nil description "An Emacs mailer." - filename "vm-7.03-pkg.tar.gz" - md5sum "ad490c8dacf885a28f897d93382d250b" - size 714118 + filename "vm-7.07-pkg.tar.gz" + md5sum "ab2c67c7cda2fe8739a1fef49cfc0fc5" + size 718569 provides (tapestry vm-byteopts vm-delete vm-digest vm-easymenu vm-edit vm-folder vm-imap vm-license vm-macro vm-mark vm-menu vm-message vm-mime vm-minibuf vm-misc vm-motion vm-mouse vm-page vm-pop vm-reply vm-save vm-search vm-sort vm-startup vm-summary vm-thread vm-toolbar vm-undo vm-user vm-vars vm vm-version vm-virtual vm-window) requires (mail-lib xemacs-base) type regular @@ -2005,19 +2049,19 @@ (package-get-update-base-entry (quote (xemacs-devel (standards-version 1.1 - version "1.43" - author-version "21.5b4" - date "2002-03-04" - build-date "2002-03-06" + version "1.47" + author-version "21.5b6" + date "2002-07-14" + build-date "2002-07-14" maintainer "XEmacs Development Team " distribution xemacs priority medium category "standard" dump nil description "Emacs Lisp developer support." - filename "xemacs-devel-1.43-pkg.tar.gz" - md5sum "ddbfe9135401490d5f3c2d8fd4f5ff24" - size 179426 + filename "xemacs-devel-1.47-pkg.tar.gz" + md5sum "0386b19a469f684dd97e67fe5ce15a99" + size 228197 provides (checkdoc docref eldoc elp eval-expr find-func hide-copyleft ielm patcher pp trace patch-keywords) requires (xemacs-base ispell mail-lib gnus) type single @@ -2115,19 +2159,19 @@ (package-get-update-base-entry (quote (apel (standards-version 1.1 - version "1.21" + version "1.25" author-version "10.2" - date "2002-03-25" - build-date "2002-03-25" + date "2002-07-30" + build-date "2002-07-30" maintainer "XEmacs Development Team " distribution xemacs priority high category "standard" dump nil description "A Portable Emacs Library. Used by XEmacs MIME support." - filename "apel-1.21-pkg.tar.gz" - md5sum "cf0e8f72176963be1a0c0a55d70dae82" - size 107681 + filename "apel-1.25-pkg.tar.gz" + md5sum "532f6290f85b87e78eeb059eb8a3f673" + size 108216 provides (atype emu-20 emu-e19 emu-x20 emu-xemacs emu file-detect filename install mule-caesar path-util richtext std11-parse std11 tinyrich) requires (fsf-compat xemacs-base) type regular @@ -2137,20 +2181,20 @@ (package-get-update-base-entry (quote (efs (standards-version 1.0 - version "1.28" - author-version "1.20pre2" - date "2002-03-25" - build-date "2002-03-25" + version "1.29" + author-version "1.20" + date "2002-04-24" + build-date "2002-04-24" maintainer "Mike Sperber " distribution stable priority medium category "standard" dump nil description "Treat files on remote systems the same as local files." - filename "efs-1.28-pkg.tar.gz" - md5sum "7622650d9c754337d7fd97c61ea8942b" - size 370073 - provides (default-dir efs-auto efs-cms-knet efs-cms efs-coke efs-cp-p efs-cu efs-defun efs-dired efs-unix:dl efs-dos-distinct efs-dump efs-fnh efs-guardian efs-gwp efs-hell efs-ka9q efs-kerberos efs-mpe efs-ms-unix efs-mts efs-mvs efs-netrc efs-netware efs-nos-ve efs-ovwrt efs-pc efs-plan9 efs-report efs-ti-explorer efs-ti-twenex efs-tops-20 efs-vms efs-vos efs-x19\.15 efs) + filename "efs-1.29-pkg.tar.gz" + md5sum "8c2c6c00cfbdc5f8d64ad54ddfb731df" + size 371905 + provides (efs) requires (xemacs-base dired) type regular )) @@ -2159,19 +2203,19 @@ (package-get-update-base-entry (quote (dired (standards-version 1.0 - version "1.11" + version "1.12" author-version "7.10" - date "2001-06-03" - build-date "2001-06-14" + date "2002-04-24" + build-date "2002-04-24" maintainer "Mike Sperber " distribution stable priority medium category "standard" dump nil description "Manage file systems." - filename "dired-1.11-pkg.tar.gz" - md5sum "0b44f0635a1d08189db83e8558cfe8e0" - size 193695 + filename "dired-1.12-pkg.tar.gz" + md5sum "be9971fc8b39136a495a1a06110bc964" + size 195581 provides (diff dired) requires (xemacs-base prog-modes) type regular diff --git a/info/.cvsignore b/info/.cvsignore deleted file mode 100644 index 4d7eda0..0000000 --- a/info/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -*.info -*.info-[1-9] -*.info-[1-9][0-9] - diff --git a/lib-src/.cvsignore b/lib-src/.cvsignore deleted file mode 100644 index d18aa8b..0000000 --- a/lib-src/.cvsignore +++ /dev/null @@ -1,26 +0,0 @@ -Makefile.in -config.values -ellcc.h -make-path -wakeup -Makefile -GNUmakefile -profile -make-docfile -digest-doc -sorted-doc -movemail -cvtmail -fakemail -yow -hexl -gnuserv -mmencode -etags -ctags -b2m -gnuclient -ootags -ellcc -DOC -*.pdb diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index f4b6416..72125a3 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,29 @@ +2002-08-23 Stephen J. Turnbull + + * XEmacs 21.4.9 "Informed Management" is released. + +2002-07-17 Stephen J. Turnbull + + * mmencode.c (fromqp): + * yow.c (yow): + * movemail.c (main): + * make-docfile.c (scan_c_file): + * gnuserv.c (permitted): + * ootags.c (erlang_func): + (prolog_pred): + * etags.c (C_entries): + Fix warnings. + +2002-05-29 Greg Steuck + + * gnuclient.c: Makes it possible again to #undef + INTERNET_DOMAIN_SOCKETS in lib-src/gnuserv.h and get a functional + gnuserv which is only accessible through UNIX_DOMAIN_SOCKETS. + +2002-05-10 Stephen J. Turnbull + + * Makefile.in.in: Add winclient targets (Andy synch). + 2002-05-09 Stephen J. Turnbull * XEmacs 21.4.8 "Honest Recruiter" is released. diff --git a/lib-src/Makefile.in.in b/lib-src/Makefile.in.in index 12663b8..a90d682 100644 --- a/lib-src/Makefile.in.in +++ b/lib-src/Makefile.in.in @@ -88,6 +88,9 @@ PUBLIC_INSTALLABLE_EXES=\ #ifdef HAVE_SHLIB ellcc\ #endif +#ifdef HAVE_MS_WINDOWS + winclient\ +#endif etags ctags b2m ootags PUBLIC_INSTALLABLE_SCRIPTS=\ @@ -357,6 +360,9 @@ i: ${srcdir}/i.c minitar: ${srcdir}/../nt/minitar.c $(CC) $(cflags) ${srcdir}/../nt/minitar.c $(ldflags) -lz -o $@ +winclient: ${srcdir}/winclient.c + $(CC) $(cflags) ${srcdir}/winclient.c $(ldflags) -o $@ + hexl: ${srcdir}/hexl.c $(CC) $(cflags) ${srcdir}/hexl.c $(ldflags) -o $@ diff --git a/lib-src/etags.c b/lib-src/etags.c index 7ae810d..8b81e61 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -2805,6 +2805,7 @@ C_entries (c_ext, inf) midtoken = inquote = inchar = incomm = quotednl = FALSE; token.valid = savetoken.valid = FALSE; cblev = 0; + typdefcblev = 0; parlev = 0; cplpl = (c_ext & C_PLPL) == C_PLPL; cjava = (c_ext & C_JAVA) == C_JAVA; diff --git a/lib-src/gnuclient.c b/lib-src/gnuclient.c index 4ed986d..aaec46a 100644 --- a/lib-src/gnuclient.c +++ b/lib-src/gnuclient.c @@ -329,11 +329,11 @@ main (int argc, char *argv[]) char *remotearg; char thishost[HOSTNAMSZ]; /* this hostname */ char remotepath[MAXPATHLEN+1]; /* remote pathname */ - char *path; int rflg = 0; /* pathname given on cmdline */ char *portarg; unsigned short port = 0; /* port to server */ #endif /* INTERNET_DOMAIN_SOCKETS */ + char *path; /* used indiscriminately */ #ifdef SYSV_IPC struct msgbuf *msgp; /* message */ #endif /* SYSV_IPC */ @@ -470,13 +470,14 @@ main (int argc, char *argv[]) progname); exit (1); } +#if defined(INTERNET_DOMAIN_SOCKETS) if (suppress_windows_system && hostarg) { fprintf (stderr, "%s: Remote editing is available only on X\n", progname); exit (1); } - +#endif *result = '\0'; if (eval_function || eval_form || load_library) { @@ -568,7 +569,7 @@ main (int argc, char *argv[]) } /* Don't do disconnect_from_server because we have already read data, and disconnect doesn't do anything else. */ -#ifndef INTERNET_DOMAIN_SOCKETS +#ifdef SYSV_IPC if (connect_type == (int) CONN_IPC) disconnect_from_ipc_server (s, msgp, FALSE); #endif /* !SYSV_IPC */ diff --git a/lib-src/gnuserv.c b/lib-src/gnuserv.c index 27a9869..0c8cf22 100644 --- a/lib-src/gnuserv.c +++ b/lib-src/gnuserv.c @@ -490,7 +490,7 @@ permitted (unsigned long host_addr, int fd) auth_data_len = atoi(buf); - if (auth_data_len <= 0 || auth_data_len > sizeof(buf)) + if (auth_data_len <= 0 || auth_data_len > (int) sizeof(buf)) { return FALSE; } diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index 2ccf4eb..aeee24a 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -509,7 +509,7 @@ scan_c_file (const char *filename, const char *mode) register int defvarperbufferflag = 0; register int defvarflag; int minargs, maxargs; - int l = strlen (filename); + size_t l = strlen (filename); char f[MAXPATHLEN]; if (l > sizeof (f)) diff --git a/lib-src/mmencode.c b/lib-src/mmencode.c index 96fb29b..7dcb0e6 100644 --- a/lib-src/mmencode.c +++ b/lib-src/mmencode.c @@ -349,7 +349,7 @@ toqp(FILE *infile, FILE *outfile) static void fromqp(FILE *infile, FILE *outfile, char **boundaries, int *boundaryct) { - unsigned int c1, c2; + int c1, c2; int sawnewline = 1, neednewline = 0; /* The neednewline hack is necessary because the newline leading into a multipart boundary is part of the boundary, not the data */ diff --git a/lib-src/movemail.c b/lib-src/movemail.c index 7a9dd77..623b3c2 100644 --- a/lib-src/movemail.c +++ b/lib-src/movemail.c @@ -440,7 +440,7 @@ main (int argc, char *argv[]) errno = saved_errno; pfatal_with_name (outname); } - if (nread < sizeof buf) + if (nread < (int) sizeof buf) break; } } diff --git a/lib-src/ootags.c b/lib-src/ootags.c index fbeb766..23ef639 100644 --- a/lib-src/ootags.c +++ b/lib-src/ootags.c @@ -4411,7 +4411,7 @@ prolog_pred (s, last) /* Save only the first clause. */ if (last == NULL - || len != strlen (last) + || len != (int) strlen (last) || !strneq (s, last, len)) { pfnote ((CTAGS) ? savenstr (s, len) : NULL, TRUE, @@ -4565,7 +4565,7 @@ erlang_func (s, last) /* Save only the first clause. */ if (s[pos++] == '(' && (last == NULL - || len != strlen (last) + || len != (int) strlen (last) || !strneq (s, last, len))) { pfnote ((CTAGS) ? savenstr (s, len) : NULL, TRUE, diff --git a/lib-src/yow.c b/lib-src/yow.c index 7390373..399d070 100644 --- a/lib-src/yow.c +++ b/lib-src/yow.c @@ -124,7 +124,7 @@ yow (FILE *fp) long offset; int c, i = 0; char *buf; - unsigned int bufsize; + int bufsize; offset = rand() % len + header_len; if (fseek(fp, offset, 0) == -1) { diff --git a/lisp/.cvsignore b/lisp/.cvsignore deleted file mode 100644 index 41f4d7b..0000000 --- a/lisp/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -ChangeLog.font-menu -finder-inf.el -auto-autoloads.el -custom-load.el -auto-autoloads.el -custom-load.el diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c442052..8a99b95 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -707,6 +707,233 @@ * files.el (insert-file-contents-literally): Treat file as binary; call file-name-handlers. [sync with Emacs 20.3.10] +2002-08-23 Stephen J. Turnbull + + * XEmacs 21.4.9 "Informed Management" is released. + +2002-06-22 Ville Skyttä + + * subr.el (add-to-list): Sync with GNU Emacs 21.2, adding the + "&optional append" argument. + +2002-07-16 Didier Verna + + * subr.el (replace-in-string): fix case fold bug introduced by + "2000-07-30 Ben Wing ": honor the value of + case-fold-search in temporary buffers. + +2002-08-03 Steve Youngs + + * lib-complete.el (find-library): Remove check for mule because + decompression DOES work on Mule. + +2002-08-11 John Paul Wallington + + * simple.el (join-line): New alias for `delete-indentation'. + +2002-08-02 Ville Skyttä + + * font-lock.el: Some faces and doc typo fixes from GNU Emacs. + (font-lock-doc-face): New alias to font-lock-doc-string-face. + (font-lock-builtin-face): New. + (font-lock-constant-face): New. + (font-lock-face-list): Add builtin and constant faces. + +2002-08-16 Stephen J. Turnbull + + * autoload.el (make-autoload): Support define-derived-mode. + Collected puts of doc-string-elt property. Based on a patch by + Didier Verna . + +2002-08-15 Stephen J. Turnbull + + * wid-edit.el (widget-field-activate): Fix docstring typo. + +2002-07-23 Andy Piper + + * about.el (about-personal-info): update me. + +2002-07-12 Andy Piper + + * custom.el (custom-theme-set-variables): remove bogus + arguments. Use custom-set-default to set defaults. + (custom-set-variables): update doc. + (custom-local-buffer): new, synced from FSF. + (custom-set-default): ditto. + (defcustom): update doc. + +2002-06-16 Andy Piper + + * menubar-items.el (default-menubar): enable windows printing on + cygwin as well as native. + +2002-06-12 Andy Piper + + * printer.el (generic-print-buffer): catch all errors so that the + print device can be cleared in all scenarios. + (Printer-clear-device): make sure clearing the printer allows it + to be used again immediately. + (generic-print-region): make sure the default printer face is + black-on-white. + +2002-04-23 Jerry James + + * window-xemacs.el (display-buffer-function): Change doc to + reflect new arg. + * window-xemacs.el (pre-display-buffer-function): Ditto. + * window-xemacs.el (display-buffer): New arg, shrink-to-fit. If + non-nil, make the new window just big enough for its contents. + * frame.el (get-frame-for-buffer): Accept new arg, due to above. + * frame.el (show-temp-buffer-in-current-frame): Remove broken + temp-buffer-shrink-to-fit code. Tell display-buffer instead. + +2002-06-06 Andy Piper + + * custom.el (custom-theme-set-variables): sync :set-after from FSF. + (defcustom): ditto. + (custom-handle-keyword): ditto. + +2002-07-12 Stephen J. Turnbull + + * gutter-items.el (buffers-tab-selection-function): Improve doc. + Make obsolete. Default to nil. + (buffers-tab-filter-functions): Improve doc. Use literal default. + Inspired by a patch by John Palmieri. + +2002-07-01 Mike Alexander + + * process.el (shell-command-on-region): Don't delete the region + before giving it to call-process-region + +2002-06-04 Jerry James + + * find-paths.el (paths-find-architecture-directory): Search in + `system-configuration'/`base', not `base'`system-configuration'. + +2002-06-23 Ville Skyttä + + * info.el (Info-index): Add missing \ in [ t]. + +2002-06-11 Stephen J. Turnbull + + * gutter-items.el (gutter-buffers-tab-visible-p, + buffers-tab-omit-function, buffers-tab-selection-function, + buffers-tab-filter-functions): + Doc improvements. + +2002-06-09 Stephen J. Turnbull + + * toolbar.el (toolbar-icon-directory): Document trailing separator. + + * toolbar-items.el (toolbar-news): Fix typo in message string. + +2002-06-08 Stephen J. Turnbull + + * dialog.el (yes-or-no-p-dialog-box): + * cmdloop.el (y-or-n-p-minibuf): + (yes-or-no-p-minibuf): + (yes-or-no-p): + (y-or-n-p): + Specify negative answers in docstrings. + +2002-05-25 Steve Youngs + + * package-ui.el (pui-help-echo): Display both installed and author + version. Use a balloon-help window to display extra info like + package requires. + +2002-05-30 Andy Piper + + * files.el (revert-buffer-internal): don't visit + revert-buffer. Kill buffer when not used. Suggested by Mike + Alexander + +2002-05-20 Stephen J. Turnbull + + * files.el (revert-buffer): More docstring fiddling. + +2002-05-19 Stephen J. Turnbull + + * files.el (revert-buffer): + (revert-buffer-internal): + (revert-buffer-insert-file-contents-function): + Improve docstrings and comments. + +2002-05-08 Andy Piper + + * files.el (revert-buffer): observe noconfirm behavior. + +2002-04-09 Andy Piper + + * files.el (revert-buffer): use revert-buffer-internal if it looks + like doing so will not result in any user-visible changes. + (revert-buffer-internal): new function. Do the actual process of + reversion and then see whether the result is any different to what + we have already. If it is not then do nothing. + +2001-12-11 Andy Piper + + * menubar.el (get-popup-menu-response): re-order so that it works + on more sane/facist window systems. + +2001-12-03 Andy Piper + + * faces.el (frob-face-property): don't infloop in face frobbing + from Jan Vroonhof . + +2001-11-30 Jan Vroonhof + + * faces.el (frob-face-property): Follow face fall-back hierarchy + properly for face properties without an instance. Only do manual + copy form 'default in last resort. This handles in particular + the case where 'default itself has only a fall-back (which is + the case by default on windows). + +2001-11-24 Andy Piper + + * printer.el (generic-print-region): set default-frame-plist to + nil while creating the printer frame so that sizes reflect the + printed page. + + * faces.el (face-complain-about-font): Don't complain on printers. + +2002-05-10 Stephen J. Turnbull + + * package-net.el: Andy synch. + +2001-12-16 Andy Piper + + * package-get.el (package-get-update-all): Make sure installed.db + gets updated after updating packages. + +2002-03-28 Ben Wing + + * msw-glyphs.el: Set glyph-contrib-p to nil on hscroll, + continuation, truncation so that we don't get line jumpiness from + them being larger than the line height. + + * msw-font-menu.el (mswindows-font-menu-font-data): Fix bug. + +2001-11-30 Jan Vroonhof + + * font.el (font-window-system-mappings): Add mapping for Gtk + (assume identical to X) + +2002-02-04 Andy Piper + + * files.el (convert-standard-filename): Fix for short filename + Peter Arius + +2001-12-10 Christoph Wedler + + * list-mode.el (default-choose-completion): completion-base-size + should refer to local value in the completion list buffer. + +2001-12-03 Didier Verna + + * rect.el: autoload `replace-rectangle'. + * keydefs.el (global-map): bind it to `C-x r p'. + 2002-05-09 Stephen J. Turnbull * XEmacs 21.4.8 "Honest Recruiter" is released. diff --git a/lisp/about.el b/lisp/about.el index 31bf273..a0f5714 100644 --- a/lisp/about.el +++ b/lisp/about.el @@ -210,7 +210,7 @@ (marcpa . "http://www.positron911.com/products/power.htm") (ograf . "http://www.fga.de/~ograf/") (pez . "http://cbs.sportsline.com/") - (piper . "http://www.xemacs.freeserve.co.uk/") + (piper . "http://www.andypiper.com/") (rossini . "http://faculty.washington.edu/rossini/") (stigb . "http://www.tihlde.hist.no/~stigb/") (vin . "http://www.upa.org/") @@ -1244,8 +1244,10 @@ for CBS SportsLine. See ") My home page is here:\n") (about-url-link 'piper nil "Visit andy's home page") (widget-insert "\n -Andy has recently rejoined the XEmacs team to help port XEmacs to -MS Windows operating systems.\n")) + Andy has been active in the XEmacs team for a number of years, +helping port XEmacs to MS Windows operating systems. He is also the +current MS Windows release manager and maintains the MS Windows +netinstaller.\n")) (pittman (widget-insert "\ diff --git a/lisp/auto-autoloads.el b/lisp/auto-autoloads.el index 81ce111..cd681c4 100644 --- a/lisp/auto-autoloads.el +++ b/lisp/auto-autoloads.el @@ -131,22 +131,19 @@ be used only with -batch." nil nil) ;;;### (autoloads (build-report) "build-report" "lisp/build-report.el") (autoload 'build-report "build-report" "\ -Report build information including Installation and make output. - -Prompts for status (usually \"Success\" or \"Failure\"). Then uses -`compose-mail' to create a mail message. The Subject header contains -status and version information. Point is left at the beginning of the -mail text. Add some notes if you like, and send the report. - -Looks for Installation and the make output file (`beta.err' by -default, customizable via `build-report-make-output-files') in the -build directory of the running XEmacs by default (customizable via -`build-report-make-output-dir'). The output from make is filtered -through `build-report-keep-regexp' and `build-report-delete-regexp' -before including in the message. - -See also `mail-user-agent', `build-report-destination', and -`build-report-installation-file'." t nil) +Composes a fresh mail message with the contents of the built XEmacs +Installation file and excerpts from XEmacs make output. +`compose-mail' is used to create the mail message. Point is left at +the beginning of the mail text. You may add some personal notes if +you like and send the report. +See also + `compose-mail', `mail-user-agent', + `build-report-destination', + `build-report-keep-regexp', + `build-report-delete-regexp', + `build-report-make-output-dir', + `build-report-make-output-files', and + `build-report-installation-file'." t nil) ;;;*** @@ -864,8 +861,7 @@ in the tag table that matches the tagname used in the previous find-tag. the tag. This version of this function supports multiple active tags tables, -and completion. See also the commands `\\[push-tag-mark]' and -`\\[pop-tag-mark]'. +and completion. Variables of note: @@ -1227,8 +1223,7 @@ or if you change your font path, you can call this to re-initialize the menus." ;;;### (autoloads (x-font-build-cache font-default-size-for-device font-default-encoding-for-device font-default-registry-for-device font-default-family-for-device font-default-object-for-device font-default-font-for-device font-create-object) "font" "lisp/font.el") -(autoload 'font-create-object "font" "\ -Return a font descriptor object for FONTNAME, appropriate for DEVICE." nil nil) +(autoload 'font-create-object "font" nil nil nil) (autoload 'font-default-font-for-device "font" nil nil nil) diff --git a/lisp/autoload.el b/lisp/autoload.el index 9911d82..8ca8bbc 100644 --- a/lisp/autoload.el +++ b/lisp/autoload.el @@ -40,30 +40,33 @@ ;;; Code: (defun make-autoload (form file) - "Turn FORM, a defun or defmacro, into an autoload for source file FILE. -Returns nil if FORM is not a defun, define-skeleton or defmacro." + "Turn a definition generator FORM into an autoload for source file FILE. +Returns nil if FORM is not a defun, define-skeleton, define-derived-mode, +or defmacro." (let ((car (car-safe form))) - (if (memq car '(defun define-skeleton defmacro)) + (if (memq car '(defun define-skeleton defmacro define-derived-mode)) (let ((macrop (eq car 'defmacro)) name doc) (setq form (cdr form) name (car form) ;; Ignore the arguments. - form (cdr (if (eq car 'define-skeleton) - form - (cdr form))) + form (cdr (cond ((eq car 'define-skeleton) + form) + ((eq car 'define-derived-mode) + (cddr form)) + (t + (cdr form)))) doc (car form)) (if (stringp doc) (setq form (cdr form)) (setq doc nil)) (list 'autoload (list 'quote name) file doc (or (eq car 'define-skeleton) + (eq car 'define-derived-mode) (eq (car-safe (car form)) 'interactive)) (if macrop (list 'quote 'macro) nil))) nil))) -(put 'define-skeleton 'doc-string-elt 3) - (defvar generate-autoload-cookie ";;;###autoload" "Magic comment indicating the following form should be autoloaded. Used by `update-file-autoloads'. This string should be @@ -112,6 +115,8 @@ the section of autoloads for a file.") (put 'defvar 'doc-string-elt 3) (put 'defconst 'doc-string-elt 3) (put 'defmacro 'doc-string-elt 3) +(put 'define-skeleton 'doc-string-elt 3) +(put 'define-derived-mode 'doc-string-elt 4) (defun autoload-trim-file-name (file) "Returns a relative pathname of FILE including the last directory." diff --git a/lisp/cmdloop.el b/lisp/cmdloop.el index 17989d0..269fa40 100644 --- a/lisp/cmdloop.el +++ b/lisp/cmdloop.el @@ -391,7 +391,7 @@ when called from Lisp." ; (call-interactively _command _record-flag))))) (defun y-or-n-p-minibuf (prompt) - "Ask user a \"y or n\" question. Return t if answer is \"y\". + "Ask user a \"y or n\" question. Return t if answer is \"y\", nil if \"n\". Takes one argument, which is the string to display to ask the question. It should end in a space; `y-or-n-p' adds `(y or n) ' to it. No confirmation of the answer is requested; a single character is enough. @@ -474,7 +474,7 @@ and can edit it until it as been confirmed." (yes-or-no-p-minibuf prompt))) (defun y-or-n-p (prompt) - "Ask user a \"y or n\" question. Return t if answer is \"y\". + "Ask user a \"y or n\" question. Return t if answer is \"y\", nil if \"n\". Takes one argument, which is the string to display to ask the question. The question is asked with a dialog box or the minibuffer, as appropriate. It should end in a space; `y-or-n-p' adds `(y or n) ' to it. diff --git a/lisp/custom.el b/lisp/custom.el index 5cd137d..4e17045 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -179,7 +179,7 @@ The following KEYWORD's are defined: `custom-initialize-set' :set VALUE should be a function to set the value of the symbol. It takes two arguments, the symbol to set and the value to - give it. The default is `set-default'. + give it. The default is `custom-set-default'. :get VALUE should be a function to extract the value of symbol. The function takes one argument, a symbol, and should return the current value for that symbol. The default is @@ -187,6 +187,11 @@ The following KEYWORD's are defined: :require VALUE should be a feature symbol. Each feature will be required after initialization, of the user have saved this option. +:version VALUE should be a string specifying that the variable was + first introduced, or its default value was changed, in Emacs + version VERSION. +:set-after VARIABLE specifies that SYMBOL should be set after VARIABLE when + both have been customized. Read the section about customization in the Emacs Lisp manual for more information." @@ -323,17 +328,38 @@ Third argument TYPE is the custom option type." "For customization option SYMBOL, handle KEYWORD with VALUE. Fourth argument TYPE is the custom option type." (cond ((eq keyword :group) - (custom-add-to-group value symbol type)) - ((eq keyword :version) - (custom-add-version symbol value)) - ((eq keyword :link) - (custom-add-link symbol value)) - ((eq keyword :load) - (custom-add-load symbol value)) - ((eq keyword :tag) - (put symbol 'custom-tag value)) - (t - (signal 'error (list "Unknown keyword" keyword))))) + (custom-add-to-group value symbol type)) + ((eq keyword :version) + (custom-add-version symbol value)) + ((eq keyword :link) + (custom-add-link symbol value)) + ((eq keyword :load) + (custom-add-load symbol value)) + ((eq keyword :tag) + (put symbol 'custom-tag value)) + ((eq keyword :set-after) + (custom-add-dependencies symbol value)) + (t + (signal 'error (list "Unknown keyword" keyword))))) + +(defun custom-add-dependencies (symbol value) + "To the custom option SYMBOL, add dependencies specified by VALUE. +VALUE should be a list of symbols. For each symbol in that list, +this specifies that SYMBOL should be set after the specified symbol, if +both appear in constructs like `custom-set-variables'." + (unless (listp value) + (error "Invalid custom dependency `%s'" value)) + (let* ((deps (get symbol 'custom-dependencies)) + (new-deps deps)) + (while value + (let ((dep (car value))) + (unless (symbolp dep) + (error "Invalid custom dependency `%s'" dep)) + (unless (memq dep new-deps) + (setq new-deps (cons dep new-deps))) + (setq value (cdr value)))) + (unless (eq deps new-deps) + (put symbol 'custom-dependencies new-deps)))) (defun custom-add-option (symbol option) "To the variable SYMBOL add OPTION. @@ -439,10 +465,18 @@ following keyword arguments (setq old (cdr old))) (put symbol prop (cons (list theme mode value) old)))) +(defvar custom-local-buffer nil + "Non-nil, in a Customization buffer, means customize a specific buffer. +If this variable is non-nil, it should be a buffer, +and it means customize the local bindings of that buffer. +This variable is a permanent local, and it normally has a local binding +in every Customization buffer.") +(put 'custom-local-buffer 'permanent-local t) + (defun custom-set-variables (&rest args) "Initialize variables according to user preferences. The settings are registered as theme `user'. -The arguments should be a list where each entry has the form: +Each argument should be a list of the form: (SYMBOL VALUE [NOW [REQUEST [COMMENT]]]) @@ -459,8 +493,29 @@ Records the settings as belonging to THEME. See `custom-set-variables' for a description of the arguments ARGS." (custom-check-theme theme) + (setq args + (sort args + (lambda (a1 a2) + (let* ((sym1 (car a1)) + (sym2 (car a2)) + (1-then-2 (memq sym1 (get sym2 'custom-dependencies))) + (2-then-1 (memq sym2 (get sym1 'custom-dependencies)))) + (cond ((and 1-then-2 2-then-1) + (error "Circular custom dependency between `%s' and `%s'" + sym1 sym2)) + (1-then-2 t) + (2-then-1 nil) + ;; Put symbols with :require last. The macro + ;; define-minor-mode generates a defcustom + ;; with a :require and a :set, where the + ;; setter function calls the mode function. + ;; Putting symbols with :require last ensures + ;; that the mode function will see other + ;; customized values rather than default + ;; values. + (t (nth 3 a2))))))) (let ((immediate (get theme 'theme-immediate))) - (while args * etc/custom/example-themes/example-theme.el: + (while args (let ((entry (car args))) (if (listp entry) (let* ((symbol (nth 0 entry)) @@ -468,10 +523,13 @@ See `custom-set-variables' for a description of the arguments ARGS." (now (nth 2 entry)) (requests (nth 3 entry)) (comment (nth 4 entry)) - (set (or (get symbol 'custom-set) 'set-default))) + (set (or (get symbol 'custom-set) 'custom-set-default))) (put symbol 'saved-value (list value)) (custom-push-theme 'theme-value symbol theme 'set value) (put symbol 'saved-variable-comment comment) + ;; Allow for errors in the case where the setter has + ;; changed between versions, say, but let the user know. + (condition-case data (cond ((or now immediate) ;; Rogue variable, set it now. (put symbol 'force-value (if now 'rogue 'immediate)) @@ -479,6 +537,8 @@ See `custom-set-variables' for a description of the arguments ARGS." ((default-boundp symbol) ;; Something already set this, overwrite it. (funcall set symbol (eval value)))) + (error + (message "Error setting %s: %s" symbol data))) (and (or now (default-boundp symbol)) (put symbol 'variable-comment comment)) (when requests @@ -634,6 +694,15 @@ Associate this setting with the `user' theme. The ARGS are as in `custom-theme-reset-variables'." (apply #'custom-theme-reset-variables 'user args)) +(defun custom-set-default (variable value) + "Default :set function for a customizable variable. +Normally, this sets the default value of VARIABLE to VALUE, +but if `custom-local-buffer' is non-nil, +this sets the local binding in that buffer instead." + (if custom-local-buffer + (with-current-buffer custom-local-buffer + (set variable value)) + (set-default variable value))) ;;; The End. diff --git a/lisp/dialog.el b/lisp/dialog.el index db1ed86..4b3f284 100644 --- a/lisp/dialog.el +++ b/lisp/dialog.el @@ -40,8 +40,8 @@ ;;; Code: (defun yes-or-no-p-dialog-box (prompt) "Ask user a yes-or-no question with a popup dialog box. -Return t if the answer is \"yes\". -Takes one argument, which is the string to display to ask the question." +Return t if the answer is \"yes\", nil if \"no\". Takes one argument, +the question string to display." (save-selected-frame (make-dialog-box 'question :question prompt diff --git a/lisp/faces.el b/lisp/faces.el index d92f15f..4f91086 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -847,10 +847,21 @@ the function to be called on it." (setq temp-sp (copy-specifier sp)) - (if (and (or (eq locale 'global) (eq locale 'all) (not locale)) - (not (face-property face property 'global))) - (copy-specifier (face-property 'default property) - temp-sp 'global)) + (if (or (eq locale 'global) (eq locale 'all) (not locale)) + (when (not (specifier-specs temp-sp 'global)) + ;; Try fallback via the official ways and then do it "by hand" + (let* ((fallback (specifier-fallback sp)) + (fallback-sp + (cond ((specifierp fallback) fallback) + ;; just an inst list + (fallback + (make-specifier-and-init (specifier-type sp) + fallback)) + ((eq (get-face face) (get-face 'default)) + (error "Unable to find global specification")) + ;; If no fallback we snoop from default + (t (face-property 'default property))))) + (copy-specifier fallback-sp temp-sp 'global)))) (if (and (valid-specifier-locale-p locale) (not (specifier-specs temp-sp locale))) (error "Property must have a specification in locale %S" locale)) @@ -1603,10 +1614,12 @@ and 'global)." (defun face-complain-about-font (face device) (if (symbolp face) (setq face (symbol-name face))) ;; (if (not inhibit-font-complaints) - (display-warning - 'font - (let ((default-name (face-font-name 'default device))) - (format "%s: couldn't deduce %s %s version of the font + ;; complaining for printers is generally annoying. + (unless (device-printer-p device) + (display-warning + 'font + (let ((default-name (face-font-name 'default device))) + (format "%s: couldn't deduce %s %s version of the font %S. Please specify X resources to make the %s face @@ -1616,14 +1629,14 @@ For example, you could add one of the following to $HOME/Emacs: Emacs.%s.attributeFont: -dt-*-medium-i-* or Emacs.%s.attributeForeground: hotpink\n" - invocation-name - (if (string-match "\\`[aeiouAEIOU]" face) "an" "a") - face - default-name - face - face - face - )))) + invocation-name + (if (string-match "\\`[aeiouAEIOU]" face) "an" "a") + face + default-name + face + face + face + ))))) ;; #### This is quite a mess. We should use the custom mechanism for diff --git a/lisp/files.el b/lisp/files.el index 622df91..8591d86 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -376,7 +376,8 @@ and ignores this variable." (let ((name (copy-sequence filename)) (start 0)) ;; leave ':' if part of drive specifier - (if (eq (aref name 1) ?:) + (if (and (> (length name) 1) + (eq (aref name 1) ?:)) (setq start 2)) ;; destructively replace invalid filename characters with ! (while (string-match "[?*:<>|\"\000-\037]" name start) @@ -2643,7 +2644,9 @@ which are the arguments that `revert-buffer' received.") (defvar revert-buffer-insert-file-contents-function nil "Function to use to insert contents when reverting this buffer. Gets two args, first the nominal file name to use, -and second, t if reading the auto-save file.") +and second, t if reading the auto-save file. +If the current buffer contents are to be discarded, the function must do +so itself.") (defvar before-revert-hook nil "Normal hook for `revert-buffer' to run before reverting. @@ -2668,10 +2671,10 @@ This undoes all changes since the file was visited or saved. With a prefix argument, offer to revert from latest auto-save file, if that is more recent than the visited file. -This command also works for special buffers that contain text which -doesn't come from a file, but reflects some other data base instead: -for example, Dired buffers and buffer-list buffers. In these cases, -it reconstructs the buffer contents from the appropriate data base. +This command also refreshes certain special buffers that contain text +which doesn't come from a file, but reflects some other data base +instead: for example, Dired buffers and buffer-list buffers. This is +implemented by having the modes set `revert-buffer-function'. When called from Lisp, the first argument is IGNORE-AUTO; only offer to revert from the auto-save file when this is nil. Note that the @@ -2683,13 +2686,17 @@ Optional second argument NOCONFIRM means don't ask for confirmation at all. Optional third argument PRESERVE-MODES non-nil means don't alter -the files modes. Normally we reinitialize them using `normal-mode'. +the buffer's modes. Otherwise, reinitialize them using `normal-mode'. If the value of `revert-buffer-function' is non-nil, it is called to do all the work for this command. Otherwise, the hooks `before-revert-hook' and `after-revert-hook' are run at the beginning and the end, and if `revert-buffer-insert-file-contents-function' is -non-nil, it is called instead of rereading visited file contents." +non-nil, it is called instead of rereading visited file contents. + +If the buffer-modified flag is nil, and we are not reverting from an +auto-save file, then compare the contents of the buffer and the file. +Revert only if they differ." ;; I admit it's odd to reverse the sense of the prefix argument, but ;; there is a lot of code out there which assumes that the first @@ -2701,6 +2708,8 @@ non-nil, it is called instead of rereading visited file contents." (if revert-buffer-function (funcall revert-buffer-function ignore-auto noconfirm) (let* ((opoint (point)) + (newbuf nil) + (delay-prompt nil) (auto-save-p (and (not ignore-auto) (recent-auto-save-p) buffer-auto-save-file-name @@ -2718,58 +2727,111 @@ non-nil, it is called instead of rereading visited file contents." (dolist (rx revert-without-query found) (when (string-match rx file-name) (setq found t))))) + ;; If we will call revert-buffer-internal, delay prompting + (and (not auto-save-p) + (not (buffer-modified-p)) + (setq delay-prompt t)) (yes-or-no-p (format "Revert buffer from file %s? " file-name))) (run-hooks 'before-revert-hook) - ;; If file was backed up but has changed since, - ;; we should make another backup. - (and (not auto-save-p) - (not (verify-visited-file-modtime (current-buffer))) - (setq buffer-backed-up nil)) - ;; Get rid of all undo records for this buffer. - (or (eq buffer-undo-list t) - (setq buffer-undo-list nil)) - ;; Effectively copy the after-revert-hook status, - ;; since after-find-file will clobber it. - (let ((global-hook (default-value 'after-revert-hook)) - (local-hook-p (local-variable-p 'after-revert-hook - (current-buffer))) - (local-hook (and (local-variable-p 'after-revert-hook - (current-buffer)) - after-revert-hook))) - (let (buffer-read-only - ;; Don't make undo records for the reversion. - (buffer-undo-list t)) - (if revert-buffer-insert-file-contents-function - (funcall revert-buffer-insert-file-contents-function - file-name auto-save-p) - (if (not (file-exists-p file-name)) - (error "File %s no longer exists!" file-name)) - ;; Bind buffer-file-name to nil - ;; so that we don't try to lock the file. - (let ((buffer-file-name nil)) - (or auto-save-p - (unlock-buffer))) - (widen) - (insert-file-contents file-name (not auto-save-p) - nil nil t))) - (goto-char (min opoint (point-max))) - ;; Recompute the truename in case changes in symlinks - ;; have changed the truename. - ;XEmacs: already done by insert-file-contents - ;;(setq buffer-file-truename - ;;(abbreviate-file-name (file-truename buffer-file-name))) - (after-find-file nil nil t t preserve-modes) - ;; Run after-revert-hook as it was before we reverted. - (setq-default revert-buffer-internal-hook global-hook) - (if local-hook-p - (progn - (make-local-variable 'revert-buffer-internal-hook) - (setq revert-buffer-internal-hook local-hook)) - (kill-local-variable 'revert-buffer-internal-hook)) - (run-hooks 'revert-buffer-internal-hook)) + (cond ((or auto-save-p + (buffer-modified-p) + ;; Do we need to do expensive reversion? Compare ... + (and (setq newbuf (revert-buffer-internal + file-name)) + ;; ... and if different, prompt + (or noconfirm + (and delay-prompt + (yes-or-no-p + (format "Revert buffer from file %s? " + file-name)))))) + ;; If file was backed up but has changed since, + ;; we should make another backup. + (and (not auto-save-p) + (not (verify-visited-file-modtime (current-buffer))) + (setq buffer-backed-up nil)) + ;; Get rid of all undo records for this buffer. + (or (eq buffer-undo-list t) + (setq buffer-undo-list nil)) + ;; Effectively copy the after-revert-hook status, + ;; since after-find-file will clobber it. + (let ((global-hook (default-value 'after-revert-hook)) + (local-hook-p (local-variable-p 'after-revert-hook + (current-buffer))) + (local-hook (and (local-variable-p 'after-revert-hook + (current-buffer)) + after-revert-hook))) + (let (buffer-read-only + ;; Don't make undo records for the reversion. + (buffer-undo-list t)) + (if revert-buffer-insert-file-contents-function + (funcall revert-buffer-insert-file-contents-function + file-name auto-save-p) + (if (not (file-exists-p file-name)) + (error "File %s no longer exists!" file-name)) + ;; Bind buffer-file-name to nil + ;; so that we don't try to lock the file. + (let ((buffer-file-name nil)) + (or auto-save-p + (unlock-buffer))) + (widen) + (insert-file-contents file-name (not auto-save-p) + nil nil t))) + (goto-char (min opoint (point-max))) + ;; Recompute the truename in case changes in symlinks + ;; have changed the truename. + ;;XEmacs: already done by insert-file-contents + ;;(setq buffer-file-truename + ;;(abbreviate-file-name (file-truename buffer-file-name))) + (after-find-file nil nil t t preserve-modes) + ;; Run after-revert-hook as it was before we reverted. + (setq-default revert-buffer-internal-hook global-hook) + (if local-hook-p + (progn + (make-local-variable 'revert-buffer-internal-hook) + (setq revert-buffer-internal-hook local-hook)) + (kill-local-variable 'revert-buffer-internal-hook)) + (run-hooks 'revert-buffer-internal-hook))) + ((null newbuf) + ;; The resultant buffer is identical, alter + ;; modtime, update mods and exit + (set-visited-file-modtime) + (after-find-file nil nil t t t)) + (t t)) t))))) +;; #### something like `revert-buffer-compare-with-file' is a better name +;; #### why is the argument optional? +(defun revert-buffer-internal (&optional file-name) + "Read contents of FILE-NAME into a buffer, and compare to current buffer. +Return nil if identical, and the new buffer if different." + + (let* ((newbuf (get-buffer-create " *revert*")) + bmin bmax) + (save-excursion + (set-buffer newbuf) + (let (buffer-read-only + (buffer-undo-list t) + after-change-function + after-change-functions + before-change-function + before-change-functions) + (if revert-buffer-insert-file-contents-function + (funcall revert-buffer-insert-file-contents-function + file-name nil) + (if (not (file-exists-p file-name)) + (error "File %s no longer exists!" file-name)) + (widen) + (insert-file-contents file-name nil nil nil t) + (setq bmin (point-min) + bmax (point-max))))) + (if (not (and (eq bmin (point-min)) + (eq bmax (point-max)) + (eq (compare-buffer-substrings + newbuf bmin bmax (current-buffer) bmin bmax) 0))) + newbuf + (and (kill-buffer newbuf) nil)))) + (defun recover-file (file) "Visit file FILE, but get contents from its last auto-save file." ;; Actually putting the file name in the minibuffer should be used diff --git a/lisp/find-paths.el b/lisp/find-paths.el index c8848b5..494ed16 100644 --- a/lisp/find-paths.el +++ b/lisp/find-paths.el @@ -236,7 +236,8 @@ If ENFORCE-VERSION is non-nil, the directory must contain the XEmacs version." (or ;; from more to less specific (paths-find-version-directory roots - (concat base system-configuration) + (paths-construct-path + (list system-configuration base)) envvar default) (paths-find-version-directory roots base diff --git a/lisp/font-lock.el b/lisp/font-lock.el index d927539..b1cb31d 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -282,7 +282,7 @@ available for buffers in `c-mode', and level 1 decoration otherwise." (symbol :tag "name")) (radio :tag "Decoration" (const :tag "default" nil) - (const :tag "maximum" t) + (const :tag "maximum" t) (integer :tag "level" 1))))) :group 'font-lock) @@ -626,7 +626,7 @@ This is normally set via `font-lock-defaults'.") ;; #### barf gag retch. Horrid FSF lossage that we need to ;; keep around for compatibility with font-lock-keywords that ;; forget to properly quote their faces. I tried just let-binding -;; them when we eval the face expression, but that failes because +;; them when we eval the face expression, but that fails because ;; some files actually use the variables directly in their init code ;; without quoting them. --ben (defvar font-lock-comment-face 'font-lock-comment-face @@ -639,6 +639,9 @@ The corresponding face should be set using `edit-faces' or the It is present only for horrid FSF compatibility reasons. The corresponding face should be set using `edit-faces' or the `set-face-*' functions.") +;; GNU compatibility +(define-compatible-variable-alias + 'font-lock-doc-face 'font-lock-doc-string-face) (defvar font-lock-string-face 'font-lock-string-face "This variable should not be set. It is present only for horrid FSF compatibility reasons. @@ -649,6 +652,11 @@ The corresponding face should be set using `edit-faces' or the It is present only for horrid FSF compatibility reasons. The corresponding face should be set using `edit-faces' or the `set-face-*' functions.") +(defvar font-lock-builtin-face 'font-lock-builtin-face + "This variable should not be set. +It is present only for horrid FSF compatibility reasons. +The corresponding face should be set using `edit-faces' or the +`set-face-*' functions.") (defvar font-lock-function-name-face 'font-lock-function-name-face "This variable should not be set. It is present only for horrid FSF compatibility reasons. @@ -664,6 +672,11 @@ The corresponding face should be set using `edit-faces' or the It is present only for horrid FSF compatibility reasons. The corresponding face should be set using `edit-faces' or the `set-face-*' functions.") +(defvar font-lock-constant-face 'font-lock-constant-face + "This variable should not be set. +It is present only for horrid FSF compatibility reasons. +The corresponding face should be set using `edit-faces' or the +`set-face-*' functions.") (defvar font-lock-reference-face 'font-lock-reference-face "This variable should not be set. It is present only for horrid FSF compatibility reasons. @@ -680,9 +693,11 @@ The corresponding face should be set using `edit-faces' or the font-lock-string-face font-lock-doc-string-face font-lock-keyword-face + font-lock-builtin-face font-lock-function-name-face font-lock-variable-name-face font-lock-type-face + font-lock-constant-face font-lock-reference-face font-lock-preprocessor-face font-lock-warning-face)) @@ -731,6 +746,15 @@ on the major mode's symbol." "Font Lock mode face used to highlight keywords." :group 'font-lock-faces) +(defface font-lock-builtin-face + '((((class color) (background light)) (:foreground "Purple")) + (((class color) (background dark)) (:foreground "Cyan")) + (((class grayscale) (background light)) (:foreground "LightGray" :bold t)) + (((class grayscale) (background dark)) (:foreground "DimGray" :bold t)) + (t (:bold t))) + "Font Lock mode face used to highlight builtins." +:group 'font-lock-faces) + (defface font-lock-function-name-face '((((class color) (background dark)) (:foreground "aquamarine")) ;; brown4 is hardly different from black on windows. @@ -763,6 +787,17 @@ on the major mode's symbol." "Font Lock mode face used to highlight types." :group 'font-lock-faces) +(defface font-lock-constant-face + '((((class color) (background light)) (:foreground "CadetBlue")) + (((class color) (background dark)) (:foreground "Aquamarine")) + (((class grayscale) (background light)) + (:foreground "LightGray" :bold t :underline t)) + (((class grayscale) (background dark)) + (:foreground "Gray50" :bold t :underline t)) + (t (:bold t :underline t))) + "Font Lock mode face used to highlight constants and labels." +:group 'font-lock-faces) + (defface font-lock-reference-face '((((class color) (background dark)) (:foreground "cadetblue2")) (((class color) (background light)) (:foreground "red3")) @@ -773,8 +808,6 @@ on the major mode's symbol." "Font Lock mode face used to highlight references." :group 'font-lock-faces) -;; #### FSF has font-lock-builtin-face. - (defface font-lock-preprocessor-face '((((class color) (background dark)) (:foreground "steelblue1")) (((class color) (background light)) (:foreground "blue3")) @@ -782,7 +815,6 @@ on the major mode's symbol." "Font Lock Mode face used to highlight preprocessor conditionals." :group 'font-lock-faces) -;; #### Currently unused (defface font-lock-warning-face '((((class color) (background light)) (:foreground "Red" :bold t)) (((class color) (background dark)) (:foreground "Pink" :bold t)) @@ -1453,8 +1485,8 @@ Optional argument OBJECT is the string or buffer containing the text." (defun font-lock-apply-syntactic-highlight (highlight) "Apply HIGHLIGHT following a match. - HIGHLIGHT should be of the form MATCH-HIGHLIGHT, - see `font-lock-syntactic-keywords'." +HIGHLIGHT should be of the form MATCH-HIGHLIGHT, +see `font-lock-syntactic-keywords'." (let* ((match (nth 0 highlight)) (start (match-beginning match)) (end (match-end match)) (value (nth 1 highlight)) @@ -1532,8 +1564,7 @@ START should be at the beginning of a line." (font-lock-apply-syntactic-highlight (car highlights)) (font-lock-fontify-syntactic-anchored-keywords (car highlights) end)) - (setq highlights (cdr highlights))) - ) + (setq highlights (cdr highlights)))) (setq keywords (cdr keywords))))) ;;; Regexp fontification functions. @@ -1677,8 +1708,9 @@ START should be at the beginning of a line." ;; Various functions. (defun font-lock-compile-keywords (&optional keywords) - ;; Compile `font-lock-keywords' into the form (t KEYWORD ...) where KEYWORD - ;; is the (MATCHER HIGHLIGHT ...) shown in the variable's doc string. + "Compile KEYWORDS into the form (t KEYWORD ...). +Here KEYWORD is of the form (MATCHER HIGHLIGHT ...) as shown in the +`font-lock-keywords' doc string." (let ((keywords (or keywords font-lock-keywords))) (setq font-lock-keywords (if (eq (car-safe keywords) t) @@ -1700,7 +1732,7 @@ START should be at the beginning of a line." keyword))) (defun font-lock-eval-keywords (keywords) - ;; Evalulate KEYWORDS if a function (funcall) or variable (eval) name. + "Evaluate KEYWORDS if a function (funcall) or variable (eval) name." (if (listp keywords) keywords (font-lock-eval-keywords (if (fboundp keywords) diff --git a/lisp/font.el b/lisp/font.el index 8baaa84..6b27b64 100644 --- a/lisp/font.el +++ b/lisp/font.el @@ -99,6 +99,7 @@ (defconst font-window-system-mappings '((x . (x-font-create-name x-font-create-object)) + (gtk . (x-font-create-name x-font-create-object)) (ns . (ns-font-create-name ns-font-create-object)) (mswindows . (mswindows-font-create-name mswindows-font-create-object)) (pm . (x-font-create-name x-font-create-object)) ; Change? FIXME diff --git a/lisp/frame.el b/lisp/frame.el index c8ddc29..d9c8b98 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -1031,7 +1031,8 @@ This is a subroutine of `get-frame-for-buffer' (which see)." ;; The pre-display-buffer-function is called for effect, so this needs to ;; actually select the frame it wants. Fdisplay_buffer() takes notice of ;; changes to the selected frame. -(defun get-frame-for-buffer (buffer &optional not-this-window-p on-frame) +(defun get-frame-for-buffer (buffer &optional not-this-window-p on-frame + shrink-to-fit) "Select and return a frame in which to display BUFFER. Normally, the buffer will simply be displayed in the selected frame. But if the symbol naming the major-mode of the buffer has a 'frame-name @@ -1110,20 +1111,13 @@ always displays the buffer in the selected frame, regardless of the behavior that would otherwise be introduced by the `pre-display-buffer-function', which is normally set to `get-frame-for-buffer' (which see)." (let ((pre-display-buffer-function nil)) ; turn it off, whatever it is - (let ((window (display-buffer buffer))) + (let ((window (display-buffer buffer nil nil temp-buffer-shrink-to-fit))) (if (not (eq (last-nonminibuf-frame) (window-frame window))) ;; only the pre-display-buffer-function should ever do this. (error "display-buffer switched frames on its own!!")) (setq minibuffer-scroll-window window) (set-window-start window 1) ; obeys narrowing (set-window-point window 1) - (when temp-buffer-shrink-to-fit - (let* ((temp-window-size (round (* temp-buffer-max-height - (frame-height (window-frame window))))) - (size (window-displayed-height window))) - (when (< size temp-window-size) - (enlarge-window (- temp-window-size size) nil window))) - (shrink-window-if-larger-than-buffer window)) nil))) (setq pre-display-buffer-function 'get-frame-for-buffer) diff --git a/lisp/gutter-items.el b/lisp/gutter-items.el index 018b935..1f7c373 100644 --- a/lisp/gutter-items.el +++ b/lisp/gutter-items.el @@ -39,7 +39,8 @@ Do not set this. Use `set-glyph-image' to change the properties of the tab.") (defcustom gutter-buffers-tab-visible-p (gutter-element-visible-p default-gutter-visible-p 'buffers-tab) "Whether the buffers tab is globally visible. -This option should be set through the options menu." + +There are side-effects, so don't setq it; use Customize or the options menu." :group 'buffers-tab :type 'boolean :set #'(lambda (var val) @@ -75,7 +76,7 @@ a large number or nil will slow down tab responsiveness." :group 'buffers-tab) (defcustom buffers-tab-omit-function 'buffers-menu-omit-invisible-buffers - "*If non-nil, a function specifying the buffers to omit from the buffers tab. + "*A function specifying the buffers to omit from the buffers tab, or nil. This is passed a buffer and should return non-nil if the buffer should be omitted. The default value `buffers-menu-omit-invisible-buffers' omits buffers that are normally considered \"invisible\" (those whose name @@ -84,27 +85,27 @@ begins with a space)." function) :group 'buffers-tab) -(defcustom buffers-tab-selection-function 'select-buffers-tab-buffers-by-mode - "*If non-nil, a function specifying the buffers to select from the -buffers tab. This is passed two buffers and should return non-nil if -the second buffer should be selected. The default value -`select-buffers-tab-buffers-by-mode' groups buffers by major mode and -by `buffers-tab-grouping-regexp'." - - :type '(choice (const :tag "None" nil) - function) +(make-obsolete-variable 'buffers-tab-selection-function + 'buffers-tab-filter-functions) +(defcustom buffers-tab-selection-function nil + "*A function specifying buffers to display in the buffers tab, or nil. +Don't use this---it is never consulted. Use `buffers-tab-filter-functions' +instead. + +The function must take arguments (BUF1 BUF2). BUF1 is a candidate for +display in the buffers tab control. BUF2 is current (first in the buffers +list). Return non-nil if BUF1 should be added to the tab control." + :type '(choice function (const :tag "None" nil)) :group 'buffers-tab) -(defcustom buffers-tab-filter-functions (list buffers-tab-selection-function) - "*If non-nil, a list of functions specifying the buffers to select -from the buffers tab. -Each function in the list is passed two buffers, the buffer to -potentially select and the context buffer, and should return non-nil -if the first buffer should be selected. The default value groups -buffers by major mode and by `buffers-tab-grouping-regexp'." - - :type '(choice (const :tag "None" nil) - sexp) +(defcustom buffers-tab-filter-functions '(select-buffers-tab-buffers-by-mode) + "*A list of functions specifying buffers to display in the buffers tab. +May be empty. Each function in the list must take arguments (BUF1 BUF2). +BUF1 is the candidate, and BUF2 is the current buffer (first in the buffers +list). Return non-nil if BUF1 should be added to the buffers tab. The +default adds BUF1 if BUF1 and BUF2 have the same major mode, or if both +match `buffers-tab-grouping-regexp'." + :type '(repeat function) :group 'buffers-tab) (defcustom buffers-tab-sort-function nil diff --git a/lisp/info.el b/lisp/info.el index f9e74d0..2bd88a1 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -2268,7 +2268,7 @@ Give a blank topic name to go to the Index node itself." (interactive "sIndex topic: ") (let ((pattern (format "\n\\* \\([^\n:]*%s[^\n:]*\\):[ \t]*%s" (regexp-quote topic) - "\\(.*\\)\\.[ t]*\\([0-9]*\\)$")) + "\\(.*\\)\\.[ \t]*\\([0-9]*\\)$")) node) (message "Searching index for `%s'..." topic) (Info-goto-node "Top") diff --git a/lisp/keydefs.el b/lisp/keydefs.el index ec4b6cb..c34c35d 100644 --- a/lisp/keydefs.el +++ b/lisp/keydefs.el @@ -340,6 +340,7 @@ Keymap for characters following C-c.") (define-key global-map "\C-xry" 'yank-rectangle) (define-key global-map "\C-xro" 'open-rectangle) (define-key global-map "\C-xrt" 'string-rectangle) +(define-key global-map "\C-xrp" 'replace-rectangle) (define-key global-map "\C-xrw" 'window-configuration-to-register) ;(define-key global-map "\C-xrf" 'frame-configuration-to-register) diff --git a/lisp/lib-complete.el b/lisp/lib-complete.el index bbdc5d8..ea0bc69 100644 --- a/lisp/lib-complete.el +++ b/lisp/lib-complete.el @@ -306,10 +306,7 @@ and CODESYS. The default for DISPLAY-FUNCTION is `find-file'." (let ((path (if (or (null library) (equal library "")) nil (locate-file library load-path - ;; decompression doesn't work with Mule -slb - (if (featurep 'mule) - ":.el:.elc" - ":.el:.el.gz:.el.Z:.elc"))))) + ":.el:.el.gz:.el.Z:.elc")))) (if path (funcall (if (fboundp display-function) display-function 'find-file) path codesys) diff --git a/lisp/list-mode.el b/lisp/list-mode.el index 25d2418..f171b11 100644 --- a/lisp/list-mode.el +++ b/lisp/list-mode.el @@ -571,23 +571,25 @@ Go to the window from which completion was requested." (and (button-event-p event) ;; Give temporary modes such as isearch a chance to turn off. (run-hooks 'mouse-leave-buffer-hook)) - (or buffer (setq buffer (symbol-value-in-buffer - 'completion-reference-buffer - (or (and (button-event-p event) - (event-buffer event)) - (current-buffer))))) - (save-selected-window - (and (button-event-p event) - (select-window (event-window event))) - (if (and (one-window-p t 'selected-frame) - (window-dedicated-p (selected-window))) - ;; This is a special buffer's frame - (iconify-frame (selected-frame)) - (or (window-dedicated-p (selected-window)) - (bury-buffer)))) - (choose-completion-string (extent-string extent) - buffer - completion-base-size)) + (let ((list-buffer (or (and (button-event-p event) + (event-buffer event)) + (current-buffer)))) + (or buffer (setq buffer (symbol-value-in-buffer + 'completion-reference-buffer + list-buffer))) + (save-selected-window + (and (button-event-p event) + (select-window (event-window event))) + (if (and (one-window-p t 'selected-frame) + (window-dedicated-p (selected-window))) + ;; This is a special buffer's frame + (iconify-frame (selected-frame)) + (or (window-dedicated-p (selected-window)) + (bury-buffer)))) + (choose-completion-string (extent-string extent) + buffer + (symbol-value-in-buffer 'completion-base-size + list-buffer)))) ;; Delete the longest partial match for STRING ;; that can be found before POINT. diff --git a/lisp/menubar-items.el b/lisp/menubar-items.el index 3c0f547..5f2767f 100644 --- a/lisp/menubar-items.el +++ b/lisp/menubar-items.el @@ -147,7 +147,7 @@ which will not be used as accelerators." ["Save %_As..." write-file] ["Save So%_me Buffers" save-some-buffers] "-----" - ,@(if (eq system-type 'windows-nt) + ,@(if (valid-specifier-tag-p 'msprinter) '(["Page Set%_up..." generic-page-setup])) ["%_Print" generic-print-buffer :active (or (valid-specifier-tag-p 'msprinter) @@ -156,7 +156,7 @@ which will not be used as accelerators." :suffix (if (region-active-p) "Selection..." (if put-buffer-names-in-file-menu (concat (buffer-name) "...") "..."))] - ,@(unless (eq system-type 'windows-nt) + ,@(unless (valid-specifier-tag-p 'msprinter) '(["Prett%_y-Print" ps-print-buffer-with-faces :active (fboundp 'ps-print-buffer-with-faces) :suffix (if put-buffer-names-in-file-menu (buffer-name) "")])) diff --git a/lisp/menubar.el b/lisp/menubar.el index 71e4399..b26065c 100644 --- a/lisp/menubar.el +++ b/lisp/menubar.el @@ -671,6 +671,10 @@ If no response was received, nil is returned. MENU-DESC and EVENT are as in the call to `popup-menu'." ;; partially stolen from w3 + + ;; This function is way gross and assumes to much about menu + ;; processing that is X specific. Under mswindows popup menus behave + ;; in reasonable ways that you can't obstruct. (let ((echo-keystrokes 0) new-event) (popup-menu menu-desc event) @@ -679,14 +683,22 @@ MENU-DESC and EVENT are as in the call to `popup-menu'." (setq new-event (next-command-event new-event)) (cond ((misc-user-event-p new-event) (throw 'popup-done new-event)) - ((not (popup-up-p)) - (setq unread-command-events (cons new-event - unread-command-events)) - (throw 'popup-done nil)) ((button-release-event-p new-event);; don't beep twice nil) - ((event-matches-key-specifier-p (quit-char)) + ;; It shows how bogus this function is that the event + ;; arg could be missing and no-one noticed ... + ((event-matches-key-specifier-p new-event (quit-char)) (signal 'quit nil)) + ;; mswindows has no pop-down processing (selection is + ;; atomic) so doing anything more makes no sense. Since + ;; popup-up-p is always false under mswindows, this + ;; function has been ordered to do essentially X-specifc + ;; processing after this check. + ((not (popup-up-p)) + (setq unread-command-events (cons new-event + unread-command-events)) + (throw 'popup-done nil)) + ;; mswindows never gets here (t (beep) (message "please make a choice from the menu."))))))) diff --git a/lisp/msw-font-menu.el b/lisp/msw-font-menu.el index 5b97f33..194e6cd 100644 --- a/lisp/msw-font-menu.el +++ b/lisp/msw-font-menu.el @@ -176,13 +176,13 @@ or if you change your font path, you can call this to re-initialize the menus." (when (string-match mswindows-font-regexp name) (setq weight (match-string 2 name)) - (setq size (string-to-int (match-string 4 name)))) + (setq size (string-to-int (or (match-string 4 name) "0")))) (when (string-match mswindows-font-regexp truename) (when (not (member weight (aref entry 1))) (setq weight (match-string 2 truename))) (when (not (member size (aref entry 2))) - (setq size (string-to-int (match-string 4 truename)))) + (setq size (string-to-int (or (match-string 4 truename) "0")))) (setq slant (match-string 5 truename))) (vector entry family size weight slant))) diff --git a/lisp/msw-glyphs.el b/lisp/msw-glyphs.el index de2823a..bd6f753 100644 --- a/lisp/msw-glyphs.el +++ b/lisp/msw-glyphs.el @@ -1,6 +1,7 @@ ;;; msw-glyphs.el --- Support for glyphs in ms windows ;; Copyright (C) 1994, 1997 Free Software Foundation, Inc. +;; Copyright (C) 2002 Ben Wing. ;; Author: Kirill M. Katsnelson ;; Maintainer: XEmacs Development Team @@ -80,6 +81,9 @@ device class." (set-glyph-image continuation-glyph "\xC3" 'global 'msgdi) (set-glyph-image truncation-glyph "\xF0" 'global 'msgdi) (set-glyph-image hscroll-glyph "\xEF" 'global 'msgdi) + (set-glyph-contrib-p continuation-glyph nil) + (set-glyph-contrib-p truncation-glyph nil) + (set-glyph-contrib-p hscroll-glyph nil) (set-glyph-image octal-escape-glyph "\\") (set-glyph-image control-arrow-glyph "^") diff --git a/lisp/package-get.el b/lisp/package-get.el index 833042c..058e827 100644 --- a/lisp/package-get.el +++ b/lisp/package-get.el @@ -567,7 +567,8 @@ This is just an interactive wrapper for `package-admin-delete-binary-package'." (if (not (package-get (car pkg) nil 'never)) (throw 'exit nil) ;; Bail out if error detected )) - packages-package-list))) + packages-package-list)) + (package-net-update-installed-db)) ;;;###autoload (defun package-get-all (package version &optional fetched-packages install-dir) diff --git a/lisp/package-net.el b/lisp/package-net.el index d4071af..1fadce1 100644 --- a/lisp/package-net.el +++ b/lisp/package-net.el @@ -82,6 +82,9 @@ (defvar package-net-win32-binary-size 0 "The size in bytes of the win32 binary distribution.") +(defvar package-net-kit-version "" + "XEmacs kitting revision, usually empty.") + (defvar package-net-setup-version "1.0" "The version string of setup.") @@ -90,67 +93,6 @@ (file-truename (concat data-directory "../../" (if (eq system-type 'cygwin32) "xemacs/setup/" "setup/")))) -(defun package-net-convert-index-to-ini (&optional destdir remote version) - "Convert the package index to ini file format in DESTDIR. -DESTDIR defaults to the value of `data-directory'." - (package-get-require-base remote) - - (setq destdir (file-name-as-directory (or destdir data-directory))) - (let ((buf (get-buffer-create "*setup.ini*"))) - (unwind-protect - (save-excursion - (set-buffer buf) - (erase-buffer buf) - (goto-char (point-min)) - (let ((entries package-get-base) entry plist) - (insert "# This file is automatically generated. If you edit it, your\n") - (insert "# edits will be discarded next time the file is generated.\n") - (insert "#\n\n") - (insert (format "setup-timestamp: %d\n" - (+ (* (car (current-time)) 65536) (car (cdr (current-time)))))) - (insert (format "setup-version: %s\n\n" (or version "1.0"))) - ;; Native version - (insert (format "@ %s\n" "xemacs-i386-pc-win32")) - (insert (format "version: %s\n" emacs-program-version)) - (insert "type: native\n") - (insert (format "install: win32/%s %d\n\n" - (concat emacs-program-name - "-i386-pc-win32-" - emacs-program-version ".tar.gz") - package-net-win32-binary-size)) - ;; Cygwin version - (insert (format "@ %s\n" "xemacs-i686-pc-cygwin32")) - (insert (format "version: %s\n" emacs-program-version)) - (insert "type: cygwin\n") - (insert (format "install: cygwin32/%s %d\n\n" - (concat emacs-program-name - "-i686-pc-cygwin32-" - emacs-program-version ".tar.gz") - package-net-cygwin32-binary-size)) - ;; Standard packages - (while entries - (setq entry (car entries)) - (setq plist (car (cdr entry))) - ;; ignore mule packages - (unless (or (memq 'mule-base (plist-get plist 'requires)) - (eq 'mule-base (car entry))) - (insert (format "@ %s\n" (symbol-name (car entry)))) - (insert (format "version: %s\n" (plist-get plist 'version))) - (insert (format "install: packages/%s %s\n" (plist-get plist 'filename) - (plist-get plist 'size))) - ;; These are not supported as yet - ;; - ;; (insert (format "source: %s\n" (plist-get plist 'source))) - ;; (insert "[prev]\n") - ;; (insert (format "version: %s\n" (plist-get plist 'version))) - ;; (insert (format "install: %s\n" (plist-get plist 'filename))) - ;; (insert (format "source: %s\n" (plist-get plist 'source))) - (insert "\n")) - (setq entries (cdr entries)))) - (insert "# setup.ini file ends here\n") - (write-region (point-min) (point-max) (concat destdir "setup.ini"))) - (kill-buffer buf)))) - (defun package-net-generate-bin-ini (&optional version) "Convert the package index to ini file format in the current directory." (let ((buf (get-buffer-create "*setup-bin.ini*"))) @@ -167,21 +109,25 @@ DESTDIR defaults to the value of `data-directory'." (insert (format "setup-version: %s\n\n" (or version "1.0"))) ;; Native version (insert (format "@ %s\n" "xemacs-i586-pc-win32")) - (insert (format "version: %s\n" emacs-program-version)) + (insert (format "version: %s%s\n" emacs-program-version + package-net-kit-version)) (insert "type: native\n") (insert (format "install: win32/%s %d\n\n" (concat emacs-program-name "-i586-pc-win32-" - emacs-program-version ".tar.gz") + emacs-program-version package-net-kit-version + ".tar.gz") package-net-win32-binary-size)) ;; Cygwin version (insert (format "@ %s\n" "xemacs-i686-pc-cygwin")) - (insert (format "version: %s\n" emacs-program-version)) + (insert (format "version: %s%s\n" emacs-program-version + package-net-kit-version)) (insert "type: cygwin\n") (insert (format "install: cygwin32/%s %d\n\n" (concat emacs-program-name "-i686-pc-cygwin-" - emacs-program-version ".tar.gz") + emacs-program-version package-net-kit-version + ".tar.gz") package-net-cygwin32-binary-size)) (insert "# setup.ini file ends here\n") (write-region (point-min) (point-max) "setup-bin.ini"))) diff --git a/lisp/package-ui.el b/lisp/package-ui.el index 5509cde..c0b93ad 100644 --- a/lisp/package-ui.el +++ b/lisp/package-ui.el @@ -488,7 +488,7 @@ and whether or not it is up-to-date." "Display additional package info in the modeline. EXTENT determines the package to display (the package information is attached to the extent as properties)." - (let (pkg-sym info inst-ver auth-ver date maintainer) + (let (pkg-sym info inst-ver auth-ver date maintainer balloon req) (if (or force-update (not (current-message)) (string-match ".*: .*: " (current-message)) ) @@ -498,14 +498,29 @@ attached to the extent as properties)." inst-ver (package-get-key pkg-sym :version) auth-ver (package-get-info-prop info 'author-version) date (package-get-info-prop info 'date) - maintainer (package-get-info-prop info 'maintainer)) + maintainer (package-get-info-prop info 'maintainer) + req (package-get-info-prop info 'requires)) (if (not inst-ver) - (setq inst-ver "")) + (setq inst-ver 0)) + (if (featurep 'balloon-help) + (progn + (setq balloon (format " +Package Information: [For package: \"%s\"] +================ +Installed Version : %.2f +Author Version : %s +Maintainer: %s +Released: %s +Required Packages : %s\n\n" + pkg-sym inst-ver auth-ver maintainer + date req)) + (set-extent-property extent 'balloon-help balloon))) (if pui-list-verbose - (format "Author version: %-8s %11s: %s" - auth-ver date maintainer) - (format "%-6s: %-8s %11s: %s" - inst-ver auth-ver date maintainer)) + (format + "Inst V: %.2f Auth V: %s Maint: %s" + inst-ver auth-ver maintainer) + (format "%.2f : %s : %s" + inst-ver auth-ver maintainer)) )) )) diff --git a/lisp/printer.el b/lisp/printer.el index 5783af7..9f0b6d7 100644 --- a/lisp/printer.el +++ b/lisp/printer.el @@ -76,6 +76,9 @@ printers." (make-device 'msprinter printer-name)))) (defun Printer-clear-device () + ;; relying on GC to delete the device is too error-prone since there + ;; only can be one anyway. + (and printer-current-device (delete-device printer-current-device)) (setq printer-current-device nil)) (defcustom printer-page-header '((face bold date) nil (face bold buffer-name)) @@ -253,29 +256,30 @@ display of the print dialog box. If BUFFER is nil or omitted, the current buffer is used." (interactive (list nil (not current-prefix-arg))) - (let* ((print-region (and (interactive-p) (region-active-p))) - (start (if print-region (region-beginning) (point-min buffer))) - (end (if print-region (region-end) (point-max buffer)))) - (if (or (not (valid-specifier-tag-p 'msprinter)) - (not display-print-dialog)) - (generic-print-region start end buffer) - (let* ((d (Printer-get-device)) - (props (condition-case err - (make-dialog-box 'print :device d + (condition-case err + (let* ((print-region (and (interactive-p) (region-active-p))) + (start (if print-region (region-beginning) (point-min buffer))) + (end (if print-region (region-end) (point-max buffer)))) + (if (or (not (valid-specifier-tag-p 'msprinter)) + (not display-print-dialog)) + (generic-print-region start end buffer) + (let* ((d (Printer-get-device)) + (props (make-dialog-box 'print :device d :allow-selection print-region :selected-page-button - (if print-region 'selection 'all)) - (error - (Printer-clear-device) - (signal (car err) (cdr err)))))) - (and props - (let ((really-print-region - (eq (plist-get props 'selected-page-button) 'selection))) - (generic-print-region (if really-print-region start - (point-min buffer)) - (if really-print-region end - (point-max buffer)) - buffer d props))))))) + (if print-region 'selection 'all)))) + (and props + (let ((really-print-region + (eq (plist-get props 'selected-page-button) 'selection))) + (generic-print-region (if really-print-region start + (point-min buffer)) + (if really-print-region end + (point-max buffer)) + buffer d props)))))) + (error + ;; Make sure we catch all errors thrown from the native code. + (Printer-clear-device) + (signal (car err) (cdr err))))) (defun generic-print-region (start end &optional buffer print-device props) "Print region using a printing method appropriate to the O.S. being run. @@ -310,7 +314,10 @@ Recognized properties are the same as those in `make-dialog-box': ;; re-create the frame each time so that we eject the piece ;; of paper at the end even if we're printing more than one ;; page per sheet of paper. - (let ((copies (plist-get props 'copies 1))) + (let ((copies (plist-get props 'copies 1)) + ;; This is not relevant to printing and can mess up + ;; msprinter frame sizing + default-frame-plist) (while (> copies 0) (let (d f header-buffer footer-buffer) (setq buffer (decode-buffer buffer)) @@ -332,7 +339,9 @@ Recognized properties are the same as those in `make-dialog-box': minibuffer none modeline-shadow-thickness 0 vertical-scrollbar-visible-p nil - horizontal-scrollbar-visible-p nil)) + horizontal-scrollbar-visible-p nil + [default foreground] "black" + [default background] "white")) d)) (let* ((w (frame-root-window f)) (vertdpi diff --git a/lisp/process.el b/lisp/process.el index 79a81e6..7294e00 100644 --- a/lisp/process.el +++ b/lisp/process.el @@ -350,7 +350,7 @@ In either case, the output is inserted after point (leaving mark after it)." ;; then replace that region with the output. (progn (setq buffer-read-only nil) (delete-region (max start end) (point-max)) - (delete-region (point-min) (max start end)) + (delete-region (point-min) (min start end)) (setq exit-status (call-process-region (point-min) (point-max) shell-file-name t t nil diff --git a/lisp/rect.el b/lisp/rect.el index 6f42ee4..28f0549 100644 --- a/lisp/rect.el +++ b/lisp/rect.el @@ -310,6 +310,7 @@ When called from a program, the rectangle's corners are START and END." (apply-on-rectangle 'string-rectangle-line start end string (and (boundp 'pending-delete-mode) pending-delete-mode))) +;;;###autoload (defun replace-rectangle (start end string) "Like `string-rectangle', but unconditionally replace the original region, as if `pending-delete-mode' were active." diff --git a/lisp/select.el b/lisp/select.el index d654ea7..b185dea 100644 --- a/lisp/select.el +++ b/lisp/select.el @@ -210,8 +210,9 @@ See `interprogram-cut-function' for more information." (own-selection string 'CLIPBOARD)) (defun disown-selection (&optional secondary-p) - "Assuming we own the selection, disown it. With an argument, discard the -secondary selection instead of the primary selection." + "Assuming we own the selection, disown it. +With an argument, discard the secondary selection instead of the +primary selection." (disown-selection-internal (if secondary-p 'SECONDARY 'PRIMARY)) (when (and selection-sets-clipboard (or (not secondary-p) diff --git a/lisp/simple.el b/lisp/simple.el index 36566d4..763a897 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -298,6 +298,8 @@ With argument, join this line to following line." (delete-region (point) (+ (point) (length fill-prefix)))) (fixup-whitespace)))) +(defalias 'join-line 'delete-indentation) + (defun fixup-whitespace () "Fixup white space between objects around point. Leave one space or none, according to the context." diff --git a/lisp/subr.el b/lisp/subr.el index dcaf367..54cf7f1 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -301,16 +301,24 @@ See also `add-hook', `add-local-hook', and `add-local-one-shot-hook'." (make-local-hook hook) (add-one-shot-hook hook function append t)) -(defun add-to-list (list-var element) +(defun add-to-list (list-var element &optional append) "Add to the value of LIST-VAR the element ELEMENT if it isn't there yet. The test for presence of ELEMENT is done with `equal'. +If ELEMENT is added, it is added at the beginning of the list, +unless the optional argument APPEND is non-nil, in which case +ELEMENT is added at the end. + If you want to use `add-to-list' on a variable that is not defined until a certain package is loaded, you should put the call to `add-to-list' into a hook function that will be run only after loading the package. `eval-after-load' provides one way to do this. In some cases other hooks, such as major mode hooks, can do the job." - (or (member element (symbol-value list-var)) - (set list-var (cons element (symbol-value list-var))))) + (if (member element (symbol-value list-var)) + (symbol-value list-var) + (set list-var + (if append + (append (symbol-value list-var) (list element)) + (cons element (symbol-value list-var)))))) ;; XEmacs additions ;; called by Fkill_buffer() @@ -380,12 +388,14 @@ Otherwise treat `\\' in NEWTEXT as special: (check-argument-type 'stringp str) (check-argument-type 'stringp newtext) (if (> (length str) 50) - (with-temp-buffer - (insert str) - (goto-char 1) + (let ((cfs case-fold-search)) + (with-temp-buffer + (setq case-fold-search cfs) + (insert str) + (goto-char 1) (while (re-search-forward regexp nil t) (replace-match newtext t literal)) - (buffer-string)) + (buffer-string))) (let ((start 0) newstr) (while (string-match regexp str start) (setq newstr (replace-match newtext t literal str) diff --git a/lisp/toolbar-items.el b/lisp/toolbar-items.el index 1c54a91..39d1f51 100644 --- a/lisp/toolbar-items.el +++ b/lisp/toolbar-items.el @@ -400,7 +400,7 @@ Newsreaders known by default are gnus, rn, nn, trn, xrn, slrn, pine (let ((command (cdr-safe (assq toolbar-news-reader toolbar-news-commands-alist)))) (or command - (error "Unkown news reader %s" toolbar-news-reader)) + (error "Unknown news reader %s" toolbar-news-reader)) (if (symbolp command) (call-interactively command) (eval command)))) diff --git a/lisp/toolbar.el b/lisp/toolbar.el index 030099d..4ddc1e0 100644 --- a/lisp/toolbar.el +++ b/lisp/toolbar.el @@ -71,7 +71,7 @@ customized through the options menu." "If non-nil help is echoed for toolbar buttons.") (defvar toolbar-icon-directory nil - "Location of standard toolbar icon bitmaps.") + "Location of standard toolbar icon bitmaps, with trailing path separator.") (defun toolbar-make-button-list (up &optional down disabled cap-up cap-down cap-disabled) "Call make-glyph on each arg and return a list of the results." diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index d9e203a..aaa80ca 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -1054,7 +1054,7 @@ Recommended as a parent keymap for modes using widgets.") (defun widget-field-activate (pos &optional event) - "Invoke the ediable field at point." + "Invoke the editable field at point." (interactive "@d") (let ((field (widget-field-find pos))) (if field diff --git a/lisp/window-xemacs.el b/lisp/window-xemacs.el index 6fb0abd..4950427 100644 --- a/lisp/window-xemacs.el +++ b/lisp/window-xemacs.el @@ -216,11 +216,11 @@ FRAME must be a frame or nil." (defvar display-buffer-function nil "If non-nil, function to call to handle `display-buffer'. -It will receive three args: the same as those to `display-buffer'.") +It will receive four args: the same as those to `display-buffer'.") (defvar pre-display-buffer-function nil "If non-nil, function that will be called from `display-buffer' -as the first action. It will receive three args: the same as those +as the first action. It will receive four args: the same as those to `display-buffer'. This function may be used to select an appropriate frame for the buffer, for example. See also the variable `display-buffer-function', which may @@ -352,7 +352,8 @@ If there is only one window, it is split regardless of this value." ;; Can you believe that all of this crap was formerly in C? ;; Praise Jesus that it's not there any more. -(defun display-buffer (buffer &optional not-this-window-p override-frame) +(defun display-buffer (buffer &optional not-this-window-p override-frame + shrink-to-fit) "Make BUFFER appear in some window on the current frame, but don't select it. BUFFER can be a buffer or a buffer name. If BUFFER is shown already in some window in the current frame, @@ -365,6 +366,9 @@ the current frame, unless OVERRIDE-FRAME is non-nil. If OVERRIDE-FRAME is non-nil, display on that frame instead of the current frame (or the dedicated frame). +If SHRINK-TO-FIT is non-nil and splitting the window is appropriate, give +the new buffer less than half the space if it is small enough to fit. + If `pop-up-windows' is non-nil, always use the current frame and create a new window regardless of whether the buffer has a dedicated frame, and regardless of whether @@ -390,7 +394,8 @@ Returns the window displaying BUFFER." (if pre-display-buffer-function (funcall pre-display-buffer-function buffer not-this-window-p - override-frame))) + override-frame + shrink-to-fit))) ;; Give the user the ability to completely reimplement ;; this function via the `display-buffer-function'. @@ -398,7 +403,8 @@ Returns the window displaying BUFFER." (throw 'done (funcall display-buffer-function buffer not-this-window-p - override-frame))) + override-frame + shrink-to-fit))) ;; If the buffer has a dedicated frame, that takes ;; precedence over the current frame, and over what the @@ -615,7 +621,9 @@ Returns the window displaying BUFFER." (window-height window)) 2) (window-height upper)) - nil upper))))) + nil upper)) + (if shrink-to-fit + (shrink-window-if-larger-than-buffer window))))) (setq window (get-lru-window target-frame))) diff --git a/lwlib/.cvsignore b/lwlib/.cvsignore deleted file mode 100644 index 94ef90a..0000000 --- a/lwlib/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -Makefile.in -config.h -Makefile -GNUmakefile diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog index 846f96c..865149d 100644 --- a/lwlib/ChangeLog +++ b/lwlib/ChangeLog @@ -1,3 +1,30 @@ +2002-08-23 Stephen J. Turnbull + + * XEmacs 21.4.9 "Informed Management" is released. + +2002-06-07 Andy Piper + + * lwlib-Xm.c: (xm_safe_update_label): new function. Call + xm_update_label if the class is appropriate. + (make_menu_in_widget): use it. + (update_one_menu_entry): ditto. + (xm_update_one_widget): ditto. + +2002-08-14 Stephen J. Turnbull + + * lwlib-Xm.c: revert Darryl's patch in favor of Andy's. + +2002-07-17 Stephen J. Turnbull + + * lwlib-utils.c (XtApplyUntilToWidgets): + * xlwmenu.c (close_to_reference_time): + Fix warnings. + +2002-05-14 Darryl Okahata + + * lwlib-Xm.c: prevent non-label widgets from being treated as + labels and having their "labels" updated. + 2002-05-09 Stephen J. Turnbull * XEmacs 21.4.8 "Honest Recruiter" is released. diff --git a/lwlib/lwlib-Xm.c b/lwlib/lwlib-Xm.c index 64ea878..acd68df 100644 --- a/lwlib/lwlib-Xm.c +++ b/lwlib/lwlib-Xm.c @@ -301,6 +301,14 @@ xm_update_label (widget_instance* instance, Widget widget, widget_value* val) XmStringFree (val_string); } +static void +xm_safe_update_label (widget_instance* instance, Widget widget, widget_value* val) +{ + /* Don't clobber non-labels. */ + if (XtIsSubclass (widget, xmLabelWidgetClass)) + xm_update_label (instance, widget, val); +} + #endif /* defined (LWLIB_DIALOGS_MOTIF) || defined (LWLIB_MENUBARS_MOTIF) */ /* update of list */ @@ -540,7 +548,7 @@ make_menu_in_widget (widget_instance* instance, Widget widget, XtSetArg (al [ac], XmNsubMenuId, menu); ac++; button = XmCreateCascadeButton (widget, cur->name, al, ac); - xm_update_label (instance, button, cur); + xm_safe_update_label (instance, button, cur); XtAddCallback (button, XmNcascadingCallback, xm_pull_down_callback, (XtPointer)instance); @@ -561,7 +569,7 @@ make_menu_in_widget (widget_instance* instance, Widget widget, else button = XmCreatePushButtonGadget (widget, cur->name, al, ac); - xm_update_label (instance, button, cur); + xm_safe_update_label (instance, button, cur); /* don't add a callback to a simple label */ if (cur->type == TOGGLE_TYPE || cur->type == RADIO_TYPE) @@ -615,7 +623,8 @@ update_one_menu_entry (widget_instance* instance, Widget widget, /* update the menu button as a label. */ if (val->change >= VISIBLE_CHANGE) { - xm_update_label (instance, widget, val); + xm_safe_update_label (instance, widget, val); + if (XtClass (widget) == xmToggleButtonWidgetClass || XtClass (widget) == xmToggleButtonGadgetClass) { @@ -829,8 +838,7 @@ xm_update_one_widget (widget_instance* instance, Widget widget, #if defined (LWLIB_DIALOGS_MOTIF) || defined (LWLIB_MENUBARS_MOTIF) || defined (LWLIB_WIDGETS_MOTIF) /* Common to all label like widgets */ - if (XtIsSubclass (widget, xmLabelWidgetClass)) - xm_update_label (instance, widget, val); + xm_safe_update_label (instance, widget, val); #endif class = XtClass (widget); /* Class specific things */ diff --git a/lwlib/lwlib-utils.c b/lwlib/lwlib-utils.c index bca952e..39da1c7 100644 --- a/lwlib/lwlib-utils.c +++ b/lwlib/lwlib-utils.c @@ -118,7 +118,7 @@ XtApplyUntilToWidgets (Widget w, XtApplyUntilToWidgetsProc proc, XtPointer arg) if (XtIsComposite (w)) { CompositeWidget cw = (CompositeWidget)w; - int i; + unsigned int i; for (i = 0; i < cw->composite.num_children; i++) if (XtIsWidget (cw->composite.children [i])){ result = proc (cw->composite.children [i], arg); diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c index 1d89c0b..ef1cc9f 100644 --- a/lwlib/xlwmenu.c +++ b/lwlib/xlwmenu.c @@ -348,7 +348,8 @@ close_to_reference_time (Widget w, Time reference_time, XEvent *ev) { return reference_time && - (ev->xbutton.time - reference_time < XtGetMultiClickTime (XtDisplay (w))); + (ev->xbutton.time - reference_time + < (Time) XtGetMultiClickTime (XtDisplay (w))); } /* Size code */ diff --git a/man/ChangeLog b/man/ChangeLog index b42d899..78e5c97 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,122 @@ +2002-08-23 Stephen J. Turnbull + + * XEmacs 21.4.9 "Informed Management" is released. + +2002-08-20 Simon Josefsson + + * lispref/building.texi (Pure Storage): Deprecate purecopy. + +2002-08-16 Stephen J. Turnbull + + * internals/internals.texi (Regression Testing XEmacs): Fix typo. + +2002-08-15 Stephen J. Turnbull + + * internals/internals.texi (GCPROing): Add comment on GCPRO. + (Regression Testing XEmacs): New node. + (Modules for Regression Testing): New node. + +2002-08-14 Stephen J. Turnbull + + * xemacs/packages.texi (Installing Packages): Revert EFS patch. + +2002-07-13 Adrian Aichner + + * xemacs/packages.texi (Installing Packages): Fix reference to + EFS. + +2002-08-09 Stephen J. Turnbull + + * packages.texi: Replace with rev 1.16 (from 21.5 current). + Includes changes by Ville Skyttä, Adrian Aichner, Simon + Josefsson, and Steve Youngs. + +2002-07-24 Ville Skyttä + + * term.texi (Input to the inferior): Fix term line/char mode + switch keybindings. Kudos to Jacob P. Burckhardt. + + * xemacs/misc.texi (Term Mode): Ditto. + +2002-07-06 Adrian Aichner + + * new-users-guide/custom1.texi (Customizing key Bindings): Fix + improper use of indef. art. "a". + +2002-07-06 Adrian Aichner + + * lispref/commands.texi (Peeking and Discarding): Ditto. + * lispref/customize.texi (Type Keywords): Ditto. + * lispref/dragndrop.texi (Drop Interface): Ditto. + +2002-07-06 Adrian Aichner + + * termcap.texi (Clearing): Ditto. + * widget.texi (User Interface): Ditto. + * widget.texi (Basic Types): Ditto. + * widget.texi (group): Ditto. + +2002-07-05 Adrian Aichner + + * xemacs/menus.texi (Edit Menu): Typo fixes for incorrect use of + indef. art. "an". + +2002-07-05 Adrian Aichner + + * lispref/control.texi (Processing of Errors): Ditto. + * lispref/mule.texi (ISO 2022): Ditto. + * lispref/packaging.texi (Package Terminology): Ditto. + * lispref/text.texi (Transformations): Ditto. + +2002-07-05 Adrian Aichner + + * termcap.texi (Naming): Ditto. + * texinfo.texi (itemize): Ditto. + * texinfo.texi (Tips): Ditto. + * widget.texi (Introduction): Ditto. + * widget.texi (group): Ditto. + +2002-07-02 Stephen J. Turnbull + + * xemacs-faq.texi (Top, Customization, Q3.10.5, Q3.10.6): + New "killing is slow" FAQ and link updates.. + +2002-06-17 Jerry James + + * emodules.texi (Loading other Modules): Describe why we do not + use RTLD_GLOBAL. + +2002-06-11 Adrian Aichner + + * xemacs-faq.texi (Q1.3.7): Update broken link to russian.el + (found by linklint) with Google's help. + +2002-05-25 Adrian Aichner + + * xemacs/custom.texi (Syntax Entry): Deprecate ` ' in favor of `-'. + +2002-06-11 Stephen J. Turnbull + + * xemacs/mule.texi (Mule Intro): Better title, explanation. + +2002-05-23 Stephen J. Turnbull + + * lispref/packaging.texi (package-info.in Fields): Typo fix. + +2002-05-20 Stephen J. Turnbull + + * xemacs/files.texi (Reverting): Mention use of prefix argument + and mode recalculation. + +2002-05-11 Adrian Aichner + + * xemacs-faq.texi (Top): Add Q2.0.15 under "Installation and + Trouble Shooting". + * xemacs-faq.texi (Installation): Add Q2.0.15 to Installation + menu. + * xemacs-faq.texi (Q2.0.14): Fix unnumberedsubsec argument. + * xemacs-faq.texi (Q2.0.15): New. + 2002-05-09 Stephen J. Turnbull * XEmacs 21.4.8 "Honest Recruiter" is released. diff --git a/man/emodules.texi b/man/emodules.texi index 538a72a..93edb70 100644 --- a/man/emodules.texi +++ b/man/emodules.texi @@ -478,6 +478,20 @@ will be unloaded. This means that if any child modules fail to load, then their parents will also fail to load. This does not include previous successful calls to @code{emodules_load} at the top level. +@strong{Warning:} Modules are @emph{not} loaded with the +@code{RTLD_GLOBAL} flag. The practical upshot is that individual +modules do not have access to each other's C symbols. One module cannot +make a C function call to a function defined in another module, nor can +it read or set a C variable in another module. All interaction between +modules must, therefore, take place at the Lisp level. This is by +design. Other projects have attempted to use @code{RTLD_GLOBAL}, only +to find that spurious symbol name clashes were the result. Helper +functions often have simple names, increasing the probability of such a +clash. If you really need to share symbols between modules, create a +shared library containing those symbols, and link your modules with +that library. Otherwise, interactions between modules must take place +via Lisp function calls and Lisp variables accesses. + @node Using ellcc, Defining Functions, Anatomy of a Module, Top @chapter Using @code{ellcc} @cindex @code{ellcc} diff --git a/man/internals/internals.texi b/man/internals/internals.texi index 1314398..54a94a8 100644 --- a/man/internals/internals.texi +++ b/man/internals/internals.texi @@ -117,6 +117,7 @@ This Info file contains v1.4 of the XEmacs Internals Manual, March 2001. * The XEmacs Object System (Abstractly Speaking):: * How Lisp Objects Are Represented in C:: * Rules When Writing New C Code:: +* Regression Testing XEmacs:: * A Summary of the Various XEmacs Modules:: * Allocation of Objects in XEmacs Lisp:: * Dumping:: @@ -166,6 +167,8 @@ Coding for Mule * General Guidelines for Writing Mule-Aware Code:: * An Example of Mule-Aware Code:: +Regression Testing XEmacs + A Summary of the Various XEmacs Modules * Low-Level Modules:: @@ -180,6 +183,7 @@ A Summary of the Various XEmacs Modules * Modules for Interfacing with the Operating System:: * Modules for Interfacing with X Windows:: * Modules for Internationalization:: +* Modules for Regression Testing:: Allocation of Objects in XEmacs Lisp @@ -1893,7 +1897,7 @@ performance is an issue, use @code{type_checking_assert}, nothing unless the corresponding configure error checking flag was specified. -@node Rules When Writing New C Code, A Summary of the Various XEmacs Modules, How Lisp Objects Are Represented in C, Top +@node Rules When Writing New C Code, Regression Testing XEmacs, How Lisp Objects Are Represented in C, Top @chapter Rules When Writing New C Code @cindex writing new C code, rules when @cindex C code, rules when writing new @@ -3150,7 +3154,75 @@ add a DEFINE_LRECORD_IMPLEMENTATION call to @file{@var{foo}.c} add an INIT_LRECORD_IMPLEMENTATION call to @code{syms_of_@var{foo}.c} @end enumerate -@node A Summary of the Various XEmacs Modules, Allocation of Objects in XEmacs Lisp, Rules When Writing New C Code, Top + +@node Regression Testing XEmacs, A Summary of the Various XEmacs Modules, Rules When Writing New C Code, Top +@chapter Regression Testing XEmacs +@cindex testing, regression + +The source directory @file{tests/automated} contains XEmacs' automated +test suite. The usual way of running all the tests is running +@code{make check} from the top-level source directory. + +The test suite is unfinished and it's still lacking some essential +features. It is nevertheless recommended that you run the tests to +confirm that XEmacs behaves correctly. + +If you want to run a specific test case, you can do it from the +command-line like this: + +@example +$ xemacs -batch -l test-harness.elc -f batch-test-emacs TEST-FILE +@end example + +If something goes wrong, you can run the test suite interactively by +loading @file{test-harness.el} into a running XEmacs and typing +@kbd{M-x test-emacs-test-file RET RET}. You will see a log of +passed and failed tests, which should allow you to investigate the +source of the error and ultimately fix the bug. + +Adding a new test file is trivial: just create a new file here and it +will be run. There is no need to byte-compile any of the files in +this directory---the test-harness will take care of any necessary +byte-compilation. + +Look at the existing test cases for the examples of coding test cases. +It all boils down to your imagination and judicious use of the macros +@code{Assert}, @code{Check-Error}, @code{Check-Error-Message}, and +@code{Check-Message}. + +Here's a simple example checking case-sensitive and case-insensitive +comparisons from @file{case-tests.el}. + +@example +(with-temp-buffer + (insert "Test Buffer") + (let ((case-fold-search t)) + (goto-char (point-min)) + (Assert (eq (search-forward "test buffer" nil t) 12)) + (goto-char (point-min)) + (Assert (eq (search-forward "Test buffer" nil t) 12)) + (goto-char (point-min)) + (Assert (eq (search-forward "Test Buffer" nil t) 12)) + + (setq case-fold-search nil) + (goto-char (point-min)) + (Assert (not (search-forward "test buffer" nil t))) + (goto-char (point-min)) + (Assert (not (search-forward "Test buffer" nil t))) + (goto-char (point-min)) + (Assert (eq (search-forward "Test Buffer" nil t) 12)))) +@end example + +This example could be inserted in a file in @file{tests/automated}, and +it would be a complete test, automatically executed when you run +@kbd{make check} after building XEmacs. More complex tests may require +substantial temporary scaffolding to create the environment that elicits +the bugs, but the top-level Makefile and @file{test-harness.el} handle +the running and collection of results from the @code{Assert}, +@code{Check-Error}, @code{Check-Error-Message}, and @code{Check-Message} +macros. + +@node A Summary of the Various XEmacs Modules, Allocation of Objects in XEmacs Lisp, Regression Testing XEmacs, Top @chapter A Summary of the Various XEmacs Modules @cindex modules, a summary of the various XEmacs @@ -3169,6 +3241,7 @@ add an INIT_LRECORD_IMPLEMENTATION call to @code{syms_of_@var{foo}.c} * Modules for Interfacing with the Operating System:: * Modules for Interfacing with X Windows:: * Modules for Internationalization:: +* Modules for Regression Testing:: @end menu @node Low-Level Modules @@ -4833,6 +4906,36 @@ Asian-language support, and is not currently used. +@node Modules for Regression Testing +@section Modules for Regression Testing +@cindex modules for regression testing +@cindex regression testing, modules for + +@example +test-harness.el +base64-tests.el +byte-compiler-tests.el +case-tests.el +ccl-tests.el +c-tests.el +database-tests.el +extent-tests.el +hash-table-tests.el +lisp-tests.el +md5-tests.el +mule-tests.el +regexp-tests.el +symbol-tests.el +syntax-tests.el +@end example + +@file{test-harness.el} defines the macros @code{Assert}, +@code{Check-Error}, @code{Check-Error-Message}, and +@code{Check-Message}. The other files are test files, testing various +XEmacs modules. + + + @node Allocation of Objects in XEmacs Lisp, Dumping, A Summary of the Various XEmacs Modules, Top @chapter Allocation of Objects in XEmacs Lisp @cindex allocation of objects in XEmacs Lisp @@ -5100,6 +5203,10 @@ weirdly corrupted objects or even in incorrect values in a totally different section of code. @end enumerate +If you don't understand whether to @code{GCPRO} in a particular +instance, ask on the mailing lists. A general hint is that @code{prog1} +is the canonical example + @cindex garbage collection, conservative @cindex conservative garbage collection Given the extremely error-prone nature of the @code{GCPRO} scheme, and diff --git a/man/lispref/building.texi b/man/lispref/building.texi index 4e9c1cd..414ab0a 100644 --- a/man/lispref/building.texi +++ b/man/lispref/building.texi @@ -209,10 +209,7 @@ vectors and cons cells. It does not make copies of other objects such as symbols, but just returns them unchanged. It signals an error if asked to copy markers. -This function is a no-op except while XEmacs is being built and dumped; -it is usually called only in the file -@file{xemacs/lisp/prim/loaddefs.el}, but a few packages call it just in -case you decide to preload them. +This function is a no-op in XEmacs, and its use in new code is deprecated. @end defun @defvar pure-bytes-used diff --git a/man/lispref/commands.texi b/man/lispref/commands.texi index 9821a57..3620037 100644 --- a/man/lispref/commands.texi +++ b/man/lispref/commands.texi @@ -1755,7 +1755,7 @@ This variable holds a list of events waiting to be read as command input. The events are used in the order they appear in the list, and removed one by one as they are used. -The variable is needed because in some cases a function reads a event +The variable is needed because in some cases a function reads an event and then decides not to use it. Storing the event in this variable causes it to be processed normally, by the command loop or by the functions to read command input. diff --git a/man/lispref/control.texi b/man/lispref/control.texi index 59000f7..5860ca5 100644 --- a/man/lispref/control.texi +++ b/man/lispref/control.texi @@ -922,7 +922,7 @@ formatting are explained below. This function displays @var{error-object} on @var{stream}. @var{error-object} is a cons of error type, a symbol, and error arguments, a list. If the error type symbol of one of its error -condition superclasses has an @code{display-error} property, that +condition superclasses has a @code{display-error} property, that function is invoked for printing the actual error message. Otherwise, the error is printed as @samp{Error: arg1, arg2, ...}. @end defun diff --git a/man/lispref/customize.texi b/man/lispref/customize.texi index fddbf33..1bd271c 100644 --- a/man/lispref/customize.texi +++ b/man/lispref/customize.texi @@ -739,7 +739,7 @@ in the buffer with a positive tabbing order, or @code{nil} @item :parent The parent of a nested widget (e.g. a @code{menu-choice} item or an -element of a @code{editable-list} widget). +element of an @code{editable-list} widget). @item :sibling-args This keyword is only used for members of a @code{radio-button-choice} or diff --git a/man/lispref/dragndrop.texi b/man/lispref/dragndrop.texi index 5d48ba6..8c2085c 100644 --- a/man/lispref/dragndrop.texi +++ b/man/lispref/dragndrop.texi @@ -100,7 +100,7 @@ the XEmacs API, cause it also uses MIME types to encode dragged data. @cindex drop @cindex Drop API -For each activated low-level protocol, a internal routine will catch +For each activated low-level protocol, an internal routine will catch incoming drops and convert them to a dragdrop-drop type misc-user-event. diff --git a/man/lispref/mule.texi b/man/lispref/mule.texi index 4f7422e..a3b68bf 100644 --- a/man/lispref/mule.texi +++ b/man/lispref/mule.texi @@ -805,7 +805,7 @@ well), or by use of shifting (affecting only the following character in the data stream) or locking (effective until the next designation or locking) control sequences. An encoding conformant to ISO 2022 is typically defined by designating the initial contents of the G0-G3 -registers, specifying an 7 or 8 bit environment, and specifying whether +registers, specifying a 7 or 8 bit environment, and specifying whether further designations will be recognized. Some examples of character sets and the registered final characters diff --git a/man/lispref/packaging.texi b/man/lispref/packaging.texi index 827420c..f682baa 100644 --- a/man/lispref/packaging.texi +++ b/man/lispref/packaging.texi @@ -461,7 +461,7 @@ safely remove any of the component libraries. @item Single-File Packages @cindex single-file package -A single-file package is an collection of thematically related but +A single-file package is a collection of thematically related but otherwise independent Lisp libraries. These libraries are bundled together for convenience of the maintainers. Usually individual libraries may be deleted at will without any loss of functionality of @@ -905,7 +905,7 @@ for obsolete fields. The @file{package-info.in} literals provided by the maintainer generally should not change over the life of the package. (The exception is the @samp{provides} field, which should be generated, but isn't yet.) -Values described as ``literal'' below are unquoted literal test. These +Values described as ``literal'' below are unquoted literal text. These are normally interpreted as symbols by the package build process. The maintainer literals are diff --git a/man/lispref/text.texi b/man/lispref/text.texi index 233e73c..1d8b9b1 100644 --- a/man/lispref/text.texi +++ b/man/lispref/text.texi @@ -2761,7 +2761,7 @@ implemented in C, with an appropriate interface for Lisp programmers. Examples of algorithms thus provided are MD5 and base64 support. MD5 is an algorithm for calculating message digests, as described in -rfc1321. Given a message of arbitrary length, MD5 produces an 128-bit +rfc1321. Given a message of arbitrary length, MD5 produces a 128-bit ``fingerprint'' (``message digest'') corresponding to that message. It is considered computationally infeasible to produce two messages having the same MD5 digest, or to produce a message having a prespecified diff --git a/man/new-users-guide/custom1.texi b/man/new-users-guide/custom1.texi index 97f679f..f504172 100644 --- a/man/new-users-guide/custom1.texi +++ b/man/new-users-guide/custom1.texi @@ -78,7 +78,7 @@ C-c} to @samp{Exit Emacs} you can type the following expression in your @noindent You might want to have this statement in your @file{init.el} file because its easy to hit this command by mistake and it could be annoying to exit -Emacs unintentionally. There is a @b{Exit Emacs} option in the @b{File +Emacs unintentionally. There is an @b{Exit Emacs} option in the @b{File menu} which you might want to use instead. To make a particular key undefined you can also use: diff --git a/man/term.texi b/man/term.texi index 330d1c9..0153e0d 100644 --- a/man/term.texi +++ b/man/term.texi @@ -178,8 +178,8 @@ When return is typed, the entire current line of the buffer (except possibly the prompt) is sent to the inferior process. Line mode is basically the original shell mode from earlier Emacs versions. -To switch from line mode to character mode type @kbd{C-c c}. -To switch from character mode to line mode type @kbd{C-c l}. +To switch from line mode to character mode type @kbd{C-c C-k}. +To switch from character mode to line mode type @kbd{C-c C-j}. In either mode, "echoing" of user input is handled by the inferior. Therefor, in line mode after an input line at the end of the buffer diff --git a/man/termcap.texi b/man/termcap.texi index b18dd63..42c6c22 100644 --- a/man/termcap.texi +++ b/man/termcap.texi @@ -1147,7 +1147,7 @@ obey. does not touch (@pxref{Status Line}). Some terminals have a special line that is used only as a status line. -For these terminals, there is no need for an @samp{-s} variant; the +For these terminals, there is no need for a @samp{-s} variant; the status line commands should be defined by default. On other terminals, enabling a status line means removing one screen line from ordinary use and reducing the effective screen height. For these @@ -1920,7 +1920,7 @@ large parameter would be undefined. Clear to end of line (@samp{ce}) is extremely important in programs that maintain an updating display. Nearly all display terminals support this -operation, so it is acceptable for a an application program to refuse to +operation, so it is acceptable for an application program to refuse to work if @samp{ce} is not present. However, if you do not want this limitation, you can accomplish clearing to end of line by outputting spaces until you reach the right margin. In order to do this, you must know the diff --git a/man/texinfo.texi b/man/texinfo.texi index b9e80cb..b0408bb 100644 --- a/man/texinfo.texi +++ b/man/texinfo.texi @@ -1,5 +1,5 @@ \input texinfo.tex @c -*-texinfo-*- -@c $Id: texinfo.texi,v 1.14 2001/04/12 18:22:02 michaels Exp $ +@c $Id: texinfo.texi,v 1.14.2.1 2002/08/20 11:35:25 stephent Exp $ @c %**start of header @c All text is ignored before the setfilename. @@ -7789,7 +7789,7 @@ interline whitespace in either case.) Except when the entries are very brief, these blank lines make the list look better.@refill Here is an example of the use of @code{@@itemize}, followed by the -output it produces. Note that @code{@@bullet} produces an @samp{*} in +output it produces. Note that @code{@@bullet} produces a @samp{*} in Info and a round dot in @TeX{}.@refill @example @@ -14919,7 +14919,7 @@ Evidently, @samp{au} is an abbreviation for ``author''. @end example @noindent -since @samp{au} does @emph{not} serve as an abbreviation for +since @samp{au} does @emph{not} serve as an abbreviation for @samp{author.} (with a period following the word). @subsubheading Introducing New Terms diff --git a/man/widget.texi b/man/widget.texi index 743217f..fe91363 100644 --- a/man/widget.texi +++ b/man/widget.texi @@ -69,7 +69,7 @@ visible in the buffer. A simple constant widget intended to be used in the @code{menu-choice} and @code{radio-button-choice} widgets. @item choice-item -An button item only intended for use in choices. When invoked, the user +A button item only intended for use in choices. When invoked, the user will be asked to select another option from the choice widget. @item toggle A simple @samp{on}/@samp{off} switch. @@ -130,11 +130,11 @@ it will be autoloaded when needed. @comment node-name, next, previous, up @section User Interface -A form consist of read only text for documentation and some fields, -where each the fields contain two parts, as tag and a value. The tags -are used to identify the fields, so the documentation can refer to the -foo field, meaning the field tagged with @samp{Foo}. Here is an example -form: +A form consists of read only text for documentation and some fields, +where each of the fields contains two parts, a tag and a value. The +tags are used to identify the fields, so the documentation can refer to +the foo field, meaning the field tagged with @samp{Foo}. Here is an +example form: @example Here is some documentation. @@ -226,7 +226,7 @@ between a number of different options. This is how you edit an option field. Option fields are created by the @code{menu-choice} widget. In the example, @samp{@b{Choose}} is an option field tag. @item The @samp{@b{[INS]}} and @samp{@b{[DEL]}} buttons. -Activating these will insert or delete elements from a editable list. +Activating these will insert or delete elements from an editable list. The list is created by the @code{editable-list} widget. @item Embedded Buttons. The @samp{@b{_other work_}} is an example of an embedded @@ -591,7 +591,7 @@ in the buffer with a positive tabbing order, or @code{nil} @item :parent The parent of a nested widget (e.g. a @code{menu-choice} item or an -element of a @code{editable-list} widget). +element of an @code{editable-list} widget). @item :sibling-args This keyword is only used for members of a @code{radio-button-choice} or @@ -1029,7 +1029,7 @@ List whose car is the type of the list elements. @comment node-name, next, previous, up @subsection The @code{group} Widget -This widget simply group other widget together. +This widget simply groups other widgets together. Syntax: diff --git a/man/xemacs-faq.texi b/man/xemacs-faq.texi index e3eec91..5901e23 100644 --- a/man/xemacs-faq.texi +++ b/man/xemacs-faq.texi @@ -7,7 +7,7 @@ @finalout @titlepage @title XEmacs FAQ -@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2002/04/30 16:06:09 $ +@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2002/08/20 11:35:32 $ @sp 1 @author Tony Rossini @author Ben Wing @@ -151,6 +151,7 @@ Installation and Trouble Shooting * Q2.0.12:: Why can't I strip XEmacs? * Q2.0.13:: I don't need no steenkin' packages. Do I? (NEW) * Q2.0.14:: How do I figure out which packages to install? (NEW) +* Q2.0.15:: EFS fails with "500 AUTH not understood" (NEW) Trouble Shooting: * Q2.1.1:: XEmacs just crashed on me! @@ -267,6 +268,7 @@ Text Selections: * Q3.10.3:: Can I turn off the highlight during isearch? * Q3.10.4:: How do I turn off highlighting after @kbd{C-x C-p} (mark-page)? * Q3.10.5:: The region disappears when I hit the end of buffer while scrolling. +* Q3.10.6:: Why is killing so slow? (NEW) Major Subsystems @@ -1061,7 +1063,7 @@ modification to @email{ava@@math.jhu.ed, Valery Alexeev's} @file{russian.el} which can be obtained from @end quotation -@uref{http://ftpsearch.lycos.com/?query=russian.el.Z&form=medium}. +@uref{http://www.math.uga.edu/~valery/russian.el}. @email{d.barsky@@ee.surrey.ac.uk, Dima Barsky} writes: @@ -1272,6 +1274,7 @@ Installation: * Q2.0.12:: Why can't I strip XEmacs? * Q2.0.13:: I don't need no steenkin' packages. Do I? (NEW) * Q2.0.14:: I don't want to install a million .els one at a time! (NEW) +* Q2.0.15:: EFS fails with "500 AUTH not understood" (NEW) Trouble Shooting: * Q2.1.1:: XEmacs just crashed on me! @@ -1644,8 +1647,8 @@ any packages installed. However, only the most basic editing functions will be available with no packages installed, so installing packages is an essential part of making your installed XEmacs _useful_. -@node Q2.0.14, Q2.1.1, Q2.0.13, Installation -@unnumberedsubsec Q2.0.12: How do I figure out which packages to install? (NEW) +@node Q2.0.14, Q2.0.15, Q2.0.13, Installation +@unnumberedsubsec Q2.0.14: How do I figure out which packages to install? (NEW) Many people really liked the old way that packages were bundled and do not want to mess with packages at all. You can grab all the packages at @@ -1671,7 +1674,22 @@ As the Sumo tarballs are not regenerated as often as the individual packages, it is recommended that you use the automatic package tools afterwards to pick up any recent updates. -@node Q2.1.1, Q2.1.2, Q2.0.14, Installation +@node Q2.0.15, Q2.1.1, Q2.0.14, Installation +@unnumberedsubsec Q2.0.15: EFS fails with "500 AUTH not understood" (NEW) + +A typical error: FTP Error: USER request failed; 500 AUTH not understood. + +Thanks to giacomo boffi @email{giacomo.boffi@@polimi.it} who recommends +on comp.emacs.xemacs: + + tell your ftp client to not attempt AUTH authentication (or do not + use FTP servers that don't understand AUTH) + +and notes that you need to add an element (often "-u") to +`efs-ftp-program-args'. Use M-x customize-variable, and verify the +needed flag with `man ftp' or other local documentation. + +@node Q2.1.1, Q2.1.2, Q2.0.15, Installation @unnumberedsec 2.1: Trouble Shooting @unnumberedsubsec Q2.1.1: Help! XEmacs just crashed on me! @@ -2498,6 +2516,7 @@ Text Selections: * Q3.10.3:: Can I turn off the highlight during isearch? * Q3.10.4:: How do I turn off highlighting after @kbd{C-x C-p} (mark-page)? * Q3.10.5:: The region disappears when I hit the end of buffer while scrolling. +* Q3.10.6:: Why is killing so slow? @end menu @node Q3.0.1, Q3.0.2, Customization, Customization @@ -3790,7 +3809,7 @@ Put this in your @code{.emacs}: Also see @ref{Q3.10.1}. -@node Q3.10.5, , Q3.10.4, Customization +@node Q3.10.5, Q3.10.6, Q3.10.4, Customization @unnumberedsubsec Q3.10.5: The region disappears when I hit the end of buffer while scrolling. This has been fixed by default starting with XEmacs-20.3. @@ -3821,6 +3840,68 @@ off like this: Thanks to @email{raman@@adobe.com, T. V. Raman} for assistance in deriving this answer. +@node Q3.10.6, , Q3.10.5, Customization +@unnumberedsubsec Q3.10.6: Why is killing so slow? + +This actually is an X Windows question, although you'll notice it with +keyboard operations as well as while using the GUI. Basically, there +are four ways to communicate interprogram via the X server: + +@table @strong +@item Primary selection +a transient selection that gets replaced every time a new selection is made + +@item Secondary selection +for "exchanging" with the primary selection + +@item Cut buffers +a clipboard internal to the X server (deprecated) + +@item Clipboard selection +a selection with a notification protocol that allows a separate app to +manage the clipboard +@end table + +The cut buffers are deprecated because managing them is even more +inefficient than the clipboard notification protocol. The primary +selection works fine for many users and applications, but is not very +robust under intensive or sophisticated use. + +In Motif and MS Windows, a clipboard has become the primary means for +managing cut and paste. These means that "modern" applications tend to +be oriented toward a true clipboard, rather than the primary selection. +(On Windows, there is nothing equivalent to the primary selection.) +It's not that XEmacs doesn't support the simple primary selection +method, it's that more and more other applications don't. + +So the slowdown occurs because XEmacs now engages in the clipboard +notification protocol on @emph{every} kill. This is especially slow on +Motif. + +With most people running most clients and server on the same host, and +many of the rest working over very fast communication, you may expect +that the situation is not going to improve. + +There are a number of workarounds. The most effective is to use a +special command to do selection ownership only when you intend to paste +to another application. Useful commands are @code{kill-primary-selection} +and @code{copy-primary-selection'}. These work only on text selected +with the mouse (probably; experiment), and are bound by default to the +Cut and Copy, respectively, buttons on the toolbar. + +If you are communicating by cut and paste with applications that use the +primary selection, then you can customize @code{interprogram-cut-function} +to @code{nil}, restoring the XEmacs version 20 behavior. How can you +tell if a program will support this? Motifly-correct programs require +the clipboard; you lose. For others, only by trying it. You usually +don't need to customize the complementary @code{interprogram-paste-function} +to @code{nil}; presumably you're willing to wait for a paste from another +program if delays only happen when you specifically request a paste. + +You can get some relief on Motif by setting +@code{x-selection-strict-motif-ownership} to nil, but this means you will +only intermittently be able to paste XEmacs kills to Motif applications. + @node Subsystems, Miscellaneous, Customization, Top @unnumbered 4 Major Subsystems diff --git a/man/xemacs/custom.texi b/man/xemacs/custom.texi index 608c2cc..84ea5fb 100644 --- a/man/xemacs/custom.texi +++ b/man/xemacs/custom.texi @@ -1416,8 +1416,9 @@ is used to specify the syntactic class of opening delimiters. Here is a table of syntactic classes, with the characters that specify them. @table @samp -@item @w{ } -The class of whitespace characters. +@item @w{-} +The class of whitespace characters. Please don't use the formerly +advertised @w{ }, which is not supported by GNU Emacs. @item w The class of word-constituent characters. @item _ diff --git a/man/xemacs/files.texi b/man/xemacs/files.texi index 1d81300..142f489 100644 --- a/man/xemacs/files.texi +++ b/man/xemacs/files.texi @@ -643,31 +643,34 @@ version of the file. To do this, use @kbd{M-x revert-buffer}, which operates on the current buffer. Since reverting a buffer can result in very extensive changes, you must confirm it with @kbd{yes}. - If the current buffer has been auto-saved more recently than it has been -saved explicitly, @code{revert-buffer} offers to read the auto save file -instead of the visited file (@pxref{Auto Save}). Emacs asks you about -the auto-save file before the request for confirmation of the -@kbd{revert-buffer} operation, and demands @kbd{y} or @kbd{n} -as an answer. If you have started to type @kbd{yes} for confirmation -without realizing that the auto-save question was going to be asked, the -@kbd{y} will answer that question, but the @kbd{es} will not be valid -confirmation. This gives you a chance to cancel the operation with -@kbd{C-g} and try again with the answers you really intend. - - @code{revert-buffer} keeps point at the same distance (measured in -characters) from the beginning of the file. If the file was edited only -slightly, you will be at approximately the same piece of text after -reverting as before. If you have made more extensive changes, the value of -point in the old file may bring you to a totally different piece of text -than your last editing point. + You may request that @code{revert-buffer} check for an auto-save file +that is more recent than the visited file by providing a prefix +argument. If a recent auto-save file exists, @code{revert-buffer} +offers to read the auto-save file instead of the visited file +(@pxref{Auto Save}). Emacs asks you about the auto-save file before the +request for confirmation of the @kbd{revert-buffer} operation, and +demands @kbd{y} or @kbd{n} as an answer. If you have started to type +@kbd{yes} to confirm the revert operation, the @kbd{y} will answer the +question about using the auto-save file, but the @kbd{es} will not be +valid confirmation for the reversion. This gives you a chance to cancel +the operation with @kbd{C-g} and try again with the answers you really +intend. + + @code{revert-buffer} preserves the value of point (in characters from +the beginning of the file). If the file was edited only slightly, you +will be at approximately the same piece of text after reverting as +before. If you have made more extensive changes, after reversion point +may be in a totally different context than your last edits before +reversion. A buffer reverted from its visited file is marked ``not modified'' until -you make a change. +you make a change. The buffer's modes will also be recalculated, by +@code{normal-mode}. Some kinds of buffers whose contents reflect data bases other than files, such as Dired buffers, can also be reverted. For them, reverting means -recalculating their contents from the appropriate data. Buffers -created randomly with @kbd{C-x b} cannot be reverted; @code{revert-buffer} +refreshing their contents from the appropriate data. Buffers created +randomly with @kbd{C-x b} cannot be reverted; @code{revert-buffer} reports an error when asked to do so. @node Auto Save, Version Control, Reverting, Files diff --git a/man/xemacs/menus.texi b/man/xemacs/menus.texi index 6513323..4cd40e7 100644 --- a/man/xemacs/menus.texi +++ b/man/xemacs/menus.texi @@ -223,7 +223,7 @@ information.@refill @c **** zmacs-regions is on by default these days - jwz @c @c Note: By default, you can use the @b{Edit} menu items on the region between -@c point an the mark as well as regions selected with the mouse. To change +@c point and the mark as well as regions selected with the mouse. To change @c this behavior, set the variable @code{zmacs-regions} to @c @code{t}. @xref{Active Regions} for more information. diff --git a/man/xemacs/misc.texi b/man/xemacs/misc.texi index d26bc10..0e4aa8c 100644 --- a/man/xemacs/misc.texi +++ b/man/xemacs/misc.texi @@ -417,14 +417,14 @@ except for the Term escape character, normally @kbd{C-c}. To switch between line and char mode, use these commands: @table @kbd -@kindex C-c C-k @r{(Term mode)} +@kindex C-c C-j @r{(Term mode)} findex term-char-mode -@item C-c C-k +@item C-c C-j Switch to line mode. Do nothing if already in line mode. -@kindex C-c C-j @r{(Term mode)} +@kindex C-c C-k @r{(Term mode)} @findex term-line-mode -@item C-c C-j +@item C-c C-k Switch to char mode. Do nothing if already in char mode. @end table diff --git a/man/xemacs/mule.texi b/man/xemacs/mule.texi index f88923d..b71786b 100644 --- a/man/xemacs/mule.texi +++ b/man/xemacs/mule.texi @@ -38,18 +38,60 @@ Enhancement to GNU Emacs''). @end menu @node Mule Intro, Language Environments, Mule, Mule -@section Introduction to world scripts - - The users of these scripts have established many more-or-less standard -coding systems for storing files. -@c XEmacs internally uses a single multibyte character encoding, so that it -@c can intermix characters from all these scripts in a single buffer or -@c string. This encoding represents each non-ASCII character as a sequence -@c of bytes in the range 0200 through 0377. +@section What is Mule? + +Mule is the MUltiLingual Extension to XEmacs. It provides facilities +not only for handling text written in many different languages, but in +fact multilingual texts containing several languages in the same buffer. +This goes beyond the simple facilities offered by Unicode for +representation of multilingual text. Mule also supports input methods, +composing display using fonts in various different encodings, changing +character syntax and other editing facilities to correspond to local +language usage, and more. + +The most obvious problem is that of the different character coding +systems used by different languages. ASCII supplies all the characters +needed for most computer programming languages and US English (it lacks +the currency symbol for British English), but other Western European +languages (French, Spanish, German) require more than 96 code positions +for accented characters. In fact, even with 8 bits to represent 96 more +character (including accented characters and symbols such as currency +symbols), some languages' alphabets remain incomplete (Croatian, +Polish). (The 64 "missing characters" are reserved for control +characters.) Furthermore, many European languages have their own +alphabets, which must conflict with the accented characters since the +ASCII characters are needed for computer interaction (error and log +messages are typically in ASCII). + +For economy of space, historical practice has been for each language to +establish its own encoding for the characters it needs. This allows +most European languages to represented with one octet (byte) per +character. However, many Asian languages have thousands of characters +and require two or more octets per character. For multilingual +purposes, the ISO 2022 standard establishes escape codes that allow +switching encodings in midstream. (It's also ISO 2022 that establishes +the standard that code points 0-31 and 128-159 are control codes.) + +However, this is error-prone and complex for internal processing. For +this reason XEmacs uses an internal coding system which can encode all +of the world's scripts. Unfortunately, for historical reasons, this +code is not Unicode, although we are moving in that direction. + XEmacs translates between the internal character encoding and various other coding systems when reading and writing files, when exchanging data with subprocesses, and (in some cases) in the @kbd{C-q} command -(see below). +(see below). The internal encoding is never visible to the user in a +production XEmacs, but unfortunately the process cannot be completely +transparent to the user. This is because the same ranges of octets may +represent 1-octet ISO-8859-1 (which is satisfactory for most Western +European use prior to the introduction of the Euro currency), 1-octet +ISO-8859-15 (which substitutes the Euro for the rarely used "generic +currency" symbol), 1-octet ISO-8859-5 (Cyrillic), or multioctet EUC-JP +(Japanese). There's no way to tell without being able to read! + +A number of heuristics are incorporated in Mule for automatic +recognition, there are facilities for the user to set defaults, and +where necessary (rarely, we hope) to set coding systems directly. @kindex C-h h @findex view-hello-file @@ -423,6 +465,41 @@ the usual three variants to specify the kind of end-of-line conversion. @node Recognize Coding, Specify Coding, Coding Systems, Mule @section Recognizing Coding Systems +@c #### This section is out of date. The following set-*-coding-system +@c functions are known: + +@c set-buffer-file-coding-system +@c set-buffer-file-coding-system-for-read +@c set-buffer-process-coding-system +@c set-console-tty-coding-system +@c set-console-tty-input-coding-system +@c set-console-tty-output-coding-system +@c set-default-buffer-file-coding-system +@c set-default-coding-systems +@c set-default-file-coding-system +@c set-file-coding-system +@c set-file-coding-system-for-read +@c set-keyboard-coding-system +@c set-pathname-coding-system +@c set-process-coding-system +@c set-process-input-coding-system +@c set-process-output-coding-system +@c set-terminal-coding-system + +@c Some are marked as broken. Agenda: (1) Update this section using +@c docstrings. Note that they may be inaccurate. (2) Correct the +@c documentation here, updating docstrings at the same time. + +@c Document this. + +@c set-language-environment-coding-systems + +@c What are these? + +@c dontusethis-set-value-file-name-coding-system-handler +@c dontusethis-set-value-keyboard-coding-system-handler +@c dontusethis-set-value-terminal-coding-system-handler + Most of the time, XEmacs can recognize which coding system to use for any given file--once you have specified your preferences. diff --git a/man/xemacs/packages.texi b/man/xemacs/packages.texi index 10d700f..6a9cba0 100644 --- a/man/xemacs/packages.texi +++ b/man/xemacs/packages.texi @@ -95,28 +95,19 @@ where you grabbed the core distribution from, and are located in the subdirectory @file{packages}. Package file names follow the naming convention @file{--pkg.tar.gz}. -If you have EFS @ref{(EFS)}, packages can be installed over the network. +If you have @ref{(EFS)}, packages can be installed over the network. Alternatively, if you have copies of the packages locally, you can install packages from a local disk or CDROM. The file @file{etc/PACKAGES} in the core distribution contains a list of -the @ref{Available Packages} at the time of the XEmacs release. Packages are -also listed on the @code{Options} menu under: - -@example - Options->Customize->Emacs->Packages -@end example - -However, don't select any of these menu picks unless you actually want -to install the given package (and have properly configured your system -to do so). +the @ref{Available Packages} at the time of the XEmacs release. You can also get a list of available packages, and whether or not they are installed, using the visual package browser and installer. You can access it via the menus: @example - Options->Manage Packages->List & Install + Tools -> Packages -> List and Install @end example Or, you can get to it via the keyboard: @@ -244,14 +235,10 @@ and optionally: After installing these by hand, fire up XEmacs and follow these steps. -Note: The menus in XEmacs 21.2.x and up have changed slightly, so -where I mention "Options -> Manage Packages", substitute "Tools -> -Packages". - @enumerate 1 @item Choose a download site. -via menu: Options -> Manages Packages -> Add Download Site +via menu: Tools -> Packages -> Add Download Site via keyb: @code{M-x customize-variable RET package-get-remote RET} (put in the details of remote host and directory) @@ -261,7 +248,7 @@ local directory, you can: @code{M-x pui-add-install-directory RET} @item Obtain a list of packages and display the list in a buffer named @file{*Packages*}. -menu: Options -> Manage Packages -> List & Install +menu: Tools -> Packages -> List & Install keyb: @code{M-x pui-list-packages RET} XEmacs will now connect to the remote site and download the @@ -677,7 +664,7 @@ xemacs.org and it's mirrors. If a particular package that you are looking for isn't here, please send a message to the @email{xemacs-beta@@xemacs.org, XEmacs Beta list}. -This data is up-to-date as of May 15, 2001. +This data is up-to-date as of August 8, 2002. @subsection Normal Packages A very broad selection of elisp packages. @@ -696,7 +683,7 @@ A Portable Emacs Library. Used by XEmacs MIME support. Basic TeX/LaTeX support. @item bbdb -The Big Brother Data Base +The Big Brother Data Base: a rolodex-like database program. @item build Build XEmacs using custom widgets. @@ -713,8 +700,12 @@ Calendar and diary support. @item cc-mode C, C++ and Java language support. +@item clearcase +Support for the Clearcase version control system. + @item cookie -Spook and Yow (Zippy quotes). +"Fortune cookie"-style messages. Includes Spook (suspicious phrases) +and Yow (Zippy quotes). @item crisp Crisp/Brief emulation. @@ -722,10 +713,19 @@ Crisp/Brief emulation. @item debug GUD, gdb, dbx debugging support. +@item dictionary +Interface to RFC2229 dictionary servers. + @item dired The DIRectory EDitor is for manipulating, and running commands on files in a directory. +@item docbookide +DocBook editing support. + +@item ecrypto +Crypto functionality in Emacs Lisp. + @item edebug A Lisp debugger. @@ -742,10 +742,6 @@ DEC EDIT/EDT emulation. @item efs Treat files on remote systems the same as local files. -@item eicq -ICQ Client developed and tested on Linux x86; -only supported on that platform - @item eieio Enhanced Implementation of Emacs Interpreted Objects. @@ -758,6 +754,9 @@ Another interface over patch. @item eshell Command shell implemented entirely in Emacs Lisp. +@item ess +ESS: Emacs Speaks Statistics. + @item eterm Terminal emulator. @@ -785,9 +784,15 @@ XEmacs bug reports. @item gnus The Gnus Newsreader and Mailreader. +@item haskell-mode +Haskell editing support. + @item hm--html-menus HTML editing. +@item ibuffer +Advanced replacement for buffer-menu. + @item idlwave Editing and Shell mode for the Interactive Data Language. @@ -795,7 +800,7 @@ Editing and Shell mode for the Interactive Data Language. Enhanced front-end for Grep. @item ilisp -Front-end for Inferior Lisp. +Front-end for interacting with Inferior Lisp (external lisps). @item ispell Spell-checking with ispell. @@ -803,6 +808,9 @@ Spell-checking with ispell. @item jde Java language and development support. +@item liece +IRC (Internet Relay Chat) client for Emacs. + @item mail-lib Fundamental lisp files for providing email support. @@ -810,17 +818,20 @@ Fundamental lisp files for providing email support. Support for messaging encryption with PGP. @item mew -Messaging in an Emacs World. +Messaging in an Emacs World; a MIME-based email program. @item mh-e Front end support for MH. @item mine -Minehunt. +Elisp implementation of the game 'Minehunt'. @item misc-games Other amusements and diversions. +@item mmm-mode +Support for Multiple Major Modes within a single buffer. + @item net-utils Miscellaneous Networking Utilities. This is a single-file package and files may be deleted at will. @@ -829,6 +840,9 @@ files may be deleted at will. Miscellaneous single-file O/S utilities, for printing, archiving, compression, remote shells, etc. +@item ocaml +Objective Caml editing support. + @item pc PC style interface emulation. @@ -841,8 +855,8 @@ Provides programmatic completion. @item prog-modes Miscellaneous single-file lisp files for various programming languages. -@item ps-print-nomule -Old, but no-Mule safe ps-print. +@item ps-print +Print buffers to PostScript printers. @item psgml Validated HTML/SGML editing. @@ -853,6 +867,9 @@ Emacs support for LaTeX cross-references, citations. @item rmail An obsolete Emacs mailer. If you do not already use it don't start. +@item sasl +Simple Authentication and Security Layer (SASL) library. + @item scheme Front-end support for Inferior Scheme. @@ -865,9 +882,15 @@ SGML/Linuxdoc-SGML editing. @item sh-script Support for editing shell scripts. +@item sieve +Manage Sieve email filtering scripts. + @item slider User interface tool. +@item sml-mode +Standard ML editing support. + @item sounds-au XEmacs Sun sound files. @@ -904,6 +927,10 @@ Support for building with Tooltalk. @item tpu DEC EDIT/TPU support. +@item tramp +Remote shell-based file editing. This is similar to EFS or Ange-FTP, +but works with rsh/ssh and rcp/scp. + @item vc Version Control for Free systems. @@ -935,6 +962,9 @@ XEmacs Lisp developer support. This package contains utilities for supporting Lisp development. It is a single-file package so it may be tailored. +@item xslide +XSL editing support. + @item xslt-process A minor mode for (X)Emacs which allows running an XSLT processor on a buffer. @@ -958,6 +988,12 @@ Lisp Interface to EDICT, Kanji Dictionary. Wnn (4.2 and 6) support. SJ3 support. Must be installed prior to XEmacs build. +@item latin-unity +Unify character sets in a buffer. When characters belong to disjoint +character sets, this attempts to translate the characters so +that they belong to one character set. If the buffer coding system is +not sufficient, this suggests different coding systems. + @item leim Quail. Used for everything other than English and Japanese. @@ -971,6 +1007,9 @@ Dictionary support. (This isn't an English dictionary program) @item mule-base Basic Mule support. Must be installed prior to building with Mule. +@item mule-ucs +Extended coding systems (including Unicode) for XEmacs. + @item skk Another Japanese Language Input Method. Can be used without a separate process running as a dictionary server. diff --git a/modules/base64/.cvsignore b/modules/base64/.cvsignore deleted file mode 100644 index e840fee..0000000 --- a/modules/base64/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.ell -*_i.c diff --git a/modules/ldap/.cvsignore b/modules/ldap/.cvsignore deleted file mode 100644 index e840fee..0000000 --- a/modules/ldap/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.ell -*_i.c diff --git a/modules/sample/.cvsignore b/modules/sample/.cvsignore deleted file mode 100644 index e840fee..0000000 --- a/modules/sample/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.ell -*_i.c diff --git a/modules/zlib/.cvsignore b/modules/zlib/.cvsignore deleted file mode 100644 index 513c6de..0000000 --- a/modules/zlib/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.ell -*_i.c \ No newline at end of file diff --git a/netinstall/ChangeLog b/netinstall/ChangeLog index 2a2f053..d64634e 100644 --- a/netinstall/ChangeLog +++ b/netinstall/ChangeLog @@ -1,11 +1,61 @@ +2002-08-23 Stephen J. Turnbull + + * XEmacs 21.4.9 "Informed Management" is released. + 2002-05-09 Stephen J. Turnbull * XEmacs 21.4.8 "Honest Recruiter" is released. +2002-02-04 Andy Piper + + * install.cc (install_one): Munge installed filename to fit inside + dialog. + 2002-05-04 Stephen J. Turnbull * XEmacs 21.4.7 "Economic Science" is released. +2001-12-17 Andy Piper + + * desktop.cc (do_desktop_setup): register the whole gamut of C++ + file types. + +2001-12-12 Andy Piper + + * win32.h (CDECL): reorder to remove warnings. + + * Makefile.in.in: add new dependencies. + + * desktop.h: new file. + + * uninstall.cc: use it. + + * install.cc (uninstall_one): when uninstalling xemacs remove + shortcuts also. + + * desktop.cc (remove_xemacs_setup): split out from + remove_desktop_setup. + (remove_desktop_setup): call it. + +2001-12-05 Andy Piper + + * win32.h: re-order declarations for native windows from Fabrice + Popineau. + +2001-11-22 Andy Piper + + * Makefile.in.in (setup-bin.ini): cope with kit revisions. + + * source.cc (save_dialog): warning removal. + (load_dialog): ditto. + + * msg.cc: remove cvs id. + + * desktop.cc (find_xemacs_version): new function. Cope with kit + revisions. + (find_xemacs_exe_path): use it. + (find_xemacs_exe_name): ditto. + 2001-12-17 Stephen J. Turnbull * XEmacs 21.4.6 "Common Lisp" is released. @@ -296,5 +346,6 @@ * all: port from cygwin setup. -%%% $Id: ChangeLog,v 1.2.2.15 2002/05/09 12:02:35 stephent Exp $ -$Revision: 1.2.2.15 $ +%%% $Id: ChangeLog,v 1.2.2.16 2002/08/20 11:36:02 stephent Exp $ +$Revision: 1.2.2.16 $ + diff --git a/netinstall/Makefile.in.in b/netinstall/Makefile.in.in index 50ed932..694e145 100644 --- a/netinstall/Makefile.in.in +++ b/netinstall/Makefile.in.in @@ -96,6 +96,7 @@ XEMACS=${blddir}/src/${PROGNAME} CYGWIN_SIZE=0 WIN32_SIZE=0 +KIT_VERSION="" CONFIG_H = ../src/config.h @@ -162,6 +163,7 @@ setup-bin.ini: $(XEMACS) -batch -vanilla \ -eval '(setq package-net-cygwin32-binary-size $(CYGWIN_SIZE) \ package-net-win32-binary-size $(WIN32_SIZE) \ + package-net-kit-version "$(KIT_VERSION)" \ package-net-setup-version "'$$V'")' \ -l ${srcdir}/../lisp/package-net.el \ -f package-net-batch-generate-bin-ini @@ -215,7 +217,7 @@ choose.o: choose.cc win32.h dialog.h resource.h state.h ini.h concat.h \ msg.h log.h find.h reginfo.h concat.o: concat.cc desktop.o: desktop.cc win32.h resource.h ini.h msg.h state.h concat.h \ - mkdir.h dialog.h version.h port.h reginfo.h + mkdir.h dialog.h version.h port.h reginfo.h desktop.h dialog.o: dialog.cc win32.h dialog.h msg.h log.h diskfull.o: diskfull.cc win32.h diskfull.h download.o: download.cc win32.h resource.h msg.h ini.h dialog.h \ @@ -236,11 +238,11 @@ iniparse.o: iniparse.c ini.h \ port.h install.o: install.cc win32.h \ resource.h ini.h dialog.h concat.h geturl.h mkdir.h state.h tar.h \ - diskfull.h msg.h regedit.h reginfo.h log.h hash.h port.h + diskfull.h msg.h regedit.h reginfo.h log.h hash.h port.h desktop.h init.o: init.cc win32.h resource.h dialog.h state.h msg.h log.h uninstall.o: uninstall.cc win32.h \ resource.h ini.h dialog.h concat.h geturl.h mkdir.h state.h tar.h \ - diskfull.h msg.h regedit.h reginfo.h log.h hash.h port.h + diskfull.h msg.h regedit.h reginfo.h log.h hash.h port.h desktop.h localdir.o: localdir.cc win32.h dialog.h resource.h state.h msg.h \ concat.h log.h log.o: log.cc win32.h resource.h msg.h log.h dialog.h state.h concat.h \ diff --git a/netinstall/desktop.cc b/netinstall/desktop.cc index e5d4d4d..e7e53ec 100644 --- a/netinstall/desktop.cc +++ b/netinstall/desktop.cc @@ -41,6 +41,7 @@ #include "regedit.h" #include "port.h" #include "log.h" +#include "desktop.h" extern "C" { void make_link_2 (char *exepath, char *args, char *icon, char *lname); @@ -102,13 +103,23 @@ make_link (char *linkpath, char *title, char *target, char* args) } static char* +find_xemacs_version () +{ + char* v = strdup (xemacs_package->info[xemacs_package->trust].version); + char* dash = strrchr (v, '-'); + if (dash) + *dash = 0; + return v; +} + +static char* find_xemacs_exe_path () { if (xemacs_package->type == TY_CYGWIN) return backslash (concat (root_dir, "/bin/", XEMACS_CYGWIN_ARCH_NAME, 0)); else return backslash (concat (root_dir, "\\XEmacs-", - xemacs_package->info[xemacs_package->trust].version, + find_xemacs_version (), "\\", XEMACS_NATIVE_ARCH_NAME, 0)); } @@ -121,7 +132,7 @@ find_xemacs_exe_name () return strdup ("runemacs.exe"); else if (xemacs_package->type == TY_CYGWIN) return backslash (concat ("xemacs-", - xemacs_package->info[xemacs_package->trust].version, + find_xemacs_version (), ".exe", 0)); else return strdup ("xemacs.exe"); @@ -220,21 +231,27 @@ save_icon () } void -remove_desktop_setup() +remove_xemacs_setup() { + if (xemacs_package == 0) + return; + start_menu ("XEmacs", 0, 1, 0); - start_menu ("Uninstall XEmacs", 0, 1, 0); - start_menu (0, 0, 1, 0); desktop_icon ("XEmacs", 0, 1); - if (xemacs_package != 0) - { #define FROB(exe) remove_app_path (exe) - FROB (find_xemacs_exe_name ()); - FROB ("runemacs.exe"); - FROB ("xemacs.exe"); + FROB (find_xemacs_exe_name ()); + FROB ("runemacs.exe"); + FROB ("xemacs.exe"); #undef FROB - } +} + +void +remove_desktop_setup() +{ + remove_xemacs_setup(); + start_menu ("Uninstall XEmacs", 0, 1, 0); + start_menu (0, 0, 1, 0); } static void @@ -298,7 +315,10 @@ do_desktop_setup() log (0, "Registering .cpp files"); setup_explorer ("cpp", "C++ Source file", batname); setup_explorer ("cc", "C++ Source file", batname); + setup_explorer ("cxx", "C++ Source file", batname); setup_explorer ("hh", "C++ Header file", batname); + setup_explorer ("hpp", "C++ Header file", batname); + setup_explorer ("hxx", "C++ Header file", batname); } if (reg_c) { diff --git a/netinstall/install.cc b/netinstall/install.cc index 5d64055..c9bd2d6 100644 --- a/netinstall/install.cc +++ b/netinstall/install.cc @@ -47,7 +47,7 @@ #include "reginfo.h" #include "log.h" #include "hash.h" - +#include "desktop.h" #include "port.h" static HWND ins_dialog = 0; @@ -231,6 +231,10 @@ uninstall_one (char *name, int action, int type) { SetWindowText (ins_pkgname, name); SetWindowText (ins_action, "Uninstalling..."); + // remove shortcuts and registry entries + if (type != TY_GENERIC) + remove_xemacs_setup(); + if (action == ACTION_UPGRADE) log (0, "Uninstalling old %s", name); else @@ -278,6 +282,7 @@ install_one (char *name, char *file, int file_size, int action, int type) for (cp=local; *cp; cp++) if (*cp == '/' || *cp == '\\' || *cp == ':') base = cp+1; + SetWindowText (ins_pkgname, base); if (!exists (local) && exists (base)) @@ -311,14 +316,27 @@ install_one (char *name, char *file, int file_size, int action, int type) tar_open (local); while ((fn = tar_next_file ())) { - char *dest_file; + char *dest_file, *disp_file; + int len; if (lst) fprintf (lst, "%s\n", fn); dest_file = map_filename (fn, type); + + // The installer uses a variable width font. Assume roughly 32 chars + // will fit and munge the file accordingly. +#define MAX_DISP_SIZE 50 + disp_file = strdup(dest_file); + if ((len = strlen(dest_file)) > MAX_DISP_SIZE) { + disp_file += (len - MAX_DISP_SIZE); + disp_file[0] = '.'; + disp_file[1] = '.'; + disp_file[2] = '.'; + } +#undef MAX_DISP_SIZE + SetWindowText (ins_filename, disp_file); - SetWindowText (ins_filename, dest_file); log (LOG_BABBLE, "Installing file %s", dest_file); if (tar_read_file (dest_file) != 0) { diff --git a/netinstall/msg.cc b/netinstall/msg.cc index d435146..2cee192 100644 --- a/netinstall/msg.cc +++ b/netinstall/msg.cc @@ -16,8 +16,6 @@ /* The purpose of this file is to centralize all the message functions. */ -static char *cvsid = "\n%%% $Id: msg.cc,v 1.2.2.1 2001/12/17 05:49:18 stephent Exp $\n"; - #include "win32.h" #include #include diff --git a/netinstall/res.rc b/netinstall/res.rc index e6133c0..349b6c2 100644 --- a/netinstall/res.rc +++ b/netinstall/res.rc @@ -33,7 +33,7 @@ STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "XEmacs Setup" FONT 8, "MS Sans Serif" BEGIN - PUSHBUTTON "Next >",IDOK,199,176,45,15, WS_GROUP + PUSHBUTTON "Next >",IDOK,199,176,45,15,WS_GROUP PUSHBUTTON "Cancel",IDCANCEL,256,176,45,15 CONTROL "Download from the Internet",IDC_SOURCE_DOWNLOAD,"Button", BS_AUTORADIOBUTTON | WS_TABSTOP,127,102,152,10 @@ -203,7 +203,7 @@ BEGIN LTEXT "",IDC_STATIC,10,169,291,1,SS_SUNKEN | NOT WS_GROUP LTEXT "Installing Packages",IDC_STATIC,112,10,170,17 LTEXT "(PKG)",IDC_INS_PKG,112,26,170,11 - LTEXT "(FILE)",IDC_INS_FILE,112,41,166,11 + LTEXT "(FILE)",IDC_INS_FILE,112,41,183,11 CONTROL "Progress1",IDC_INS_DISKFULL,"msctls_progress32", WS_BORDER,123,143,165,10 CONTROL "Progress1",IDC_INS_IPROGRESS,"msctls_progress32", @@ -516,17 +516,17 @@ BEGIN IDS_ERR_OPEN_READ "Can't open %s for reading: %s" IDS_ROOT_ABSOLUTE "The install directory must be absolute, with both a drive letter and leading slash, like C:\\Cygwin" IDS_DOWNLOAD_COMPLETE "Download Complete" - IDS_CVSID "\n%%% $Id: res.rc,v 1.2.2.1 2001/12/17 05:49:18 stephent Exp $\n" + IDS_CVSID "\n%%% $Id: res.rc,v 1.2.2.2 2002/08/20 11:36:07 stephent Exp $\n" IDS_NOLOGFILE "Cannot open log file %s for writing" IDS_UNINSTALL_COMPLETE "Uninstalls complete." IDS_WININET "Unable to find or load the Internet Explorer 5 DLLs" IDS_ERR_CHDIR "Could not change dir to %s" - IDS_CREATE_DIR "The directory %s does not exist, create it?" IDS_OLD_SETUP_VERSION "This setup is version %s, but setup.ini claims version %s is available.\nYou might want to upgrade to get the latest features and bug fixes." IDS_DOWNLOAD_FAILED "Unable to download %s" IDS_DOWNLOAD_INCOMPLETE "Download Incomplete. Try again?" IDS_INSTALL_INCOMPLETE "Installation incomplete. Check /setup.log.full for details" IDS_ROOT_NOCYGWIN "You should not install the Cygwin version without Cygwin installed. Proceed anyway?" + IDS_CREATE_DIR "The directory %s does not exist, create it?" END #endif // English (U.S.) resources diff --git a/netinstall/source.cc b/netinstall/source.cc index c18f79c..7e0aaf1 100644 --- a/netinstall/source.cc +++ b/netinstall/source.cc @@ -29,22 +29,14 @@ static int rb[] = { IDC_SOURCE_NETINST, IDC_SOURCE_DOWNLOAD, IDC_SOURCE_CWD, 0 }; static void -check_if_enable_next (HWND h) -{ - EnableWindow (GetDlgItem (h, IDOK), source ? 1 : 0); -} - -static void load_dialog (HWND h) { - int i; rbset (h, rb, source); } static void save_dialog (HWND h) { - int i; source = rbget (h, rb); } diff --git a/netinstall/uninstall.cc b/netinstall/uninstall.cc index 6117b3e..a966fe7 100644 --- a/netinstall/uninstall.cc +++ b/netinstall/uninstall.cc @@ -48,6 +48,7 @@ #include "reginfo.h" #include "log.h" #include "hash.h" +#include "desktop.h" #include "port.h" @@ -66,9 +67,7 @@ static int package_bytes = 0; static int uninstall_started = 0; extern char * map_filename (char *fn, int type); -void remove_desktop_setup (); static void start_uninstall (); -extern char* find_xemacs_exe_name(); char * base (char *s); diff --git a/netinstall/win32.h b/netinstall/win32.h index 0e9677d..7e1c4d1 100644 --- a/netinstall/win32.h +++ b/netinstall/win32.h @@ -23,14 +23,6 @@ #define NOCOMATTRIBUTE -#include - -#define WIN32_LEAN_AND_MEAN -#include - -#include -#include - /* Cope with native win32 & mingw differences. Written by F. Popineau */ #ifdef WIN32_NATIVE @@ -40,6 +32,14 @@ # define strnicmp _strnicmp #endif +#include + +#define WIN32_LEAN_AND_MEAN +#include + +#include +#include + #ifndef CDECL #define CDECL __cdecl #endif diff --git a/nt/.cvsignore b/nt/.cvsignore deleted file mode 100644 index 0f2069a..0000000 --- a/nt/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -config.inc -xemacs.ncb -xemacs.opt -xemacs.plg -obj diff --git a/nt/ChangeLog b/nt/ChangeLog index 5178ece..3b81c6f 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,7 +1,44 @@ +2002-08-23 Stephen J. Turnbull + + * XEmacs 21.4.9 "Informed Management" is released. + +2002-08-16 Jonathan Harris + + * config.inc.samp (USE_PORTABLE_DUMPER): Default to on. + * config.inc.samp (USE_MINIMAL_TAGBITS): Removed. + * config.inc.samp (USE_INDEXED_LRECORD_IMPLEMENTATION): Removed. + * config.inc.samp (GUNG_HO): Removed. + * xemacs.mak (USE_MINIMAL_TAGBITS): Removed. + * xemacs.mak (USE_INDEXED_LRECORD_IMPLEMENTATION): Removed. + * xemacs.mak (GUNG_HO): Removed. + * xemacs.mak (TAGBITS_DEFINES): Removed. + * xemacs.mak (LRECORD_DEFINES): Removed. + * xpm.mak: Default to using MSVCRT as the C runtime + + Remove all vestiges of USE_MINIMAL_TAGBITS, + USE_INDEXED_LRECORD_IMPLEMENTATION, and GUNG_HO, since those + ifdefs have long been removed. + + Make pdump the default. + +2002-07-05 Jonathan Harris + + * README: Document Visual Studio .NET setup + +2002-05-06 Jonathan Harris + + * README: + * config.inc.samp: + Update PNG version to 1.0.9, zlib version to 1.1.14. + 2002-05-09 Stephen J. Turnbull * XEmacs 21.4.8 "Honest Recruiter" is released. +2002-03-26 Vin Shelton + + * xemacs.mak: Added special rule to build winclient.exe. + 2002-05-04 Stephen J. Turnbull * XEmacs 21.4.7 "Economic Science" is released. diff --git a/nt/README b/nt/README index 7078852..82a7a01 100644 --- a/nt/README +++ b/nt/README @@ -1,11 +1,11 @@ -Building and Installing XEmacs on Windows 95/98/NT/2000 -*- mode:outline -*- +Building and Installing XEmacs on Windows 95/98/NT/2000/XP -*- mode:outline -*- David Hobley Marc Paquette Jonathan Harris Ben Wing -This is a port of XEmacs to Windows 95/98/NT/2000. If you are looking for a +This is a port of XEmacs to Windows 95/98/NT/2000/XP. If you are looking for a port of GNU Emacs, see http://www.cs.washington.edu/homes/voelker/ntemacs.html. NT 3.51 or later is required for building on Windows NT. Note that the developers typically use NT 4.0 and Windows 2000, and there may possibly be @@ -17,7 +17,7 @@ systems listed. ============================ 1. You will need Visual C++ V4.0 or later to compile everything. Personally - we have tested V4.0, V4.2, V5.0 and v6.0. + we have tested V4.0, V4.2, V5.0, v6.0 and v7.0/.NET. Note that Visual C++ assumes that the environment variables INCLUDE and LIB are set to specify the location of the includes and libraries. @@ -31,6 +31,9 @@ systems listed. environment variables automatically set up in the registry, which is generally a good idea. + Visual Studio .NET calls this batch file vsvars32.bat and installs it in + $Installdir\Common7\Tools, but doesn't offer at install time to + automatically set these environment variables up in the registry. 2. Grab the latest XEmacs source from @@ -114,17 +117,17 @@ If you want support for X you will also need: * Optional libraries ==================== -1. You really want the XPM library. Grab the latest version of the - xpm sources (xpm-3.4k.tar.gz at time of writing) from - ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack them somewhere. - Copy nt\xpm.mak from the xemacs sources to the lib subdirectory of the - xpm sources, cd to that directory and build xpm with 'nmake -f xpm.mak'. +1. You really want the XPM library. Grab the latest version of the xpm + sources (xpm-3.4k.tar.gz as of 2002-04-27) from + ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack them somewhere. Copy + nt\xpm.mak from the xemacs sources to the lib subdirectory of the xpm + sources, cd to that directory and build xpm with 'nmake -f xpm.mak'. -2. You probably also want PNG image support. Grab the latest versions of zlib - and libpng (zlib-1.1.3 and libpng-1.0.2 at time of writing) from - ftp://ftp.xemacs.org/pub/xemacs/aux/, unpack them somewhere and read - the respective READMEs for details on how to build them. The following - build procedure works for zlib-1.1.3 and libpng-1.0.2: +2. You probably also want PNG image support. Grab the latest versions of + zlib and libpng (zlib-1.1.4 and libpng-1.0.9 as of 2002-04-27) from + ftp://ftp.xemacs.org/pub/xemacs/aux/, unpack them somewhere and read the + respective READMEs for details on how to build them. The following + build procedure works for zlib-1.1.4 and libpng-1.0.9: cd to the zlib directory, type 'copy msdos\makefile.w32 Makefile' and then type 'nmake'. @@ -133,16 +136,16 @@ If you want support for X you will also need: and type 'nmake -f scripts\makefile.w32'. 3. If you want TIFF support, grap the latest version of libtiff (tiff-v3.4 - at time of writing) from ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack + as of 2002-04-27) from ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack it somewhere. Copy nt\tiff.mak from the xemacs sources to the contrib\winnt subdirectory of the tiff sources, cd to that directory and build libtiff with 'nmake -f tiff.mak'. Note: tiff.mak has only been verified to work under WinNT, not Win95 or 98. However, the latest - distribution of libtiff includes a contrib\win95\makefile.w95; that might - work. + distribution of libtiff includes a contrib\win95\makefile.w95; that + might work. -4. If you want JPEG support grab the latest version of jpegsrc (jpeg-6b at - time of writing) from ftp://ftp.xemacs.org/pub/xemacs/aux/ and read the +4. If you want JPEG support grab the latest version of jpegsrc (jpeg-6b as + of 2002-04-27) from ftp://ftp.xemacs.org/pub/xemacs/aux/ and read the README for details on how to build it. 5. If you want X-Face support, grab the compface distribution from @@ -238,7 +241,7 @@ If you want support for X you will also need: XEmacs will be installed (by default) as "c:\Program Files\XEmacs\XEmacs-21.4\i586-pc-win32\xemacs.exe". - To run from the build directory, run the file "nt\xemacs.exe" off of the + To run from the build directory, run the file "src\xemacs.exe" off of the root of the build directory. You may want to create a shortcut to the file from your Desktop or diff --git a/nt/config.inc.samp b/nt/config.inc.samp index bbd4024..0e2752c 100644 --- a/nt/config.inc.samp +++ b/nt/config.inc.samp @@ -38,8 +38,8 @@ HAVE_GIF=1 # Set this to enable PNG support (virtually mandatory), and specify # the directories containing png and zlib. HAVE_PNG=1 -PNG_DIR=c:\src\libpng-1.0.5 -ZLIB_DIR=c:\src\zlib-1.1.3 +PNG_DIR=c:\src\libpng-1.0.9 +ZLIB_DIR=c:\src\zlib # Set this to enable TIFF support, and specify the directory containing tiff. HAVE_TIFF=0 @@ -75,11 +75,7 @@ VERBOSECC=0 # Set this to get nmake to use dependency info (requires Perl to be installed) DEPEND=0 -############################################################################ - -# Some technical options. +# Set this to use the portable dumper for dumping the preloaded Lisp +# routines, instead of the older "unexec" routines in unexnt.c. +USE_PORTABLE_DUMPER=1 -USE_MINIMAL_TAGBITS=0 -USE_INDEXED_LRECORD_IMPLEMENTATION=0 -USE_PORTABLE_DUMPER=0 -GUNG_HO=0 diff --git a/nt/xemacs.mak b/nt/xemacs.mak index e59b895..db8534b 100644 --- a/nt/xemacs.mak +++ b/nt/xemacs.mak @@ -167,18 +167,9 @@ USE_UNION_TYPE=0 !if !defined(USE_MINITAR) USE_MINITAR=$(HAVE_ZLIB) !endif -!if !defined(USE_MINIMAL_TAGBITS) -USE_MINIMAL_TAGBITS=0 -!endif -!if !defined(USE_INDEXED_LRECORD_IMPLEMENTATION) -USE_INDEXED_LRECORD_IMPLEMENTATION=0 -!endif !if !defined(USE_PORTABLE_DUMPER) USE_PORTABLE_DUMPER=0 !endif -!if !defined(GUNG_HO) -GUNG_HO=0 -!endif # A little bit of adhockery. Default to use system malloc and # DLL version of the C runtime library when using portable @@ -305,14 +296,6 @@ CONFIG_ERROR=1 !endif # -# Handle GUNG_HO -# -!if defined(GUNG_HO) -USE_MINIMAL_TAGBITS=$(GUNG_HO) -USE_INDEXED_LRECORD_IMPLEMENTATION=$(GUNG_HO) -!endif - -# # Whether to use dependency information generated by make-src-depend # !if !defined(DEPEND) @@ -461,12 +444,6 @@ DEBUG_FLAGS=-debug:full QUICK_DEFINES=-DQUICK_BUILD !endif -!if $(USE_MINIMAL_TAGBITS) -TAGBITS_DEFINES=-DUSE_MINIMAL_TAGBITS -!endif -!if $(USE_INDEXED_LRECORD_IMPLEMENTATION) -LRECORD_DEFINES=-DUSE_INDEXED_LRECORD_IMPLEMENTATION -!endif !if $(USE_UNION_TYPE) UNION_DEFINES=-DUSE_UNION_TYPE !endif @@ -495,8 +472,7 @@ PATH_DEFINES=-DPATH_PREFIX=\"$(PATH_PREFIX)\" INCLUDES=$(X_INCLUDES) $(MSW_INCLUDES) -I$(NT)\inc -I$(SRC) -I$(LWLIB_SRCDIR) -DEFINES=$(X_DEFINES) $(MSW_DEFINES) $(MULE_DEFINES) \ - $(TAGBITS_DEFINES) $(LRECORD_DEFINES) $(UNION_DEFINES) \ +DEFINES=$(X_DEFINES) $(MSW_DEFINES) $(MULE_DEFINES) $(UNION_DEFINES) \ $(DUMPER_DEFINES) $(MALLOC_DEFINES) $(QUICK_DEFINES) \ -DWIN32_LEAN_AND_MEAN -DWIN32_NATIVE -Demacs \ -DHAVE_CONFIG_H $(PROGRAM_DEFINES) $(PATH_DEFINES) @@ -565,6 +541,11 @@ $(LIB_SRC)/movemail.exe: $(LIB_SRC)/movemail.c $(LIB_SRC)/pop.c $(ETAGS_DEPS) $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc $(LIB_SRC_DEFINES) $(CFLAGS) -Fe$@ $** wsock32.lib -link -incremental:no cd $(NT) +$(LIB_SRC)/winclient.exe: $(LIB_SRC)/winclient.c + cd $(LIB_SRC) + $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc $(LIB_SRC_DEFINES) $(CFLAGS) -Fe$@ $** user32.lib -link -incremental:no + cd $(NT) + $(LIB_SRC)/minitar.exe : $(NT)/minitar.c $(CCV) $(CFLAGS) -I$(ZLIB_DIR) -Fe$@ $** $(ZLIB_DIR)\zlib.lib -link -incremental:no @@ -572,6 +553,7 @@ LIB_SRC_TOOLS = \ $(LIB_SRC)/etags.exe \ $(LIB_SRC)/hexl.exe \ $(LIB_SRC)/i.exe \ + $(LIB_SRC)/winclient.exe \ $(LIB_SRC)/make-docfile.exe \ $(LIB_SRC)/mmencode.exe \ $(LIB_SRC)/movemail.exe \ @@ -1596,12 +1578,6 @@ XEmacs $(XEMACS_VERSION_STRING) $(xemacs_codename:"=\") configured for `$(EMACS_ WARNING: expense of an additional ~4KB of code. -------------------------------------------------------------------- !endif -!if $(USE_MINIMAL_TAGBITS) - Using minimal tagbits. -!endif -!if $(USE_INDEXED_LRECORD_IMPLEMENTATION) - Using indexed lrecord implementation. -!endif !if $(USE_UNION_TYPE) Using union type for Lisp object storage. !endif diff --git a/nt/xpm.mak b/nt/xpm.mak index 2adc736..2cdbe2a 100644 --- a/nt/xpm.mak +++ b/nt/xpm.mak @@ -10,7 +10,7 @@ DEBUG=0 !endif !if !defined(USE_CRTDLL) -USE_CRTDLL=0 +USE_CRTDLL=1 !endif !if $(DEBUG) @@ -67,9 +67,4 @@ all: ..\X11\xpm.h Xpm.lib mkdir ..\X11 Xpm.lib: $(OBJS) -!if $(USE_CRTDLL) -# Target is ok, link builds lib as a side effect. - link -nologo -dll -def:xpm.def -out:Xpm.dll gdi32.lib $(OBJS) -!else lib -nologo -out:$@ $(OBJS) -!endif diff --git a/src/.cvsignore b/src/.cvsignore deleted file mode 100644 index cbba8e9..0000000 --- a/src/.cvsignore +++ /dev/null @@ -1,21 +0,0 @@ -Makefile.in -paths.h -config.h -Emacs.ad.h -Makefile -GNUmakefile -puresize-adjust.h -sheap-adjust.h -temacs -xemacs -xemacs.dmp -SATISFIED -update-elc.stamp -*.so.* -gmon.out -NEEDTODUMP -Xpm.dll -temacs.bsc -temacs.pdb -temacs.map -xemacs.opt diff --git a/src/ChangeLog b/src/ChangeLog index f14e0fa..641ca47 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -4364,6 +4364,429 @@ (Vcharset_thai_tis620): Likewise. (Vcharset_katakana_jisx0201): Likewise. +2002-08-23 Stephen J. Turnbull + + * XEmacs 21.4.9 "Informed Management" is released. + +2002-08-19 Andy Piper + + * fileio.c (Ffile_truename): on cygwin using win32 normalize to + win32 format. + + * realpath.c (xrealpath): normalize drive spec also so that dir + sep chars are not mixed on cygwin. + +2002-08-06 Jerry James + + * window.c (Fsplit_window): Count only half of the divider width + against the left window when splitting horizontally. + +2002-06-24 Andy Piper + + * toolbar-gtk.c (GTK_OUTPUT_BUTTONS_LOOP): output button if whole + toolbar was cleared. + + * toolbar-msw.c (mswindows_clear_frame_toolbars): new + function. Split out from mswindows_output_frame_toolbars. + (mswindows_output_frame_toolbars): move clear pieces to + mswindows_output_frame_toolbars. + + * toolbar-gtk.c (gtk_clear_frame_toolbars): new function. Split + out from gtk_output_frame_toolbars. + (gtk_output_frame_toolbars): move clear pieces to + gtk_clear_frame_toolbars. + + * toolbar-x.c (X_OUTPUT_BUTTONS_LOOP): always output buttons when + the frame is cleared. How this ever worked before is a mystery. + (x_output_frame_toolbars): Only output toolbars. + (x_clear_frame_toolbars): new. Clear previous toolbar locations. + + * gutter.c (update_gutter_geometry): + Mark frame layout changed. + (update_frame_gutter_geometry, update_frame_gutters): + Respect frame_layout_changed. + + * console.h (struct console_methods): add + clear_frame_toolbars_method. + + * redisplay.c (redisplay_frame): call + update_frame_toolbars_geometry and re-order update_frame_toolbars. + + * toolbar.h: declare update_frame_toolbars_geometry. + + * toolbar.c (update_frame_toolbars_geometry): new function. Split + out from update_frame_toolbars. Call clear_frame_toolbars. + (update_frame_toolbars): only output, do not change geometry. + + * redisplay.c: add frame_layout_changed. + + * redisplay.h: add frame_layout_changed. + (CLASS_RESET_CHANGED_FLAGS): set it. + (GLOBAL_RESET_CHANGED_FLAGS): ditto. + (CLASS_REDISPLAY_FLAGS_CHANGEDP): test it. + (GLOBAL_REDISPLAY_FLAGS_CHANGEDP): ditto. + + * device.h (struct device): add frame_layout_changed. + (MARK_DEVICE_FRAME_LAYOUT_CHANGED): new. + + * frame.h (struct frame): add frame_layout_changed. + (MARK_FRAME_LAYOUT_CHANGED): new. + +2002-06-30 Mike Alexander + + * event-msw.c (mswindows_need_event): Don't wait for a new message + if the queue is not empty. Suggested by Paul Moore. + +2002-06-12 Andy Piper + + * frame-msw.c (msprinter_init_frame_3): calculate the frame size + for printing on accurately. + +2002-06-09 Rick Rankin + + * event-msw.c (mswindows_wnd_proc): Add a handler for the + WM_ACTIVATE message. Make sure that the frame is visible if the + window is visible. This seemss to fix the problem where XEmacs + appears to freeze after switching desktops with certain virtual + window managers. + (debug_output_mswin_message): Added code to output message + parameters for WM_WINDOWPOSCHANGED, + WM_WINDOWPOSCHANGING, WM_MOVE, and WM_SIZE messages. + +2002-05-25 Andy Piper + + * select-x.c (vars_of_select_x): Fix docstring of + x-selection-strict-motif-ownership + +2002-08-14 Stephen J. Turnbull + + * keymap.c (get_keymap): + Add comment about do_autoload GCPROs own args. + +2002-08-14 Stephen J. Turnbull + + * bytecode.c (execute_optimized_program): check_opcode ifdef + ERROR_CHECK_BYTE_CODE. + +2002-08-14 Stephen J. Turnbull + + Thanks to Ben Wing and Michael Sperber. + + * eval.c (Fcommand_execute): + (Feval): + (Ffuncall): + (Fmacroexpand_internal): + (function_argcount): + callint.c (Fcall_interactively): + Add comment about do_autoload GCPROs own args. + + * (do_autoload): GCPRO both args as well as local Lisp_Object. + + * eval.c (Ffuncall): Extra braces to placate GCC. + +2002-08-10 Stephen J. Turnbull + + * backtrace.h (grow_specpdl): + (SPECPDL_RESERVE): + * EmacsFrame.c (EmacsFrameSetValues): + * eval.c (grow_specpdl): + * ExternalShell.c (hack_event_masks_1): + * glyphs-x.c (convert_EImage_to_XImage): + (x_finalize_image_instance): + * ralloc.c (page_size): + (r_alloc_sbrk): + * xgccache.c (gc_cache_hash): + Fix unsigned comparison warnings. + +2002-07-29 Jerry James + + * lread.c (locate_file): Any nonnegative return value indicates + success if MODE is nonnegative. + +2002-08-03 Brian A Palmer + + * emacs.c (Fsplit_string_by_char): Make 2nd arg SEPCHAR a required + argument. + +2002-07-17 Stephen J. Turnbull + + * process-unix.c (unix_send_process): #ifdef the coding_stream member. + + * dumper.c (pdump_get_indirect_count): + (pdump_scan_by_alignment): + (pdump_dump_root_struct_ptrs): + (pdump_dump_rtables): + (pdump_dump_root_objects): + (pdump): + * nas.c (WaveOpenDataForReading): + * fns.c (print_bit_vector): + * font-lock.c (SINGLE_SYNTAX_STYLE): + * glyphs.c (check_for_ignored_expose): + (find_matching_subwindow): + * glyphs-eimage.c: + * imgproc.c (get_histogram): + * redisplay.c (point_in_line_start_cache): + * redisplay-output.c (redisplay_unmap_subwindows): + * symbols.c (defsymbol_massage_name_1): + (defkeyword_massage_name): + (deferror_massage_name_and_message): + * redisplay-x.c (x_output_string): + * emacs.c (run_temacs_argv_size, run_temacs_args_size): + * frame.h (struct frame): + * filelock.c (current_lock_owner): + * doprnt.c (emacs_doprnt_1): + * lisp.h (struct Lisp_Bit_Vector): + (DO_REALLOC): + Fix warnings. + +2002-02-13 Ben Wing + + * event-stream.c (reset_key_echo): + * event-stream.c (reset_this_command_keys): + * event-stream.c (execute_command_event): + If console is dead as a result of C-x 5 0, then post-command stuff + needs to be careful and do only non-console-specific stuff. + +2002-07-01 Mike Sperber + + * process-unix.c (unix_send_process): Mark coding_outstream as + non-open upon SIGPIPE. + + * event-stream.c (Fnext_event): Reorder switch cases to something + that makes sense. + +2001-08-13 Dmitry Astapov + + * event-Xt.c (maybe_define_x_key_as_self_inserting_character): + Don't bogusly reinitialize ascii_character property. + +2002-07-08 Mike Sperber + + * process.c (Fstart_process_internal): Do error checking before we + fork off the child, so the child can't muck with the state of the + parent. + +2002-07-08 Mike Sperber + + * ralloc.c (init_ralloc): Allocate properly for pdump. + +2002-06-12 Andy Piper + + * glyphs.c (query_string_geometry): check the string. + + * glyphs-widget.c (widget_logical_unit_height): cope with nil + widget names. + +2002-06-17 Jerry James + + * sysdll.c: Remove RTLD_GLOBAL initialization. + * sysdll.c (dll_open): Do not use RTLD_GLOBAL. + +2002-06-25 Stephen J. Turnbull + + * search.c (skip_chars): Port Ben's crash fix and efficiency patch. + +2002-05-16 Mathias Grimmberger + + * sysdep.c (sys_rename): Make sys_rename work for the case where + Windows rename sets errno to EACCES if target file exists. + +2002-05-21 Jonathan Harris + + * device-msw.c (mswindows_handle_page_setup_dialog_box): + Fix detection of metric units to work on Win95 + +2002-05-21 Stephen J. Turnbull + + * syswindows.h: #define LOCALE_RETURN_NUMBER. Why, I don't know. + +2002-04-25 Andy Piper + + * redisplay.c (create_text_block): Remove extra comment trailer. + +2002-04-24 Andy Piper + + * redisplay.c (create_text_block): Don't actually add propagation + data if the line ends after we have added a glyph. + +2002-04-22 Andy Piper + + * extents.c (extent_fragment_update): check for glyphs we have + previously displayed. + * extents.c (print_extent_1): warning removal. + * extents.h: change prototype. + * redisplay-output.c (redisplay_normalize_glyph_area): calculate + widths correctly for wide glyphs. + * redisplay.c (position_redisplay_data_type): add end_glyph_width. + * redisplay.c (prop_type): add PROP_GLYPH. + * redisplay.c (struct prop_block): add glyph type + * redisplay.c (add_glyph_rune): when adding part of a glyph add it + to the propagation data. + * redisplay.c (create_text_block): if there is a glyph in the + propagation data use it to salt extent_fragment_update. + * redisplay.c (create_string_text_block): ditto. + +2002-04-13 Nix + + * redisplay.h (struct rune): Add ascent, descent, and yoffset fields. + * redisplay-output.c (compare_runes): Compare them. + * redisplay.c: Update copyright date. + * redisplay.c (pos_data): Add need_baseline_computation field. + * redisplay.c (add_glyph_rune): Update ascent, descent, and + need_baseline_computation; zero yoffset. Set max_pixmap_height + for all pixmaps, not just automatically positioned ones. + * redisplay.c (calculate_yoffset): New, compute yoffset values. + * redisplay.c (calculate_baseline): New, compute textual baseline. + * redisplay.c (add_glyph_rune): Call them. + * redisplay.c (create_text_block): Likewise. + * redisplay.c (create_overlay_glyph_block): Likewise. + * redisplay.c (add_margin_runes): Likewise. + * redisplay.c (create_string_text_block): Likewise. Fix tabdamage. + + * redisplay.h: (redisplay_calculate_display_boxes): Change prototype. + * redisplay-output.c (redisplay_calculate_display_boxes): Use yoffset. + * redisplay-msw.c (mswindows_output_blank): Pass 0 as yoffset. + * redisplay-msw.c (mswindows_output_string): Likewise. + * redisplay-msw.c (mswindows_output_display_block): Pass yoffset. + * redisplay-gtk.c (gtk_output_display_block): Likewise. + * redisplay-x.c (x_output_display_block): Likewise. + +2002-03-28 Ben Wing + + * redisplay.c: Fixed bug in redisplay + w.r.t. hscroll/truncation/continuation glyphs causing jumping up + and down of the lines, since they're bigger than the line + size. (It was seen most obviously when there's a horizontal scroll + bar, e.g. do C-h a glyph or something like that.) The problem was + that the glyph-contrib-p setting on glyphs was ignored even if it + was set properly, which it wasn't until now. + +2002-04-24 Andy Piper + + * lisp.h (Dynarr_end): Fix definition. + +2002-02-06 Adrian Aichner + + * redisplay.c (mark_redisplay): Remove call to + update_frame_window_mirror. + +2001-11-15 Andy Piper + + * win32.c (Fmswindows_shell_execute): fix handling of URL's under + cygwin (again). + +2002-02-13 Andy Piper + + * event-msw.c (mswindows_wnd_proc): only mark the frame visible if + we did in fact enqueue the XM_MAPFRAME event. + +2002-01-15 Adrian Aichner + + * event-msw.c (mswindows_wnd_proc): Add handling of WM_SHOWWINDOW + to fix problem switching between virtual desktops under virtuawin + virtual window manager. + +2001-07-30 Adrian Aichner + + * event-msw.c: Typo fix. + * event-msw.c (mswindows_wnd_proc): Set FRAME_VISIBLE_P after + magic XM_MAPFRAME event has been sent. + +2001-11-23 Andy Piper + + * event-msw.c (mswindows_wnd_proc): Don't pump mousewheel events. + +2001-11-21 Andy Piper + + * scrollbar-msw.c (mswindows_handle_mousewheel_event): cope with + mouse events outside the frame. + +2002-03-20 Andy Piper + + * menubar-msw.c (mswindows_popup_menu): warning removal. + * dialog-msw.c (dialog_popped_down): ditto. + +2001-12-11 Andy Piper + + * dialog-msw.c (dialog_popped_down): new function. unset popup_up_p. + * dialog-msw.c (mswindows_make_dialog_box_internal): set + popup_up_p. + * menubar-msw.c (unsafe_handle_wm_initmenupopup_1): ditto. + * menubar-msw.c (mswindows_handle_wm_command): ditto. + * menubar-msw.c (mswindows_popup_menu): ditto. + +2001-10-29 Andy Piper + + * dialog-msw.c (handle_directory_dialog_box): quit if the user + cancels. + +2002-01-03 Andy Piper + + * realpath.c (ABS_LENGTH): dtrt for cygwin systems using drive + letters. + (xrealpath): ditto. + +2002-03-29 Jonathan Harris + + * device-msw.c (plist_get_margin): Add arg specifying mm or inches + * device-msw.c (plist_set_margin): Fix multiplicand used for mm + * device-msw.c (mswindows_handle_page_setup_dialog_box): + Detect and handle case where machine is set up for metric units + +2002-04-02 Andy Piper + + * dired-msw.c (mswindows_get_files): + * nt.c (mswindows_stat): SetErrorMode() so that file errors are + completely handled by XEmacs. Suggested by Thomas Vogler + . + +2001-11-14 Andy Piper + + * nt.c (REG_ROOT): change registry key to XEmacs. + +2002-04-27 Andy Piper + + * glyphs-msw.c (mswindows_widget_instantiate): remove dead-code. + +2002-04-26 Andy Piper + + * glyphs-msw.c (mswindows_map_subwindow): observe :initial-focus + behavior. + +2002-03-14 Mike Alexander + + * event-msw.c (mswindows_unwait_process): New, remove process from + wait list + * process-nt.c (nt_finalize_process_data): Call + mswindows_unwait_process + * console-msw.h: Declare mswindows_unwait_process + +2002-05-14 Stephen J. Turnbull + + * editfns.c (Fdecode_time): + (Fformat_time_string): + Check for invalid time. Thanks to Nick Pakoulin . + (make_time): Warning elimination (change arg name). + +2001-11-24 Andy Piper + + * window.c (Fsplit_window): Doc return type. + +2002-04-01 Andy Piper + + * emacs.c (Fkill_emacs): Only output message box in interactive + mode. + +2002-04-26 Andy Piper + + * config.h.in: pull in 21.5.x change to stop alloca warnings under + cygwin. + +2002-03-18 Gregory Steuck + + * unexelf.c: Use ELFSIZE or define from _LP64 to indicate a 64 + bit platform. + 2002-05-09 Stephen J. Turnbull * XEmacs 21.4.8 "Honest Recruiter" is released. diff --git a/src/EmacsFrame.c b/src/EmacsFrame.c index 78ac737..0a14334 100644 --- a/src/EmacsFrame.c +++ b/src/EmacsFrame.c @@ -517,7 +517,7 @@ EmacsFrameSetValues (Widget cur_widget, Widget req_widget, Widget new_widget, if (cur->core.width == new->core.width && cur->core.height == new->core.height) { - int i; + Cardinal i; for (i=0; i<*argc; i++) if (strcmp (argv[i].name, XtNwidth) == 0 || strcmp (argv[i].name, XtNheight) == 0) diff --git a/src/ExternalShell.c b/src/ExternalShell.c index 9c8a7ed..767c3ab 100644 --- a/src/ExternalShell.c +++ b/src/ExternalShell.c @@ -612,7 +612,7 @@ hack_event_masks_1 (Display *display, Window w, int this_window_propagate) { Window root, parent, *children; unsigned int nchildren; - int i; + unsigned int i; if (!XQueryTree (display, w, &root, &parent, &children, &nchildren)) return; diff --git a/src/backtrace.h b/src/backtrace.h index fba7130..7ca942b 100644 --- a/src/backtrace.h +++ b/src/backtrace.h @@ -147,7 +147,7 @@ extern struct backtrace *backtrace_list; /* Most callers should simply use specbind() and unbind_to(), but if speed is REALLY IMPORTANT, you can use the faster macros below */ void specbind_magic (Lisp_Object, Lisp_Object); -void grow_specpdl (size_t reserved); +void grow_specpdl (EMACS_INT reserved); void unbind_to_hairy (int); extern int specpdl_size; @@ -214,8 +214,9 @@ extern int specpdl_size; } while (0) /* Request enough room for SIZE future entries on special binding stack */ +/* SR_size will typically be compared to an unsigned short */ #define SPECPDL_RESERVE(size) do { \ - size_t SR_size = (size); \ + EMACS_INT SR_size = (size); \ if (specpdl_depth() + SR_size >= specpdl_size) \ grow_specpdl (SR_size); \ } while (0) diff --git a/src/bytecode.c b/src/bytecode.c index 8a2c963..58ebc0c 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -211,6 +211,7 @@ typedef enum Opcode Opcode; typedef unsigned char Opbyte; +static void check_opcode (Opcode opcode); static void invalid_byte_code_error (char *error_message, ...); Lisp_Object * execute_rare_opcode (Lisp_Object *stack_ptr, @@ -637,6 +638,7 @@ execute_optimized_program (const Opbyte *program, invalid_byte_code_error ("byte code stack overflow"); if (stack_ptr < stack_beg) invalid_byte_code_error ("byte code stack underflow"); + check_opcode (opcode); #endif #ifdef BYTE_CODE_METER diff --git a/src/callint.c b/src/callint.c index faa910d..8676692 100644 --- a/src/callint.c +++ b/src/callint.c @@ -307,8 +307,9 @@ when reading the arguments. if (EQ (funcar, Qautoload)) { - struct gcpro gcpro1, gcpro2; - GCPRO2 (function, prefix); + struct gcpro gcpro1; + GCPRO1 (prefix); + /* do_autoload GCPROs both arguments */ do_autoload (fun, function); UNGCPRO; goto retry; diff --git a/src/config.h.in b/src/config.h.in index 4792b13..c9cb723 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -32,7 +32,12 @@ Boston, MA 02111-1307, USA. */ #undef HAVE_ALLOCA_H #ifndef NOT_C_CODE -#ifdef __GNUC__ +#if defined (__CYGWIN__) +/* We get complaints about redefinitions if we just use the __GNUC__ + definition: stdlib.h also includes alloca.h, which defines it slightly + differently */ +#include +#elif defined (__GNUC__) #define alloca __builtin_alloca #elif defined __DECC #include diff --git a/src/console-msw.h b/src/console-msw.h index 8d8e3f9..59a6033 100644 --- a/src/console-msw.h +++ b/src/console-msw.h @@ -342,6 +342,8 @@ USID emacs_mswindows_delete_stream_pair (Lisp_Object instream, HANDLE get_nt_process_handle (Lisp_Process *p); #endif +void mswindows_unwait_process (Lisp_Process *p); + extern Lisp_Object Vmswindows_frame_being_created; extern Lisp_Object mswindows_frame_being_created; diff --git a/src/console.h b/src/console.h index bba3a39..cdab18d 100644 --- a/src/console.h +++ b/src/console.h @@ -283,6 +283,7 @@ struct console_methods #ifdef HAVE_TOOLBARS /* toolbar methods */ void (*output_frame_toolbars_method) (struct frame *); + void (*clear_frame_toolbars_method) (struct frame *); void (*initialize_frame_toolbars_method) (struct frame *); void (*free_frame_toolbars_method) (struct frame *); void (*output_toolbar_button_method) (struct frame *, Lisp_Object); diff --git a/src/device-msw.c b/src/device-msw.c index 63ac69d..d215238 100644 --- a/src/device-msw.c +++ b/src/device-msw.c @@ -809,20 +809,20 @@ mswindows_get_default_margin (Lisp_Object prop) } static int -plist_get_margin (Lisp_Object plist, Lisp_Object prop) +plist_get_margin (Lisp_Object plist, Lisp_Object prop, int mm_p) { Lisp_Object val = Fplist_get (plist, prop, make_int (mswindows_get_default_margin (prop))); if (!INTP (val)) invalid_argument ("Margin value must be an integer", val); - return MulDiv (XINT (val), 100, 144); + return MulDiv (XINT (val), mm_p ? 254 : 100, 144); } static Lisp_Object plist_set_margin (Lisp_Object plist, Lisp_Object prop, int margin, int mm_p) { - Lisp_Object val = make_int (MulDiv (margin, 144, mm_p ? 2450 : 100)); + Lisp_Object val = make_int (MulDiv (margin, 144, mm_p ? 254 : 100)); return Fcons (prop, Fcons (val, plist)); } @@ -866,15 +866,21 @@ mswindows_handle_page_setup_dialog_box (struct frame *f, Lisp_Object keys) { Lisp_Devmode *ldm = decode_devmode (device); PAGESETUPDLG pd; + TCHAR measure[2]; + int data; + + GetLocaleInfo (LOCALE_USER_DEFAULT, LOCALE_IMEASURE, + measure, sizeof(measure)); + data = (strcmp (measure, "0")); memset (&pd, 0, sizeof (pd)); pd.lStructSize = sizeof (pd); pd.hwndOwner = mswindows_get_selected_frame_hwnd (); pd.Flags = PSD_MARGINS; - pd.rtMargin.left = plist_get_margin (plist, Qleft_margin); - pd.rtMargin.top = plist_get_margin (plist, Qtop_margin); - pd.rtMargin.right = plist_get_margin (plist, Qright_margin); - pd.rtMargin.bottom = plist_get_margin (plist, Qbottom_margin); + pd.rtMargin.left = plist_get_margin (plist, Qleft_margin, !data); + pd.rtMargin.top = plist_get_margin (plist, Qtop_margin, !data); + pd.rtMargin.right = plist_get_margin (plist, Qright_margin, !data); + pd.rtMargin.bottom = plist_get_margin (plist, Qbottom_margin, !data); pd.hDevMode = devmode_to_hglobal (ldm); if (!PageSetupDlg (&pd)) diff --git a/src/device.h b/src/device.h index a870bbf..3c5dcd2 100644 --- a/src/device.h +++ b/src/device.h @@ -167,6 +167,8 @@ struct device unsigned int extents_changed :1; unsigned int faces_changed :1; unsigned int frame_changed :1; + unsigned int frame_layout_changed :1; /* The layout of frame + elements has changed. */ unsigned int glyphs_changed :1; unsigned int subwindows_changed :1; unsigned int subwindows_state_changed :1; @@ -425,6 +427,9 @@ int valid_device_class_p (Lisp_Object class); #define MARK_DEVICE_FRAME_CHANGED(d) \ ((void) (frame_changed = (d)->frame_changed = 1)) +#define MARK_DEVICE_FRAME_LAYOUT_CHANGED(d) \ + ((void) (frame_layout_changed = (d)->frame_layout_changed = 1)) + #define MARK_DEVICE_WINDOWS_CHANGED(d) \ ((void) (windows_changed = (d)->windows_changed = 1)) diff --git a/src/dialog-msw.c b/src/dialog-msw.c index 5a7eecf..954a27a 100644 --- a/src/dialog-msw.c +++ b/src/dialog-msw.c @@ -285,6 +285,14 @@ free_dynarr_opaque_ptr (Lisp_Object arg) return arg; } +/* Unwind protection decrements dialog count */ +static Lisp_Object +dialog_popped_down (Lisp_Object arg) +{ + popup_up_p--; + return Qnil; +} + #define ALIGN_TEMPLATE \ { \ @@ -434,12 +442,13 @@ handle_directory_dialog_box (struct frame *f, Lisp_Object keys) pMalloc->lpVtbl->Free(pMalloc, pidl); pMalloc->lpVtbl->Release(pMalloc); return ret; - } + } else if (pd.unknown_fname != 0) { ret = tstr_to_local_file_format (pd.unknown_fname); xfree(pd.unknown_fname); } - + else while (1) + signal_quit (); } else signal_type_error (Qdialog_box_error, @@ -791,16 +800,21 @@ static Lisp_Object mswindows_make_dialog_box_internal (struct frame* f, Lisp_Object type, Lisp_Object keys) { + int unbind_count = specpdl_depth (); + record_unwind_protect (dialog_popped_down, Qnil); + popup_up_p++; + if (EQ (type, Qfile)) - return handle_file_dialog_box (f, keys); + return unbind_to (unbind_count, handle_file_dialog_box (f, keys)); else if (EQ (type, Qdirectory)) - return handle_directory_dialog_box (f, keys); + return unbind_to (unbind_count, handle_directory_dialog_box (f, keys)); else if (EQ (type, Qquestion)) - return handle_question_dialog_box (f, keys); + return unbind_to (unbind_count, handle_question_dialog_box (f, keys)); else if (EQ (type, Qprint)) - return mswindows_handle_print_dialog_box (f, keys); + return unbind_to (unbind_count, mswindows_handle_print_dialog_box (f, keys)); else if (EQ (type, Qpage_setup)) - return mswindows_handle_page_setup_dialog_box (f, keys); + return unbind_to (unbind_count, + mswindows_handle_page_setup_dialog_box (f, keys)); else signal_type_error (Qunimplemented, "Dialog box type", type); return Qnil; diff --git a/src/dired-msw.c b/src/dired-msw.c index a652937..791ed06 100644 --- a/src/dired-msw.c +++ b/src/dired-msw.c @@ -173,6 +173,7 @@ mswindows_get_files (char *dirfile, int nowild, Lisp_Object pattern, int findex, len; char win32pattern[MAXNAMLEN+3]; HANDLE fh; + int errm; /* * Much of the following code and comments were taken from dired.c. @@ -214,6 +215,8 @@ mswindows_get_files (char *dirfile, int nowild, Lisp_Object pattern, */ findex = 0; fh = INVALID_HANDLE_VALUE; + errm = SetErrorMode (SEM_FAILCRITICALERRORS + | SEM_NOOPENFILEERRORBOX); while (1) { @@ -226,6 +229,7 @@ mswindows_get_files (char *dirfile, int nowild, Lisp_Object pattern, fh = FindFirstFile(win32pattern, &files[findex]); if (fh == INVALID_HANDLE_VALUE) { + SetErrorMode (errm); report_file_error ("Opening directory", list1(build_string(dirfile))); } @@ -239,6 +243,7 @@ mswindows_get_files (char *dirfile, int nowild, Lisp_Object pattern, break; } FindClose(fh); + SetErrorMode (errm); report_file_error ("Reading directory", list1(build_string(dirfile))); } @@ -277,6 +282,8 @@ mswindows_get_files (char *dirfile, int nowild, Lisp_Object pattern, *nfiles = findex; break; } + + SetErrorMode (errm); return (files); } diff --git a/src/doprnt.c b/src/doprnt.c index ce8faac..a2b047b 100644 --- a/src/doprnt.c +++ b/src/doprnt.c @@ -598,7 +598,8 @@ emacs_doprnt_1 (Lisp_Object stream, const Bufbyte *format_nonreloc, char *text_to_print = alloca_array (char, 32 + max (spec->minwidth, - max (sizeof (double), sizeof (long)) * 3 + + (EMACS_INT) + max (sizeof (double), sizeof (long)) * 3 + max (spec->precision, 0))); char constructed_spec[100]; char *p = constructed_spec; diff --git a/src/dumper.c b/src/dumper.c index f11da82..0d499a6 100644 --- a/src/dumper.c +++ b/src/dumper.c @@ -418,7 +418,7 @@ pdump_get_indirect_count (EMACS_INT code, const struct lrecord_description *idesc, const void *idata) { - EMACS_INT count; + EMACS_INT count = 0; /* initialize to shut up GCC */ const void *irdata; int line = XD_INDIRECT_VAL (code); @@ -822,7 +822,7 @@ pdump_scan_by_alignment (void (*f)(pdump_entry_list_elt *, for (align = ALIGNOF (max_align_t); align; align>>=1) { - int i; + size_t i; pdump_entry_list_elt *elt; for (i=0; itm_sec); list_args[1] = make_int (decoded_time->tm_min); list_args[2] = make_int (decoded_time->tm_hour); @@ -1179,10 +1180,10 @@ static void set_time_zone_rule (char *tzstring); /* from GNU Emacs 21, per Simon Josefsson, modified by stephen The slight inefficiency is justified since negative times are weird. */ Lisp_Object -make_time (time_t time) +make_time (time_t tval) { - return list2 (make_int (time < 0 ? time / 0x10000 : time >> 16), - make_int (time & 0xFFFF)); + return list2 (make_int (tval < 0 ? tval / 0x10000 : tval >> 16), + make_int (tval & 0xFFFF)); } DEFUN ("encode-time", Fencode_time, 6, MANY, 0, /* diff --git a/src/emacs.c b/src/emacs.c index e42abc8..b771ee3 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -469,8 +469,8 @@ static JMP_BUF run_temacs_catch; static int run_temacs_argc; static char **run_temacs_argv; static char *run_temacs_args; -static size_t run_temacs_argv_size; -static size_t run_temacs_args_size; +static EMACS_INT run_temacs_argv_size; +static EMACS_INT run_temacs_args_size; static void shut_down_emacs (int sig, Lisp_Object stuff, int no_auto_save); @@ -2864,10 +2864,13 @@ all of which are called before XEmacs is actually killed. #ifdef HAVE_MS_WINDOWS /* If we displayed a message on the console, then we must allow the - user to see this message. This may be unnecessary, but can't hurt, - and we can't necessarily check arg; e.g. xemacs --help kills with - argument 0. */ - if (mswindows_message_outputted) + user to see this message. This may be unnecessary, but can't + hurt, and we can't necessarily check arg; e.g. xemacs --help + kills with argument 0. + + Don't do this in batch mode, it makes no sense and is more + annoying than useful. --andyp */ + if (mswindows_message_outputted && !noninteractive) Fmswindows_message_box (build_string ("Messages outputted. XEmacs is exiting."), Qnil, Qnil); #endif @@ -3196,7 +3199,7 @@ decode_env_path (const char *evarname, const char *default_) /* Ben thinks this function should not exist or be exported to Lisp. We use it to define split-path-string in subr.el (not!). */ -DEFUN ("split-string-by-char", Fsplit_string_by_char, 1, 2, 0, /* +DEFUN ("split-string-by-char", Fsplit_string_by_char, 2, 2, 0, /* Split STRING into a list of substrings originally separated by SEPCHAR. */ (string, sepchar)) diff --git a/src/eval.c b/src/eval.c index b4622b1..0f0b879 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1236,6 +1236,7 @@ definitions to shadow the loaded ones for use in file byte-compilation. if (EQ (tem, Qt) || EQ (tem, Qmacro)) { /* Yes, load it and try again. */ + /* do_autoload GCPROs both arguments */ do_autoload (def, sym); continue; } @@ -2952,7 +2953,10 @@ when reading the arguments. { final = indirect_function (cmd, 1); if (CONSP (final) && EQ (Fcar (final), Qautoload)) - do_autoload (final, cmd); + { + /* do_autoload GCPROs both arguments */ + do_autoload (final, cmd); + } else break; } @@ -3135,10 +3139,10 @@ do_autoload (Lisp_Object fundef, /* This function can GC */ int speccount = specpdl_depth(); Lisp_Object fun = funname; - struct gcpro gcpro1, gcpro2; + struct gcpro gcpro1, gcpro2, gcpro3; CHECK_SYMBOL (funname); - GCPRO2 (fun, funname); + GCPRO3 (fun, funname, fundef); /* Value saved here is to be restored into Vautoload_queue */ record_unwind_protect (un_autoload, Vautoload_queue); @@ -3401,6 +3405,7 @@ Evaluate FORM and return its value. if (EQ (funcar, Qautoload)) { + /* do_autoload GCPROs both arguments */ do_autoload (fun, original_fun); goto retry; } @@ -3458,6 +3463,7 @@ Evaluate FORM and return its value. } +/* #### Why is Feval so anal about GCPRO, Ffuncall so cavalier? */ DEFUN ("funcall", Ffuncall, 1, MANY, 0, /* Call first argument as a function, passing the remaining arguments to it. Thus, (funcall 'cons 'x 'y) returns (x . y). @@ -3525,7 +3531,10 @@ Thus, (funcall 'cons 'x 'y) returns (x . y). if (fun_nargs == max_args) /* Optimize for the common case */ { funcall_subr: - FUNCALL_SUBR (val, subr, fun_args, max_args); + { + /* The "extra" braces placate GCC 2.95.4. */ + FUNCALL_SUBR (val, subr, fun_args, max_args); + } } else if (fun_nargs < subr->min_args) { @@ -3572,6 +3581,7 @@ Thus, (funcall 'cons 'x 'y) returns (x . y). } else if (EQ (funcar, Qautoload)) { + /* do_autoload GCPROs both arguments */ do_autoload (fun, args[0]); goto retry; } @@ -3650,11 +3660,8 @@ function_argcount (Lisp_Object function, int function_min_args_p) } else if (EQ (funcar, Qautoload)) { - struct gcpro gcpro1; - - GCPRO1 (function); + /* do_autoload GCPROs both arguments */ do_autoload (function, orig_function); - UNGCPRO; function = orig_function; goto retry; } @@ -4788,9 +4795,9 @@ call2_trapping_errors (const char *warning_string, Lisp_Object function, #define min_max_specpdl_size 400 void -grow_specpdl (size_t reserved) +grow_specpdl (EMACS_INT reserved) { - size_t size_needed = specpdl_depth() + reserved; + EMACS_INT size_needed = specpdl_depth() + reserved; if (size_needed >= max_specpdl_size) { if (max_specpdl_size < min_max_specpdl_size) diff --git a/src/event-Xt.c b/src/event-Xt.c index 8c55b2b..4345bb1 100644 --- a/src/event-Xt.c +++ b/src/event-Xt.c @@ -310,9 +310,11 @@ maybe_define_x_key_as_self_inserting_character (KeySym keysym, Lisp_Object symbo { extern Lisp_Object Vcurrent_global_map; extern Lisp_Object Qascii_character; - Fput (symbol, Qascii_character, character); - if (NILP (Flookup_key (Vcurrent_global_map, symbol, Qnil))) - Fdefine_key (Vcurrent_global_map, symbol, Qself_insert_command); + if (NILP (Flookup_key (Vcurrent_global_map, symbol, Qnil))) + { + Fput (symbol, Qascii_character, character); + Fdefine_key (Vcurrent_global_map, symbol, Qself_insert_command); + } } } diff --git a/src/event-msw.c b/src/event-msw.c index e4e1be5..aaeaa4f 100644 --- a/src/event-msw.c +++ b/src/event-msw.c @@ -186,7 +186,7 @@ static DWORD mswindows_last_mouse_button_state; exists. For example, "start notepad" command is issued from the shell, then the shell is closed by C-c C-d. Although the shell process exits, its output pipe will not get closed until the - notepad process exits also, because it inherits the pipe form the + notepad process exits also, because it inherits the pipe from the shell. In this case, we abandon the thread, and let it live until all such processes exit. While struct ntpipe_slurp_stream is deallocated in this case, ntpipe_slurp_stream_shared_data are not. */ @@ -1149,6 +1149,21 @@ remove_waitable_handle (HANDLE h) } #endif /* HAVE_MSG_SELECT */ +/* + * Given a lisp process pointer remove the corresponding process handle + * from mswindows_waitable_handles if it is in it. Normally the handle is + * removed when the process terminates, but if the lisp process structure + * is deleted before the process terminates we must delete the process + * handle since it will be invalid and will cause the wait to fail + */ +void +mswindows_unwait_process (Lisp_Process *p) +{ +#ifndef HAVE_MSG_SELECT + remove_waitable_handle (get_nt_process_handle (p)); +#endif /* HAVE_MSG_SELECT */ +} + /************************************************************************/ /* Event pump */ @@ -1494,6 +1509,8 @@ mswindows_need_event (int badly_p) #else /* Now try getting a message or process event */ DWORD what_events; + MSG msg; + if (mswindows_in_modal_loop) /* In a modal loop, only look for timer events, and only if we really need one. */ @@ -1507,10 +1524,23 @@ mswindows_need_event (int badly_p) /* Look for any event */ what_events = QS_ALLINPUT; - active = MsgWaitForMultipleObjects (mswindows_waitable_count, - mswindows_waitable_handles, - FALSE, badly_p ? INFINITE : 0, - what_events); + /* This fixes a long outstanding bug, where XEmacs would occasionally + * not redraw its window (or process other events) until "something + * happened" - usually the mouse moving over a frame. + * + * The problem is that MsgWaitForMultipleObjects only checks to see + * if NEW messages have been placed into the thread queue. So we + * specifically check to see if the queue is empty (using PeekMessage + * with the PM_NOREMOVE flag) before we wait. + */ + if (what_events == QS_ALLINPUT && badly_p && + PeekMessage (&msg, 0, 0, 0, PM_NOREMOVE)) + active = WAIT_OBJECT_0 + mswindows_waitable_count; + else + active = MsgWaitForMultipleObjects (mswindows_waitable_count, + mswindows_waitable_handles, + FALSE, badly_p ? INFINITE : 0, + what_events); /* This will assert if handle being waited for becomes abandoned. Not the case currently tho */ @@ -1526,10 +1556,10 @@ mswindows_need_event (int badly_p) else if (active == WAIT_OBJECT_0 + mswindows_waitable_count) { /* Got your message, thanks */ - if (mswindows_in_modal_loop) - mswindows_need_event_in_modal_loop (badly_p); - else - mswindows_drain_windows_queue (); + if (mswindows_in_modal_loop) + mswindows_need_event_in_modal_loop (badly_p); + else + mswindows_drain_windows_queue (); } else { @@ -2619,6 +2649,70 @@ mswindows_wnd_proc (HWND hwnd, UINT message_, WPARAM wParam, LPARAM lParam) mswindows_handle_paint (XFRAME (mswindows_find_frame (hwnd))); break; + case WM_ACTIVATE: + { + /* + * If we receive a WM_ACTIVATE message that indicates that our frame + * is being activated, make sure that the frame is marked visible + * if the window itself is visible. This seems to fix the problem + * where XEmacs appears to lock-up after switching desktops with + * some virtual window managers. + */ + int state = (int)(short) LOWORD(wParam); +#ifdef DEBUG_XEMACS + if (debug_mswindows_events) + stderr_out("state = %d\n", state); +#endif /* DEBUG_XEMACS */ + if (state == WA_ACTIVE || state == WA_CLICKACTIVE) + { +#ifdef DEBUG_XEMACS + if (debug_mswindows_events) + stderr_out(" activating\n"); +#endif /* DEBUG_XEMACS */ + + fobj = mswindows_find_frame (hwnd); + frame = XFRAME (fobj); + if (IsWindowVisible (hwnd)) + { +#ifdef DEBUG_XEMACS + if (debug_mswindows_events) + stderr_out(" window is visible\n"); +#endif /* DEBUG_XEMACS */ + if (!FRAME_VISIBLE_P (frame)) + { +#ifdef DEBUG_XEMACS + if (debug_mswindows_events) + stderr_out(" frame is not visible\n"); +#endif /* DEBUG_XEMACS */ + /* + * It seems that we have to enqueue the XM_MAPFRAME event + * prior to setting the frame visible so that + * suspend-or-iconify-emacs works properly. + */ + mswindows_enqueue_magic_event (hwnd, XM_MAPFRAME); + FRAME_VISIBLE_P (frame) = 1; + FRAME_ICONIFIED_P (frame) = 0; + } +#ifdef DEBUG_XEMACS + else + { + if (debug_mswindows_events) + stderr_out(" frame is visible\n"); + } +#endif /* DEBUG_XEMACS */ + } +#ifdef DEBUG_XEMACS + else + { + if (debug_mswindows_events) + stderr_out(" window is not visible\n"); + } +#endif /* DEBUG_XEMACS */ + } + return DefWindowProc (hwnd, message_, wParam, lParam); + } + break; + case WM_WINDOWPOSCHANGED: /* This is sent before WM_SIZE; in fact, the processing of this by DefWindowProc() sends WM_SIZE. But WM_SIZE is not sent when @@ -2634,7 +2728,11 @@ mswindows_wnd_proc (HWND hwnd, UINT message_, WPARAM wParam, LPARAM lParam) } else if (IsWindowVisible (hwnd)) { - FRAME_VISIBLE_P (frame) = 1; + /* APA: It's too early here to set the frame visible. + * Let's do this later, in WM_SIZE processing, after the + * magic XM_MAPFRAME event has been sent (just like 21.1 + * did). */ + /* FRAME_VISIBLE_P (frame) = 1; */ FRAME_ICONIFIED_P (frame) = 0; } else @@ -2646,6 +2744,30 @@ mswindows_wnd_proc (HWND hwnd, UINT message_, WPARAM wParam, LPARAM lParam) return DefWindowProc (hwnd, message_, wParam, lParam); } + case WM_SHOWWINDOW: + /* + The WM_SHOWWINDOW message is sent to a window when the window + is about to be hidden or shown. + APA: This message is also sent when switching to a virtual + desktop under the virtuawin virtual window manager. + + */ + { + fobj = mswindows_find_frame (hwnd); + frame = XFRAME (fobj); + if (wParam == TRUE) + { + mswindows_enqueue_magic_event (hwnd, XM_MAPFRAME); + FRAME_VISIBLE_P (frame) = 1; + } + else + { + mswindows_enqueue_magic_event (hwnd, XM_UNMAPFRAME); + FRAME_VISIBLE_P (frame) = 0; + } + } + break; + case WM_SIZE: /* We only care about this message if our size has really changed */ if (wParam==SIZE_RESTORED || wParam==SIZE_MAXIMIZED || wParam==SIZE_MINIMIZED) @@ -2698,7 +2820,13 @@ mswindows_wnd_proc (HWND hwnd, UINT message_, WPARAM wParam, LPARAM lParam) else { if (!msframe->sizing && !FRAME_VISIBLE_P (frame)) - mswindows_enqueue_magic_event (hwnd, XM_MAPFRAME); + { + mswindows_enqueue_magic_event (hwnd, XM_MAPFRAME); + /* APA: Now that the magic XM_MAPFRAME event has + * been sent we can mark the frame as visible (just + * like 21.1 did). */ + FRAME_VISIBLE_P (frame) = 1; + } if (!msframe->sizing || mswindows_dynamic_frame_resize) redisplay (); @@ -2821,20 +2949,14 @@ mswindows_wnd_proc (HWND hwnd, UINT message_, WPARAM wParam, LPARAM lParam) { int keys = LOWORD (wParam); /* Modifier key flags */ int delta = (short) HIWORD (wParam); /* Wheel rotation amount */ - struct gcpro gcpro1, gcpro2; if (mswindows_handle_mousewheel_event (mswindows_find_frame (hwnd), keys, delta, MAKEPOINTS (lParam))) - { - GCPRO2 (emacs_event, fobj); - if (UNBOUNDP(mswindows_pump_outstanding_events ())) /* Can GC */ - SendMessage (hwnd, WM_CANCELMODE, 0, 0); - UNGCPRO; - } + /* We are not in a modal loop so no pumping is necessary. */ + break; else goto defproc; - break; } #endif @@ -3984,6 +4106,25 @@ debug_output_mswin_message (HWND hwnd, UINT message_, WPARAM wParam, stderr_out (" wparam=%d lparam=%d hwnd=%x frame: ", wParam, (int) lParam, (unsigned int) hwnd); debug_print (frame); + if (message_ == WM_WINDOWPOSCHANGED || + message_ == WM_WINDOWPOSCHANGING) + { + WINDOWPOS *wp = (WINDOWPOS *) lParam; + stderr_out(" WINDOWPOS: x=%d, y=%d, h=%d, w=%d\n", + wp->x, wp->y, wp->cx, wp->cy); + } + else if (message_ == WM_MOVE) + { + int x = (int)(short) LOWORD(lParam); /* horizontal position */ + int y = (int)(short) HIWORD(lParam); /* vertical position */ + stderr_out(" MOVE: x=%d, y=%d\n", x, y); + } + else if (message_ == WM_SIZE) + { + int w = (int)(short) LOWORD(lParam); /* width */ + int h = (int)(short) HIWORD(lParam); /* height */ + stderr_out(" SIZE: w=%d, h=%d\n", w, h); + } } else stderr_out ("\n"); diff --git a/src/event-stream.c b/src/event-stream.c index 3585a3b..35b0877 100644 --- a/src/event-stream.c +++ b/src/event-stream.c @@ -701,7 +701,8 @@ reset_key_echo (struct command_builder *command_builder, /* This function can GC */ struct frame *f = selected_frame (); - command_builder->echo_buf_index = -1; + if (command_builder) + command_builder->echo_buf_index = -1; if (remove_echo_area_echo) clear_echo_area (f, Qcommand, 0); @@ -2203,8 +2204,6 @@ The returned event will be one of the following types: switch (XEVENT_TYPE (event)) { - default: - goto RETURN; case button_release_event: case misc_user_event: /* don't echo menu accelerator keys */ @@ -2214,6 +2213,8 @@ The returned event will be one of the following types: goto STORE_AND_EXECUTE_KEY; case key_press_event: /* any key input can trigger autosave */ break; + default: + goto RETURN; } maybe_do_auto_save (); @@ -3504,16 +3505,24 @@ Set the maximum number of events to be stored internally. void reset_this_command_keys (Lisp_Object console, int clear_echo_area_p) { - struct command_builder *command_builder = - XCOMMAND_BUILDER (XCONSOLE (console)->command_builder); - - reset_key_echo (command_builder, clear_echo_area_p); + if (!NILP (console)) + { + /* console is nil if we just deleted the console as a result of C-x 5 + 0. Unfortunately things are currently in a messy situation where + some stuff is console-local and other stuff isn't, so we need to + do everything that's not console-local. */ + struct command_builder *command_builder = + XCOMMAND_BUILDER (XCONSOLE (console)->command_builder); + + reset_key_echo (command_builder, clear_echo_area_p); + reset_current_events (command_builder); + } + else + reset_key_echo (0, clear_echo_area_p); deallocate_event_chain (Vthis_command_keys); Vthis_command_keys = Qnil; Vthis_command_keys_tail = Qnil; - - reset_current_events (command_builder); } static void @@ -3917,7 +3926,8 @@ execute_command_event (struct command_builder *command_builder, post_command_hook (); - if (!NILP (con->prefix_arg)) + /* Console might have been deleted by command */ + if (CONSOLE_LIVE_P (con) && !NILP (con->prefix_arg)) { /* Commands that set the prefix arg don't update last-command, don't reset the echoing state, and don't go into keyboard macros unless @@ -3946,7 +3956,8 @@ execute_command_event (struct command_builder *command_builder, so we don't either */ if (!is_scrollbar_event (event)) - reset_this_command_keys (make_console (con), 0); + reset_this_command_keys (CONSOLE_LIVE_P (con) ? make_console (con) + : Qnil, 0); } } diff --git a/src/extents.c b/src/extents.c index 6791f85..5b00161 100644 --- a/src/extents.c +++ b/src/extents.c @@ -2753,9 +2753,10 @@ invisible_ellipsis_p (REGISTER Lisp_Object propval, Lisp_Object list) face_index extent_fragment_update (struct window *w, struct extent_fragment *ef, - Bytind pos) + Bytind pos, Lisp_Object last_glyph) { int i; + int seen_glyph = NILP (last_glyph) ? 1 : 0; Extent_List *sel = buffer_or_string_stack_of_extents_force (ef->object)->extents; EXTENT lhe = 0; @@ -2796,11 +2797,15 @@ extent_fragment_update (struct window *w, struct extent_fragment *ef, if (extent_start (e) == mempos && !NILP (extent_begin_glyph (e))) { Lisp_Object glyph = extent_begin_glyph (e); - struct glyph_block gb; - - gb.glyph = glyph; - XSETEXTENT (gb.extent, e); - Dynarr_add (ef->begin_glyphs, gb); + if (seen_glyph) { + struct glyph_block gb; + + gb.glyph = glyph; + XSETEXTENT (gb.extent, e); + Dynarr_add (ef->begin_glyphs, gb); + } + else if (EQ (glyph, last_glyph)) + seen_glyph = 1; } } @@ -2811,11 +2816,15 @@ extent_fragment_update (struct window *w, struct extent_fragment *ef, if (extent_end (e) == mempos && !NILP (extent_end_glyph (e))) { Lisp_Object glyph = extent_end_glyph (e); - struct glyph_block gb; + if (seen_glyph) { + struct glyph_block gb; - gb.glyph = glyph; - XSETEXTENT (gb.extent, e); - Dynarr_add (ef->end_glyphs, gb); + gb.glyph = glyph; + XSETEXTENT (gb.extent, e); + Dynarr_add (ef->end_glyphs, gb); + } + else if (EQ (glyph, last_glyph)) + seen_glyph = 1; } } @@ -2950,9 +2959,9 @@ print_extent_1 (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag) if (extent_detached_p (ext)) strcpy (bp, "detached"); else - sprintf (bp, "%ld, %ld", - (long) XINT (Fextent_start_position (obj)), - (long) XINT (Fextent_end_position (obj))); + sprintf (bp, "%d, %d", + XINT (Fextent_start_position (obj)), + XINT (Fextent_end_position (obj))); bp += strlen (bp); *bp++ = (extent_end_open_p (anc) ? ')': ']'); if (!NILP (extent_end_glyph (anc))) *bp++ = '*'; diff --git a/src/extents.h b/src/extents.h index 4b40311..e8d6707 100644 --- a/src/extents.h +++ b/src/extents.h @@ -328,7 +328,7 @@ struct extent_fragment *extent_fragment_new (Lisp_Object buffer_or_string, face_index extent_fragment_update (struct window *w, struct extent_fragment *ef, /* Note this is in Bytinds */ - Bytind pos); + Bytind pos, Lisp_Object last_glyph); void extent_fragment_delete (struct extent_fragment *ef); diff --git a/src/fileio.c b/src/fileio.c index d9a6dec..ff19f3e 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -1335,7 +1335,23 @@ No component of the resulting pathname will be a symbolic link, as TO_EXTERNAL_FORMAT (LISP_STRING, expanded_name, ALLOCA, (path, elen), Qfile_name); + +#if defined(WIN32_FILENAMES) && defined(CYGWIN) + /* When using win32 filenames in cygwin we want file-truename to + detect that c:/windows == /windows for example. */ + if ((IS_DIRECTORY_SEP (path[0]) + && (elen == 1 || !IS_DIRECTORY_SEP (path[1]))) + || (isalpha (path[0]) + && (elen == 1 || !IS_DEVICE_SEP (path[1])))) { + int ltwff2 = + cygwin_posix_to_win32_path_list_buf_size (path); + p = (Bufbyte *) alloca (ltwff2); + cygwin_posix_to_win32_path_list (path, p); + path = p; + } +#endif p = path; + if (elen > MAXPATHLEN) goto toolong; diff --git a/src/filelock.c b/src/filelock.c index 531000e..3730af2 100644 --- a/src/filelock.c +++ b/src/filelock.c @@ -225,7 +225,7 @@ current_lock_owner (lock_info_type *owner, char *lfname) if (STRINGP (Fsystem_name ()) && strcmp (owner->host, (char *) XSTRING_DATA (Fsystem_name ())) == 0) { - if (owner->pid == getpid ()) + if (owner->pid == (unsigned long) getpid ()) ret = 2; /* We own it. */ else if (owner->pid > 0 && (kill (owner->pid, 0) >= 0 || errno == EPERM)) diff --git a/src/fns.c b/src/fns.c index 2711ed1..46241f0 100644 --- a/src/fns.c +++ b/src/fns.c @@ -74,7 +74,7 @@ print_bit_vector (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag) size_t last = len; if (INTP (Vprint_length)) - last = min (len, XINT (Vprint_length)); + last = min ((EMACS_INT) len, XINT (Vprint_length)); write_c_string ("#*", printcharfun); for (i = 0; i < last; i++) { diff --git a/src/font-lock.c b/src/font-lock.c index a538647..4744dd3 100644 --- a/src/font-lock.c +++ b/src/font-lock.c @@ -406,12 +406,14 @@ setup_context_cache (struct buffer *buf, Bufpos pt) comment_style_b : \ comment_style_none) +/* GCC 2.95.4 seems to need the cast */ #define SINGLE_SYNTAX_STYLE(c) \ + ((enum comment_style) \ (SYNTAX_CODE_MATCHES_1CHAR_P (c, SYNTAX_COMMENT_STYLE_A) ? \ comment_style_a : \ SYNTAX_CODE_MATCHES_1CHAR_P (c, SYNTAX_COMMENT_STYLE_B) ? \ comment_style_b : \ - comment_style_none) + comment_style_none)) /* Set up context_cache for position PT in BUF. */ diff --git a/src/frame-msw.c b/src/frame-msw.c index d66f6b7..37c596e 100644 --- a/src/frame-msw.c +++ b/src/frame-msw.c @@ -827,36 +827,38 @@ msprinter_init_frame_3 (struct frame *f) { DOCINFO di; struct device *device = XDEVICE (FRAME_DEVICE (f)); - HDC hdc; int frame_left, frame_top, frame_width, frame_height; /* DC might be recreated in msprinter_apply_devmode, so do not initialize until now */ - hdc = DEVICE_MSPRINTER_HDC (device); - - /* Compute geometry properties */ - frame_left = (MulDiv (GetDeviceCaps (hdc, LOGPIXELSX), - FRAME_MSPRINTER_LEFT_MARGIN(f), 1440) - - GetDeviceCaps (hdc, PHYSICALOFFSETX)); + HDC hdc = DEVICE_MSPRINTER_HDC (device); + int logpixelsx = GetDeviceCaps (hdc, LOGPIXELSX); + int logpixelsy = GetDeviceCaps (hdc, LOGPIXELSY); + int physicaloffsetx = GetDeviceCaps (hdc, PHYSICALOFFSETX); + int physicaloffsety = GetDeviceCaps (hdc, PHYSICALOFFSETY); + int physicalheight = GetDeviceCaps (hdc, PHYSICALHEIGHT); + int physicalwidth = GetDeviceCaps (hdc, PHYSICALWIDTH); + + /* Compute geometry properties. + Conversion is from TWIPS -> inches -> pixels. */ + frame_left = MulDiv (logpixelsx, FRAME_MSPRINTER_LEFT_MARGIN(f), 1440) + - physicaloffsetx; if (FRAME_MSPRINTER_CHARWIDTH(f) > 0) { char_to_real_pixel_size (f, FRAME_MSPRINTER_CHARWIDTH(f), 0, &frame_width, NULL); FRAME_MSPRINTER_RIGHT_MARGIN(f) = - MulDiv (GetDeviceCaps (hdc, PHYSICALWIDTH) - - (frame_left + frame_width), 1440, - GetDeviceCaps (hdc, LOGPIXELSX)); + MulDiv (physicalwidth - (frame_left + frame_width), 1440, + logpixelsx); } else - frame_width = (GetDeviceCaps (hdc, PHYSICALWIDTH) - - frame_left - - MulDiv (GetDeviceCaps (hdc, LOGPIXELSX), - FRAME_MSPRINTER_RIGHT_MARGIN(f), 1440)); + frame_width = physicalwidth - frame_left + - MulDiv (logpixelsx, FRAME_MSPRINTER_RIGHT_MARGIN(f), 1440) + - physicaloffsetx; - frame_top = (MulDiv (GetDeviceCaps (hdc, LOGPIXELSY), - FRAME_MSPRINTER_TOP_MARGIN(f), 1440) - - GetDeviceCaps (hdc, PHYSICALOFFSETY)); + frame_top = MulDiv (logpixelsy, FRAME_MSPRINTER_TOP_MARGIN(f), 1440) + - physicaloffsety; if (FRAME_MSPRINTER_CHARHEIGHT(f) > 0) { @@ -864,15 +866,13 @@ msprinter_init_frame_3 (struct frame *f) NULL, &frame_height); FRAME_MSPRINTER_BOTTOM_MARGIN(f) = - MulDiv (GetDeviceCaps (hdc, PHYSICALHEIGHT) - - (frame_top + frame_height), 1440, - GetDeviceCaps (hdc, LOGPIXELSY)); + MulDiv (physicalheight - (frame_top + frame_height), 1440, + logpixelsy); } else - frame_height = (GetDeviceCaps (hdc, PHYSICALHEIGHT) - - frame_top - - MulDiv (GetDeviceCaps (hdc, LOGPIXELSY), - FRAME_MSPRINTER_BOTTOM_MARGIN(f), 1440)); + frame_height = physicalheight - frame_top + - MulDiv (logpixelsy, FRAME_MSPRINTER_BOTTOM_MARGIN(f), 1440) + - physicaloffsety; /* Geometry sanity checks */ if (!frame_pixsize_valid_p (f, frame_width, frame_height)) diff --git a/src/frame.h b/src/frame.h index 377965f..0a341c5 100644 --- a/src/frame.h +++ b/src/frame.h @@ -110,13 +110,13 @@ struct frame /* Size of toolbars as seen by redisplay. This is used to determine whether to re-layout windows by a call to change_frame_size early in redisplay_frame. */ - unsigned int current_toolbar_size[4]; + int current_toolbar_size[4]; #endif /* Size of gutters as seen by redisplay. This is used to determine whether to re-layout windows by a call to change_frame_size early in redisplay_frame. */ - unsigned int current_gutter_bounds[4]; + int current_gutter_bounds[4]; /* Dynamic arrays of display lines for gutters */ display_line_dynarr *current_display_lines[4]; @@ -188,6 +188,8 @@ Value : Emacs meaning :f-v-p : X meaning unsigned int extents_changed :1; unsigned int faces_changed :1; unsigned int frame_changed :1; + unsigned int frame_layout_changed :1; /* The layout of frame + elements has changed. */ unsigned int subwindows_changed :1; unsigned int subwindows_state_changed :1; unsigned int glyphs_changed :1; @@ -457,6 +459,19 @@ extern int frame_changed; frame_changed = 1; \ } while (0) +#define MARK_FRAME_LAYOUT_CHANGED(f) do { \ + struct frame *mfc_f = (f); \ + mfc_f->frame_layout_changed = 1; \ + mfc_f->modiff++; \ + if (!NILP (mfc_f->device)) \ + { \ + struct device *mfc_d = XDEVICE (mfc_f->device); \ + MARK_DEVICE_FRAME_LAYOUT_CHANGED (mfc_d); \ + } \ + else \ + frame_layout_changed = 1; \ +} while (0) + #define MARK_FRAME_WINDOWS_CHANGED(f) do { \ struct frame *mfwc_f = (f); \ mfwc_f->windows_changed = 1; \ diff --git a/src/glyphs-eimage.c b/src/glyphs-eimage.c index 1b89d5e..3308449 100644 --- a/src/glyphs-eimage.c +++ b/src/glyphs-eimage.c @@ -234,7 +234,7 @@ our_skip_input_data (j_decompress_ptr cinfo, long num_bytes) if (!src) { return; - } else if (num_bytes > src->bytes_in_buffer) + } else if (num_bytes > (long) src->bytes_in_buffer) { ERREXIT(cinfo, JERR_INPUT_EOF); /*NOTREACHED*/ @@ -444,7 +444,7 @@ jpeg_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, */ while (cinfo.output_scanline < cinfo.output_height) { - int i; + unsigned int i; /* jpeg_read_scanlines expects an array of pointers to scanlines. * Here the array is only one element long, but you could ask for @@ -568,7 +568,7 @@ gif_read_from_memory(GifByteType *buf, size_t size, VoidPtr data) { gif_memory_storage *mem = (gif_memory_storage*)data; - if (size > (mem->len - mem->index)) + if ((ssize_t) size > (mem->len - mem->index)) return (size_t) -1; memcpy(buf, mem->bytes + mem->index, size); mem->index = mem->index + size; @@ -785,7 +785,7 @@ png_read_from_memory(png_structp png_ptr, png_bytep data, struct png_memory_storage *tbr = (struct png_memory_storage *) png_get_io_ptr (png_ptr); - if (length > (tbr->len - tbr->index)) + if ((ssize_t) length > (tbr->len - tbr->index)) png_error (png_ptr, (png_const_charp) "Read Error"); memcpy (data,tbr->bytes + tbr->index,length); tbr->index = tbr->index + length; @@ -1277,7 +1277,7 @@ tiff_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, raster = (uint32*) _TIFFmalloc (width * height * sizeof (uint32)); if (raster != NULL) { - int i,j; + unsigned int i,j; uint32 *rp; ep = unwind.eimage; rp = raster; diff --git a/src/glyphs-msw.c b/src/glyphs-msw.c index 07a762e..883ab53 100644 --- a/src/glyphs-msw.c +++ b/src/glyphs-msw.c @@ -2276,6 +2276,16 @@ mswindows_map_subwindow (Lisp_Image_Instance *p, int x, int y, 0, 0, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW | SWP_NOCOPYBITS | SWP_NOACTIVATE); + + /* Doing this once does not seem to be enough, for instance when + mapping the search dialog this gets called four times. If we + only set on the first time through then the subwindow never + gets focus as intended. However, doing this everytime doesn't + seem so bad, after all we only need to redo this after the + focus changes - and if that happens resetting the initial + focus doesn't seem so bad. */ + if (IMAGE_INSTANCE_WANTS_INITIAL_FOCUS (p)) + SetFocus (WIDGET_INSTANCE_MSWINDOWS_HANDLE (p)); #endif } } @@ -2588,11 +2598,6 @@ mswindows_widget_instantiate (Lisp_Object image_instance, Lisp_Object instantiat SendMessage (wnd, WM_SETFONT, (WPARAM) mswindows_widget_hfont (ii, domain), MAKELPARAM (TRUE, 0)); -#if 0 - /* #### doesn't work. need to investigate more closely. */ - if (IMAGE_INSTANCE_WANTS_INITIAL_FOCUS (ii)) - SetFocus (wnd); -#endif } /* Instantiate a native layout widget. */ diff --git a/src/glyphs-x.c b/src/glyphs-x.c index ae7d3be..5a71012 100644 --- a/src/glyphs-x.c +++ b/src/glyphs-x.c @@ -231,7 +231,8 @@ convert_EImage_to_XImage (Lisp_Object device, int width, int height, if (vis->class == PseudoColor) { unsigned long pixarray[256]; - int pixcount, n; + int pixcount; + unsigned int n; /* use our quantize table to allocate the colors */ pixcount = 32; *pixtbl = xnew_array (unsigned long, pixcount); @@ -432,7 +433,7 @@ x_finalize_image_instance (Lisp_Image_Instance *p) } else { - int i; + unsigned int i; if (IMAGE_INSTANCE_PIXMAP_TIMEOUT (p)) disable_glyph_animated_timeout (IMAGE_INSTANCE_PIXMAP_TIMEOUT (p)); diff --git a/src/glyphs.c b/src/glyphs.c index 892f02e..92fe5a8 100644 --- a/src/glyphs.c +++ b/src/glyphs.c @@ -2270,6 +2270,8 @@ query_string_geometry (Lisp_Object string, Lisp_Object face, struct face_cachel *cachel; Lisp_Object frame = DOMAIN_FRAME (domain); + CHECK_STRING (string); + /* Compute height */ if (height) { @@ -4421,9 +4423,9 @@ check_for_ignored_expose (struct frame* f, int x, int y, int width, int height) we have to check for overlaps. Being conservative, we will check for exposures wholly contained by the subwindow - this might give us what we want.*/ - if (ei->x <= x && ei->y <= y - && ei->x + ei->width >= x + width - && ei->y + ei->height >= y + height) + if (ei->x <= (unsigned) x && ei->y <= (unsigned) y + && ei->x + ei->width >= (unsigned) (x + width) + && ei->y + ei->height >= (unsigned) (y + height)) { #ifdef DEBUG_WIDGETS stderr_out ("ignored %d+%d, %dx%d for exposure %d+%d, %dx%d\n", @@ -4491,15 +4493,15 @@ int find_matching_subwindow (struct frame* f, int x, int y, int width, int heigh if (IMAGE_INSTANCE_SUBWINDOW_DISPLAYEDP (ii) && - IMAGE_INSTANCE_DISPLAY_X (ii) <= x + IMAGE_INSTANCE_DISPLAY_X (ii) <= (unsigned) x && - IMAGE_INSTANCE_DISPLAY_Y (ii) <= y + IMAGE_INSTANCE_DISPLAY_Y (ii) <= (unsigned) y && IMAGE_INSTANCE_DISPLAY_X (ii) - + IMAGE_INSTANCE_DISPLAY_WIDTH (ii) >= x + width + + IMAGE_INSTANCE_DISPLAY_WIDTH (ii) >= (unsigned) (x + width) && IMAGE_INSTANCE_DISPLAY_Y (ii) - + IMAGE_INSTANCE_DISPLAY_HEIGHT (ii) >= y + height) + + IMAGE_INSTANCE_DISPLAY_HEIGHT (ii) >= (unsigned) (y + height)) { return 1; } diff --git a/src/gutter.c b/src/gutter.c index 0cb9b94..55dc0f8 100644 --- a/src/gutter.c +++ b/src/gutter.c @@ -585,6 +585,7 @@ update_gutter_geometry (struct frame *f, enum gutter_pos pos) pixel_to_char_size (f, FRAME_PIXWIDTH (f), FRAME_PIXHEIGHT (f), &width, &height); change_frame_size (f, height, width, 0); + MARK_FRAME_LAYOUT_CHANGED (f); } /* Mark sizes as up-to-date. */ @@ -594,7 +595,9 @@ update_gutter_geometry (struct frame *f, enum gutter_pos pos) void update_frame_gutter_geometry (struct frame *f) { - if (f->gutter_changed || f->windows_structure_changed) + if (f->gutter_changed + || f->frame_layout_changed + || f->windows_structure_changed) { enum gutter_pos pos; @@ -616,7 +619,7 @@ update_frame_gutters (struct frame *f) f->gutter_changed || f->glyphs_changed || f->size_changed || f->subwindows_changed || f->windows_changed || f->windows_structure_changed || - f->extents_changed) + f->extents_changed || f->frame_layout_changed) { enum gutter_pos pos; diff --git a/src/imgproc.c b/src/imgproc.c index cbe5d5e..c8bec40 100644 --- a/src/imgproc.c +++ b/src/imgproc.c @@ -50,7 +50,7 @@ get_histogram(quant_table *qt, unsigned char *pic, { register unsigned char *inptr; register int red, green, blue; - register unsigned int j, i; + register int j, i; box->rmin = box->gmin = box->bmin = 999; box->rmax = box->gmax = box->bmax = -1; diff --git a/src/keymap.c b/src/keymap.c index cc18a84..2c91886 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -1015,10 +1015,8 @@ get_keymap (Lisp_Object object, int errorp, int autoload) && EQ (XCAR (tem), Qautoload) && EQ (Fcar (Fcdr (Fcdr (Fcdr (Fcdr (tem))))), Qkeymap)) { - struct gcpro gcpro1, gcpro2; - GCPRO2 (tem, object); + /* do_autoload GCPROs both arguments */ do_autoload (tem, object); - UNGCPRO; } else if (errorp) object = wrong_type_argument (Qkeymapp, object); diff --git a/src/lisp.h b/src/lisp.h index c2a181c..45b64ed 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -71,7 +71,7 @@ void Dynarr_free (void *d); #define Dynarr_at(d, pos) ((d)->base[pos]) #define Dynarr_atp(d, pos) (&Dynarr_at (d, pos)) #define Dynarr_begin(d) Dynarr_atp (d, 0) -#define Dynarr_end(d) Dynarr_atp (d, Dynarr_length (d)) +#define Dynarr_end(d) Dynarr_atp (d, Dynarr_length (d) - 1) #define Dynarr_sizeof(d) ((d)->cur * (d)->elsize) #define Dynarr_length(d) ((d)->cur) #define Dynarr_largest(d) ((d)->largest) @@ -136,7 +136,7 @@ char *xstrdup (const char *); least NEEDED_SIZE objects. The reallocing is done by doubling, which ensures constant amortized time per element. */ #define DO_REALLOC(basevar, sizevar, needed_size, type) do { \ - size_t do_realloc_needed_size = (needed_size); \ + EMACS_INT do_realloc_needed_size = (needed_size); \ if ((sizevar) < do_realloc_needed_size) \ { \ if ((sizevar) < 32) \ @@ -1277,7 +1277,7 @@ struct Lisp_Bit_Vector { struct lrecord_header lheader; Lisp_Object next; - size_t size; + EMACS_INT size; unsigned long bits[1]; }; typedef struct Lisp_Bit_Vector Lisp_Bit_Vector; diff --git a/src/lread.c b/src/lread.c index 031efa6..3e71469 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1186,7 +1186,7 @@ can be used if the internal tables grow too large, or when dumping. MODE nonnegative means don't open the files, just look for one for which access(file,MODE) succeeds. In this case, - returns 1 on success. + returns a nonnegative value on success. On failure, returns -1. If STOREPTR is nonzero, it points to a slot where the name of the file actually found should be stored as a Lisp string. diff --git a/src/menubar-msw.c b/src/menubar-msw.c index 5e0625a..eca204b 100644 --- a/src/menubar-msw.c +++ b/src/menubar-msw.c @@ -821,8 +821,7 @@ mswindows_handle_wm_command (struct frame *f, WORD id) breaks customize because the misc_event gets eval'ed in some circumstances. Don't change it back unless you can fix the customize problem also.*/ - enqueue_misc_user_event (frame, fn, arg); - mswindows_enqueue_magic_event (NULL, XM_BUMPQUEUE); + mswindows_enqueue_misc_user_event (frame, fn, arg); UNGCPRO; /* data */ return Qt; @@ -916,6 +915,8 @@ mswindows_popup_menu (Lisp_Object menu_desc, Lisp_Object event) eev = NULL; } + popup_up_p++; + /* Default is to put the menu at the point (10, 10) in frame */ if (eev) { @@ -931,6 +932,8 @@ mswindows_popup_menu (Lisp_Object menu_desc, Lisp_Object event) CHECK_CONS (menu_desc); CHECK_STRING (XCAR (menu_desc)); + menu_cleanup (f); + current_menudesc = menu_desc; current_hash_table = make_lisp_hash_table (10, HASH_TABLE_NON_WEAK, HASH_TABLE_EQUAL); @@ -949,7 +952,15 @@ mswindows_popup_menu (Lisp_Object menu_desc, Lisp_Object event) DestroyMenu (menu); - /* Signal a signal if caught by Track...() modal loop */ + /* A WM_COMMAND is not issued until TrackPopupMenu returns. This + makes setting popup_up_p fairly pointless since we cannot keep + the menu up and dispatch events. Furthermore, we seem to have + little control over what happens to the menu when we click. */ + popup_up_p--; + + /* Signal a signal if caught by Track...() modal loop. */ + /* I think this is pointless, the code hasn't actually put us in a + modal loop at this time -- andyp. */ mswindows_unmodalize_signal_maybe (); /* This is probably the only real reason for failure */ diff --git a/src/nas.c b/src/nas.c index bc473aa..7fe1295 100644 --- a/src/nas.c +++ b/src/nas.c @@ -884,7 +884,7 @@ WaveOpenDataForReading (const char *data, fileSize = PAD2(ck.ckSize) - sizeof(RIFF_FOURCC); - while (fileSize >= sizeof(RiffChunk)) + while (fileSize >= (AuInt32) sizeof(RiffChunk)) { if (!readChunk(&ck)) Err(); diff --git a/src/nt.c b/src/nt.c index 2615d67..af74f84 100644 --- a/src/nt.c +++ b/src/nt.c @@ -506,7 +506,7 @@ request_sigio (void) } #endif /* 0 */ -#define REG_ROOT "SOFTWARE\\GNU\\XEmacs" +#define REG_ROOT "SOFTWARE\\XEmacs\\XEmacs" LPBYTE nt_get_resource (char *key, LPDWORD lpdwtype) @@ -1474,6 +1474,7 @@ mswindows_stat (const char * path, struct stat * buf) int permission; int len; int rootdir = FALSE; + int errm; if (path == NULL || buf == NULL) { @@ -1496,13 +1497,16 @@ mswindows_stat (const char * path, struct stat * buf) rootdir = (path >= name + len - 1 && (IS_DIRECTORY_SEP (*path) || *path == 0)); name = strcpy ((char *)alloca (len + 2), name); - + errm = SetErrorMode (SEM_FAILCRITICALERRORS + | SEM_NOOPENFILEERRORBOX); if (rootdir) { if (!IS_DIRECTORY_SEP (name[len-1])) strcat (name, "\\"); + if (GetDriveType (name) < 2) { + SetErrorMode (errm); errno = ENOENT; return -1; } @@ -1532,14 +1536,15 @@ mswindows_stat (const char * path, struct stat * buf) } else { - fh = FindFirstFile (name, &wfd); - if (fh == INVALID_HANDLE_VALUE) - { - errno = ENOENT; - return -1; + fh = FindFirstFile (name, &wfd); + if (fh == INVALID_HANDLE_VALUE) + { + SetErrorMode (errm); + errno = ENOENT; + return -1; + } + FindClose (fh); } - FindClose (fh); - } } if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) @@ -1585,6 +1590,7 @@ mswindows_stat (const char * path, struct stat * buf) } else { + SetErrorMode (errm); errno = EACCES; return -1; } @@ -1597,6 +1603,8 @@ mswindows_stat (const char * path, struct stat * buf) fake_inode = 0; } + SetErrorMode (errm); + #if 0 /* Not sure if there is any point in this. */ if (!NILP (Vwin32_generate_fake_inodes)) diff --git a/src/process-nt.c b/src/process-nt.c index 2cf4b68..0ce9c25 100644 --- a/src/process-nt.c +++ b/src/process-nt.c @@ -642,6 +642,9 @@ static void nt_finalize_process_data (Lisp_Process *p, int for_disksave) { assert (!for_disksave); + /* If it's still in the list of processes we are waiting on delete + it. */ + mswindows_unwait_process (p); if (NT_DATA (p)->h_process) CloseHandle (NT_DATA (p)->h_process); } diff --git a/src/process-unix.c b/src/process-unix.c index c0d1989..00bb163 100644 --- a/src/process-unix.c +++ b/src/process-unix.c @@ -1331,12 +1331,15 @@ unix_send_process (Lisp_Object proc, struct lstream* lstream) /* #### There is controversy over whether this might cause fd leakage */ /* my tests say no. -slb */ XLSTREAM (p->pipe_outstream)->flags &= ~LSTREAM_FL_IS_OPEN; +#ifdef FILE_CODING + XLSTREAM (p->coding_outstream)->flags &= ~LSTREAM_FL_IS_OPEN; +#endif p->status_symbol = Qexit; p->exit_code = 256; /* #### SIGPIPE ??? */ p->core_dumped = 0; p->tick++; process_tick++; - deactivate_process (*((Lisp_Object *) (&vol_proc))); + deactivate_process (vol_proc); invalid_operation ("SIGPIPE raised on process; closed it", p->name); } diff --git a/src/process.c b/src/process.c index f555019..bd1270a 100644 --- a/src/process.c +++ b/src/process.c @@ -573,6 +573,7 @@ INCODE and OUTCODE specify the coding-system objects used in input/output /* !!#### This function has not been Mule-ized */ Lisp_Object buffer, name, program, process, current_dir; Lisp_Object tem; + int i; int speccount = specpdl_depth (); struct gcpro gcpro1, gcpro2, gcpro3; @@ -589,6 +590,8 @@ INCODE and OUTCODE specify the coding-system objects used in input/output CHECK_STRING (name); CHECK_STRING (program); + for (i = 3; i < nargs; ++i) + CHECK_STRING (args[i]); /* Make sure that the child will be able to chdir to the current buffer's current directory, or its unhandled equivalent. We diff --git a/src/ralloc.c b/src/ralloc.c index 2938971..623d6a4 100644 --- a/src/ralloc.c +++ b/src/ralloc.c @@ -103,7 +103,7 @@ static POINTER virtual_break_value; static POINTER break_value; /* This is the size of a page. We round memory requests to this boundary. */ -static int page_size; +static size_t page_size; /* Whenever we get memory from the system, get this many extra bytes. This must be a multiple of page_size. */ @@ -889,7 +889,7 @@ r_alloc_sbrk (ptrdiff_t size) } else /* size < 0 */ { - size_t excess = (char *)first_heap->bloc_start + EMACS_INT excess = (char *)first_heap->bloc_start - ((char *)virtual_break_value + size); address = virtual_break_value; @@ -2022,6 +2022,10 @@ init_ralloc (void) if (r_alloc_initialized > 1) return; /* used to return 1 */ +#ifdef PDUMP + /* Under pdump, we need to activate ralloc on the first go. */ + ++r_alloc_initialized; +#endif if (++r_alloc_initialized == 1) return; /* used to return 1 */ diff --git a/src/realpath.c b/src/realpath.c index c962aac..da05446 100644 --- a/src/realpath.c +++ b/src/realpath.c @@ -40,6 +40,10 @@ Boston, MA 02111-1307, USA. */ #include /* for S_IFLNK */ +#if defined(WIN32_NATIVE) || defined(CYGWIN) +#define WIN32_FILENAMES +#endif + /* First char after start of absolute filename. */ #define ABS_START(name) (name + ABS_LENGTH (name)) @@ -51,8 +55,13 @@ static int win32_abs_start (const char * name); # define system_readlink win32_readlink #else # ifdef CYGWIN -# define ABS_LENGTH(name) (IS_DIRECTORY_SEP (*name) ? \ - (IS_DIRECTORY_SEP (name[1]) ? 2 : 1) : 0) +# ifdef WIN32_FILENAMES +# define ABS_LENGTH(name) (win32_abs_start (name)) +static int win32_abs_start (const char * name); +# else +# define ABS_LENGTH(name) (IS_DIRECTORY_SEP (*name) ? \ + (IS_DIRECTORY_SEP (name[1]) ? 2 : 1) : 0) +# endif # define system_readlink cygwin_readlink # else # define ABS_LENGTH(name) (IS_DIRECTORY_SEP (*name) ? 1 : 0) @@ -149,7 +158,7 @@ cygwin_readlink (const char * name, char * buf, int size) } #endif /* CYGWIN */ -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES #ifndef ELOOP #define ELOOP 10062 /* = WSAELOOP in winsock.h */ #endif @@ -203,17 +212,30 @@ xrealpath (const char *path, char resolved_path []) path = copy_path; max_path = copy_path + PATH_MAX - 2; -#ifdef WIN32_NATIVE + if (0) + ; +#ifdef WIN32_FILENAMES /* Check for c:/... or //server/... */ - if (abslen == 2 || abslen == 3) + else if (abslen == 3 || abslen == 2) { - strncpy (new_path, path, abslen); /* Make sure drive letter is lowercased. */ - if (abslen == 3) - *new_path = tolower (*new_path); - new_path += abslen; - path += abslen; + if (abslen == 3) { + *new_path = tolower (*path); + new_path++; + path++; + abslen--; + } + /* Coerce directory chars. */ + while (abslen-- > 0) { + if (IS_DIRECTORY_SEP (*path)) + *new_path++ = DIRECTORY_SEP; + else + *new_path++ = *path; + path++; + } } +#endif +#ifdef WIN32_NATIVE /* No drive letter, but a beginning slash? Prepend drive letter. */ else if (abslen == 1) { @@ -222,7 +244,7 @@ xrealpath (const char *path, char resolved_path []) path++; } /* Just a path name, prepend the current directory */ - else + else if (1) { getcwd (new_path, PATH_MAX - 1); new_path += strlen (new_path); @@ -231,7 +253,7 @@ xrealpath (const char *path, char resolved_path []) } #else /* If it's a relative pathname use getcwd for starters. */ - if (abslen == 0) + else if (abslen == 0) { getcwd (new_path, PATH_MAX - 1); new_path += strlen (new_path); diff --git a/src/redisplay-gtk.c b/src/redisplay-gtk.c index 967cf89..119109e 100644 --- a/src/redisplay-gtk.c +++ b/src/redisplay-gtk.c @@ -421,8 +421,8 @@ gtk_output_display_block (struct window *w, struct display_line *dl, int block, struct display_box dbox; struct display_glyph_area dga; redisplay_calculate_display_boxes (dl, rb->xpos, rb->object.dglyph.xoffset, - start_pixpos, rb->width, - &dbox, &dga); + rb->object.dglyph.yoffset ,start_pixpos, + rb->width, &dbox, &dga); XSETWINDOW (window, w); instance = glyph_image_instance (rb->object.dglyph.glyph, diff --git a/src/redisplay-msw.c b/src/redisplay-msw.c index fac58f6..62ddceb 100644 --- a/src/redisplay-msw.c +++ b/src/redisplay-msw.c @@ -309,6 +309,7 @@ mswindows_output_blank (struct window *w, struct display_line *dl, struct display_glyph_area dga; redisplay_calculate_display_boxes (dl, rb->xpos, /*rb->object.dglyph.xoffset*/ 0, + /*rb->object.dglyph.yoffset*/ 0, start_pixpos, rb->width, &db, &dga); /* blank the background in the appropriate color */ @@ -512,7 +513,7 @@ mswindows_output_string (struct window *w, struct display_line *dl, { struct display_box db; struct display_glyph_area dga; - redisplay_calculate_display_boxes (dl, xpos + xoffset, 0, + redisplay_calculate_display_boxes (dl, xpos + xoffset, 0, 0, clip_start, width, &db, &dga); /* blank the background in the appropriate color */ mswindows_update_dc (hdc, @@ -1165,8 +1166,8 @@ mswindows_output_display_block (struct window *w, struct display_line *dl, int b struct display_glyph_area dga; redisplay_calculate_display_boxes (dl, rb->xpos, rb->object.dglyph.xoffset, - start_pixpos, rb->width, - &dbox, &dga); + rb->object.dglyph.yoffset, + start_pixpos, rb->width, &dbox, &dga); XSETWINDOW (window, w); instance = glyph_image_instance (rb->object.dglyph.glyph, diff --git a/src/redisplay-output.c b/src/redisplay-output.c index 00f23a6..5e430fa 100644 --- a/src/redisplay-output.c +++ b/src/redisplay-output.c @@ -230,7 +230,10 @@ compare_runes (struct window *w, struct rune *crb, struct rune *drb) else if (crb->type == RUNE_DGLYPH && (!EQ (crb->object.dglyph.glyph, drb->object.dglyph.glyph) || !EQ (crb->object.dglyph.extent, drb->object.dglyph.extent) || - crb->object.dglyph.xoffset != drb->object.dglyph.xoffset)) + crb->object.dglyph.xoffset != drb->object.dglyph.xoffset || + crb->object.dglyph.yoffset != drb->object.dglyph.yoffset || + crb->object.dglyph.ascent != drb->object.dglyph.ascent || + crb->object.dglyph.descent != drb->object.dglyph.descent)) return 0; /* Only check dirtiness if we know something has changed. */ else if (crb->type == RUNE_DGLYPH && @@ -1174,14 +1177,14 @@ redisplay_unmap_subwindows (struct frame* f, int x, int y, int width, int height if (IMAGE_INSTANCE_SUBWINDOW_DISPLAYEDP (ii) && IMAGE_INSTANCE_DISPLAY_X (ii) - + IMAGE_INSTANCE_DISPLAY_WIDTH (ii) > x + + IMAGE_INSTANCE_DISPLAY_WIDTH (ii) > (unsigned) x && - IMAGE_INSTANCE_DISPLAY_X (ii) < x + width + IMAGE_INSTANCE_DISPLAY_X (ii) < (unsigned) (x + width) && IMAGE_INSTANCE_DISPLAY_Y (ii) - + IMAGE_INSTANCE_DISPLAY_HEIGHT (ii) > y + + IMAGE_INSTANCE_DISPLAY_HEIGHT (ii) > (unsigned) y && - IMAGE_INSTANCE_DISPLAY_Y (ii) < y + height + IMAGE_INSTANCE_DISPLAY_Y (ii) < (unsigned) (y + height) && !EQ (XCAR (rest), ignored_window)) { @@ -1550,10 +1553,24 @@ redisplay_output_pixmap (struct window *w, dga->height = IMAGE_INSTANCE_PIXMAP_HEIGHT (p); dga->width = IMAGE_INSTANCE_PIXMAP_WIDTH (p); +#ifdef DEBUG_REDISPLAY + printf ("redisplay_output_pixmap(request) \ +[%dx%d@%d+%d] in [%dx%d@%d+%d]\n", + db->width, db->height, db->xpos, db->ypos, + dga->width, dga->height, dga->xoffset, dga->yoffset); +#endif + /* This makes the glyph area fit into the display area. */ if (!redisplay_normalize_glyph_area (db, dga)) return; +#ifdef DEBUG_REDISPLAY + printf ("redisplay_output_pixmap(normalized) \ +[%dx%d@%d+%d] in [%dx%d@%d+%d]\n", + db->width, db->height, db->xpos, db->ypos, + dga->width, dga->height, dga->xoffset, dga->yoffset); +#endif + /* Clear the area the pixmap is going into. The pixmap itself will always take care of the full width. We don't want to clear where it is going to go in order to avoid flicker. So, all we have to @@ -1747,7 +1764,28 @@ redisplay_clear_clipped_region (Lisp_Object window, face_index findex, redisplay_normalize_glyph_area redisplay_normalize_display_box - Calculate the visible box for displaying src in dest. + Calculate the visible box for displaying glyphsrc in dest. + + display_box and display_glyph_area are used to represent an area to + displayed and where to display it. Using these two structures all + combinations of clipping and position can be accommodated. + + dest - display_box + + xpos - absolute horizontal position of area. + + ypos - absolute vertical position of area. + + glyphsrc - display_glyph_area + + xoffset - horizontal offset of the glyph, +ve means display + the glyph with the x position offset by xoffset, -ve means + display starting xoffset into the glyph. + + yoffset - vertical offset of the glyph, +ve means display the + glyph with y position offset by yoffset, -ve means display + starting xoffset into the glyph. + ****************************************************************************/ int redisplay_normalize_glyph_area (struct display_box* dest, @@ -1775,28 +1813,51 @@ redisplay_normalize_glyph_area (struct display_box* dest, return 0; } - /* Horizontal offsets. This works because xoffset can be -ve as well as +ve */ + /* Horizontal offsets. This works because xoffset can be -ve as well + as +ve. When we enter this function the glyphsrc width and + height are set to the actual glyph width and height irrespective + of how much can be displayed. We are trying to clip both the + offset into the image and the rightmost bounding box. Its + possible for the glyph width to be much larger than the area we + are displaying into (e.g. a large glyph in a small frame). */ if (dest->xpos + glyphsrc->xoffset + glyphsrc->width > dest->xpos + dest->width) { + /* glyphsrc offset is +ve we are trying to display offset from the + origin (the bounding box contains some space and then the + glyph). At most the width we want to display is dest->width - + glyphsrc->xoffset. */ if (glyphsrc->xoffset > 0) glyphsrc->width = dest->width - glyphsrc->xoffset; + /* glyphsrc offset is -ve we are trying to display hard up + against the dest corner inset into the glyphsrc by + xoffset.*/ + else if (glyphsrc->xoffset < 0) + { + glyphsrc->width += glyphsrc->xoffset; + glyphsrc->width = min (glyphsrc->width, dest->width); + } else glyphsrc->width = dest->width; } - if (glyphsrc->xoffset < 0) + else if (glyphsrc->xoffset < 0) glyphsrc->width += glyphsrc->xoffset; /* Vertical offsets. This works because yoffset can be -ve as well as +ve */ if (dest->ypos + glyphsrc->yoffset + glyphsrc->height > dest->ypos + dest->height) { - if (glyphsrc->yoffset > 0) + if ((glyphsrc->yoffset > 0) && (dest->height > glyphsrc->yoffset)) glyphsrc->height = dest->height - glyphsrc->yoffset; + else if (glyphsrc->yoffset < 0) + { + glyphsrc->height += glyphsrc->yoffset; + glyphsrc->height = min (glyphsrc->height, dest->height); + } else glyphsrc->height = dest->height; } - if (glyphsrc->yoffset < 0) + else if (glyphsrc->yoffset < 0) glyphsrc->height += glyphsrc->yoffset; return 1; @@ -1881,8 +1942,8 @@ redisplay_display_boxes_in_window_p (struct window* w, ****************************************************************************/ int redisplay_calculate_display_boxes (struct display_line *dl, int xpos, - int xoffset, int start_pixpos, int width, - struct display_box* dest, + int xoffset, int yoffset, int start_pixpos, + int width, struct display_box* dest, struct display_glyph_area* src) { dest->xpos = xpos; @@ -1891,10 +1952,11 @@ redisplay_calculate_display_boxes (struct display_line *dl, int xpos, dest->height = DISPLAY_LINE_HEIGHT (dl); src->xoffset = -xoffset; - src->yoffset = -dl->top_clip; src->width = 0; src->height = 0; + src->yoffset = -dl->top_clip + yoffset; + if (start_pixpos >=0 && start_pixpos > xpos) { /* Oops, we're asking for a start outside of the displayable diff --git a/src/redisplay-x.c b/src/redisplay-x.c index f12066a..e218fe5 100644 --- a/src/redisplay-x.c +++ b/src/redisplay-x.c @@ -449,11 +449,12 @@ x_output_display_block (struct window *w, struct display_line *dl, int block, Lisp_Object instance; struct display_box dbox; struct display_glyph_area dga; + redisplay_calculate_display_boxes (dl, rb->xpos, rb->object.dglyph.xoffset, - start_pixpos, rb->width, - &dbox, &dga); + rb->object.dglyph.yoffset, start_pixpos, + rb->width, &dbox, &dga); - XSETWINDOW (window, w); + XSETWINDOW (window, w); instance = glyph_image_instance (rb->object.dglyph.glyph, window, ERROR_ME_NOT, 1); findex = rb->findex; @@ -981,7 +982,8 @@ x_output_string (struct window *w, struct display_line *dl, /* We draw underlines in the same color as the text. */ if (cachel->underline) { - unsigned long upos, uthick; + long upos; + long uthick; XFontStruct *xfont; xfont = FONT_INSTANCE_X_FONT (XFONT_INSTANCE (font)); diff --git a/src/redisplay.c b/src/redisplay.c index 6a11ddc..04ed83f 100644 --- a/src/redisplay.c +++ b/src/redisplay.c @@ -147,9 +147,9 @@ typedef struct position_redisplay_data_type to be skipped before anything is displayed. */ Bytind bi_start_col_enabled; int start_col_xoffset; /* Number of pixels that still need to - be skipped. This is used for - horizontal scrolling of glyphs, where we want - to be able to scroll over part of the glyph. */ + be skipped. This is used for + horizontal scrolling of glyphs, where we want + to be able to scroll over part of the glyph. */ int hscroll_glyph_width_adjust; /* how much the width of the hscroll glyph differs from space_width (w). @@ -163,18 +163,20 @@ typedef struct position_redisplay_data_type struct extent_fragment *ef; face_index findex; - /* The height of a pixmap may either be predetermined if the user - has set a baseline value, or it may be dependent on whatever the - line ascent and descent values end up being, based just on font - information. In the first case we can immediately update the - values, thus their inclusion here. In the last case we cannot - determine the actual contribution to the line height until we - have finished laying out all text on the line. Thus we propagate - the max height of such pixmaps and do a final calculation after - all text has been added to the line. */ + /* The height of a pixmap may either be predetermined if the user has set a + baseline value, or it may be dependent on whatever the line ascent and + descent values end up being, based just on font and pixmap-ascent + information. In the first case we can immediately update the values, thus + their inclusion here. In the last case we cannot determine the actual + contribution to the line height until we have finished laying out all text + on the line. Thus we propagate the max height of such pixmaps and do a + final calculation (in calculate_baseline()) after all text has been added + to the line. */ int new_ascent; int new_descent; int max_pixmap_height; + int need_baseline_computation; + int end_glyph_width; /* Well, it is the kitchen sink after all ... */ Lisp_Object result_str; /* String where we put the result of generating a formatted string in the modeline. */ @@ -192,15 +194,24 @@ enum prop_type PROP_STRING, PROP_CHAR, PROP_MINIBUF_PROMPT, - PROP_BLANK + PROP_BLANK, + PROP_GLYPH }; /* Data that should be propagated to the next line. Either a single - Emchar or a string of Bufbyte's. + Emchar, a string of Bufbyte's or a glyph. The actual data that is propagated ends up as a Dynarr of these blocks. + prop_blocks are used to indicate that data that was supposed to go + on the previous line couldn't actually be displayed. Generally this + shouldn't happen if we are clipping the end of lines. If we are + wrapping then we need to display the propagation data before moving + on. Its questionable whether we should wrap or clip glyphs in this + instance. Most e-lisp relies on clipping so we preserve this + behavior. + #### It's unclean that both Emchars and Bufbytes are here. */ @@ -229,6 +240,14 @@ struct prop_block int width; face_index findex; } p_blank; + + struct + { + /* Not used as yet, but could be used to wrap rather than clip glyphs. */ + int width; + Lisp_Object glyph; + } p_glyph; + } data; }; @@ -265,6 +284,9 @@ static void free_display_line (struct display_line *dl); static void update_line_start_cache (struct window *w, Bufpos from, Bufpos to, Bufpos point, int no_regen); static int point_visible (struct window *w, Bufpos point, int type); +static void calculate_yoffset (struct display_line *dl, + struct display_block *fixup); +static void calculate_baseline (pos_data *data); /* This used to be 10 but 30 seems to give much better performance. */ #define INIT_MAX_PREEMPTS 30 @@ -392,6 +414,10 @@ int asynch_device_change_pending; int toolbar_changed; int toolbar_changed_set; +/* Nonzero if some frame has changed the layout of internal elements + (gutters or toolbars). */ +int frame_layout_changed; + /* non-nil if any gutter has changed */ int gutter_changed; int gutter_changed_set; @@ -680,6 +706,108 @@ calculate_display_line_boundaries (struct window *w, int modeline) return bounds; } +/* This takes a display_block and its containing line and corrects the yoffset + of each glyph in the block to cater for the ascent of the line as a + whole. Must be called *after* the line-ascent is known! */ + +static void +calculate_yoffset (struct display_line *dl, struct display_block *fixup) +{ + int i; + for (i=0; irunes); i++) + { + struct rune *r = Dynarr_atp (fixup->runes,i); + if (r->type == RUNE_DGLYPH) + { + if (r->object.dglyph.ascent < dl->ascent) + r->object.dglyph.yoffset = dl->ascent - r->object.dglyph.ascent + + r->object.dglyph.descent; + } + } +} + +/* Calculate the textual baseline (the ascent and descent values for the + display_line as a whole). + + If the baseline is completely blank, or contains no manually positioned + glyphs, then the textual baseline is simply the baseline of the default font. + (The `contains no manually positioned glyphs' part is actually done for + us by `add_emchar_rune'.) + + If the baseline contains pixmaps, and they're all manually positioned, then + the textual baseline location is constrained that way, and we need do no + work. + + If the baseline contains pixmaps, and at least one is automatically + positioned, then the textual ascent is the largest ascent on the line, and + the textual descent is the largest descent (which is how things are set up at + entry to this function anyway): except that if the max_ascent + max_descent + is too small for the height of the line (say you've adjusted the baseline of + a short glyph, and there's a tall one next to it), then take the ascent and + descent for the line individually from the largest of the explicitly set + ascent/descent, and the rescaled ascent/descent of the default font, scaled + such that the largest glyph will fit. + + This means that if you have a short glyph (but taller than the default + font's descent) forced right under the baseline, and a really tall + automatically positioned glyph, that the descent for the line is just big + enough for the manually positioned short glyph, and the tall one uses as + much of that space as the default font would were it as tall as the tall + glyph; but that the ascent is big enough for the tall glyph to fit. + + This behaviour means that under no circumstances will changing the baseline + of a short glyph cause a tall glyph to move around; nor will it move the + textual baseline more than necessary. (Changing a tall glyph's baseline + might move the text's baseline arbitrarily, of course.) */ + +static void +calculate_baseline (pos_data *data) +{ + /* Blank line: baseline is default font's baseline. */ + + if (!data->new_ascent && !data->new_descent) + { + /* We've got a blank line so initialize these values from the default + face. */ + default_face_font_info (data->window, &data->new_ascent, + &data->new_descent, 0, 0, 0); + } + + /* No automatically positioned glyphs? Return at once. */ + if (!data->need_baseline_computation) + return; + + /* Is the tallest glyph on the line automatically positioned? + If it's manually positioned, or it's automatically positioned + and there's enough room for it anyway, we need do no more work. */ + if (data->max_pixmap_height > data->new_ascent + data->new_descent) + { + int default_font_ascent, default_font_descent, default_font_height; + int scaled_default_font_ascent, scaled_default_font_descent; + + default_face_font_info (data->window, &default_font_ascent, + &default_font_descent, &default_font_height, + 0, 0); + + scaled_default_font_ascent = data->max_pixmap_height * + default_font_ascent / default_font_height; + + data->new_ascent = max (data->new_ascent, scaled_default_font_ascent); + + /* The ascent may have expanded now. Do we still need to grow the descent, + or are things big enough? + + The +1 caters for the baseline row itself. */ + if (data->max_pixmap_height > data->new_ascent + data->new_descent) + { + scaled_default_font_descent = (data->max_pixmap_height * + default_font_descent / default_font_height) + 1; + + data->new_descent = max (data->new_descent, scaled_default_font_descent); + } + } +} + /* Given a display line and a starting position, ensure that the contents of the display line accurately represent the visual representation of the buffer contents starting from the given @@ -811,12 +939,14 @@ add_hscroll_rune (pos_data *data) return retval; } -/* Adds a character rune to a display block. If there is not enough - room to fit the rune on the display block (as determined by the - MAX_PIXPOS) then it adds nothing and returns ADD_FAILED. */ +/* Adds a character rune to a display block. If there is not enough room + to fit the rune on the display block (as determined by the MAX_PIXPOS) + then it adds nothing and returns ADD_FAILED. If + NO_CONTRIBUTE_TO_LINE_HEIGHT is non-zero, don't allow the char's height + to affect the total line height. (See add_intbyte_string_runes()). */ static prop_block_dynarr * -add_emchar_rune (pos_data *data) +add_emchar_rune_1 (pos_data *data, int no_contribute_to_line_height) { struct rune rb, *crb; int width, local; @@ -873,8 +1003,13 @@ add_emchar_rune (pos_data *data) data->last_char_width = fi->width; else data->last_char_width = -1; - data->new_ascent = max (data->new_ascent, (int) fi->ascent); - data->new_descent = max (data->new_descent, (int) fi->descent); + + if (!no_contribute_to_line_height) + { + data->new_ascent = max (data->new_ascent, (int) fi->ascent); + data->new_descent = max (data->new_descent, (int) fi->descent); + } + data->last_charset = charset; data->last_findex = data->findex; } @@ -961,13 +1096,24 @@ add_emchar_rune (pos_data *data) return NULL; } -/* Given a string C_STRING of length C_LENGTH, call add_emchar_rune - for each character in the string. Propagate any left-over data - unless NO_PROP is non-zero. */ - +static prop_block_dynarr * +add_emchar_rune (pos_data *data) +{ + return add_emchar_rune_1 (data, 0); +} + +/* Given a string C_STRING of length C_LENGTH, call add_emchar_rune for + each character in the string. Propagate any left-over data unless + NO_PROP is non-zero. If NO_CONTRIBUTE_TO_LINE_HEIGHT is non-zero, don't + allow this character to increase the total height of the line. (This is + used when the character is part of a text glyph. In that case, the + glyph code itself adjusts the line height as necessary, depending on + whether glyph-contrib-p is true.) */ + static prop_block_dynarr * add_bufbyte_string_runes (pos_data *data, Bufbyte *c_string, - Bytecount c_length, int no_prop) + Bytecount c_length, int no_prop, + int no_contribute_to_line_height) { Bufbyte *pos, *end = c_string + c_length; prop_block_dynarr *prop; @@ -984,7 +1130,7 @@ add_bufbyte_string_runes (pos_data *data, Bufbyte *c_string, data->ch = charptr_emchar (pos); - prop = add_emchar_rune (data); + prop = add_emchar_rune_1 (data, no_contribute_to_line_height); if (prop) { @@ -1119,12 +1265,11 @@ add_blank_rune (pos_data *data, struct window *w, int char_tab_width) static prop_block_dynarr * add_octal_runes (pos_data *data) { - prop_block_dynarr *prop, *add_failed; + prop_block_dynarr *add_failed, *prop = 0; Emchar orig_char = data->ch; unsigned int orig_cursor_type = data->cursor_type; /* Initialize */ - prop = NULL; add_failed = NULL; if (data->start_col) @@ -1184,7 +1329,7 @@ add_octal_runes (pos_data *data) ADD_NEXT_OCTAL_RUNE_CHAR; data->cursor_type = orig_cursor_type; - return prop; + return NULL; } #undef ADD_NEXT_OCTAL_RUNE_CHAR @@ -1269,7 +1414,7 @@ add_disp_table_entry_runes_1 (pos_data *data, Lisp_Object entry) prop = add_bufbyte_string_runes (data, XSTRING_DATA (entry), XSTRING_LENGTH (entry), - 0); + 0, 0); } else if (GLYPHP (entry)) { @@ -1328,7 +1473,7 @@ add_disp_table_entry_runes_1 (pos_data *data, Lisp_Object entry) } } } - prop = add_bufbyte_string_runes (data, result, dst - result, 0); + prop = add_bufbyte_string_runes (data, result, dst - result, 0, 0); } } @@ -1557,6 +1702,7 @@ add_glyph_rune (pos_data *data, struct glyph_block *gb, int pos_type, Lisp_Object face; Lisp_Object instance; face_index findex; + prop_block_dynarr *retval = 0; if (cachel) width = cachel->width; @@ -1568,7 +1714,6 @@ add_glyph_rune (pos_data *data, struct glyph_block *gb, int pos_type, if (data->start_col || data->start_col_xoffset) { - prop_block_dynarr *retval; int glyph_char_width = width / space_width (w); /* If we still have not fully scrolled horizontally after @@ -1604,17 +1749,41 @@ add_glyph_rune (pos_data *data, struct glyph_block *gb, int pos_type, if (data->pixpos + width > data->max_pixpos) { /* If this is the first object we are attempting to add to - the line then we ignore the horizontal_clip threshold. - Otherwise we will loop until the bottom of the window - continually failing to add this glyph because it is wider - than the window. We could alternatively just completely - ignore the glyph and proceed from there but I think that - this is a better solution. */ + the line then we ignore the horizontal_clip threshold. + Otherwise we will loop until the bottom of the window + continually failing to add this glyph because it is wider + than the window. We could alternatively just completely + ignore the glyph and proceed from there but I think that + this is a better solution. + + This does, however, create a different problem in that we + can end up adding the object to every single line, never + getting any further - for instance an extent with a long + start-glyph that covers multitple following + characters. */ if (Dynarr_length (data->db->runes) && data->max_pixpos - data->pixpos < horizontal_clip) return ADD_FAILED; - else + else { + struct prop_block pb; + + /* We need to account for the width of the end-of-line + glyph if there is nothing more in the line to display, + since we will not display it in this instance. It seems + kind of gross doing it here, but otherwise we have to + search the runes in create_text_block(). */ + if (data->ch == '\n') + data->max_pixpos += data->end_glyph_width; width = data->max_pixpos - data->pixpos; + /* Add the glyph we are displaying, but clipping, to the + propagation data so that we don't try and do it + again. */ + retval = Dynarr_new (prop_block); + pb.type = PROP_GLYPH; + pb.data.p_glyph.glyph = gb->glyph; + pb.data.p_glyph.width = width; + Dynarr_add (retval, pb); + } } if (cachel) @@ -1630,6 +1799,8 @@ add_glyph_rune (pos_data *data, struct glyph_block *gb, int pos_type, baseline = glyph_baseline (gb->glyph, data->window); + rb.object.dglyph.descent = 0; /* Gets reset lower down, if it is known. */ + if (glyph_contrib_p (gb->glyph, data->window)) { /* A pixmap that has not had a baseline explicitly set. Its @@ -1637,6 +1808,7 @@ add_glyph_rune (pos_data *data, struct glyph_block *gb, int pos_type, if (NILP (baseline)) { int height = ascent + descent; + data->need_baseline_computation = 1; data->max_pixmap_height = max (data->max_pixmap_height, height); } @@ -1659,6 +1831,9 @@ add_glyph_rune (pos_data *data, struct glyph_block *gb, int pos_type, data->new_ascent = max (data->new_ascent, pix_ascent); data->new_descent = max (data->new_descent, pix_descent); + data->max_pixmap_height = max (data->max_pixmap_height, height); + + rb.object.dglyph.descent = pix_descent; } /* Otherwise something is screwed up. */ @@ -1686,11 +1861,11 @@ add_glyph_rune (pos_data *data, struct glyph_block *gb, int pos_type, if (!allow_cursor) data->bi_bufpos = 0; add_bufbyte_string_runes (data, XSTRING_DATA (string), - XSTRING_LENGTH (string), 0); + XSTRING_LENGTH (string), 0, 1); data->findex = orig_findex; data->bi_bufpos = orig_bufpos; data->bi_start_col_enabled = orig_start_col_enabled; - return NULL; + return retval; } rb.findex = findex; @@ -1707,6 +1882,9 @@ add_glyph_rune (pos_data *data, struct glyph_block *gb, int pos_type, rb.object.dglyph.glyph = gb->glyph; rb.object.dglyph.extent = gb->extent; rb.object.dglyph.xoffset = xoffset; + rb.object.dglyph.ascent = ascent; + rb.object.dglyph.yoffset = 0; /* Until we know better, assume that it has + a normal (textual) baseline. */ if (allow_cursor) { @@ -1742,7 +1920,7 @@ add_glyph_rune (pos_data *data, struct glyph_block *gb, int pos_type, Dynarr_add (data->db->runes, rb); data->pixpos += width; - return NULL; + return retval; } else { @@ -1771,7 +1949,7 @@ add_glyph_rune (pos_data *data, struct glyph_block *gb, int pos_type, abort (); /* there are no unknown types */ } - return NULL; /* shut up compiler */ + return NULL; } /* Add all glyphs at position POS_TYPE that are contained in the given @@ -1831,7 +2009,6 @@ create_text_block (struct window *w, struct display_line *dl, is_surrogate_for_selected_frame (f)); int truncate_win = window_truncation_on (w); - int end_glyph_width; /* If the buffer's value of selective_display is an integer then only lines that start with less than selective_display columns of @@ -1929,10 +2106,10 @@ create_text_block (struct window *w, struct display_line *dl, glyph. Save the width of the end glyph for later use. */ data.max_pixpos = dl->bounds.right_in; if (truncate_win) - end_glyph_width = GLYPH_CACHEL_WIDTH (w, TRUN_GLYPH_INDEX); + data.end_glyph_width = GLYPH_CACHEL_WIDTH (w, TRUN_GLYPH_INDEX); else - end_glyph_width = GLYPH_CACHEL_WIDTH (w, CONT_GLYPH_INDEX); - data.max_pixpos -= end_glyph_width; + data.end_glyph_width = GLYPH_CACHEL_WIDTH (w, CONT_GLYPH_INDEX); + data.max_pixpos -= data.end_glyph_width; if (cursor_in_echo_area && MINI_WINDOW_P (w) && echo_area_active (f)) { @@ -2025,10 +2202,25 @@ create_text_block (struct window *w, struct display_line *dl, /* Check for face changes. */ if (initial || (!no_more_frags && data.bi_bufpos == data.ef->end)) { + Lisp_Object last_glyph = Qnil; + + /* Deal with glyphs that we have already displayed. The + theory is that if we end up with a PROP_GLYPH in the + propagation data then we are clipping the glyph and there + can be no propagation data before that point. The theory + works because we always recalculate the extent-fragments + for propagated data, we never actually propagate the + fragments that still need to be displayed. */ + if (*prop && Dynarr_atp (*prop, 0)->type == PROP_GLYPH) + { + last_glyph = Dynarr_atp (*prop, 0)->data.p_glyph.glyph; + Dynarr_free (*prop); + *prop = 0; + } /* Now compute the face and begin/end-glyph information. */ data.findex = /* Remember that the extent-fragment routines deal in Bytind's. */ - extent_fragment_update (w, data.ef, data.bi_bufpos); + extent_fragment_update (w, data.ef, data.bi_bufpos, last_glyph); get_display_tables (w, data.findex, &face_dt, &window_dt); @@ -2098,9 +2290,9 @@ create_text_block (struct window *w, struct display_line *dl, } /* If there is propagation data, then it represents the current - buffer position being displayed. Add them and advance the - position counter. This might also add the minibuffer - prompt. */ + buffer position being displayed. Add them and advance the + position counter. This might also add the minibuffer + prompt. */ else if (*prop) { dl->used_prop_data = 1; @@ -2122,19 +2314,59 @@ create_text_block (struct window *w, struct display_line *dl, here rather than doing them at the end of handling the previous run so that glyphs at the beginning and end of a line are handled correctly. */ - else if (Dynarr_length (data.ef->end_glyphs) > 0) + else if (Dynarr_length (data.ef->end_glyphs) > 0 + || Dynarr_length (data.ef->begin_glyphs) > 0) { - *prop = add_glyph_runes (&data, END_GLYPHS); - if (*prop) - goto done; - } + glyph_block_dynarr* tmpglyphs = 0; + /* #### I think this is safe, but could be wrong. */ + data.ch = BI_BUF_FETCH_CHAR (b, data.bi_bufpos); - /* If there are begin glyphs, add them to the line. */ - else if (Dynarr_length (data.ef->begin_glyphs) > 0) - { - *prop = add_glyph_runes (&data, BEGIN_GLYPHS); - if (*prop) - goto done; + if (Dynarr_length (data.ef->end_glyphs) > 0) + { + *prop = add_glyph_runes (&data, END_GLYPHS); + tmpglyphs = data.ef->end_glyphs; + } + + /* If there are begin glyphs, add them to the line. */ + if (!*prop && Dynarr_length (data.ef->begin_glyphs) > 0) + { + *prop = add_glyph_runes (&data, BEGIN_GLYPHS); + tmpglyphs = data.ef->begin_glyphs; + } + + if (*prop) + { + /* If we just clipped a glyph and we are at the end of a + line and there are more glyphs to display then do + appropriate processing to not get a continuation + glyph. */ + if (*prop != ADD_FAILED + && Dynarr_atp (*prop, 0)->type == PROP_GLYPH + && data.ch == '\n') + { + /* If there are no more glyphs then do the normal + processing. + + #### This doesn't actually work if the same glyph is + present more than once in the block. To solve + this we would have to carry the index around + which might be problematic since the fragment is + recalculated for each line. */ + if (EQ (Dynarr_end (tmpglyphs)->glyph, + Dynarr_atp (*prop, 0)->data.p_glyph.glyph)) + { + Dynarr_free (*prop); + *prop = 0; + } + else { + data.blank_width = DEVMETH (d, eol_cursor_width, ()); + add_emchar_rune (&data); /* discard prop data. */ + goto done; + } + } + else + goto done; + } } /* If at end-of-buffer, we've already processed begin and @@ -2168,7 +2400,7 @@ create_text_block (struct window *w, struct display_line *dl, /* We aren't going to be adding an end glyph so give its space back in order to make sure that the cursor can fit. */ - data.max_pixpos += end_glyph_width; + data.max_pixpos += data.end_glyph_width; if (selective > 0 && (bi_spaces_at_point @@ -2249,7 +2481,7 @@ create_text_block (struct window *w, struct display_line *dl, /* We won't be adding a truncation or continuation glyph so give up the room allocated for them. */ - data.max_pixpos += end_glyph_width; + data.max_pixpos += data.end_glyph_width; if (!NILP (b->selective_display_ellipses)) { @@ -2458,7 +2690,7 @@ done: for the next newline. We also add the end-of-line glyph which we know will fit because we adjusted the right border before we starting laying out the line. */ - data.max_pixpos += end_glyph_width; + data.max_pixpos += data.end_glyph_width; data.findex = DEFAULT_INDEX; gb.extent = Qnil; @@ -2592,26 +2824,7 @@ done: else db->end_pos = dl->bounds.right_white; - /* update line height parameters */ - if (!data.new_ascent && !data.new_descent) - { - /* We've got a blank line so initialize these values from the default - face. */ - default_face_font_info (data.window, &data.new_ascent, - &data.new_descent, 0, 0, 0); - } - - if (data.max_pixmap_height) - { - int height = data.new_ascent + data.new_descent; - int pix_ascent, pix_descent; - - pix_descent = data.max_pixmap_height * data.new_descent / height; - pix_ascent = data.max_pixmap_height - pix_descent; - - data.new_ascent = max (data.new_ascent, pix_ascent); - data.new_descent = max (data.new_descent, pix_descent); - } + calculate_baseline (&data); dl->ascent = data.new_ascent; dl->descent = data.new_descent; @@ -2629,6 +2842,8 @@ done: dl->descent = descent; } + calculate_yoffset (dl, db); + dl->cursor_elt = data.cursor_x; /* #### lossage lossage lossage! Fix this shit! */ if (data.bi_bufpos > BI_BUF_ZV (b)) @@ -2707,7 +2922,7 @@ create_overlay_glyph_block (struct window *w, struct display_line *dl) (&data, XSTRING_DATA (Voverlay_arrow_string), XSTRING_LENGTH (Voverlay_arrow_string), - 1); + 1, 0); } else if (GLYPHP (Voverlay_arrow_string)) { @@ -2718,17 +2933,7 @@ create_overlay_glyph_block (struct window *w, struct display_line *dl) add_glyph_rune (&data, &gb, BEGIN_GLYPHS, 0, 0); } - if (data.max_pixmap_height) - { - int height = data.new_ascent + data.new_descent; - int pix_ascent, pix_descent; - - pix_descent = data.max_pixmap_height * data.new_descent / height; - pix_ascent = data.max_pixmap_height - pix_descent; - - data.new_ascent = max (data.new_ascent, pix_ascent); - data.new_descent = max (data.new_descent, pix_descent); - } + calculate_baseline (&data); dl->ascent = data.new_ascent; dl->descent = data.new_descent; @@ -2736,6 +2941,8 @@ create_overlay_glyph_block (struct window *w, struct display_line *dl) data.db->start_pos = dl->bounds.left_in; data.db->end_pos = data.pixpos; + calculate_yoffset (dl, data.db); + return data.pixpos - dl->bounds.left_in; } @@ -2807,20 +3014,13 @@ add_margin_runes (struct display_line *dl, struct display_block *db, int start, (reverse ? elt-- : elt++); } - if (data.max_pixmap_height) - { - int height = data.new_ascent + data.new_descent; - int pix_ascent, pix_descent; - - pix_descent = data.max_pixmap_height * data.new_descent / height; - pix_ascent = data.max_pixmap_height - pix_descent; - data.new_ascent = max (data.new_ascent, pix_ascent); - data.new_descent = max (data.new_descent, pix_descent); - } + calculate_baseline (&data); dl->ascent = data.new_ascent; dl->descent = data.new_descent; + calculate_yoffset (dl, data.db); + return data.pixpos; } @@ -4251,9 +4451,9 @@ real_current_modeline_height (struct window *w) /***************************************************************************/ -/* */ -/* displayable string routines */ -/* */ +/* */ +/* displayable string routines */ +/* */ /***************************************************************************/ /* Given a position for a string in a window, ensure that the given @@ -4295,7 +4495,6 @@ create_string_text_block (struct window *w, Lisp_Object disp_string, pos_data data; int truncate_win = b ? window_truncation_on (w) : 0; - int end_glyph_width = 0; /* We're going to ditch selective display for static text, it's an FSF thing and invisible extents are the way to go here. @@ -4403,13 +4602,7 @@ create_string_text_block (struct window *w, Lisp_Object disp_string, /* Set the right boundary adjusting it to take into account any end glyph. Save the width of the end glyph for later use. */ data.max_pixpos = dl->bounds.right_in; -#if 0 - if (truncate_win) - end_glyph_width = GLYPH_CACHEL_WIDTH (w, TRUN_GLYPH_INDEX); - else - end_glyph_width = GLYPH_CACHEL_WIDTH (w, CONT_GLYPH_INDEX); -#endif - data.max_pixpos -= end_glyph_width; + data.max_pixpos -= data.end_glyph_width; data.cursor_type = NO_CURSOR; data.cursor_x = -1; @@ -4465,10 +4658,18 @@ create_string_text_block (struct window *w, Lisp_Object disp_string, /* Check for face changes. */ if (initial || (!no_more_frags && data.bi_bufpos == data.ef->end)) { + Lisp_Object last_glyph = Qnil; + /* Deal with clipped glyphs that we have already displayed. */ + if (*prop && Dynarr_atp (*prop, 0)->type == PROP_GLYPH) + { + last_glyph = Dynarr_atp (*prop, 0)->data.p_glyph.glyph; + Dynarr_free (*prop); + *prop = 0; + } /* Now compute the face and begin/end-glyph information. */ data.findex = /* Remember that the extent-fragment routines deal in Bytind's. */ - extent_fragment_update (w, data.ef, data.bi_bufpos); + extent_fragment_update (w, data.ef, data.bi_bufpos, last_glyph); /* This is somewhat cheesy but the alternative is to propagate default_face into extent_fragment_update. */ if (data.findex == DEFAULT_INDEX) @@ -4560,17 +4761,23 @@ create_string_text_block (struct window *w, Lisp_Object disp_string, a line are handled correctly. */ else if (Dynarr_length (data.ef->end_glyphs) > 0) { + data.ch = string_char (s, data.bi_bufpos); *prop = add_glyph_runes (&data, END_GLYPHS); - if (*prop) + + if (*prop) { goto done; + } } /* If there are begin glyphs, add them to the line. */ else if (Dynarr_length (data.ef->begin_glyphs) > 0) { + data.ch = string_char (s, data.bi_bufpos); *prop = add_glyph_runes (&data, BEGIN_GLYPHS); - if (*prop) + + if (*prop) { goto done; + } } /* If at end-of-buffer, we've already processed begin and @@ -4604,7 +4811,7 @@ create_string_text_block (struct window *w, Lisp_Object disp_string, /* We aren't going to be adding an end glyph so give its space back in order to make sure that the cursor can fit. */ - data.max_pixpos += end_glyph_width; + data.max_pixpos += data.end_glyph_width; goto done; } @@ -4646,7 +4853,7 @@ create_string_text_block (struct window *w, Lisp_Object disp_string, *prop = add_blank_rune (&data, w, char_tab_width); /* add_blank_rune is only supposed to be called with - sizes guaranteed to fit in the available space. */ + sizes guaranteed to fit in the available space. */ assert (!(*prop)); if (prop_width) @@ -4702,7 +4909,7 @@ create_string_text_block (struct window *w, Lisp_Object disp_string, } } -done: + done: /* Determine the starting point of the next line if we did not hit the end of the buffer. */ @@ -4735,7 +4942,7 @@ done: for the next newline. We also add the end-of-line glyph which we know will fit because we adjusted the right border before we starting laying out the line. */ - data.max_pixpos += end_glyph_width; + data.max_pixpos += data.end_glyph_width; data.findex = default_face; gb.extent = Qnil; @@ -4763,7 +4970,7 @@ done: cachel = GLYPH_CACHEL (w, CONT_GLYPH_INDEX); } - if (end_glyph_width) + if (data.end_glyph_width) add_glyph_rune (&data, &gb, BEGIN_GLYPHS, 0, cachel); if (truncate_win && data.bi_bufpos == bi_string_zv) @@ -4841,26 +5048,7 @@ done: else db->end_pos = dl->bounds.right_white; - /* update line height parameters */ - if (!data.new_ascent && !data.new_descent) - { - /* We've got a blank line so initialize these values from the default - face. */ - default_face_font_info (data.window, &data.new_ascent, - &data.new_descent, 0, 0, 0); - } - - if (data.max_pixmap_height) - { - int height = data.new_ascent + data.new_descent; - int pix_ascent, pix_descent; - - pix_descent = data.max_pixmap_height * data.new_descent / height; - pix_ascent = data.max_pixmap_height - pix_descent; - - data.new_ascent = max (data.new_ascent, pix_ascent); - data.new_descent = max (data.new_descent, pix_descent); - } + calculate_baseline (&data); dl->ascent = data.new_ascent; dl->descent = data.new_descent; @@ -4878,6 +5066,8 @@ done: dl->descent = descent; } + calculate_yoffset (dl, db); + dl->cursor_elt = data.cursor_x; /* #### lossage lossage lossage! Fix this shit! */ if (data.bi_bufpos > bi_string_zv) @@ -6332,8 +6522,13 @@ redisplay_frame (struct frame *f, int preemption_check) update_frame_menubars (f); #endif /* HAVE_MENUBARS */ #ifdef HAVE_TOOLBARS - /* Update the toolbars. */ - update_frame_toolbars (f); + /* Update the toolbars geometry. We don't update the toolbars + themselves at this point since the space they are trying to + occupy may currently by occupied by gutter elements. Instead we + update the geometry, then update the gutter geometry, then update + the gutters - which will cause mapped windows to be repositioned + - and finally update the toolbars. */ + update_frame_toolbars_geometry (f); #endif /* HAVE_TOOLBARS */ /* Gutter update proper has to be done inside display when no frame size changes can occur, thus we separately update the gutter @@ -6413,6 +6608,14 @@ redisplay_frame (struct frame *f, int preemption_check) update_frame_title (f); +#ifdef HAVE_TOOLBARS + /* Finally update the toolbars. It seems its possible to get in a + cycle between updating the gutter and the toolbars. Basically we + want to end up with both being up-to-date and this doesn't seem + possible in a single pass. */ + update_frame_toolbars (f); +#endif /* HAVE_TOOLBARS */ + CLASS_RESET_CHANGED_FLAGS (f); f->window_face_cache_reset = 0; f->echo_area_garbaged = 0; @@ -7107,11 +7310,6 @@ mark_redisplay (void) FRAME_LOOP_NO_BREAK (frmcons, devcons, concons) { struct frame *f = XFRAME (XCAR (frmcons)); - /* #### urk! this does tons o' crap, such as creating lots of - structs, doing window system actions, etc. we DO NOT want to - be doing this -- marking should never change any state. - i think we can just delete this. --ben */ - update_frame_window_mirror (f); mark_window_mirror (f->root_mirror); mark_gutters (f); } @@ -7283,7 +7481,8 @@ point_in_line_start_cache (struct window *w, Bufpos point, int min_past) { struct buffer *b = XBUFFER (w->buffer); line_start_cache_dynarr *cache = w->line_start_cache; - unsigned int top, bottom, pos; + unsigned int top, bottom; + EMACS_INT pos; validate_line_start_cache (w); w->line_cache_validation_override++; diff --git a/src/redisplay.h b/src/redisplay.h index 1e441ae..88d272f 100644 --- a/src/redisplay.h +++ b/src/redisplay.h @@ -149,6 +149,9 @@ struct rune If this is a rune in the modeline then this might be nil. */ + int ascent; /* Ascent of this glyph, in pixels. */ + int descent; /* Descent of this glyph, in pixels. */ + int yoffset; /* Offset from line top to reach glyph top */ int xoffset; /* Number of pixels that need to be chopped off the left of the glyph. This has the effect of shifting the @@ -476,6 +479,10 @@ extern int size_changed; /* Nonzero if some device has signaled that it wants to change size. */ extern int asynch_device_change_pending; +/* Nonzero if some frame has changed the layout of internal elements + (gutters or toolbars). */ +extern int frame_layout_changed; + /* Nonzero if any toolbar has changed. */ extern int toolbar_changed; extern int toolbar_changed_set; @@ -535,6 +542,7 @@ extern int windows_structure_changed; (p)->extents_changed = 0; \ (p)->faces_changed = 0; \ (p)->frame_changed = 0; \ + (p)->frame_layout_changed = 0; \ (p)->icon_changed = 0; \ (p)->menubar_changed = 0; \ (p)->modeline_changed = 0; \ @@ -553,6 +561,7 @@ extern int windows_structure_changed; clip_changed = 0; \ extents_changed = 0; \ frame_changed = 0; \ + frame_layout_changed = 0; \ icon_changed = 0; \ menubar_changed = 0; \ modeline_changed = 0; \ @@ -572,6 +581,7 @@ extern int windows_structure_changed; (p)->extents_changed || \ (p)->faces_changed || \ (p)->frame_changed || \ + (p)->frame_layout_changed || \ (p)->icon_changed || \ (p)->menubar_changed || \ (p)->modeline_changed || \ @@ -591,6 +601,7 @@ extern int windows_structure_changed; extents_changed || \ faces_changed || \ frame_changed || \ + frame_layout_changed || \ icon_changed || \ menubar_changed || \ modeline_changed || \ @@ -767,8 +778,8 @@ void redisplay_output_pixmap (struct window *w, face_index findex, int cursor_start, int cursor_width, int cursor_height, int offset_bitmap); int redisplay_calculate_display_boxes (struct display_line *dl, int xpos, - int xoffset, int start_pixpos, int width, - struct display_box* dest, + int xoffset, int yoffset, int start_pixpos, + int width, struct display_box* dest, struct display_glyph_area* src); int redisplay_normalize_glyph_area (struct display_box* dest, struct display_glyph_area* glyphsrc); diff --git a/src/scrollbar-msw.c b/src/scrollbar-msw.c index b6ac215..d3c7c9f 100644 --- a/src/scrollbar-msw.c +++ b/src/scrollbar-msw.c @@ -333,43 +333,45 @@ mswindows_handle_mousewheel_event (Lisp_Object frame, int keys, int delta, { int hasVertBar, hasHorzBar; /* Indicates presence of scroll bars */ unsigned wheelScrollLines = 0; /* Number of lines per wheel notch */ - Lisp_Object win; + Lisp_Object win, corpore, sano; struct window_mirror *mirror; + int mene, _mene, tekel, upharsin; + Bufpos mens, sana; + Charcount in; + struct window *needle_in_haystack = 0; POINT donde_esta; donde_esta.x = where.x; donde_esta.y = where.y; - ScreenToClient (FRAME_MSWINDOWS_HANDLE (XFRAME (frame)), &donde_esta); - /* Find the window to scroll */ - { - int mene, _mene, tekel, upharsin; - Bufpos mens, sana; - Charcount in; - Lisp_Object corpore, sano; - struct window *needle_in_haystack; - - // stderr_out ("donde_esta: %d %d\n", donde_esta.x, donde_esta.y); - pixel_to_glyph_translation (XFRAME (frame), donde_esta.x, donde_esta.y, - &mene, &_mene, &tekel, &upharsin, - &needle_in_haystack, - &mens, &sana, &in, &corpore, &sano); - - if (needle_in_haystack) - { - XSETWINDOW (win, needle_in_haystack); - // stderr_out ("found needle\n"); - // debug_print (win); - } - else - { - win = FRAME_SELECTED_WINDOW (XFRAME (frame)); - needle_in_haystack = XWINDOW (win); - } - mirror = find_window_mirror (needle_in_haystack); - } + /* The mouse event could actually occur outside of the emacs + frame. */ + if (ScreenToClient (FRAME_MSWINDOWS_HANDLE (XFRAME (frame)), + &donde_esta) != 0) + { + /* stderr_out ("donde_esta: %d %d\n", donde_esta.x, donde_esta.y); */ + pixel_to_glyph_translation (XFRAME (frame), donde_esta.x, donde_esta.y, + &mene, &_mene, &tekel, &upharsin, + &needle_in_haystack, + &mens, &sana, &in, &corpore, &sano); + + if (needle_in_haystack) + { + XSETWINDOW (win, needle_in_haystack); + /* stderr_out ("found needle\n"); + debug_print (win); */ + } + } + + if (!needle_in_haystack) + { + win = FRAME_SELECTED_WINDOW (XFRAME (frame)); + needle_in_haystack = XWINDOW (win); + } + + mirror = find_window_mirror (needle_in_haystack); /* Check that there is something to scroll */ hasVertBar = can_scroll (mirror->scrollbar_vertical_instance); diff --git a/src/search.c b/src/search.c index 3cb8282..7360bd3 100644 --- a/src/search.c +++ b/src/search.c @@ -109,6 +109,7 @@ Lisp_Object Vforward_word_regexp, Vbackward_word_regexp; Lisp_Object Vskip_chars_range_table; static void set_search_regs (struct buffer *buf, Bufpos beg, Charcount len); +/* #### according to comment in 21.5, unnecessary */ static void save_search_regs (void); static Bufpos simple_search (struct buffer *buf, Bufbyte *base_pat, Bytecount len, Bytind pos, Bytind lim, @@ -773,6 +774,7 @@ find_before_next_newline (struct buffer *buf, Bufpos from, Bufpos to, int count) return pos; } +/* This function synched with FSF 21.1 */ static Lisp_Object skip_chars (struct buffer *buf, int forwardp, int syntaxp, Lisp_Object string, Lisp_Object lim) @@ -847,6 +849,7 @@ skip_chars (struct buffer *buf, int forwardp, int syntaxp, { Emchar cend; + /* Skip over the dash. */ p++; if (p == pend) break; cend = charptr_emchar (p); @@ -871,6 +874,7 @@ skip_chars (struct buffer *buf, int forwardp, int syntaxp, } } + /* #### Not in FSF 21.1 */ if (syntaxp && fastmap['-'] != 0) fastmap[' '] = 1; @@ -884,36 +888,48 @@ skip_chars (struct buffer *buf, int forwardp, int syntaxp, { Bufpos start_point = BUF_PT (buf); + Bufpos pos = start_point; + Bytind pos_byte = BI_BUF_PT (buf); if (syntaxp) { - SETUP_SYNTAX_CACHE_FOR_BUFFER (buf, BUF_PT (buf), forwardp ? 1 : -1); + SETUP_SYNTAX_CACHE_FOR_BUFFER (buf, pos, forwardp ? 1 : -1); /* All syntax designators are normal chars so nothing strange to worry about */ if (forwardp) { - while (BUF_PT (buf) < limit - && fastmap[(unsigned char) - syntax_code_spec - [(int) SYNTAX_FROM_CACHE (syntax_table, - BUF_FETCH_CHAR - (buf, BUF_PT (buf)))]]) - { - BUF_SET_PT (buf, BUF_PT (buf) + 1); - UPDATE_SYNTAX_CACHE_FORWARD (BUF_PT (buf)); - } + if (pos < limit) + while (fastmap[(unsigned char) + syntax_code_spec + [(int) SYNTAX_FROM_CACHE + (syntax_table, + BI_BUF_FETCH_CHAR (buf, pos_byte))]]) + { + pos++; + INC_BYTIND (buf, pos_byte); + if (pos >= limit) + break; + UPDATE_SYNTAX_CACHE_FORWARD (pos); + } } else { - while (BUF_PT (buf) > limit - && fastmap[(unsigned char) - syntax_code_spec - [(int) SYNTAX_FROM_CACHE (syntax_table, - BUF_FETCH_CHAR - (buf, BUF_PT (buf) - 1))]]) + while (pos > limit) { - BUF_SET_PT (buf, BUF_PT (buf) - 1); - UPDATE_SYNTAX_CACHE_BACKWARD (BUF_PT (buf) - 1); + Bufpos savepos = pos_byte; + pos--; + DEC_BYTIND (buf, pos_byte); + UPDATE_SYNTAX_CACHE_BACKWARD (pos); + if (!fastmap[(unsigned char) + syntax_code_spec + [(int) SYNTAX_FROM_CACHE + (syntax_table, + BI_BUF_FETCH_CHAR (buf, pos_byte))]]) + { + pos++; + pos_byte = savepos; + break; + } } } } @@ -921,36 +937,47 @@ skip_chars (struct buffer *buf, int forwardp, int syntaxp, { if (forwardp) { - while (BUF_PT (buf) < limit) + while (pos < limit) { - Emchar ch = BUF_FETCH_CHAR (buf, BUF_PT (buf)); + Emchar ch = BI_BUF_FETCH_CHAR (buf, pos_byte); if ((ch < 0400) ? fastmap[ch] : (NILP (Fget_range_table (make_int (ch), Vskip_chars_range_table, Qnil)) == negate)) - BUF_SET_PT (buf, BUF_PT (buf) + 1); + { + pos++; + INC_BYTIND (buf, pos_byte); + } else break; } } else { - while (BUF_PT (buf) > limit) + while (pos > limit) { - Emchar ch = BUF_FETCH_CHAR (buf, BUF_PT (buf) - 1); + Bufpos prev_pos_byte = pos_byte; + Emchar ch; + + DEC_BYTIND (buf, prev_pos_byte); + ch = BI_BUF_FETCH_CHAR (buf, prev_pos_byte); if ((ch < 0400) ? fastmap[ch] : - (NILP (Fget_range_table (make_int (ch), - Vskip_chars_range_table, - Qnil)) - == negate)) - BUF_SET_PT (buf, BUF_PT (buf) - 1); - else - break; + (NILP (Fget_range_table (make_int (ch), + Vskip_chars_range_table, + Qnil)) + == negate)) + { + pos--; + pos_byte = prev_pos_byte; + } + else + break; } } } QUIT; + BOTH_BUF_SET_PT (buf, pos, pos_byte); return make_int (BUF_PT (buf) - start_point); } } @@ -2846,8 +2873,11 @@ LIST should have been created by calling `match-data' previously. int num_regs; int length; +#if 0 + /* #### according to 21.5 comment, unnecessary */ if (running_asynch_code) save_search_regs (); +#endif CONCHECK_LIST (list); @@ -2910,6 +2940,7 @@ LIST should have been created by calling `match-data' previously. return Qnil; } +/* #### according to 21.5 comment, unnecessary */ /* If non-zero the match data have been saved in saved_search_regs during the execution of a sentinel or filter. */ static int search_regs_saved; @@ -2933,6 +2964,8 @@ save_search_regs (void) } } +/* #### according to 21.5 comment, unnecessary + prototype in lisp.h, all calls in process.c */ /* Called upon exit from filters and sentinels. */ void restore_match_data (void) diff --git a/src/select-x.c b/src/select-x.c index aa4c7dc..835c7a5 100644 --- a/src/select-x.c +++ b/src/select-x.c @@ -1791,7 +1791,7 @@ A value of 0 means wait as long as necessary. This is initialized from the x_selection_timeout = 0; DEFVAR_BOOL ("x-selection-strict-motif-ownership", &x_selection_strict_motif_ownership /* -*If true and XEmacs already owns the clipboard, don't own it again in the +*If nil and XEmacs already owns the clipboard, don't own it again in the Motif way. Owning the selection on the Motif way does a huge amount of X protocol, and it makes killing text incredibly slow when using an X terminal. However, when enabled Motif text fields don't bother to look up diff --git a/src/symbols.c b/src/symbols.c index c21a986..9604bfa 100644 --- a/src/symbols.c +++ b/src/symbols.c @@ -3297,8 +3297,8 @@ defsymbol_massage_name_1 (Lisp_Object *location, const char *name, int dump_p, int multiword_predicate_p) { char temp[500]; - int len = strlen (name) - 1; - int i; + size_t len = strlen (name) - 1; + size_t i; if (multiword_predicate_p) assert (len + 1 < sizeof (temp)); @@ -3374,7 +3374,7 @@ void defkeyword_massage_name (Lisp_Object *location, const char *name) { char temp[500]; - int len = strlen (name); + size_t len = strlen (name); assert (len < sizeof (temp)); strcpy (temp, name); @@ -3509,8 +3509,8 @@ deferror_massage_name_and_message (Lisp_Object *symbol, const char *name, Lisp_Object inherits_from) { char temp[500]; - int i; - int len = strlen (name) - 1; + size_t i; + size_t len = strlen (name) - 1; assert (len < sizeof (temp)); strcpy (temp, name + 1); /* Remove initial Q */ diff --git a/src/sysdep.c b/src/sysdep.c index b81efbb..c307469 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -3158,9 +3158,11 @@ sys_rename (const char *old, const char *new) /* Windows rename fails if NEW exists */ if (rename (old, new) == 0) return 0; - if (errno != EEXIST) + /* In some cases errno is EACCES if NEW exists */ + if (errno != EEXIST && errno != EACCES) + return -1; + if (unlink (new) != 0) return -1; - unlink (new); #endif /* WIN32_NATIVE */ return rename (old, new); } diff --git a/src/sysdll.c b/src/sysdll.c index e95e68c..537f3d6 100644 --- a/src/sysdll.c +++ b/src/sysdll.c @@ -38,10 +38,6 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # define RTLD_LAZY 1 #endif /* RTLD_LAZY isn't defined under FreeBSD - ick */ -#ifndef RTLD_GLOBAL -# define RTLD_GLOBAL 0 -#endif - #ifndef RTLD_NOW # define RTLD_NOW 2 #endif @@ -55,7 +51,7 @@ dll_init (const char *arg) dll_handle dll_open (const char *fname) { - return (dll_handle) dlopen (fname, RTLD_NOW | RTLD_GLOBAL); + return (dll_handle) dlopen (fname, RTLD_NOW); } int diff --git a/src/syswindows.h b/src/syswindows.h index 0994b38..14d7a6f 100644 --- a/src/syswindows.h +++ b/src/syswindows.h @@ -180,6 +180,9 @@ typedef NMHDR *LPNMHDR; #ifndef MAC_CHARSET #define MAC_CHARSET 77 #endif +#ifndef LOCALE_RETURN_NUMBER +#define LOCALE_RETURN_NUMBER 0x20000000 +#endif /***************************************************************/ diff --git a/src/toolbar-gtk.c b/src/toolbar-gtk.c index f2ec8c5..c0b6132 100644 --- a/src/toolbar-gtk.c +++ b/src/toolbar-gtk.c @@ -336,7 +336,8 @@ gtk_get_button_size (struct frame *f, Lisp_Object window, || tb->y != y \ || tb->width != width \ || tb->height != height \ - || tb->dirty) \ + || tb->dirty \ + || f->clear) /* This is clearly necessary. */ \ { \ if (width && height) \ { \ @@ -542,22 +543,30 @@ gtk_output_frame_toolbars (struct frame *f) if (FRAME_REAL_TOP_TOOLBAR_VISIBLE (f)) gtk_output_toolbar (f, TOP_TOOLBAR); - else if (f->top_toolbar_was_visible) - gtk_clear_toolbar (f, TOP_TOOLBAR, 0); - if (FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f)) gtk_output_toolbar (f, BOTTOM_TOOLBAR); - else if (f->bottom_toolbar_was_visible) - gtk_clear_toolbar (f, BOTTOM_TOOLBAR, 0); - if (FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f)) gtk_output_toolbar (f, LEFT_TOOLBAR); - else if (f->left_toolbar_was_visible) - gtk_clear_toolbar (f, LEFT_TOOLBAR, 0); - if (FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f)) gtk_output_toolbar (f, RIGHT_TOOLBAR); - else if (f->right_toolbar_was_visible) +} + +static void +gtk_clear_frame_toolbars (struct frame *f) +{ + assert (FRAME_GTK_P (f)); + + if (f->top_toolbar_was_visible + && !FRAME_REAL_TOP_TOOLBAR_VISIBLE (f)) + gtk_clear_toolbar (f, TOP_TOOLBAR, 0); + if (f->bottom_toolbar_was_visible + && !FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f)) + gtk_clear_toolbar (f, BOTTOM_TOOLBAR, 0); + if (f->left_toolbar_was_visible + && !FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f)) + gtk_clear_toolbar (f, LEFT_TOOLBAR, 0); + if (f->right_toolbar_was_visible + && !FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f)) gtk_clear_toolbar (f, RIGHT_TOOLBAR, 0); } @@ -663,6 +672,7 @@ void console_type_create_toolbar_gtk (void) { CONSOLE_HAS_METHOD (gtk, output_frame_toolbars); + CONSOLE_HAS_METHOD (gtk, clear_frame_toolbars); CONSOLE_HAS_METHOD (gtk, initialize_frame_toolbars); CONSOLE_HAS_METHOD (gtk, free_frame_toolbars); CONSOLE_HAS_METHOD (gtk, output_toolbar_button); diff --git a/src/toolbar-msw.c b/src/toolbar-msw.c index 07baead..4234441 100644 --- a/src/toolbar-msw.c +++ b/src/toolbar-msw.c @@ -22,7 +22,7 @@ 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. */ -/* This implementation by Andy Piper , with bits +/* This implementation by Andy Piper , with bits borrowed from toolbar-x.c */ /* Synched up with: Not in FSF. */ @@ -544,22 +544,30 @@ mswindows_output_frame_toolbars (struct frame *f) if (FRAME_REAL_TOP_TOOLBAR_VISIBLE (f)) mswindows_output_toolbar (f, TOP_TOOLBAR); - else if (f->top_toolbar_was_visible) - mswindows_clear_toolbar (f, TOP_TOOLBAR, 0); - if (FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f)) mswindows_output_toolbar (f, BOTTOM_TOOLBAR); - else if (f->bottom_toolbar_was_visible) - mswindows_clear_toolbar (f, BOTTOM_TOOLBAR, 0); - if (FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f)) mswindows_output_toolbar (f, LEFT_TOOLBAR); - else if (f->left_toolbar_was_visible) - mswindows_clear_toolbar (f, LEFT_TOOLBAR, 0); - if (FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f)) mswindows_output_toolbar (f, RIGHT_TOOLBAR); - else if (f->right_toolbar_was_visible) +} + +static void +mswindows_clear_frame_toolbars (struct frame *f) +{ + assert (FRAME_MSWINDOWS_P (f)); + + if (f->top_toolbar_was_visible + && !FRAME_REAL_TOP_TOOLBAR_VISIBLE (f)) + mswindows_clear_toolbar (f, TOP_TOOLBAR, 0); + if (f->bottom_toolbar_was_visible + && !FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f)) + mswindows_clear_toolbar (f, BOTTOM_TOOLBAR, 0); + if (f->left_toolbar_was_visible + && !FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f)) + mswindows_clear_toolbar (f, LEFT_TOOLBAR, 0); + if (f->right_toolbar_was_visible + && !FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f)) mswindows_clear_toolbar (f, RIGHT_TOOLBAR, 0); } @@ -641,6 +649,7 @@ void console_type_create_toolbar_mswindows (void) { CONSOLE_HAS_METHOD (mswindows, output_frame_toolbars); + CONSOLE_HAS_METHOD (mswindows, clear_frame_toolbars); CONSOLE_HAS_METHOD (mswindows, initialize_frame_toolbars); CONSOLE_HAS_METHOD (mswindows, free_frame_toolbars); CONSOLE_HAS_METHOD (mswindows, redraw_exposed_toolbars); diff --git a/src/toolbar-x.c b/src/toolbar-x.c index a82357a..ed6c280 100644 --- a/src/toolbar-x.c +++ b/src/toolbar-x.c @@ -348,7 +348,8 @@ x_get_button_size (struct frame *f, Lisp_Object window, || tb->y != y \ || tb->width != width \ || tb->height != height \ - || tb->dirty) \ + || tb->dirty \ + || f->clear) /* This is clearly necessary. */ \ { \ if (width && height) \ { \ @@ -557,22 +558,30 @@ x_output_frame_toolbars (struct frame *f) if (FRAME_REAL_TOP_TOOLBAR_VISIBLE (f)) x_output_toolbar (f, TOP_TOOLBAR); - else if (f->top_toolbar_was_visible) - x_clear_toolbar (f, TOP_TOOLBAR, 0); - if (FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f)) x_output_toolbar (f, BOTTOM_TOOLBAR); - else if (f->bottom_toolbar_was_visible) - x_clear_toolbar (f, BOTTOM_TOOLBAR, 0); - if (FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f)) x_output_toolbar (f, LEFT_TOOLBAR); - else if (f->left_toolbar_was_visible) - x_clear_toolbar (f, LEFT_TOOLBAR, 0); - if (FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f)) x_output_toolbar (f, RIGHT_TOOLBAR); - else if (f->right_toolbar_was_visible) +} + +static void +x_clear_frame_toolbars (struct frame *f) +{ + assert (FRAME_X_P (f)); + + if (f->top_toolbar_was_visible + && !FRAME_REAL_TOP_TOOLBAR_VISIBLE (f)) + x_clear_toolbar (f, TOP_TOOLBAR, 0); + if (f->bottom_toolbar_was_visible + && !FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f)) + x_clear_toolbar (f, BOTTOM_TOOLBAR, 0); + if (f->left_toolbar_was_visible + && !FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f)) + x_clear_toolbar (f, LEFT_TOOLBAR, 0); + if (f->right_toolbar_was_visible + && !FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f)) x_clear_toolbar (f, RIGHT_TOOLBAR, 0); } @@ -793,6 +802,7 @@ void console_type_create_toolbar_x (void) { CONSOLE_HAS_METHOD (x, output_frame_toolbars); + CONSOLE_HAS_METHOD (x, clear_frame_toolbars); CONSOLE_HAS_METHOD (x, initialize_frame_toolbars); CONSOLE_HAS_METHOD (x, free_frame_toolbars); CONSOLE_HAS_METHOD (x, output_toolbar_button); diff --git a/src/toolbar.c b/src/toolbar.c index 7711b6b..dd742ff 100644 --- a/src/toolbar.c +++ b/src/toolbar.c @@ -712,13 +712,26 @@ compute_frame_toolbars_data (struct frame *f) set_frame_toolbar (f, RIGHT_TOOLBAR); } +/* Update the toolbar geometry separately from actually displaying the + toolbar. This is necessary because both the gutter and the toolbar + are competing for redisplay cycles and, unfortunately, gutter + updates happen late in the game. Firstly they are done inside of + redisplay proper and secondly subcontrols may not get moved until + the next screen refresh. Only after subcontrols have been moved to + their final destinations can we be certain of updating the + toolbar. Under X this probably is exacerbated by the toolbar button + dirty flags which prevent updates happening when they possibly + should. */ void -update_frame_toolbars (struct frame *f) +update_frame_toolbars_geometry (struct frame *f) { struct device *d = XDEVICE (f->device); if (DEVICE_SUPPORTS_TOOLBARS_P (d) - && (f->toolbar_changed || f->frame_changed || f->clear)) + && (f->toolbar_changed + || f->frame_layout_changed + || f->frame_changed + || f->clear)) { int pos; @@ -738,18 +751,39 @@ update_frame_toolbars (struct frame *f) pixel_to_char_size (f, FRAME_PIXWIDTH (f), FRAME_PIXHEIGHT (f), &width, &height); change_frame_size (f, height, width, 0); + MARK_FRAME_LAYOUT_CHANGED (f); break; } - for (pos = 0; pos < 4; pos++) + for (pos = 0; pos < 4; pos++) { f->current_toolbar_size[pos] = FRAME_REAL_TOOLBAR_SIZE (f, pos); + } /* Removed the check for the minibuffer here. We handle this more correctly now by consistently using FRAME_LAST_NONMINIBUF_WINDOW instead of FRAME_SELECTED_WINDOW throughout the toolbar code. */ compute_frame_toolbars_data (f); + + /* Clear the previous toolbar locations. If we do it later + (after redisplay) we end up clearing what we have just + displayed. */ + MAYBE_DEVMETH (d, clear_frame_toolbars, (f)); + } +} + +/* Actually redisplay the toolbar buttons. */ +void +update_frame_toolbars (struct frame *f) +{ + struct device *d = XDEVICE (f->device); + if (DEVICE_SUPPORTS_TOOLBARS_P (d) + && (f->toolbar_changed + || f->frame_layout_changed + || f->frame_changed + || f->clear)) + { DEVMETH (d, output_frame_toolbars, (f)); } diff --git a/src/toolbar.h b/src/toolbar.h index 0e65264..fc830f9 100644 --- a/src/toolbar.h +++ b/src/toolbar.h @@ -100,6 +100,7 @@ DECLARE_SPECIFIER_TYPE (toolbar); extern Lisp_Object Vtoolbar_size[4]; extern Lisp_Object Vtoolbar_border_width[4]; void update_frame_toolbars (struct frame *f); +void update_frame_toolbars_geometry (struct frame *f); void init_frame_toolbars (struct frame *f); void init_device_toolbars (struct device *d); void init_global_toolbars (struct device *d); diff --git a/src/unexelf.c b/src/unexelf.c index 66d889c..9a1a7d9 100644 --- a/src/unexelf.c +++ b/src/unexelf.c @@ -481,10 +481,20 @@ typedef struct { #ifndef ElfW # ifdef __STDC__ -# define ElfW(type) Elf32_##type +# define ElfBitsW(bits, type) Elf##bits##_##type # else -# define ElfW(type) Elf32_/**/type +# define ElfBitsW(bits, type) Elf/**/bits/**/_/**/type # endif +# ifndef ELFSIZE +# ifdef _LP64 +# define ELFSIZE 64 +# else +# define ELFSIZE 32 +# endif +# endif + /* This macro expands `bits' before invoking ElfBitsW. */ +# define ElfExpandBitsW(bits, type) ElfBitsW (bits, type) +# define ElfW(type) ElfExpandBitsW (ELFSIZE, type) #endif #ifndef ELF_BSS_SECTION_NAME diff --git a/src/win32.c b/src/win32.c index 237ffaa..0ebbc51 100644 --- a/src/win32.c +++ b/src/win32.c @@ -182,19 +182,25 @@ otherwise it is an integer representing a ShowWindow flag: if ((fname1 = strchr (doc, ':')) != NULL && *++fname1 == '/' && *++fname1 == '/') { - fname1++; - pos = fname1 - doc; - if (!(isalpha (fname1[0]) && (IS_DEVICE_SEP (fname1[1])))) + // URL-style if we get here, but we must only convert file + // arguments, since win32 paths are illegal in http etc. + if (strncmp (doc, "file://", 7) == 0) { - sz = cygwin_posix_to_win32_path_list_buf_size (fname1); - fname2 = alloca (sz + pos); - strncpy (fname2, doc, pos); - doc = fname2; - fname2 += pos; - cygwin_posix_to_win32_path_list (fname1, fname2); + fname1++; + pos = fname1 - doc; + if (!(isalpha (fname1[0]) && (IS_DEVICE_SEP (fname1[1])))) + { + sz = cygwin_posix_to_win32_path_list_buf_size (fname1); + fname2 = alloca (sz + pos); + strncpy (fname2, doc, pos); + doc = fname2; + fname2 += pos; + cygwin_posix_to_win32_path_list (fname1, fname2); + } } } else { + // Not URL-style, must be a straight filename. LOCAL_TO_WIN32_FILE_FORMAT (document, doc); } #endif diff --git a/src/window.c b/src/window.c index 7df253c..bdf7764 100644 --- a/src/window.c +++ b/src/window.c @@ -3654,8 +3654,9 @@ make_dummy_parent (Lisp_Object window) DEFUN ("split-window", Fsplit_window, 0, 3, "", /* Split WINDOW, putting SIZE lines in the first of the pair. WINDOW defaults to the selected one and SIZE to half its size. -If optional third arg HORFLAG is non-nil, split side by side -and put SIZE columns in the first of the pair. +If optional third arg HORFLAG is non-nil, split side by side and put +SIZE columns in the first of the pair. The newly created window is +returned. */ (window, size, horflag)) { @@ -3679,7 +3680,7 @@ and put SIZE columns in the first of the pair. /* In the new scheme, we are symmetric with respect to separators so there is no need to do weird things here. */ { - psize = WINDOW_WIDTH (o) >> 1; + psize = (WINDOW_WIDTH (o) + window_divider_width (o)) >> 1; csize = window_pixel_width_to_char_width (o, psize, 0); } else diff --git a/src/xgccache.c b/src/xgccache.c index 7a21c5c..5abca29 100644 --- a/src/xgccache.c +++ b/src/xgccache.c @@ -98,7 +98,7 @@ gc_cache_hash (const void *arg) const struct gcv_and_mask *gcvm = (const struct gcv_and_mask *) arg; unsigned long *longs = (unsigned long *) &gcvm->gcv; unsigned long hash = gcvm->mask; - int i; + size_t i; /* This could look at the mask and only use the used slots in the hash code. That would win in that we wouldn't have to initialize every slot of the gcv when calling gc_cache_lookup. But we need diff --git a/tests/ChangeLog b/tests/ChangeLog index e19c551..6561e4e 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,12 @@ +2002-08-23 Stephen J. Turnbull + + * XEmacs 21.4.9 "Informed Management" is released. + +2002-07-20 Mike Sperber + + * automated/test-harness.el (test-harness-read-from-buffer): Fix + incorrect call of `princ'. + 2002-05-09 Stephen J. Turnbull * XEmacs 21.4.8 "Honest Recruiter" is released. diff --git a/tests/automated/test-harness.el b/tests/automated/test-harness.el index 8f9b5bd..e93046f 100644 --- a/tests/automated/test-harness.el +++ b/tests/automated/test-harness.el @@ -99,7 +99,7 @@ The output file's name is made by appending `c' to the end of FILENAME." (setq body (cons (read buffer) body))) (end-of-file nil) (error - (princ "Unexpected error %S reading forms from buffer\n" error-info))) + (princ (format "Unexpected error %S reading forms from buffer\n" error-info)))) `(lambda () (defvar passes) (defvar assertion-failures) diff --git a/version.sh b/version.sh index 80d9c65..1a75201 100644 --- a/version.sh +++ b/version.sh @@ -2,9 +2,9 @@ emacs_is_beta= emacs_major_version=21 emacs_minor_version=4 -emacs_beta_version=8 -xemacs_codename="Honest Recruiter" -emacs_kitname="" +emacs_beta_version=9 +xemacs_codename="Informed Management" +emacs_kit_version= infodock_major_version=4 infodock_minor_version=0 infodock_build_version=8