# This is a patch for xemacs-21.5.3 to update it to xemacs-21.5.4 # # To apply this patch: # STEP 1: Chdir to the source directory. # STEP 2: Run the 'applypatch' program with this patch file as input. # # If you do not have 'applypatch', it is part of the 'makepatch' package # that you can fetch from the Comprehensive Perl Archive Network: # http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz # In the above URL, 'x' should be 2 or higher. # # To apply this patch without the use of 'applypatch': # STEP 1: Chdir to the source directory. # If you have a decent Bourne-type shell: # STEP 2: Run the shell with this file as input. # If you don't have such a shell, you may need to manually create/delete # the files as shown below. # STEP 3: Run the 'patch' program with this file as input. # # These are the commands needed to create/delete files/directories: # rm -f './lisp/mule/custom-load.el' rm -f './lisp/mule/auto-autoloads.el' rm -f './lisp/custom-load.el' rm -f './lisp/auto-autoloads.el' touch './CHANGES-msw' chmod 0644 './CHANGES-msw' touch './build-msw-release.sh' chmod 0755 './build-msw-release.sh' touch './configure.ac' chmod 0644 './configure.ac' touch './etc/package-index.LATEST.gpg' chmod 0644 './etc/package-index.LATEST.gpg' touch './info/.cvsignore' chmod 0644 './info/.cvsignore' touch './man/lispref/packaging.texi' chmod 0644 './man/lispref/packaging.texi' touch './netinstall/desktop.h' chmod 0644 './netinstall/desktop.h' touch './netinstall/uninstall.cc' chmod 0644 './netinstall/uninstall.cc' touch './src/toolbar-common.c' chmod 0644 './src/toolbar-common.c' touch './src/toolbar-common.h' chmod 0644 './src/toolbar-common.h' # # This command terminates the shell and need not be executed manually. exit # #### End of Preamble #### #### Patch data follows #### diff --text -u 'xemacs-21.5.3/CHANGES-beta' 'xemacs-21.5.4/CHANGES-beta' Index: ././CHANGES-beta --- ././CHANGES-beta Fri Sep 7 15:40:06 2001 +++ ././CHANGES-beta Sat Jan 5 16:33:11 2002 @@ -1,3 +1,110 @@ +to 21.5.4 "bamboo" +-- auto-mode support .9 files as man pages -- Michael Sperber +-- auto-mode support configure.ac as m4 -- Edward M. Lee +-- bind `replace-rectangle' to `C-x r p' -- Didier Verna +-- bind `hyper-apropos-find-variable' (new) to `v' in hyper-apropos-help-map + -- David A. Panariti +-- bind `delete-other-frames' to `C-x 5 1' -- John Paul Wallington +-- default Info-auto-generate-directory to 'if-outdated -- Adrian Aichner +-- improve printer handling -- Andy Piper, Mike Alexander, Adrian Aichner +-- mark buffer as modified when changing coding system -- Andy Piper +-- minor mode mode-line-strings now customizable -- John Paul Wallington + isearch-mode, abbrev-mode, overwrite-mode, auto-fill-mode, + gnuserv-mode, defining-kbd-macro-mode, font-lock-mode, view-mode +-- search the core etc/ for package index if not in ~/.xemacs/ -- Steve Youngs +-- support sub-expression replacement in replace-match -- Torsten Duwe +-- support user {site,infodock}-packages hierarchies -- Michael Sperber +-- truncate-partial-width-windows now applied in redisplay -- Ben Wing +-- use version-specific name for root testing -- Michael Sperber + Eg, /usr/local/lib/xemacs-21.5.4. Fixes common "can't find root" bug, + but run-in-place XEmacs won't find installed packages. + +-- HTML docs from Texinfo sources -- Adrian Aichner +-- document fix for Motif related crashes (Sun/Solaris) -- Robert Pluim +-- improve package system documentation -- Stephen Turnbull +-- new Japanese translation of xemacs.1 -- Kazuo Oishi +-- update developer personal info -- Jan Vroonhof, Michael Diers +-- many doc fixes and improvements, sorry about the credits :-( + +-- alias `interactive-form' to `function-interactive' -- John Paul Wallington +-- etags to Potorti` version 14.28. -- Yoshiki Hayashi +-- mark-paragraph - added optional argument -- John Paul Wallington + +-- arch-specific files go under ${libdir}, not ${datadir} -- Jered Floyd +-- configure recognizes LDFLAGS and adds to top Makefile -- Lutz Jaenicke +-- eliminate bogus check for Athena widgets -- Alexey Mahotkin +-- omit -Wshadow when compiling with g++ -- Ben Wing +-- use the ld reported by gcc, not gcc -- Andrew Begel +-- work around lack of support for autoconf 2.5x -- Didier Verna + +-- fix "can't Customize standard faces" bug (partially) -- Jan Vroonhof +-- fix "can't close last window" bug -- Adrian Aichner +-- fix "doubled escape" bug in Mule (ISO-2022-7) autosave files -- Kyle Jones +-- fix "fail to save (non-themed) variable customizations" bug -- Andy Piper +-- fix PGP signature handling in package UI -- Steve Youngs +-- fix allocation of module-defined names in symbol table -- Andrew Begel +-- fix conversion of host and network byte order in multicast -- Daiki Ueno +-- fix crash from missing XIM unregister callback on Motif -- Glynn Clements +-- fix crash/infloops in read_key_sequence -- Hirokazu FUKUI +-- fix early dereference crash in decode_buffer -- Torsten Duwe +-- fix handling of negative C times -- Simon Josefsson and Stephen Turnbull +-- fix 'report-xemacs-bug' issues -- Steve Youngs +-- fix several font-lock bugs -- Jan Vroonhof, Andy Piper, Bill Perry +-- fix several package-get bugs -- Steve Youngs +-- fix some slow startups - default with_ipv6_cname=no -- Stephen Turnbull +-- fix unsigned warnings; turn sign-compare warnings on for NT -- Ben Wing +-- fix window_loop iteration across multiple devices -- Darryl Okahata +-- fix/avoid GNU ld -z combreloc lossage -- Stephen Turnbull +-- make sure installed.db gets updated after updating packages -- Andy Piper + +-- GTK improvements/fixes -- Bill Perry + -- add face mappings + -- fix "can't shut up bell" bug + -- fix some face initialization bugs + -- fix subwindow handling + -- fix yes-or-no-p lossage + -- improve conformance to internal APIs + -- munge highlight, zmacs-region, toolbar, and gui-button faces from + default GtkStyle + -- remove useless XPM color symbol checks + +-- MS Windows improvements/fixes -- Andy Piper + -- better build portability + -- change registry key to XEmacs. + -- add/fix Cygwin handling of URLs and win32 paths + -- fix focus and event handling in scrollbars + -- fix get-popup-menu-response bug + -- improve DDE support + -- improve netinstaller, especially uninstall and shortcuts + -- improve popup dialog handling + -- new directory dialog support + -- quit if the user cancels in directory dialog +-- Cygwin nox-xpm detection -- Charles Wilson +-- fix compile problems when --with-msw, --with-x=no, --with-tty=no -- Ben Wing +-- fix file handle leak in pipes -- Mike Alexander +-- initial VC.NET support -- Andrew Begel + +-- Rename/redefine integral types -- Ben Wing + -- See src/ChangeLog for details and rationale. + -- All integral types that measure quantities of anything are signed. + -- All quantity types boil down to EMACS_INT, except Hashcode, + which is an unsigned value of the same size as EMACS_INT. + -- Type names should be relatively short, with the first letter + capitalized and no underscores if they can be avoided. + -- "*count" == zero-based quantity. Includes sizes, offsets, and indexes. + -- "*bpos" == one-based buffer position. + -- "Char" refers to internal-format characters, not to the C type "char". +-- CVS: improve .cvsignore files -- Adrian Aichner +-- autoload handling improvements -- Didier Verna +-- improve handling of face inheritance/fallback -- Jan Vroonhof +-- condense repetitive window-system settings to 'win default' -- Bill Perry +-- improve debugging in event-msw.c -- Adrian Aichner +-- rename Menubar-items-truncate-list to Menubar-items-truncate-history + -- Adrian Aichner +-- rename default package index to 'package-index.LATEST.gpg' -- Steve Youngs +-- unify GUI pixmap handling -- Bill Perry +-- unify toolbar handling across GUI platforms -- Bill Perry + to 21.5.3 "asparagus" -- Add missing XIM unregister callback on Motif -- Glynn Clements -- Improve debugging in event-msw.c, fix "can't close last window" bug diff --text -u /dev/null 'xemacs-21.5.4/CHANGES-msw' Index: ././CHANGES-msw --- ././CHANGES-msw Thu Jan 1 09:00:00 1970 +++ ././CHANGES-msw Thu Dec 20 15:08:09 2001 @@ -0,0 +1,35 @@ +CHANGES-msw + +This file briefly describes all mswindows-specific changes to XEmacs +in the OXYMORON series of releases. The mswindows release branch +contains additional changes on top of the mainline XEmacs +release. These changes are deemed necessary for XEmacs to be fully +functional under mswindows. It is not intended that these changes +cause problems on UNIX systems, but they have not been tested on UNIX +platforms. Caveat Emptor. + +See the file 'CHANGES-release' for a full list of mainline changes. + +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 wiht too many dialog popups. + - Netinstaller fixed to correctly upgrade shortcuts when upgrading + core XEmacs. + +to XEmacs 21.4.5 "Civil Service (Windows)" + + - Fixed a scrollbar problem when selecting the frame with focus. + - Fixed `mswindows-shell-execute' under cygwin. + - Added a new function `mswindows-cygwin-to-win32-path' for JDE. + - Added support for dialog-based directory selection. + - The installer version has been updated to the 21.5 netinstaller. The 21.5 + installer now does proper dde file association and adds uninstall + capability. + - Handle leak fix from Mike Alexander. + - New release build script. diff --text -u 'xemacs-21.5.3/ChangeLog' 'xemacs-21.5.4/ChangeLog' Index: ././ChangeLog --- ././ChangeLog Fri Sep 7 18:13:25 2001 +++ ././ChangeLog Wed Jan 9 01:22:54 2002 @@ -1,3 +1,147 @@ +2002-01-08 Stephen J. Turnbull + + * XEmacs 21.5.4 "bamboo" is released. + +2001-05-17 Andrew Begel + + * aclocal.m4 (LTLD): Don't use "gcc", use the ld reported by gcc. + +2001-05-27 Kazuo Oishi + + * etc/xemacs-ja.1: Replace with new translation. + +2001-08-19 Charles Wilson + + * configure.in (for graphics libraries): Detect Cygwin xpm-nox. + +2001-04-14 Gordon Sadler + + * configure.in: Add GTK_CFLAGS to CPPFLAGS for glade.h check. + +2001-07-01 Alexey Mahotkin + + * configure.in (option processing): with_widgets=m is ambiguous; + don't allow it. + (AC_CHECKING for the Athena widgets): Don't check for Athena when + with_widgets=no. + +2001-07-22 Stephen J. Turnbull + + * configure.usage: Various documentation improvements. + + * configure.in (--with-ipv6-cname): New Boolean option. Defaults on. + * configure.usage: + * PROBLEMS (IPv6 CNAME lookup): + Document it. + +2002-01-02 Adrian Aichner + + * info/dir (File): Reword entry for Emodules according to + ../man/emodules.texi. + +2001-12-29 Steve Youngs + + * etc/package-index.LATEST.gpg: Update. + + * etc/package-index.LATEST.pgp: Update. + +2001-12-18 Adrian Aichner + + * info\.cvsignore: Correct pattern to match all info files. + +2001-12-18 Jan Vroonhof + + * etc/photos/jan.png: Add mug shot. + +2001-12-16 Adrian Aichner + + * info\.cvsignore: Info files are generated, so let's ignore them + all. + +2001-12-15 Adrian Aichner + + * info\dir (File): Update version to 21.5. + +2001-12-03 Didier Verna + + * etc/NEWS: advertise `C-x r p' (replace-rectangle) in global map. + +2001-08-29 Jered Floyd + + * configure.in (moduledir,sitemoduledir,archlibdir): + Place arch-specific files under ${libdir}, not under ${datadir}. + +2001-09-25 Didier Verna + + * configure.ac: new. Autoconf 2.5x guard. + +2001-11-21 Robert Pluim + + * PROBLEMS (Sun/Solaris): Document fix for Motif related crashes + +2001-12-15 Stephen J. Turnbull + + * configure.in (Miscellaneous Flags): test for -z nocombreloc, + instead of -z combreloc, to avoid confusing Solaris. + +2001-11-24 Stephen J. Turnbull + + * configure.usage: Makefile.in -> Makefile.in.in. + +2001-11-21 Stephen J. Turnbull + + * Makefile.in.in: HP-UX needs LDFLAGS. From Lutz Jaenicke + . + +2001-11-17 Stephen J. Turnbull + + * configure.in: Fix typos in comments. + * (Miscellaneous flags): Use -z nocombreloc if supported and !pdump. + * (Installation): Suggest pdump instead of -z nocomboreloc. + * configure.usage: Document --quick-build. + +2001-10-30 Stephen J. Turnbull + + * configure.in: Typo in reference to with_ipv6_cname. + +2001-10-30 Stephen J. Turnbull + + * configure.in: Initialize with_ipv6_cname=no. + * configure.usage: Document it. + +2001-10-05 Stephen J. Turnbull + + * configure.in: Document that autoconf 2.5x is unsupported. + +2001-09-19 Ben Wing + + * configure.in (USAGE_ERROR): + * configure.in (CANONICALIZE_PATH): + * configure.in (XE_COMPUTE_RUNPATH): + + The great integral types renaming. + + Please see the 2001-09-19 entry in src/ChangeLog for the full details. + +2001-09-17 Ben Wing + + * configure.in (TAB): + * configure.in (XE_COMPUTE_RUNPATH): + Don't use -Wshadow when compiling with g++ or you get buried in + silly warnings. This patch was already applied but somehow got + unapplied. Stephen? + +2001-06-24 Ben Wing + + * configure.in (TAB): Don't use -Wshadow when compiling with + g++ or you get buried in silly warnings. + * configure.in (XE_COMPUTE_RUNPATH): Fix compile problems when + compiling --with-msw, --with-x=no, --with-tty=no. + +2001-08-21 Adrian Aichner + + * etc\BETA (writing): Advertise use of build-report. + 2001-09-07 Stephen J. Turnbull * XEmacs 21.5.3 "asparagus" is released. @@ -107,7 +251,7 @@ AC_MSG_ERROR. 2001-05-15 Steve Youngs - * configure.in: + * configure.in: If no native dumper (UNEXEC) is defined, simply use pdump. If no SYSTEM_TYPE is defined, choose an appopriate default. @@ -126,7 +270,7 @@ 2001-05-11 Martin Buchholz - * configure.in: + * configure.in: Check for sys/ptyio.h on HPUX, else for pty.h or perhaps sys/pty.h 2001-05-10 Ben Wing @@ -151,7 +295,7 @@ 2001-05-04 Martin Buchholz - * configure.in (opsys): + * configure.in (opsys): Use lower-case `uname -s` as the default value for opsys. The previous code effectively did the non-sensical opsys=$canonical because [] magically disappear in configure.in. @@ -196,14 +340,14 @@ * etc/OXYMORONS: Add 2 oxymorons, clean up numbering, close RFC. * etc/NEWS: Fix typo. - + * configure.in: * configure: Fix typo, add -Wsign-compare if GCC, run autoconf. 2001-03-23 Stephen J. Turnbull - * etc/gnuserv.1 (UNIX_DOMAIN_SOCKETS: + * etc/gnuserv.1 (UNIX_DOMAIN_SOCKETS: * PROBLEMS (Problems with running XEmacs): Document TMPDIR lossage in gnuserv/gnuclient. diff --text -u 'xemacs-21.5.3/Makefile.in.in' 'xemacs-21.5.4/Makefile.in.in' Index: ././Makefile.in.in --- ././Makefile.in.in Fri Jun 1 14:07:19 2001 +++ ././Makefile.in.in Thu Dec 20 15:08:09 2001 @@ -74,6 +74,7 @@ LN_S=@LN_S@ CFLAGS=@CFLAGS@ CPPFLAGS=@CPPFLAGS@ +LDFLAGS=@LDFLAGS@ ## These help us choose version- and architecture-specific directories ## to install files in. diff --text -u 'xemacs-21.5.3/PROBLEMS' 'xemacs-21.5.4/PROBLEMS' Index: ././PROBLEMS --- ././PROBLEMS Wed May 9 22:46:55 2001 +++ ././PROBLEMS Sat Jan 5 16:33:11 2002 @@ -187,6 +187,33 @@ ** SunOS/Solaris +*** Crashes when using Motif libraries, especially with multiple frames. + +Crashes that produce C-backtraces like this: + +#0 0xfec9a118 in _libc_kill () from /usr/lib/libc.so.1 +#1 0x77f48 in fatal_error_signal (sig=11) + at /codes/rpluim/xemacs-21.4/src/emacs.c:539 +#2 +#3 0xfee929f4 in XFindContext () from /usr/openwin/lib/libX11.so.4 +#4 0xfee92930 in XFindContext () from /usr/openwin/lib/libX11.so.4 +#5 0xff297e54 in DisplayDestroy () from /usr/dt/lib/libXm.so.4 +#6 0xfefbece0 in XtCallCallbackList () from /usr/openwin/lib/libXt.so.4 +#7 0xfefc486c in XtPhase2Destroy () from /usr/openwin/lib/libXt.so.4 +#8 0xfefc45d0 in _XtDoPhase2Destroy () from /usr/openwin/lib/libXt.so.4 +#9 0xfefc43b4 in XtDestroyWidget () from /usr/openwin/lib/libXt.so.4 +#10 0x15cf9c in x_delete_device (d=0x523f00) + +are caused by buggy Motif libraries. Installing the following patches +has been reported to solve the problem on Solaris 2.7: + +107081-40 107656-07 + +For information (although they have not been confirmed to work), the +equivalent patches for Solaris 2.8 are: + +108940-33 108652-25 + *** Dumping error when using GNU binutils / GNU ld on a Sun. Errors similar to the following: @@ -1432,7 +1459,8 @@ solution above is insufficient, because getaddrinfo() by default tries to get IPv6 information for localhost. This always involves a dns lookup to get the CNAME, and the strategies above don't work. It then -falls back to IPv4 behavior. This is good[tm]; trust us. +falls back to IPv4 behavior. This is good[tm] according the people at +WIDE who know about IPv6. ***** Robust network case @@ -1449,21 +1477,7 @@ If you cannot or do not want to do that, you can hard code IPv4 behavior in src/process-unix.c. This is bad[tm], on your own head be -it. In the function unix_canonicalize_host_name() about ten lines -down, change the statement - - hints.ai_family = AF_UNSPEC; - -to - - hints.ai_family = PF_INET; - -and rebuild XEmacs. - -getaddrinfo() is also called in src/sysdep.c:init_system_name() and in -src/process-unix.c:unix_open_network_stream(). It should not be -useful to make this change in either of those places. - +it. Use the configure option `--with-ipv6-cname=no'. ** IRIX *** On Irix, I don't see the toolbar icons and I'm getting lots of diff --text -u 'xemacs-21.5.3/aclocal.m4' 'xemacs-21.5.4/aclocal.m4' Index: ././aclocal.m4 --- ././aclocal.m4 Fri Apr 13 03:20:32 2001 +++ ././aclocal.m4 Sat Jan 5 16:33:11 2002 @@ -313,12 +313,13 @@ # Accept absolute paths. /*) if test -z "$LTLD"; then - case "$ac_prog" in - *gcc-lib*) LTLD="$CC" - ;; - *) LTLD="$ac_prog" - ;; - esac +# case "$ac_prog" in +# *gcc-lib*) LTLD="$CC" +# ;; +# *) + LTLD="$ac_prog" +# ;; +# esac fi ;; "") diff --text -u /dev/null 'xemacs-21.5.4/build-msw-release.sh' Index: ././build-msw-release.sh --- ././build-msw-release.sh Thu Jan 1 09:00:00 1970 +++ ././build-msw-release.sh Thu Dec 20 15:10:13 2001 @@ -0,0 +1,126 @@ +#!/bin/sh + +# This file builds the release kits for both cygwin and win32. You +# must have both environments configured for it to work properly. In +# particular you must provide a suitable value for NATIVE_ZLIB_DIR. + +# configuration +NATIVE_ZLIB_DIR=/usr/local/mingw/lib +PROGRAM_FILES='c:/Program Files/XEmacs' +# no configuration past this point + +INSTALL= +FILES= +BUILD=1 + +for OPT in $* +do + case $OPT in + --install) INSTALL=1;; + --installonly) INSTALL=1; BUILD='';; + --help) echo "usage: build-msw-release.sh [--install]" && exit;; + --*) ;; + *) FILES="$FILES $OPT";; + esac +done + +# pick up version info +. version.sh + +# decide on names +emacs_ver=${emacs_major_version}.${emacs_minor_version}.${emacs_beta_version} +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 + +DISTDIR=`pwd`/windows + +# check to see if we should build +if test "$BUILD" = "1" +then + +echo "Building the mswindows ${emacs_ver} release" + +# cleanup everything first +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 + +# first build win32 +(cd nt; + nmake -f xemacs.mak clean; + nmake -f xemacs.mak) +(cd "${PROGRAM_FILES}"; + rm -rf ./XEmacs-${emacs_ver}) +(cd nt; + nmake -f xemacs.mak install; + nmake -f xemacs.mak clean) + +# now build cygwin +./configure --with-dragndrop --with-postgresql=no --with-x=no \ + --bindir=/usr/local/bin/i686-pc-cygwin --with-site-lisp=yes \ + --with-ipv6-cname=no --with-netinstall +make CFLAGS=-O3 MINGW_ZLIB_DIR=${NATIVE_ZLIB_DIR} beta + +# deal with the netinstaller +(cd netinstall; + strip setup.exe) +cp netinstall/setup.exe windows + +# the win32 tar ball needs setup.exe +cp netinstall/setup.exe \ + "${PROGRAM_FILES}"/XEmacs-${emacs_ver}/i586-pc-win32 + +# make the win32 tarball +(cd "${PROGRAM_FILES}"; + tar czvf ${DISTDIR}/win32/${win32_tarball} \ + ./XEmacs-${emacs_ver}) + +# make the tarball +make install +(cd /usr/local; + tar czvf ${DISTDIR}/cygwin32/${cygwin_tarball} \ + ./bin/i686-pc-cygwin \ + ./lib/xemacs-${emacs_ver} \ + ./lib/xemacs/lock \ + ./man/man1/ctags.1 \ + ./man/man1/etags.1 \ + ./man/man1/gnuattach.1 \ + ./man/man1/gnuclient.1 \ + ./man/man1/gnudoit.1 \ + ./man/man1/gnuserv.1 \ + ./man/man1/xemacs.1) + +# figure out the ini file. +cygwin_tarball_size=`ls -l windows/cygwin32/${cygwin_tarball} | awk '{ print $5; }'` +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} \ + KIT_VERSION=${emacs_kit_version} setup-bin.ini ) +cp netinstall/setup-bin.ini windows + +# tidy up +make distclean + +fi +# end of build + +# optionally install to the ftp site +if test "$INSTALL" != "" +then + echo "Installing the mswindows ${emacs_ver} release" + scp -r -oUser=slb -oProtocol=1 windows/* \ + ftp.xemacs.org:/pub/xemacs/windows + # update setup.ini + ssh -1 -l slb ftp.xemacs.org 'cd /pub/xemacs/windows; sh makeini.sh' +fi + diff --text -u 'xemacs-21.5.3/configure' 'xemacs-21.5.4/configure' Index: ././configure --- ././configure Fri Sep 7 18:13:10 2001 +++ ././configure Wed Jan 9 01:22:52 2002 @@ -16,6 +16,7 @@ ### To rebuild it, execute the command ### autoconf ### in the this directory. You must have autoconf version 2.13 or later. +### Note: this script has not yet been ported to autoconf version 2.5x. ### This file is part of XEmacs. @@ -222,13 +223,13 @@ infopath='' install_pp='' lispdir='${datadir}/${instvardir}/lisp' -moduledir='${datadir}/${instvardir}/${configuration}/modules' +moduledir='${libdir}/${instvardir}/${configuration}/modules' sitelispdir='${datadir}/${inststaticdir}/site-lisp' -sitemoduledir='${datadir}/${inststaticdir}/site-modules' +sitemoduledir='${libdir}/${inststaticdir}/site-modules' pkgdir='${datadir}/${instvardir}/lisp' package_path='' etcdir='${datadir}/${instvardir}/etc' -archlibdir='${datadir}/${instvardir}/${configuration}' +archlibdir='${libdir}/${instvardir}/${configuration}' docdir='${archlibdir}' with_netinstall="no" with_prefix='yes' @@ -256,6 +257,7 @@ with_dnet="" pdump="no" with_dragndrop="no" +with_ipv6_cname="no" @@ -349,7 +351,8 @@ with_hesiod | \ with_dnet | \ with_infodock | \ - with_netinstall | \ + with_netinstall | \ + with_ipv6_cname | \ external_widget | \ verbose | \ extra_verbose | \ @@ -466,7 +469,8 @@ (echo "$progname: Usage error:" echo " " "Valid types for the \`--$optname' option are: $types. -The default is to autodetect all sound support." +Option \`all' or \`none' must be first in the list. +The default is to autodetect native and NAS sound support." echo " Use \`$progname --help' to show usage.") >&2 && exit 1 elif test -n "$new_sdefault" ; then with_native_sound=$new_sdefault @@ -534,8 +538,8 @@ typecheck ) error_check_typecheck=yes ;; notypecheck ) error_check_typecheck=no ;; - bufpos ) error_check_bufpos=yes ;; - nobufpos ) error_check_bufpos=no ;; + charbpos ) error_check_charbpos=yes ;; + nocharbpos ) error_check_charbpos=no ;; gc ) error_check_gc=yes ;; nogc ) error_check_gc=no ;; @@ -554,9 +558,9 @@ if test "$bogus_error_check" -o \ \( -n "$new_default" -a -n "$echeck_notfirst" \) ; then if test "$error_check_default" = yes ; then - types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', \`nomalloc', \`noglyphs' and \`nobyte-code'." + types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nocharbpos', \`nogc', \`nomalloc', \`noglyphs' and \`nobyte-code'." else - types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', \`malloc', \`glyphs' and \`byte-code'." + types="\`all', \`none' (default), \`extents', \`typecheck', \`charbpos', \`gc', \`malloc', \`glyphs' and \`byte-code'." fi (echo "$progname: Usage error:" echo " " "Valid types for the \`--$optname' option are: @@ -565,7 +569,7 @@ elif test -n "$new_default" ; then error_check_extents=$new_default error_check_typecheck=$new_default - error_check_bufpos=$new_default + error_check_charbpos=$new_default error_check_gc=$new_default error_check_malloc=$new_default error_check_byte_code=$new_default @@ -733,12 +737,12 @@ "with_widgets" ) case "$val" in l | lu | luc | luci | lucid ) val=lucid ;; - m | mo | mot | moti | motif ) val=motif ;; + mo | mot | moti | motif ) val=motif ;; a | at | ath | athe | athen | athena ) val=athena ;; n | no | non | none ) val=no ;; y | ye | yes ) val=yes ;; g | gt | gtk ) val=gtk ;; - m | ms | msw ) val=msw ;; + ms | msw ) val=msw ;; * ) (echo "$progname: Usage error:" echo " " "The \`--$optname' option must have one of these values: \`gtk', \`lucid', \`motif', \`athena', \`yes', or \`no'." @@ -843,7 +847,7 @@ fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:847: checking whether ln -s works" >&5 +echo "configure:851: checking whether ln -s works" >&5 rm -f conftestdata if ln -s X conftestdata 2>/dev/null @@ -1032,11 +1036,11 @@ EOF } -test "${error_check_bufpos=$beta}" = yes && { test "$extra_verbose" = "yes" && cat << \EOF - Defining ERROR_CHECK_BUFPOS +test "${error_check_charbpos=$beta}" = yes && { test "$extra_verbose" = "yes" && cat << \EOF + Defining ERROR_CHECK_CHARBPOS EOF cat >> confdefs.h <<\EOF -#define ERROR_CHECK_BUFPOS 1 +#define ERROR_CHECK_CHARBPOS 1 EOF } @@ -1108,7 +1112,7 @@ echo $ac_n "checking "host system type"""... $ac_c" 1>&6 -echo "configure:1112: checking "host system type"" >&5 +echo "configure:1116: checking "host system type"" >&5 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'` canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"` configuration=`echo "$configuration" | sed 's/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/'` @@ -1623,7 +1627,7 @@ # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1627: checking for $ac_word" >&5 +echo "configure:1631: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1650,7 +1654,7 @@ # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1654: checking for $ac_word" >&5 +echo "configure:1658: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1698,7 +1702,7 @@ # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1702: checking for $ac_word" >&5 +echo "configure:1706: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1727,7 +1731,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1731: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1735: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS' @@ -1740,12 +1744,12 @@ cat > conftest.$ac_ext << EOF -#line 1744 "configure" +#line 1748 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1773,19 +1777,19 @@ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1777: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1781: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1782: checking whether we are using GNU C" >&5 +echo "configure:1786: checking whether we are using GNU C" >&5 cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1793: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1803,7 +1807,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1807: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1811: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -1836,7 +1840,7 @@ # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1840: checking for $ac_word" >&5 +echo "configure:1844: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1863,7 +1867,7 @@ # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1867: checking for $ac_word" >&5 +echo "configure:1871: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1911,7 +1915,7 @@ # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1915: checking for $ac_word" >&5 +echo "configure:1919: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1940,7 +1944,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1944: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1948: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS' @@ -1953,12 +1957,12 @@ cat > conftest.$ac_ext << EOF -#line 1957 "configure" +#line 1961 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1986,19 +1990,19 @@ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1990: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1994: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1995: checking whether we are using GNU C" >&5 +echo "configure:1999: checking whether we are using GNU C" >&5 cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2006: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -2016,7 +2020,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:2020: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2024: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -2049,7 +2053,7 @@ # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2053: checking for $ac_word" >&5 +echo "configure:2057: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2076,7 +2080,7 @@ # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2080: checking for $ac_word" >&5 +echo "configure:2084: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2124,7 +2128,7 @@ # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2128: checking for $ac_word" >&5 +echo "configure:2132: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2153,7 +2157,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2157: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2161: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS' @@ -2166,12 +2170,12 @@ cat > conftest.$ac_ext << EOF -#line 2170 "configure" +#line 2174 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -2199,19 +2203,19 @@ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:2203: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2207: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:2208: checking whether we are using GNU C" >&5 +echo "configure:2212: checking whether we are using GNU C" >&5 cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2219: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -2229,7 +2233,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:2233: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2237: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -2266,7 +2270,7 @@ test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:2270: checking how to run the C preprocessor" >&5 +echo "configure:2274: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -2279,13 +2283,13 @@ # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2289: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2293: \"$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 : @@ -2296,13 +2300,13 @@ rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2306: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2310: \"$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 : @@ -2313,13 +2317,13 @@ rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2323: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2327: \"$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 : @@ -2345,9 +2349,9 @@ echo $ac_n "checking for AIX""... $ac_c" 1>&6 -echo "configure:2349: checking for AIX" >&5 +echo "configure:2353: checking for AIX" >&5 cat > conftest.$ac_ext <&6 -echo "configure:2378: checking for GNU libc" >&5 +echo "configure:2382: checking for GNU libc" >&5 cat > conftest.$ac_ext < int main() { @@ -2388,7 +2392,7 @@ ; return 0; } EOF -if { (eval echo configure:2392: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2396: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_glibc=yes else @@ -2465,7 +2469,7 @@ esac cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:2487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -2731,17 +2735,17 @@ if test "$__USLC__" = yes; then echo $ac_n "checking for whether the -Kalloca compiler flag is needed""... $ac_c" 1>&6 -echo "configure:2735: checking for whether the -Kalloca compiler flag is needed" >&5 +echo "configure:2739: checking for whether the -Kalloca compiler flag is needed" >&5 need_kalloca=no cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* : else @@ -2752,14 +2756,14 @@ xe_save_c_switch_system="$c_switch_system" c_switch_system="$c_switch_system -Kalloca" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* need_kalloca=yes else @@ -2776,8 +2780,11 @@ if test "$cflags_specified" = "no"; then if test "$GCC" = "yes"; then - CFLAGS="-g -O3 -Wall -Wno-switch -Winline -Wmissing-prototypes -Wshadow" + CFLAGS="-g -O3 -Wall -Wno-switch -Winline -Wmissing-prototypes" CFLAGS="$CFLAGS -Wsign-compare" + if test "$xemacs_compiler" != "g++"; then + CFLAGS="$CFLAGS -Wshadow" + fi test "$have_glibc" != "yes" && CFLAGS="$CFLAGS -Wpointer-arith" elif test "$__SUNPRO_C" = "yes"; then case "$opsys" in @@ -2794,7 +2801,7 @@ if test "$GCC" = "yes"; then echo $ac_n "checking for buggy gcc versions""... $ac_c" 1>&6 -echo "configure:2798: checking for buggy gcc versions" >&5 +echo "configure:2805: checking for buggy gcc versions" >&5 GCC_VERSION=`$CC --version` case `uname -s`:`uname -m`:$GCC_VERSION in *:sun4*:2.8.1|*:sun4*:egcs-2.90.*) @@ -2917,7 +2924,7 @@ fi echo $ac_n "checking for dynodump""... $ac_c" 1>&6 -echo "configure:2921: checking for dynodump" >&5 +echo "configure:2928: checking for dynodump" >&5 if test "$unexec" != "unexsol2.o"; then echo "$ac_t""no" 1>&6 else @@ -2955,12 +2962,12 @@ done echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6 -echo "configure:2959: checking for terminateAndUnload in -lC" >&5 +echo "configure:2966: 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:2982: \"$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 @@ -3079,7 +3086,7 @@ if test "$add_runtime_path" = "yes"; then echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6 -echo "configure:3083: checking "for runtime libraries flag"" >&5 +echo "configure:3090: checking "for runtime libraries flag"" >&5 case "$opsys" in sol2 ) dash_r="-R" ;; decosf* | linux* | irix*) dash_r="-rpath " ;; @@ -3101,14 +3108,14 @@ done fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* dash_r="$try_dash_r" else @@ -3209,10 +3216,10 @@ fi after_morecore_hook_exists=yes echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6 -echo "configure:3213: checking for malloc_set_state" >&5 +echo "configure:3220: 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:3246: \"$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 @@ -3255,16 +3262,16 @@ fi echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6 -echo "configure:3259: checking whether __after_morecore_hook exists" >&5 +echo "configure:3266: 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:3275: \"$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 @@ -3320,7 +3327,7 @@ # 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:3324: checking for $ac_word" >&5 +echo "configure:3331: checking for $ac_word" >&5 if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -3375,7 +3382,7 @@ # 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:3379: checking for a BSD compatible install" >&5 +echo "configure:3386: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" @@ -3429,7 +3436,7 @@ # 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:3433: checking for $ac_word" >&5 +echo "configure:3440: checking for $ac_word" >&5 if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. @@ -3461,15 +3468,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3465: checking for $ac_hdr" >&5 +echo "configure:3472: 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:3473: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3480: \"$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* @@ -3499,10 +3506,10 @@ done echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:3503: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:3510: checking for sys/wait.h that is POSIX.1 compatible" >&5 cat > conftest.$ac_ext < #include @@ -3518,7 +3525,7 @@ s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:3522: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3529: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -3542,10 +3549,10 @@ fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:3546: checking for ANSI C header files" >&5 +echo "configure:3553: checking for ANSI C header files" >&5 cat > conftest.$ac_ext < #include @@ -3553,7 +3560,7 @@ #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3557: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3564: \"$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* @@ -3570,7 +3577,7 @@ 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 @@ -3588,7 +3595,7 @@ 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 @@ -3606,7 +3613,7 @@ 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') @@ -3617,7 +3624,7 @@ exit (0); } EOF -if { (eval echo configure:3621: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:3628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -3643,10 +3650,10 @@ fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:3647: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:3654: checking whether time.h and sys/time.h may both be included" >&5 cat > conftest.$ac_ext < #include @@ -3655,7 +3662,7 @@ struct tm *tp; ; return 0; } EOF -if { (eval echo configure:3659: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3666: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -3679,10 +3686,10 @@ fi echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 -echo "configure:3683: checking for sys_siglist declaration in signal.h or unistd.h" >&5 +echo "configure:3690: checking for sys_siglist declaration in signal.h or unistd.h" >&5 cat > conftest.$ac_ext < #include @@ -3694,7 +3701,7 @@ char *msg = *(sys_siglist + 1); ; return 0; } EOF -if { (eval echo configure:3698: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3705: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes else @@ -3720,9 +3727,9 @@ echo $ac_n "checking for utime""... $ac_c" 1>&6 -echo "configure:3724: checking for utime" >&5 +echo "configure:3731: checking for utime" >&5 cat > conftest.$ac_ext < #include @@ -3730,7 +3737,7 @@ struct utimbuf x; x.actime = x.modtime = 0; utime ("/", &x); ; return 0; } EOF -if { (eval echo configure:3734: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3741: \"$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 @@ -3749,10 +3756,10 @@ for ac_func in utimes do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3753: checking for $ac_func" >&5 +echo "configure:3760: 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:3786: \"$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 @@ -3807,10 +3814,10 @@ echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:3811: checking return type of signal handlers" >&5 +echo "configure:3818: checking return type of signal handlers" >&5 cat > conftest.$ac_ext < #include @@ -3827,7 +3834,7 @@ int i; ; return 0; } EOF -if { (eval echo configure:3831: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3838: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -3849,10 +3856,10 @@ echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3853: checking for size_t" >&5 +echo "configure:3860: checking for size_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3883,10 +3890,10 @@ fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:3887: checking for pid_t" >&5 +echo "configure:3894: checking for pid_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3917,10 +3924,10 @@ fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:3921: checking for uid_t in sys/types.h" >&5 +echo "configure:3928: checking for uid_t in sys/types.h" >&5 cat > conftest.$ac_ext < EOF @@ -3956,10 +3963,10 @@ fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:3960: checking for mode_t" >&5 +echo "configure:3967: checking for mode_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3990,10 +3997,10 @@ fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3994: checking for off_t" >&5 +echo "configure:4001: checking for off_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -4024,10 +4031,10 @@ fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:4028: checking for ssize_t" >&5 +echo "configure:4035: checking for ssize_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -4059,9 +4066,9 @@ echo $ac_n "checking for socklen_t""... $ac_c" 1>&6 -echo "configure:4063: checking for socklen_t" >&5 +echo "configure:4070: checking for socklen_t" >&5 cat > conftest.$ac_ext < socklen_t x; @@ -4070,7 +4077,7 @@ ; return 0; } EOF -if { (eval echo configure:4074: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4081: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -4079,7 +4086,7 @@ rm -rf conftest* cat > conftest.$ac_ext < int accept (int, struct sockaddr *, size_t *); @@ -4088,7 +4095,7 @@ ; return 0; } EOF -if { (eval echo configure:4092: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4099: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""size_t" 1>&6 @@ -4120,9 +4127,9 @@ rm -f conftest* echo $ac_n "checking for struct timeval""... $ac_c" 1>&6 -echo "configure:4124: checking for struct timeval" >&5 +echo "configure:4131: checking for struct timeval" >&5 cat > conftest.$ac_ext < @@ -4138,7 +4145,7 @@ static struct timeval x; x.tv_sec = x.tv_usec; ; return 0; } EOF -if { (eval echo configure:4142: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4149: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 HAVE_TIMEVAL=yes @@ -4160,10 +4167,10 @@ rm -f conftest* echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 -echo "configure:4164: checking whether struct tm is in sys/time.h or time.h" >&5 +echo "configure:4171: checking whether struct tm is in sys/time.h or time.h" >&5 cat > conftest.$ac_ext < #include @@ -4171,7 +4178,7 @@ struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:4175: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4182: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -4195,10 +4202,10 @@ fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 -echo "configure:4199: checking for tm_zone in struct tm" >&5 +echo "configure:4206: checking for tm_zone in struct tm" >&5 cat > conftest.$ac_ext < #include <$ac_cv_struct_tm> @@ -4206,7 +4213,7 @@ struct tm tm; tm.tm_zone; ; return 0; } EOF -if { (eval echo configure:4210: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4217: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes else @@ -4229,10 +4236,10 @@ else echo $ac_n "checking for tzname""... $ac_c" 1>&6 -echo "configure:4233: checking for tzname" >&5 +echo "configure:4240: checking for tzname" >&5 cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ @@ -4242,7 +4249,7 @@ atoi(*tzname); ; return 0; } EOF -if { (eval echo configure:4246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_var_tzname=yes else @@ -4268,10 +4275,10 @@ echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:4272: checking for working const" >&5 +echo "configure:4279: checking for working const" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4331: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -4345,7 +4352,7 @@ echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:4349: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:4356: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` cat > conftestmake <<\EOF @@ -4370,12 +4377,12 @@ echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:4374: checking whether byte ordering is bigendian" >&5 +echo "configure:4381: 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 @@ -4386,11 +4393,11 @@ #endif ; return 0; } EOF -if { (eval echo configure:4390: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4397: \"$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 @@ -4401,7 +4408,7 @@ #endif ; return 0; } EOF -if { (eval echo configure:4405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4412: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -4418,7 +4425,7 @@ 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:4442: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_bigendian=no else @@ -4458,10 +4465,10 @@ echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:4462: checking size of short" >&5 +echo "configure:4469: checking size of short" >&5 cat > conftest.$ac_ext < #include @@ -4473,7 +4480,7 @@ exit(0); } EOF -if { (eval echo configure:4477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_short=`cat conftestval` else @@ -4501,10 +4508,10 @@ exit 1 fi echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:4505: checking size of int" >&5 +echo "configure:4512: checking size of int" >&5 cat > conftest.$ac_ext < #include @@ -4516,7 +4523,7 @@ exit(0); } EOF -if { (eval echo configure:4520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_int=`cat conftestval` else @@ -4538,10 +4545,10 @@ echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:4542: checking size of long" >&5 +echo "configure:4549: checking size of long" >&5 cat > conftest.$ac_ext < #include @@ -4553,7 +4560,7 @@ exit(0); } EOF -if { (eval echo configure:4557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_long=`cat conftestval` else @@ -4575,10 +4582,10 @@ echo $ac_n "checking size of long long""... $ac_c" 1>&6 -echo "configure:4579: checking size of long long" >&5 +echo "configure:4586: checking size of long long" >&5 cat > conftest.$ac_ext < #include @@ -4590,7 +4597,7 @@ exit(0); } EOF -if { (eval echo configure:4594: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4601: \"$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 @@ -4612,10 +4619,10 @@ echo $ac_n "checking size of void *""... $ac_c" 1>&6 -echo "configure:4616: checking size of void *" >&5 +echo "configure:4623: checking size of void *" >&5 cat > conftest.$ac_ext < #include @@ -4627,7 +4634,7 @@ exit(0); } EOF -if { (eval echo configure:4631: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4638: \"$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 @@ -4650,7 +4657,7 @@ echo $ac_n "checking for long file names""... $ac_c" 1>&6 -echo "configure:4654: checking for long file names" >&5 +echo "configure:4661: 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: @@ -4696,10 +4703,10 @@ echo $ac_n "checking for sin""... $ac_c" 1>&6 -echo "configure:4700: checking for sin" >&5 +echo "configure:4707: checking for sin" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4733: \"$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 @@ -4740,12 +4747,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 -echo "configure:4744: checking for sin in -lm" >&5 +echo "configure:4751: 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:4767: \"$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 @@ -4800,14 +4807,14 @@ cat > conftest.$ac_ext < int main() { return atanh(1.0) + asinh(1.0) + acosh(1.0); ; return 0; } EOF -if { (eval echo configure:4811: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4818: \"$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 @@ -4826,10 +4833,10 @@ for ac_func in mkstemp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4830: checking for $ac_func" >&5 +echo "configure:4837: 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:4863: \"$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 @@ -4881,14 +4888,14 @@ echo "checking type of mail spool file locking" 1>&6 -echo "configure:4885: checking type of mail spool file locking" >&5 +echo "configure:4892: 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:4889: checking for $ac_func" >&5 +echo "configure:4896: 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:4922: \"$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 @@ -4993,12 +5000,12 @@ case "$opsys" in decosf*) echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6 -echo "configure:4997: checking for cma_open in -lpthreads" >&5 +echo "configure:5004: 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:5020: \"$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 @@ -5044,8 +5051,9 @@ c_switch_site="$c_switch_site -threads" ;; esac + echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6 -echo "configure:5049: checking whether the -xildoff compiler flag is required" >&5 +echo "configure:5057: 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; @@ -5057,7 +5065,7 @@ 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:5061: checking for \"-z ignore\" linker flag" >&5 +echo "configure:5069: 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 ;; @@ -5066,9 +5074,19 @@ fi fi +if test "$pdump" != "yes"; then + echo $ac_n "checking for \"-z nocombreloc\" linker flag""... $ac_c" 1>&6 +echo "configure:5080: 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:5072: checking "for specified window system"" >&5 +echo "configure:5090: checking "for specified window system"" >&5 GNOME_CONFIG=no @@ -5076,7 +5094,7 @@ if test "$with_gnome" != "no"; then echo $ac_n "checking for GNOME configuration script""... $ac_c" 1>&6 -echo "configure:5080: checking for GNOME configuration script" >&5 +echo "configure:5098: checking for GNOME configuration script" >&5 for possible in gnome-config do possible_version=`${possible} --version 2> /dev/null` @@ -5107,7 +5125,7 @@ if test "$with_gtk" != "no";then echo $ac_n "checking for GTK configuration script""... $ac_c" 1>&6 -echo "configure:5111: checking for GTK configuration script" >&5 +echo "configure:5129: checking for GTK configuration script" >&5 for possible in gtk12-config gtk14-config gtk-config do possible_version=`${possible} --version 2> /dev/null` @@ -5129,37 +5147,40 @@ if test "${GTK_CONFIG}" != "no"; then echo $ac_n "checking gtk version""... $ac_c" 1>&6 -echo "configure:5133: checking gtk version" >&5 +echo "configure:5151: 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:5138: checking gtk libs" >&5 +echo "configure:5156: 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:5144: checking gtk cflags" >&5 +echo "configure:5162: checking gtk cflags" >&5 GTK_CFLAGS=`${GTK_CONFIG} --cflags` + if test "$GCC" = "yes"; then + GTK_CFLAGS="${GTK_CFLAGS} -Wno-shadow" + fi c_switch_gtk="$c_switch_gtk ${GTK_CFLAGS}" && if test "$extra_verbose" = "yes"; then echo " Appending \"${GTK_CFLAGS}\" to \$c_switch_gtk"; fi echo "$ac_t""${GTK_CFLAGS}" 1>&6 echo $ac_n "checking for main in -lgdk_imlib""... $ac_c" 1>&6 -echo "configure:5151: checking for main in -lgdk_imlib" >&5 +echo "configure:5172: 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:5184: \"$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 @@ -5181,12 +5202,12 @@ echo $ac_n "checking for Imlib_init in -lImlib""... $ac_c" 1>&6 -echo "configure:5185: checking for Imlib_init in -lImlib" >&5 +echo "configure:5206: 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:5222: \"$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 @@ -5220,10 +5241,10 @@ for ac_func in gdk_imlib_init do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5224: checking for $ac_func" >&5 +echo "configure:5245: 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:5271: \"$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 @@ -5316,22 +5337,24 @@ fi OLD_CFLAGS="${CFLAGS}" + OLD_CPPFLAGS="${CPPFLAGS}" OLD_LDFLAGS="${LDFLAGS}" CFLAGS="${GTK_CFLAGS} ${CFLAGS}" + CPPFLAGS="${GTK_CFLAGS} ${CFLAGS}" LDFLAGS="${LDFLAGS} ${GTK_LIBS}" for ac_hdr in glade/glade.h glade.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5327: checking for $ac_hdr" >&5 +echo "configure:5350: 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:5335: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5358: \"$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* @@ -5362,19 +5385,19 @@ echo $ac_n "checking for main in -lxml""... $ac_c" 1>&6 -echo "configure:5366: checking for main in -lxml" >&5 +echo "configure:5389: 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:5401: \"$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 @@ -5396,19 +5419,19 @@ echo $ac_n "checking for main in -lglade""... $ac_c" 1>&6 -echo "configure:5400: checking for main in -lglade" >&5 +echo "configure:5423: 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:5435: \"$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 @@ -5430,19 +5453,19 @@ echo $ac_n "checking for main in -lglade-gnome""... $ac_c" 1>&6 -echo "configure:5434: checking for main in -lglade-gnome" >&5 +echo "configure:5457: 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:5469: \"$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 @@ -5463,7 +5486,7 @@ cat > conftest.$ac_ext < EOF @@ -5486,6 +5509,7 @@ rm -f conftest* CFLAGS="${OLD_CFLAGS}" + CPPFLAGS="${OLD_CPPFLAGS}" LDFLAGS="${OLD_LDFLAGS}" fi @@ -5521,7 +5545,7 @@ # 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:5525: checking for X" >&5 +echo "configure:5549: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -5581,12 +5605,12 @@ # 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:5590: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5614: \"$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* @@ -5655,14 +5679,14 @@ 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:5690: \"$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. @@ -5771,17 +5795,17 @@ 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:5775: checking whether -R must be followed by a space" >&5 +echo "configure:5799: 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:5809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else @@ -5797,14 +5821,14 @@ 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:5832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else @@ -5840,12 +5864,12 @@ else echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:5844: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:5868: 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:5884: \"$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 @@ -5880,12 +5904,12 @@ 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:5884: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:5908: 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:5924: \"$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 @@ -5925,10 +5949,10 @@ # 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:5929: checking for gethostbyname" >&5 +echo "configure:5953: checking for gethostbyname" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5979: \"$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 @@ -5972,12 +5996,12 @@ if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:5976: checking for gethostbyname in -lnsl" >&5 +echo "configure:6000: 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:6016: \"$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 @@ -6018,10 +6042,10 @@ # -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:6022: checking for connect" >&5 +echo "configure:6046: checking for connect" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6072: \"$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 @@ -6067,12 +6091,12 @@ 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:6071: checking "$xe_msg_checking"" >&5 +echo "configure:6095: 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:6111: \"$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 @@ -6107,10 +6131,10 @@ # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 -echo "configure:6111: checking for remove" >&5 +echo "configure:6135: checking for remove" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6161: \"$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 @@ -6154,12 +6178,12 @@ if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:6158: checking for remove in -lposix" >&5 +echo "configure:6182: 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:6198: \"$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 @@ -6194,10 +6218,10 @@ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:6198: checking for shmat" >&5 +echo "configure:6222: checking for shmat" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6248: \"$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 @@ -6241,12 +6265,12 @@ if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:6245: checking for shmat in -lipc" >&5 +echo "configure:6269: 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:6285: \"$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 @@ -6293,12 +6317,12 @@ 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:6297: checking "$xe_msg_checking"" >&5 +echo "configure:6321: 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:6337: \"$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 @@ -6476,7 +6500,7 @@ echo "checking for X defines extracted by xmkmf" 1>&6 -echo "configure:6480: checking for X defines extracted by xmkmf" >&5 +echo "configure:6504: checking for X defines extracted by xmkmf" >&5 rm -fr conftestdir if mkdir conftestdir; then cd conftestdir @@ -6525,15 +6549,15 @@ ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6 -echo "configure:6529: checking for X11/Intrinsic.h" >&5 +echo "configure:6553: 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:6537: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6561: \"$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* @@ -6557,12 +6581,12 @@ echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:6561: checking for XOpenDisplay in -lX11" >&5 +echo "configure:6585: 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:6601: \"$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 +6622,12 @@ 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:6602: checking "$xe_msg_checking"" >&5 +echo "configure:6626: 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:6642: \"$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 @@ -6641,12 +6665,12 @@ echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6 -echo "configure:6645: checking for XShapeSelectInput in -lXext" >&5 +echo "configure:6669: 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:6685: \"$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 @@ -6680,12 +6704,12 @@ echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6 -echo "configure:6684: checking for XtOpenDisplay in -lXt" >&5 +echo "configure:6708: 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:6724: \"$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 @@ -6719,14 +6743,14 @@ echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6 -echo "configure:6723: checking the version of X11 being used" >&5 +echo "configure:6747: 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:6730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:6754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest foobar; x11_release=$? else @@ -6757,10 +6781,10 @@ for ac_func in XConvertCase do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6761: checking for $ac_func" >&5 +echo "configure:6785: 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:6811: \"$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 @@ -6815,15 +6839,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6819: checking for $ac_hdr" >&5 +echo "configure:6843: 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:6827: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6851: \"$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* @@ -6856,10 +6880,10 @@ for ac_func in XRegisterIMInstantiateCallback do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6860: checking for $ac_func" >&5 +echo "configure:6884: 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:6910: \"$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 @@ -6910,9 +6934,9 @@ done echo $ac_n "checking for standard XRegisterIMInstantiateCallback prototype""... $ac_c" 1>&6 -echo "configure:6914: checking for standard XRegisterIMInstantiateCallback prototype" >&5 +echo "configure:6938: checking for standard XRegisterIMInstantiateCallback prototype" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6952: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -6945,12 +6969,12 @@ test -z "$with_xmu" && { echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6 -echo "configure:6949: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 +echo "configure:6973: 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: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 @@ -7000,19 +7024,19 @@ echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 -echo "configure:7004: checking for main in -lXbsd" >&5 +echo "configure:7028: 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:7040: \"$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 @@ -7049,22 +7073,22 @@ fi if test "$with_msw" != "no"; then echo "checking for MS-Windows" 1>&6 -echo "configure:7053: checking for MS-Windows" >&5 +echo "configure:7077: checking for MS-Windows" >&5 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6 -echo "configure:7056: checking for main in -lgdi32" >&5 +echo "configure:7080: 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:7092: \"$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 @@ -7137,14 +7161,14 @@ fi fi cat > conftest.$ac_ext < int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; } EOF -if { (eval echo configure:7146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:7170: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then - { test "$extra_verbose" = "yes" && cat << \EOF + need_event_unixoid=yes; { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_MSG_SELECT EOF cat >> confdefs.h <<\EOF @@ -7206,15 +7230,15 @@ 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:7210: checking for X11/extensions/shape.h" >&5 +echo "configure:7234: 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:7218: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7242: \"$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* @@ -7266,7 +7290,7 @@ esac echo "checking for WM_COMMAND option" 1>&6 -echo "configure:7270: checking for WM_COMMAND option" >&5; +echo "configure:7294: checking for WM_COMMAND option" >&5; if test "$with_wmcommand" != "no"; then { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_WMCOMMAND @@ -7281,15 +7305,15 @@ 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:7285: checking for X11/Xauth.h" >&5 +echo "configure:7309: 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:7293: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7317: \"$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* @@ -7312,12 +7336,12 @@ } test -z "$with_xauth" && { echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6 -echo "configure:7316: checking for XauGetAuthByAddr in -lXau" >&5 +echo "configure:7340: 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:7356: \"$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 @@ -7373,15 +7397,15 @@ 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:7377: checking for ${dir}tt_c.h" >&5 +echo "configure:7401: 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:7385: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7409: \"$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* @@ -7417,12 +7441,12 @@ 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:7421: checking "$xe_msg_checking"" >&5 +echo "configure:7445: 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:7461: \"$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 @@ -7490,15 +7514,15 @@ 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:7494: checking for Dt/Dt.h" >&5 +echo "configure:7518: 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:7502: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7526: \"$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* @@ -7521,12 +7545,12 @@ } test -z "$with_cde" && { echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6 -echo "configure:7525: checking for DtDndDragStart in -lDtSvc" >&5 +echo "configure:7549: 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:7565: \"$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 @@ -7618,7 +7642,7 @@ if test "$with_dragndrop" != "no" ; then echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6 -echo "configure:7622: checking if drag and drop API is needed" >&5 +echo "configure:7646: 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 @@ -7638,18 +7662,18 @@ fi echo "checking for LDAP" 1>&6 -echo "configure:7642: checking for LDAP" >&5 +echo "configure:7666: 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:7645: checking for ldap.h" >&5 +echo "configure:7669: 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:7653: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7677: \"$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* @@ -7672,15 +7696,15 @@ } 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:7676: checking for lber.h" >&5 +echo "configure:7700: 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:7684: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7708: \"$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* @@ -7704,12 +7728,12 @@ if test "$with_ldap" != "no"; then echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6 -echo "configure:7708: checking for ldap_search in -lldap" >&5 +echo "configure:7732: 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:7748: \"$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 @@ -7745,12 +7769,12 @@ 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:7749: checking "$xe_msg_checking"" >&5 +echo "configure:7773: 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:7789: \"$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 @@ -7786,12 +7810,12 @@ 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:7790: checking "$xe_msg_checking"" >&5 +echo "configure:7814: 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:7830: \"$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 @@ -7827,12 +7851,12 @@ 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:7831: checking "$xe_msg_checking"" >&5 +echo "configure:7855: 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:7871: \"$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 @@ -7894,10 +7918,10 @@ 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:7898: checking for $ac_func" >&5 +echo "configure:7922: 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:7948: \"$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 @@ -7951,20 +7975,20 @@ if test "$with_postgresql" != "no"; then echo "checking for PostgreSQL" 1>&6 -echo "configure:7955: checking for PostgreSQL" >&5 +echo "configure:7979: 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:7960: checking for ${header_dir}libpq-fe.h" >&5 +echo "configure:7984: 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:7968: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7992: \"$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* @@ -7988,12 +8012,12 @@ test -n "$libpq_fe_h_file" && { echo $ac_n "checking for PQconnectdb in -lpq""... $ac_c" 1>&6 -echo "configure:7992: checking for PQconnectdb in -lpq" >&5 +echo "configure:8016: 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:8032: \"$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 @@ -8037,12 +8061,12 @@ echo $ac_n "checking for PQconnectStart in -lpq""... $ac_c" 1>&6 -echo "configure:8041: checking for PQconnectStart in -lpq" >&5 +echo "configure:8065: 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:8081: \"$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 @@ -8101,15 +8125,36 @@ if test "$window_system" != "none"; then echo "checking for graphics libraries" 1>&6 -echo "configure:8105: checking for graphics libraries" >&5 +echo "configure:8129: checking for graphics libraries" >&5 + libpath_xpm= + incpath_xpm= + case "$opsys" in + cygwin*) + cygwin_top=`eval "gcc -print-file-name=libc.a"` ; + cygwin_top=`eval "dirname ${cygwin_top}"`; + cygwin_top="${cygwin_top}/.."; + case "$window_system" in + x11) ;; + msw) libpath_xpm="-L${cygwin_top}/lib/noX" + incpath_xpm="-I${cygwin_top}/include/noX" + ;; + gtk) ;; + none) ;; + *) ;; + esac + ;; + *) ;; + esac xpm_problem="" if test -z "$with_xpm"; then + 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:8110: checking for Xpm - no older than 3.4f" >&5 +echo "configure:8155: checking for Xpm - no older than 3.4f" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext < @@ -8118,7 +8163,7 @@ XpmIncludeVersion != XpmLibraryVersion() ? 1 : XpmIncludeVersion < 30406 ? 2 : 0 ;} EOF -if { (eval echo configure:8122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:8167: \"$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 @@ -8158,19 +8203,21 @@ EOF } + LDFLAGS=""$libpath_xpm" $LDFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$libpath_xpm"\" to \$LDFLAGS"; fi 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:8164: checking for \"FOR_MSW\" xpm" >&5 +echo "configure:8211: 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:8221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* xpm_for_msw=no else @@ -8196,15 +8243,15 @@ 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:8200: checking for compface.h" >&5 +echo "configure:8247: 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:8208: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8255: \"$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* @@ -8227,12 +8274,12 @@ } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:8231: checking for UnGenFace in -lcompface" >&5 +echo "configure:8278: 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:8294: \"$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 @@ -8295,12 +8342,12 @@ if test "$with_png $with_tiff" != "no no"; then echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6 -echo "configure:8299: checking for inflate in -lc" >&5 +echo "configure:8346: 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:8362: \"$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 @@ -8330,12 +8377,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6 -echo "configure:8334: checking for inflate in -lz" >&5 +echo "configure:8381: 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:8397: \"$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 @@ -8365,12 +8412,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6 -echo "configure:8369: checking for inflate in -lgz" >&5 +echo "configure:8416: 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:8432: \"$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 @@ -8411,15 +8458,15 @@ 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:8415: checking for jpeglib.h" >&5 +echo "configure:8462: 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:8423: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8470: \"$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* @@ -8442,12 +8489,12 @@ } test -z "$with_jpeg" && { echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6 -echo "configure:8446: checking for jpeg_destroy_decompress in -ljpeg" >&5 +echo "configure:8493: 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:8509: \"$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 @@ -8494,10 +8541,10 @@ png_problem="" test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6 -echo "configure:8498: checking for pow" >&5 +echo "configure:8545: checking for pow" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8571: \"$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 @@ -8541,15 +8588,15 @@ } 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:8545: checking for png.h" >&5 +echo "configure:8592: 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:8553: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8600: \"$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* @@ -8572,12 +8619,12 @@ } test -z "$with_png" && { echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6 -echo "configure:8576: checking for png_read_image in -lpng" >&5 +echo "configure:8623: 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:8639: \"$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 @@ -8611,10 +8658,10 @@ } if test -z "$with_png"; then echo $ac_n "checking for workable png version information""... $ac_c" 1>&6 -echo "configure:8615: checking for workable png version information" >&5 +echo "configure:8662: checking for workable png version information" >&5 xe_check_libs="-lpng -lz" cat > conftest.$ac_ext < int main(int c, char **v) { @@ -8622,7 +8669,7 @@ if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1; return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;} EOF -if { (eval echo configure:8626: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:8673: \"$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 @@ -8665,15 +8712,15 @@ 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:8669: checking for tiffio.h" >&5 +echo "configure:8716: 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:8677: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8724: \"$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* @@ -8696,12 +8743,12 @@ } test -z "$with_tiff" && { echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6 -echo "configure:8700: checking for TIFFClientOpen in -ltiff" >&5 +echo "configure:8747: 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:8763: \"$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 @@ -8751,15 +8798,15 @@ 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:8755: checking for compface.h" >&5 +echo "configure:8802: 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:8763: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8810: \"$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* @@ -8782,12 +8829,12 @@ } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:8786: checking for UnGenFace in -lcompface" >&5 +echo "configure:8833: 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:8849: \"$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 @@ -8836,12 +8883,13 @@ if test "$with_x11" = "yes"; then - echo "checking for X11 graphics libraries" 1>&6 -echo "configure:8842: checking for X11 graphics libraries" >&5 +echo "configure:8888: checking for X11 graphics libraries" >&5 +fi +if test "$with_x11" = "yes" -a "$with_widgets" = "athena"; then echo "checking for the Athena widgets" 1>&6 -echo "configure:8845: checking for the Athena widgets" >&5 +echo "configure:8893: checking for the Athena widgets" >&5 case "$with_athena" in "xaw" | "") athena_variant=Xaw athena_3d=no ;; @@ -8855,12 +8903,12 @@ if test "$athena_3d" = "no"; then echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8859: checking for XawScrollbarSetThumb in -l$athena_variant" >&5 +echo "configure:8907: 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:8923: \"$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 @@ -8887,12 +8935,12 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8891: checking for threeDClassRec in -l$athena_variant" >&5 +echo "configure:8939: 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:8955: \"$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 @@ -8934,12 +8982,12 @@ else echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8938: checking for threeDClassRec in -l$athena_variant" >&5 +echo "configure:8986: 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:9002: \"$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 @@ -8968,12 +9016,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for threeDClassRec in -lXaw""... $ac_c" 1>&6 -echo "configure:8972: checking for threeDClassRec in -lXaw" >&5 +echo "configure:9020: 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:9036: \"$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 @@ -9015,15 +9063,15 @@ 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:9019: checking for X11/Xaw/ThreeD.h" >&5 +echo "configure:9067: 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:9027: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9075: \"$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* @@ -9043,15 +9091,15 @@ 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:9047: checking for X11/Xaw/XawInit.h" >&5 +echo "configure:9095: 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:9055: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9103: \"$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* @@ -9077,15 +9125,15 @@ 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:9081: checking for X11/$athena_variant/XawInit.h" >&5 +echo "configure:9129: 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:9089: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9137: \"$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* @@ -9102,15 +9150,15 @@ 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:9106: checking for X11/$athena_variant/ThreeD.h" >&5 +echo "configure:9154: 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:9114: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9162: \"$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* @@ -9138,15 +9186,15 @@ 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:9142: checking for $athena_variant/XawInit.h" >&5 +echo "configure:9190: 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:9150: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9198: \"$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* @@ -9163,15 +9211,15 @@ 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:9167: checking for $athena_variant/ThreeD.h" >&5 +echo "configure:9215: 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:9175: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9223: \"$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* @@ -9200,15 +9248,15 @@ 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:9204: checking for X11/Xaw3d/XawInit.h" >&5 +echo "configure:9252: 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:9212: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9260: \"$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* @@ -9225,15 +9273,15 @@ 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:9229: checking for X11/Xaw3d/ThreeD.h" >&5 +echo "configure:9277: 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:9237: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9285: \"$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* @@ -9265,15 +9313,15 @@ 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:9269: checking for Xaw3d/XawInit.h" >&5 +echo "configure:9317: 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:9277: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9325: \"$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* @@ -9290,15 +9338,15 @@ 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:9294: checking for Xaw3d/ThreeD.h" >&5 +echo "configure:9342: 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:9302: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9350: \"$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* @@ -9330,15 +9378,15 @@ 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:9334: checking for X11/Xaw/ThreeD.h" >&5 +echo "configure:9382: 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:9342: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9390: \"$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* @@ -9371,17 +9419,21 @@ have_xaw=no fi +else + have_xaw=no +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:9377: checking for Xm/Xm.h" >&5 +echo "configure:9429: 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:9385: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9437: \"$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* @@ -9398,12 +9450,12 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6 -echo "configure:9402: checking for XmStringFree in -lXm" >&5 +echo "configure:9454: 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:9470: \"$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 @@ -9443,9 +9495,9 @@ if test "$have_motif" = "yes"; then echo $ac_n "checking for Lesstif""... $ac_c" 1>&6 -echo "configure:9447: checking for Lesstif" >&5 +echo "configure:9499: checking for Lesstif" >&5 cat > conftest.$ac_ext < #ifdef LESSTIF_VERSION @@ -9822,8 +9874,8 @@ test "$with_dialogs" != "no" && extra_objs="$extra_objs dialog-gtk.o" && if test "$extra_verbose" = "yes"; then echo " xemacs will be linked with \"dialog-gtk.o\"" fi - test "$with_toolbars" != "no" && extra_objs="$extra_objs toolbar-gtk.o" && if test "$extra_verbose" = "yes"; then - echo " xemacs will be linked with \"toolbar-gtk.o\"" + test "$with_toolbars" != "no" && extra_objs="$extra_objs toolbar-common.o toolbar-gtk.o" && if test "$extra_verbose" = "yes"; then + echo " xemacs will be linked with \"toolbar-common.o toolbar-gtk.o\"" fi test "$all_widgets" != "no no no no no" && extra_objs="$extra_objs gui-gtk.o" && if test "$extra_verbose" = "yes"; then echo " xemacs will be linked with \"gui-gtk.o\"" @@ -9875,7 +9927,7 @@ if test "$with_mule" = "yes" ; then echo "checking for Mule-related features" 1>&6 -echo "configure:9879: checking for Mule-related features" >&5 +echo "configure:9931: checking for Mule-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining MULE EOF @@ -9900,15 +9952,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:9904: checking for $ac_hdr" >&5 +echo "configure:9956: 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:9912: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9964: \"$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* @@ -9939,12 +9991,12 @@ echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6 -echo "configure:9943: checking for strerror in -lintl" >&5 +echo "configure:9995: 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:10011: \"$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 @@ -9988,18 +10040,18 @@ echo "checking for Mule input methods" 1>&6 -echo "configure:9992: checking for Mule input methods" >&5 +echo "configure:10044: checking for Mule input methods" >&5 case "$with_xim" in "" | "yes" ) echo "checking for XIM" 1>&6 -echo "configure:9995: checking for XIM" >&5 +echo "configure:10047: checking for XIM" >&5 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6 -echo "configure:9998: checking for XOpenIM in -lX11" >&5 +echo "configure:10050: 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:10066: \"$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 @@ -10034,12 +10086,12 @@ if test "$have_motif $have_lesstif" = "yes no"; then echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6 -echo "configure:10038: checking for XmImMbLookupString in -lXm" >&5 +echo "configure:10090: 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:10106: \"$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 @@ -10115,15 +10167,15 @@ if test "$with_xfs" = "yes" ; then echo "checking for XFontSet" 1>&6 -echo "configure:10119: checking for XFontSet" >&5 +echo "configure:10171: checking for XFontSet" >&5 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6 -echo "configure:10122: checking for XmbDrawString in -lX11" >&5 +echo "configure:10174: 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:10190: \"$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 @@ -10174,15 +10226,15 @@ 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:10178: checking for wnn/jllib.h" >&5 +echo "configure:10230: 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:10186: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10238: \"$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* @@ -10205,15 +10257,15 @@ } 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:10209: checking for wnn/commonhd.h" >&5 +echo "configure:10261: 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:10217: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10269: \"$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* @@ -10238,10 +10290,10 @@ for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10242: checking for $ac_func" >&5 +echo "configure:10294: 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:10320: \"$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 @@ -10293,12 +10345,12 @@ test "$ac_cv_func_crypt" != "yes" && { echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:10297: checking for crypt in -lcrypt" >&5 +echo "configure:10349: 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:10365: \"$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 @@ -10344,12 +10396,12 @@ 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:10348: checking for jl_dic_list_e in -lwnn" >&5 +echo "configure:10400: 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:10416: \"$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 @@ -10378,12 +10430,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6 -echo "configure:10382: checking for jl_dic_list_e in -lwnn4" >&5 +echo "configure:10434: 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:10450: \"$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 @@ -10412,12 +10464,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6 -echo "configure:10416: checking for jl_dic_list_e in -lwnn6" >&5 +echo "configure:10468: 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:10484: \"$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 @@ -10446,12 +10498,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6 -echo "configure:10450: checking for dic_list_e in -lwnn6_fromsrc" >&5 +echo "configure:10502: 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:10518: \"$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 @@ -10510,12 +10562,12 @@ if test "$with_wnn6" != "no"; then echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6 -echo "configure:10514: checking for jl_fi_dic_list in -l$libwnn" >&5 +echo "configure:10566: 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:10582: \"$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 @@ -10561,15 +10613,15 @@ 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:10565: checking for canna/jrkanji.h" >&5 +echo "configure:10617: 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:10573: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10625: \"$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* @@ -10596,15 +10648,15 @@ 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:10600: checking for canna/jrkanji.h" >&5 +echo "configure:10652: 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:10608: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10660: \"$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* @@ -10632,15 +10684,15 @@ 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:10636: checking for canna/RK.h" >&5 +echo "configure:10688: 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:10644: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10696: \"$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* @@ -10663,12 +10715,12 @@ } test -z "$with_canna" && { echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6 -echo "configure:10667: checking for RkBgnBun in -lRKC" >&5 +echo "configure:10719: 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:10735: \"$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 @@ -10702,12 +10754,12 @@ } test -z "$with_canna" && { echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6 -echo "configure:10706: checking for jrKanjiControl in -lcanna" >&5 +echo "configure:10758: 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:10774: \"$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 @@ -10767,12 +10819,12 @@ 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:10771: checking for layout_object_getvalue in -li18n" >&5 +echo "configure:10823: 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:10839: \"$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 @@ -10869,10 +10921,10 @@ 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:10873: checking for $ac_func" >&5 +echo "configure:10925: 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:10951: \"$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 @@ -10927,10 +10979,10 @@ 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:10931: checking for $ac_func" >&5 +echo "configure:10983: 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:11009: \"$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 @@ -10982,10 +11034,10 @@ echo $ac_n "checking for openpty""... $ac_c" 1>&6 -echo "configure:10986: checking for openpty" >&5 +echo "configure:11038: checking for openpty" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11064: \"$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 @@ -11027,12 +11079,12 @@ echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6 -echo "configure:11031: checking for openpty in -lutil" >&5 +echo "configure:11083: 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:11099: \"$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 @@ -11078,15 +11130,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11082: checking for $ac_hdr" >&5 +echo "configure:11134: 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:11090: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11142: \"$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* @@ -11123,15 +11175,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11127: checking for $ac_hdr" >&5 +echo "configure:11179: 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:11135: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11187: \"$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* @@ -11164,15 +11216,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11168: checking for $ac_hdr" >&5 +echo "configure:11220: 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:11176: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11228: \"$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* @@ -11205,15 +11257,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11209: checking for $ac_hdr" >&5 +echo "configure:11261: 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:11217: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11269: \"$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* @@ -11249,15 +11301,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11253: checking for $ac_hdr" >&5 +echo "configure:11305: 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:11261: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11313: \"$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* @@ -11290,10 +11342,10 @@ for ac_func in isastream do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11294: checking for $ac_func" >&5 +echo "configure:11346: 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:11372: \"$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 @@ -11347,15 +11399,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11351: checking for $ac_hdr" >&5 +echo "configure:11403: 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:11359: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11411: \"$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* @@ -11392,10 +11444,10 @@ for ac_func in getloadavg do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11396: checking for $ac_func" >&5 +echo "configure:11448: 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:11474: \"$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 @@ -11451,15 +11503,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11455: checking for $ac_hdr" >&5 +echo "configure:11507: 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:11463: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11515: \"$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* @@ -11495,12 +11547,12 @@ echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6 -echo "configure:11499: checking for kstat_open in -lkstat" >&5 +echo "configure:11551: 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:11567: \"$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 @@ -11546,15 +11598,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11550: checking for $ac_hdr" >&5 +echo "configure:11602: 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:11558: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11610: \"$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* @@ -11586,12 +11638,12 @@ echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6 -echo "configure:11590: checking for kvm_read in -lkvm" >&5 +echo "configure:11642: 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:11658: \"$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 @@ -11636,16 +11688,16 @@ fi echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 -echo "configure:11640: checking whether netdb declares h_errno" >&5 +echo "configure:11692: checking whether netdb declares h_errno" >&5 cat > conftest.$ac_ext < int main() { return h_errno; ; return 0; } EOF -if { (eval echo configure:11649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11701: \"$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 @@ -11665,16 +11717,16 @@ rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 -echo "configure:11669: checking for sigsetjmp" >&5 +echo "configure:11721: checking for sigsetjmp" >&5 cat > conftest.$ac_ext < int main() { sigjmp_buf bar; sigsetjmp (bar, 0); ; return 0; } EOF -if { (eval echo configure:11678: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11730: \"$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 @@ -11694,11 +11746,11 @@ rm -f conftest* echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 -echo "configure:11698: checking whether localtime caches TZ" >&5 +echo "configure:11750: checking whether localtime caches TZ" >&5 if test "$ac_cv_func_tzset" = "yes"; then cat > conftest.$ac_ext < #if STDC_HEADERS @@ -11733,7 +11785,7 @@ exit (0); } EOF -if { (eval echo configure:11737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:11789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then emacs_cv_localtime_cache=no else @@ -11763,9 +11815,9 @@ if test "$HAVE_TIMEVAL" = "yes"; then echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6 -echo "configure:11767: checking whether gettimeofday accepts one or two arguments" >&5 +echo "configure:11819: 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:11842: \"$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 @@ -11808,19 +11860,19 @@ echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:11812: checking for inline" >&5 +echo "configure:11864: 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:11876: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -11861,17 +11913,17 @@ # 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:11865: checking for working alloca.h" >&5 +echo "configure:11917: 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:11875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11927: \"$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 @@ -11895,10 +11947,10 @@ fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:11899: checking for alloca" >&5 +echo "configure:11951: checking for alloca" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11982: \"$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 @@ -11965,10 +12017,10 @@ echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:11969: checking whether alloca needs Cray hooks" >&5 +echo "configure:12021: checking whether alloca needs Cray hooks" >&5 cat > conftest.$ac_ext <&6 -echo "configure:11996: checking for $ac_func" >&5 +echo "configure:12048: 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:12074: \"$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 @@ -12048,10 +12100,10 @@ fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:12052: checking stack direction for C alloca" >&5 +echo "configure:12104: 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:12126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_stack_direction=1 else @@ -12100,15 +12152,15 @@ ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 -echo "configure:12104: checking for vfork.h" >&5 +echo "configure:12156: 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:12112: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12164: \"$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* @@ -12136,10 +12188,10 @@ fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:12140: checking for working vfork" >&5 +echo "configure:12192: checking for working vfork" >&5 cat > conftest.$ac_ext < @@ -12234,7 +12286,7 @@ } } EOF -if { (eval echo configure:12238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_vfork_works=yes else @@ -12260,10 +12312,10 @@ echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 -echo "configure:12264: checking for working strcoll" >&5 +echo "configure:12316: checking for working strcoll" >&5 cat > conftest.$ac_ext < main () @@ -12273,7 +12325,7 @@ strcoll ("123", "456") >= 0); } EOF -if { (eval echo configure:12277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_strcoll_works=yes else @@ -12301,10 +12353,10 @@ for ac_func in getpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12305: checking for $ac_func" >&5 +echo "configure:12357: 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:12383: \"$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 @@ -12355,10 +12407,10 @@ done echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 -echo "configure:12359: checking whether getpgrp takes no argument" >&5 +echo "configure:12411: 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:12469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_getpgrp_void=yes else @@ -12440,10 +12492,10 @@ echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:12444: checking for working mmap" >&5 +echo "configure:12496: checking for working mmap" >&5 case "$opsys" in ultrix* ) have_mmap=no ;; *) cat > conftest.$ac_ext < #include @@ -12476,7 +12528,7 @@ return 1; } EOF -if { (eval echo configure:12480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then have_mmap=yes else @@ -12505,9 +12557,9 @@ 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:12509: checking for M_MMAP_THRESHOLD" >&5 +echo "configure:12561: checking for M_MMAP_THRESHOLD" >&5 cat > conftest.$ac_ext < int main() { @@ -12519,7 +12571,7 @@ ; return 0; } EOF -if { (eval echo configure:12523: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12575: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* rel_alloc=no; echo "$ac_t""yes" 1>&6; else @@ -12544,15 +12596,15 @@ ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termios.h""... $ac_c" 1>&6 -echo "configure:12548: checking for termios.h" >&5 +echo "configure:12600: 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:12556: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12608: \"$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* @@ -12595,15 +12647,15 @@ 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:12599: checking for termio.h" >&5 +echo "configure:12651: 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:12607: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12659: \"$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* @@ -12635,10 +12687,10 @@ echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:12639: checking for socket" >&5 +echo "configure:12691: checking for socket" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12717: \"$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 @@ -12676,15 +12728,15 @@ 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:12680: checking for netinet/in.h" >&5 +echo "configure:12732: 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:12688: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12740: \"$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* @@ -12701,15 +12753,15 @@ 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:12705: checking for arpa/inet.h" >&5 +echo "configure:12757: 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:12713: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12765: \"$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* @@ -12734,9 +12786,9 @@ } echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6 -echo "configure:12738: checking "for sun_len member in struct sockaddr_un"" >&5 +echo "configure:12790: checking "for sun_len member in struct sockaddr_un"" >&5 cat > conftest.$ac_ext < @@ -12747,7 +12799,7 @@ static struct sockaddr_un x; x.sun_len = 1; ; return 0; } EOF -if { (eval echo configure:12751: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12803: \"$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 @@ -12765,9 +12817,9 @@ fi rm -f conftest* echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6 -echo "configure:12769: checking "for ip_mreq struct in netinet/in.h"" >&5 +echo "configure:12821: checking "for ip_mreq struct in netinet/in.h"" >&5 cat > conftest.$ac_ext < @@ -12777,7 +12829,7 @@ static struct ip_mreq x; ; return 0; } EOF -if { (eval echo configure:12781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12833: \"$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 @@ -12808,10 +12860,10 @@ echo $ac_n "checking for msgget""... $ac_c" 1>&6 -echo "configure:12812: checking for msgget" >&5 +echo "configure:12864: checking for msgget" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12890: \"$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 @@ -12849,15 +12901,15 @@ 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:12853: checking for sys/ipc.h" >&5 +echo "configure:12905: 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:12861: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12913: \"$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* @@ -12874,15 +12926,15 @@ 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:12878: checking for sys/msg.h" >&5 +echo "configure:12930: 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:12886: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12938: \"$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* @@ -12920,15 +12972,15 @@ ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dirent.h""... $ac_c" 1>&6 -echo "configure:12924: checking for dirent.h" >&5 +echo "configure:12976: 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:12932: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12984: \"$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* @@ -12955,15 +13007,15 @@ 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:12959: checking for sys/dir.h" >&5 +echo "configure:13011: 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:12967: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13019: \"$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* @@ -12996,15 +13048,15 @@ ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for nlist.h""... $ac_c" 1>&6 -echo "configure:13000: checking for nlist.h" >&5 +echo "configure:13052: 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:13008: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13060: \"$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* @@ -13034,22 +13086,22 @@ echo "checking "for sound support"" 1>&6 -echo "configure:13038: checking "for sound support"" >&5 +echo "configure:13090: 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:13045: checking for multimedia/audio_device.h" >&5 +echo "configure:13097: 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:13053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13105: \"$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* @@ -13097,12 +13149,12 @@ if test -z "$native_sound_lib"; then echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6 -echo "configure:13101: checking for ALopenport in -laudio" >&5 +echo "configure:13153: 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:13169: \"$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 @@ -13144,12 +13196,12 @@ if test -z "$native_sound_lib"; then echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6 -echo "configure:13148: checking for AOpenAudio in -lAlib" >&5 +echo "configure:13200: 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:13216: \"$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 @@ -13208,15 +13260,15 @@ 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:13212: checking for ${dir}/soundcard.h" >&5 +echo "configure:13264: 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:13220: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13272: \"$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* @@ -13270,15 +13322,15 @@ 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:13274: checking for audio/audiolib.h" >&5 +echo "configure:13326: 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:13282: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13334: \"$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* @@ -13296,12 +13348,12 @@ echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6 -echo "configure:13300: checking for AuOpenServer in -laudio" >&5 +echo "configure:13352: 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:13368: \"$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 @@ -13351,7 +13403,7 @@ fi libs_x="-laudio $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-laudio\" to \$libs_x"; fi cat > conftest.$ac_ext < EOF @@ -13382,7 +13434,7 @@ # 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:13386: checking for $ac_word" >&5 +echo "configure:13438: 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. @@ -13411,10 +13463,10 @@ 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:13415: checking for esd_play_stream" >&5 +echo "configure:13467: 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:13493: \"$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 @@ -13488,7 +13540,7 @@ if test "$with_tty" = "yes" ; then echo "checking for TTY-related features" 1>&6 -echo "configure:13492: checking for TTY-related features" >&5 +echo "configure:13544: checking for TTY-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_TTY EOF @@ -13504,12 +13556,12 @@ if test -z "$with_ncurses"; then echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6 -echo "configure:13508: checking for tgetent in -lncurses" >&5 +echo "configure:13560: 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:13576: \"$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 @@ -13553,15 +13605,15 @@ ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:13557: checking for ncurses/curses.h" >&5 +echo "configure:13609: 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:13565: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13617: \"$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* @@ -13583,15 +13635,15 @@ ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6 -echo "configure:13587: checking for ncurses/term.h" >&5 +echo "configure:13639: 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:13595: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13647: \"$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* @@ -13621,15 +13673,15 @@ 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:13625: checking for ncurses/curses.h" >&5 +echo "configure:13677: 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:13633: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13685: \"$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* @@ -13664,12 +13716,12 @@ for lib in curses termlib termcap; do echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6 -echo "configure:13668: checking for tgetent in -l$lib" >&5 +echo "configure:13720: 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:13736: \"$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 @@ -13711,12 +13763,12 @@ else echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6 -echo "configure:13715: checking for tgetent in -lcurses" >&5 +echo "configure:13767: 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:13783: \"$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 @@ -13745,12 +13797,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6 -echo "configure:13749: checking for tgetent in -ltermcap" >&5 +echo "configure:13801: 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:13817: \"$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 @@ -13809,15 +13861,15 @@ 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:13813: checking for gpm.h" >&5 +echo "configure:13865: 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:13821: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13873: \"$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* @@ -13840,12 +13892,12 @@ } test -z "$with_gpm" && { echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:13844: checking for Gpm_Open in -lgpm" >&5 +echo "configure:13896: 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:13912: \"$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 @@ -13899,27 +13951,27 @@ eval "with_${feature}=no" done fi -test "$with_x11" = "yes" -o "$with_tty" = "yes" && extra_objs="$extra_objs event-unixoid.o" && if test "$extra_verbose" = "yes"; then +test "$with_x11" = "yes" -o "$with_tty" = "yes" -o "$need_event_unixoid" = "yes" && extra_objs="$extra_objs event-unixoid.o" && if test "$extra_verbose" = "yes"; then echo " xemacs will be linked with \"event-unixoid.o\"" fi test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \ != "no no no" && echo "checking for database support" 1>&6 -echo "configure:13910: checking for database support" >&5 +echo "configure:13962: 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:13915: checking for ndbm.h" >&5 +echo "configure:13967: 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:13923: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13975: \"$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* @@ -13949,12 +14001,12 @@ if test "$with_database_gdbm" != "no"; then echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:13953: checking for dbm_open in -lgdbm" >&5 +echo "configure:14005: 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:14021: \"$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 @@ -13993,10 +14045,10 @@ if test "$with_database_dbm" != "no"; then echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:13997: checking for dbm_open" >&5 +echo "configure:14049: 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:14075: \"$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 @@ -14038,12 +14090,12 @@ echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:14042: checking for dbm_open in -ldbm" >&5 +echo "configure:14094: 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:14110: \"$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 @@ -14095,10 +14147,10 @@ if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6 -echo "configure:14099: checking for Berkeley db.h" >&5 +echo "configure:14151: checking for Berkeley db.h" >&5 for header in "db/db.h" "db.h"; do cat > conftest.$ac_ext < @@ -14120,7 +14172,7 @@ ; return 0; } EOF -if { (eval echo configure:14124: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14176: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* db_h_file="$header"; break else @@ -14136,9 +14188,9 @@ if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6 -echo "configure:14140: checking for Berkeley DB version" >&5 +echo "configure:14192: checking for Berkeley DB version" >&5 cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 1 @@ -14150,7 +14202,7 @@ egrep "yes" >/dev/null 2>&1; then rm -rf conftest* cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 2 @@ -14177,10 +14229,10 @@ rm -f conftest* echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6 -echo "configure:14181: checking for $dbfunc" >&5 +echo "configure:14233: checking for $dbfunc" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14259: \"$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 @@ -14222,12 +14274,12 @@ echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6 -echo "configure:14226: checking for $dbfunc in -ldb" >&5 +echo "configure:14278: 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:14294: \"$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 @@ -14302,12 +14354,12 @@ if test "$with_socks" = "yes"; then echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6 -echo "configure:14306: checking for SOCKSinit in -lsocks" >&5 +echo "configure:14358: 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:14374: \"$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 @@ -14373,22 +14425,22 @@ if test "$with_modules" != "no"; then echo "checking for module support" 1>&6 -echo "configure:14377: checking for module support" >&5 +echo "configure:14429: 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:14384: checking for dlfcn.h" >&5 +echo "configure:14436: 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:14392: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14444: \"$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* @@ -14405,16 +14457,16 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6 -echo "configure:14409: checking for dlopen in -lc" >&5 +echo "configure:14461: checking for dlopen in -lc" >&5 cat > conftest.$ac_ext < int main() { dlopen ("", 0); ; return 0; } EOF -if { (eval echo configure:14418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_dl=yes else @@ -14423,18 +14475,18 @@ rm -rf conftest* echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:14427: checking for dlopen in -ldl" >&5 +echo "configure:14479: 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:14438: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_dl=yes else @@ -14463,12 +14515,12 @@ else echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:14467: checking for shl_load in -ldld" >&5 +echo "configure:14519: 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:14535: \"$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 @@ -14506,12 +14558,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6 -echo "configure:14510: checking for dld_init in -ldld" >&5 +echo "configure:14562: 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:14578: \"$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 @@ -14567,7 +14619,7 @@ xealias=$internal_configuration echo "checking how to build dynamic libraries for ${xehost}" 1>&6 -echo "configure:14571: checking how to build dynamic libraries for ${xehost}" >&5 +echo "configure:14623: checking how to build dynamic libraries for ${xehost}" >&5 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts. case "$xehost" in *-*-linux-gnu*) ;; @@ -14595,9 +14647,9 @@ XEGCC=yes else echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:14599: checking checking whether we are using GNU C" >&5 +echo "configure:14651: checking checking whether we are using GNU C" >&5 cat > conftest.$ac_ext <&6 -echo "configure:14623: checking how to produce PIC code" >&5 +echo "configure:14675: checking how to produce PIC code" >&5 wl= can_build_shared=yes @@ -14720,18 +14772,18 @@ # 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:14724: checking if PIC flag ${dll_cflags} really works" >&5 +echo "configure:14776: 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:14787: \"$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 @@ -14762,7 +14814,7 @@ xldf= xcldf= echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6 -echo "configure:14766: checking if C compiler can produce shared libraries" >&5 +echo "configure:14818: checking if C compiler can produce shared libraries" >&5 if test "$XEGCC" = yes; then xcldf="-shared" xldf="-shared" @@ -14813,14 +14865,14 @@ 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:14876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cc_produces_so=yes else @@ -14845,18 +14897,19 @@ 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:14849: checking for ld used by GCC" >&5 +echo "configure:14901: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. /*) if test -z "$LTLD"; then - case "$ac_prog" in - *gcc-lib*) LTLD="$CC" - ;; - *) LTLD="$ac_prog" - ;; - esac +# case "$ac_prog" in +# *gcc-lib*) LTLD="$CC" +# ;; +# *) + LTLD="$ac_prog" +# ;; +# esac fi ;; "") @@ -14870,7 +14923,7 @@ esac else echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:14874: checking for GNU ld" >&5 +echo "configure:14927: checking for GNU ld" >&5 fi if test -z "$LTLD"; then @@ -14908,7 +14961,7 @@ # 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:14912: checking if the linker is GNU ld" >&5 +echo "configure:14965: 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 @@ -14936,7 +14989,7 @@ # 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:14940: checking whether the linker supports shared libraries" >&5 +echo "configure:14993: checking whether the linker supports shared libraries" >&5 dll_ld=$CC dll_ldflags=$LDFLAGS ld_shlibs=yes @@ -15147,10 +15200,10 @@ for ac_func in dlerror _dlerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15151: checking for $ac_func" >&5 +echo "configure:15204: 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:15230: \"$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 @@ -15212,11 +15265,11 @@ fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:15273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -15783,6 +15836,14 @@ EOF } +test "$with_ipv6_cname" = "yes" && { test "$extra_verbose" = "yes" && cat << \EOF + Defining IPV6_CANONICALIZE +EOF +cat >> confdefs.h <<\EOF +#define IPV6_CANONICALIZE 1 +EOF +} + ( @@ -15838,6 +15899,10 @@ echo " Compiler: $CC $CFLAGS" echo " Relocating allocator for buffers: $rel_alloc" echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}" +case "$ld_switch_site" in + *nocombreloc*) echo " Linking with \`-z nocombreloc'. + - Consider configuring with --pdump." ;; +esac echo " Window System:" @@ -15983,6 +16048,7 @@ echo " Other Features:" +test "$with_ipv6_cname" = no && echo " Inhibiting IPv6 canonicalization at startup." test "$with_tooltalk" = yes && echo " Compiling in support for ToolTalk." test "$with_workshop" = yes && echo " Compiling in support for Sun WorkShop." test "$with_socks" = yes && echo " Compiling in support for SOCKS." @@ -15992,7 +16058,7 @@ test "$pdump" = yes && echo " Using the new portable dumper." test "$debug" = yes && echo " Compiling in support for extra debugging code." test "$usage_tracking" = yes && echo " Compiling in support for active usage tracking (Sun internal)." -if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc $error_check_glyphs" \ +if test "$error_check_extents $error_check_typecheck $error_check_charbpos $error_check_gc $error_check_malloc $error_check_glyphs" \ != "no no no no no no"; then echo " WARNING: ---------------------------------------------------------" echo " WARNING: Compiling in support for runtime error checking." diff --text -u /dev/null 'xemacs-21.5.4/configure.ac' Index: ././configure.ac --- ././configure.ac Thu Jan 1 09:00:00 1970 +++ ././configure.ac Tue Sep 25 19:20:11 2001 @@ -0,0 +1,6 @@ +AC_FATAL([ + +#### Autoconf 2.5x is not yet supported by XEmacs. +#### Our configure script is known *not* to work with these versions of +#### Autoconf. Please continue using Autoconf 2.13 for now. +]) diff --text -u 'xemacs-21.5.3/configure.in' 'xemacs-21.5.4/configure.in' Index: ././configure.in --- ././configure.in Fri Jun 1 13:40:34 2001 +++ ././configure.in Sat Jan 5 16:33:17 2002 @@ -16,6 +16,7 @@ ### To rebuild it, execute the command ### autoconf ### in the this directory. You must have autoconf version 2.13 or later. +### Note: this script has not yet been ported to autoconf version 2.5x. ### This file is part of XEmacs. @@ -56,7 +57,7 @@ dnl here is how XEmacs is different: dnl - no cache file dnl - non-standard options -dnl - suport for extra-verbosity +dnl - support for extra-verbosity dnl - ordinary libs are handled separately from X libs (might be a mistake) dnl - various random kludges (e.g. -with-dnet=no) @@ -125,7 +126,7 @@ dnl redefine AC_CHECK_LIB in accordance with our own value of ac_link dnl Add in extra kludgy check to support with_dnet=no -dnl Add in extra LDFLAGS arg, which PRECEDE libs +dnl Add in extra LDFLAGS arg, which PRECEDES libs dnl Support --with-dnet=no dnl AC_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND @@ -333,13 +334,13 @@ infopath='' install_pp='' lispdir='${datadir}/${instvardir}/lisp' -moduledir='${datadir}/${instvardir}/${configuration}/modules' +moduledir='${libdir}/${instvardir}/${configuration}/modules' sitelispdir='${datadir}/${inststaticdir}/site-lisp' -sitemoduledir='${datadir}/${inststaticdir}/site-modules' +sitemoduledir='${libdir}/${inststaticdir}/site-modules' pkgdir='${datadir}/${instvardir}/lisp' package_path='' etcdir='${datadir}/${instvardir}/etc' -archlibdir='${datadir}/${instvardir}/${configuration}' +archlibdir='${libdir}/${instvardir}/${configuration}' docdir='${archlibdir}' with_netinstall="no" with_prefix='yes' @@ -374,6 +375,9 @@ pdump="no" dnl dragndrop is still experimental. When it is stable, comment out the following line: with_dragndrop="no" +dnl Too annoying, even if mandated by IPv6 (and I'm not even sure of that) +dnl #### Change this to yes when somebody understands IPv6 and handle bugs. +with_ipv6_cname="no" dnl ------------------ dnl Options Processing @@ -499,7 +503,8 @@ with_hesiod | \ with_dnet | \ with_infodock | \ - with_netinstall | \ + with_netinstall | \ + with_ipv6_cname | \ external_widget | \ verbose | \ extra_verbose | \ @@ -616,7 +621,8 @@ types="\`all', \`none', \`(no)native', \`no(nas)', \`(no)esd'." USAGE_ERROR(["Valid types for the \`--$optname' option are: $types. -The default is to autodetect all sound support."]) +Option \`all' or \`none' must be first in the list. +The default is to autodetect native and NAS sound support."]) elif test -n "$new_sdefault" ; then with_native_sound=$new_sdefault with_nas_sound=$new_sdefault @@ -673,7 +679,7 @@ dnl Has the user requested error-checking? "error_checking" ) dnl value can be all, none, and/or a list of categories to check. - dnl Example: --error-checking=all,noextents,nobufpos + dnl Example: --error-checking=all,noextents,nocharbpos dnl Example: --error-checking=none,malloc,gc for x in `echo "$val" | sed -e 's/,/ /g'` ; do @@ -688,8 +694,8 @@ typecheck ) error_check_typecheck=yes ;; notypecheck ) error_check_typecheck=no ;; - bufpos ) error_check_bufpos=yes ;; - nobufpos ) error_check_bufpos=no ;; + charbpos ) error_check_charbpos=yes ;; + nocharbpos ) error_check_charbpos=no ;; gc ) error_check_gc=yes ;; nogc ) error_check_gc=no ;; @@ -708,16 +714,16 @@ if test "$bogus_error_check" -o \ \( -n "$new_default" -a -n "$echeck_notfirst" \) ; then if test "$error_check_default" = yes ; then - types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', \`nomalloc', \`noglyphs' and \`nobyte-code'." + types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nocharbpos', \`nogc', \`nomalloc', \`noglyphs' and \`nobyte-code'." else - types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', \`malloc', \`glyphs' and \`byte-code'." + types="\`all', \`none' (default), \`extents', \`typecheck', \`charbpos', \`gc', \`malloc', \`glyphs' and \`byte-code'." fi USAGE_ERROR(["Valid types for the \`--$optname' option are: $types."]) elif test -n "$new_default" ; then error_check_extents=$new_default error_check_typecheck=$new_default - error_check_bufpos=$new_default + error_check_charbpos=$new_default error_check_gc=$new_default error_check_malloc=$new_default error_check_byte_code=$new_default @@ -783,12 +789,12 @@ "with_widgets" ) case "$val" in l | lu | luc | luci | lucid ) val=lucid ;; - m | mo | mot | moti | motif ) val=motif ;; + mo | mot | moti | motif ) val=motif ;; a | at | ath | athe | athen | athena ) val=athena ;; n | no | non | none ) val=no ;; y | ye | yes ) val=yes ;; g | gt | gtk ) val=gtk ;; - m | ms | msw ) val=msw ;; + ms | msw ) val=msw ;; * ) USAGE_ERROR(["The \`--$optname' option must have one of these values: \`gtk', \`lucid', \`motif', \`athena', \`yes', or \`no'."]) ;; esac @@ -1010,7 +1016,7 @@ if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi test "${error_check_extents=$beta}" = yes && AC_DEFINE(ERROR_CHECK_EXTENTS) test "${error_check_typecheck=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TYPECHECK) -test "${error_check_bufpos=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BUFPOS) +test "${error_check_charbpos=$beta}" = yes && AC_DEFINE(ERROR_CHECK_CHARBPOS) test "${error_check_gc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GC) test "${error_check_malloc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_MALLOC) test "${error_check_byte_code=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BYTE_CODE) @@ -1905,9 +1911,15 @@ dnl Following values of CFLAGS are known to work well. dnl Should we take debugging options into consideration? if test "$GCC" = "yes"; then - CFLAGS="-g -O3 -Wall -Wno-switch -Winline -Wmissing-prototypes -Wshadow" + CFLAGS="-g -O3 -Wall -Wno-switch -Winline -Wmissing-prototypes" dnl Yuck, bad compares have been worth at least 3 crashes! CFLAGS="$CFLAGS -Wsign-compare" + dnl You get five zillion shadowing warnings with g++. + dnl Even with gcc, -Wshadow is questionable because of its complaints + dnl about parameters with the same names as global functions. + if test "$xemacs_compiler" != "g++"; then + CFLAGS="$CFLAGS -Wshadow" + fi dnl glibc is intentionally not `-Wpointer-arith'-clean. dnl Ulrich Drepper has rejected patches to fix the glibc header files. test "$have_glibc" != "yes" && CFLAGS="$CFLAGS -Wpointer-arith" @@ -2157,7 +2169,7 @@ dnl listed in /etc/ld.so.conf on some systems, and including them on dnl the link path leads to linking in utterly broken libc's. dnl There are many clever ways of approaching this problem, -dnl but finding out that actually works... +dnl but finding one that actually works... dnl if test -z "$LD_RUN_PATH" -a -r "/etc/ld.so.conf"; then dnl for dir in `cat /etc/ld.so.conf`; do @@ -2498,6 +2510,10 @@ c_switch_site="$c_switch_site -threads" ;; esac +dnl ---------------------------------------------------------------- +dnl Miscellaneous flags +dnl ---------------------------------------------------------------- + AC_MSG_CHECKING(whether the -xildoff compiler flag is required) 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 ; @@ -2519,6 +2535,20 @@ 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 ---------------------- @@ -2590,6 +2620,9 @@ AC_MSG_CHECKING(gtk cflags) GTK_CFLAGS=`${GTK_CONFIG} --cflags` + if test "$GCC" = "yes"; then + GTK_CFLAGS="${GTK_CFLAGS} -Wno-shadow" + fi XE_APPEND(${GTK_CFLAGS}, c_switch_gtk) AC_MSG_RESULT(${GTK_CFLAGS}) @@ -2618,8 +2651,10 @@ dnl Check for libglade support (it rocks) OLD_CFLAGS="${CFLAGS}" + OLD_CPPFLAGS="${CPPFLAGS}" OLD_LDFLAGS="${LDFLAGS}" CFLAGS="${GTK_CFLAGS} ${CFLAGS}" + CPPFLAGS="${GTK_CFLAGS} ${CFLAGS}" LDFLAGS="${LDFLAGS} ${GTK_LIBS}" AC_CHECK_HEADERS(glade/glade.h glade.h) AC_CHECK_LIB(xml, main, XE_PREPEND(-lxml, libs_gtk)) @@ -2630,6 +2665,7 @@ AC_DEFINE(LIBGLADE_XML_TXTDOMAIN,1)], [AC_MSG_RESULT(no)]) CFLAGS="${OLD_CFLAGS}" + CPPFLAGS="${OLD_CPPFLAGS}" LDFLAGS="${OLD_LDFLAGS}" fi @@ -2913,7 +2949,7 @@ dnl check for our special version of select AC_TRY_RUN([#include int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }], - [AC_DEFINE(HAVE_MSG_SELECT)]) + [need_event_unixoid=yes; AC_DEFINE(HAVE_MSG_SELECT)]) with_file_coding=yes XE_ADD_OBJS(console-msw.o device-msw.o event-msw.o frame-msw.o objects-msw.o select-msw.o redisplay-msw.o glyphs-msw.o gui-msw.o) fi @@ -3186,9 +3222,38 @@ if test "$window_system" != "none"; then AC_CHECKING(for graphics libraries) + dnl add special code to handle xpm-nox on Cygwin (csw) + dnl -- should only happen if CYGWIN && WITH_XPM && WITH_MSW && !WITH_X + libpath_xpm= + incpath_xpm= + case "$opsys" in + cygwin*) + cygwin_top=`eval "gcc -print-file-name=libc.a"` ; + cygwin_top=`eval "dirname ${cygwin_top}"`; + cygwin_top="${cygwin_top}/.."; + case "$window_system" in + dnl use "standard" search pattern + x11) ;; + dnl hardcode "standard" non-X11 xpm lib/inc dirs + msw) libpath_xpm="-L${cygwin_top}/lib/noX" + incpath_xpm="-I${cygwin_top}/include/noX" + ;; + dnl not supported on cygwin (yet?) + gtk) ;; + dnl probably not reached... + none) ;; + dnl ditto + *) ;; + esac + ;; + dnl use "standard" search pattern for all other OS's + *) ;; + esac dnl Autodetect Xpm xpm_problem="" if test -z "$with_xpm"; then + XE_PREPEND("$incpath_xpm", CFLAGS) + XE_PREPEND("$libpath_xpm", LDFLAGS) AC_MSG_CHECKING(for Xpm - no older than 3.4f) xe_check_libs=-lXpm AC_TRY_RUN([#define XPM_NUMBERS @@ -3224,7 +3289,9 @@ dnl #### then it will succeed if FOR_MSW is defined, dnl #### but doesn't actually verify this assumption. AC_DEFINE(HAVE_XPM) + XE_PREPEND("$libpath_xpm", LDFLAGS) XE_PREPEND(-lXpm, libs_x) + XE_PREPEND("$incpath_xpm", CFLAGS) AC_MSG_CHECKING(for \"FOR_MSW\" xpm) xe_check_libs=-lXpm AC_TRY_LINK(, [XpmCreatePixmapFromData()], @@ -3341,9 +3408,10 @@ dnl ---------------------- if test "$with_x11" = "yes"; then - AC_CHECKING(for X11 graphics libraries) +fi +if test "$with_x11" = "yes" -a "$with_widgets" = "athena"; then AC_CHECKING(for the Athena widgets) dnl What in heck did the user actually want? @@ -3440,6 +3508,11 @@ have_xaw=no fi +else + have_xaw=no +fi dnl "$with_x11" = "yes" -a "$with_widgets" = "athena" + +if test "$with_x11" = "yes"; then dnl autodetect Motif - but only add to libs_x later (if necessary) AC_CHECK_HEADER(Xm/Xm.h, [AC_CHECK_LIB(Xm, XmStringFree, have_motif=yes, have_motif=no)], @@ -3578,7 +3651,7 @@ test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-gtk.o) test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-gtk.o) test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-gtk.o) - test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-gtk.o) + test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-common.o toolbar-gtk.o) test "$all_widgets" != "no no no no no" && XE_ADD_OBJS(gui-gtk.o) fi @@ -4237,7 +4310,9 @@ fi dnl with_tty dnl Do we need event-unixoid.o ? -test "$with_x11" = "yes" -o "$with_tty" = "yes" && XE_ADD_OBJS(event-unixoid.o) +dnl This is needed for X, or for TTY, or for MSWIN w/Cygwin select() +dnl [but not Mingw MSWIN] +test "$with_x11" = "yes" -o "$with_tty" = "yes" -o "$need_event_unixoid" = "yes" && XE_ADD_OBJS(event-unixoid.o) dnl Database support dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support. @@ -4774,6 +4849,7 @@ test "$with_hesiod" = "yes" && AC_DEFINE(HESIOD) test "$use_union_type" = "yes" && AC_DEFINE(USE_UNION_TYPE) test "$pdump" = "yes" && AC_DEFINE(PDUMP) +test "$with_ipv6_cname" = "yes" && AC_DEFINE(IPV6_CANONICALIZE) dnl ------------------------------- dnl Report on what we decided to do @@ -4835,6 +4911,10 @@ echo " Compiler: $CC $CFLAGS" echo " Relocating allocator for buffers: $rel_alloc" echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}" +case "$ld_switch_site" in + *nocombreloc*) echo " Linking with \`-z nocombreloc'. + - Consider configuring with --pdump." ;; +esac echo " Window System:" @@ -4980,6 +5060,7 @@ echo " Other Features:" +test "$with_ipv6_cname" = no && echo " Inhibiting IPv6 canonicalization at startup." test "$with_tooltalk" = yes && echo " Compiling in support for ToolTalk." test "$with_workshop" = yes && echo " Compiling in support for Sun WorkShop." test "$with_socks" = yes && echo " Compiling in support for SOCKS." @@ -4989,7 +5070,7 @@ test "$pdump" = yes && echo " Using the new portable dumper." test "$debug" = yes && echo " Compiling in support for extra debugging code." test "$usage_tracking" = yes && echo " Compiling in support for active usage tracking (Sun internal)." -if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc $error_check_glyphs" \ +if test "$error_check_extents $error_check_typecheck $error_check_charbpos $error_check_gc $error_check_malloc $error_check_glyphs" \ != "no no no no no no"; then echo " WARNING: ---------------------------------------------------------" echo " WARNING: Compiling in support for runtime error checking." diff --text -u 'xemacs-21.5.3/configure.usage' 'xemacs-21.5.4/configure.usage' Index: ././configure.usage --- ././configure.usage Thu Aug 2 03:59:04 2001 +++ ././configure.usage Sat Jan 5 16:33:17 2002 @@ -66,7 +66,8 @@ --x-includes=DIR Search for X header files in DIR. --x-libraries=DIR Search for X libraries in DIR. --with-msw (*) Support MS Windows as a window system (only under - Cygwin and MinGW). + Cygwin and MinGW). `--with-msw=no' may be needed on + *nix systems with Wine installed. --with-toolbars=no Don't compile with any toolbar support. --with-wmcommand=no Compile without realized leader window which will keep the WM_COMMAND property. @@ -130,16 +131,16 @@ Sound options: ---with-sound=TYPE,[TYPE],... Compile with native sound support. +--with-sound=TYPE[,TYPE[,...]] (*) Compile with sound support. Valid types are `native', `nas' and `esd'. Prefix a type with 'no' to disable. - The first option can be `none' or `all'. - `none' is a synonym for `nonative,nonas,noesd'. - `all' is a synonym for native,nas,esd or `all'. + The first type can be `none' or `all'. `none' means + `nonative,nonas,noesd'. `all' means `native,nas,esd'. + Later options override earlier ones for the same TYPE. The default is to autodetect all sound support. --native-sound-lib=LIB Native sound support library. Needed on Suns - with --with-sound=both because both sound libraries - are called libaudio. + with `--with-sound=native,nas' because both sound + libraries are called libaudio. Database options: @@ -171,6 +172,10 @@ --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. +--with-ipv6-cname=yes Try IPv6 information first when canonicalizing host + names. This option has no effect unless system + supports getaddrinfo(3) and getnameinfo(3). --with-site-lisp=yes Allow for a site-lisp directory in the XEmacs hierarchy searched before the installation packages. --with-site-modules=no Disable site-modules directory in the XEmacs hierarchy, @@ -192,15 +197,15 @@ and localdir files in case run-time searching for them fails. --moduledir=DIR Directory to install dynamic modules in. ---pdump New, experimental, non-working, don't-sue-me-if- - your-house-collapses-and-your-wife-leaves-you, - portable dumper. +--pdump New, experimental, don't-sue-me-if-your-house- + collapses-and-your-wife-leaves-you, portable dumper. --with-file-coding Allows transparent use of "foreign" line break conventions in text files (such as LF-delimited text imported from a Unix system to a Windows environment), optionally including autodetection. Defaults to ON on Windows, OFF on Unix. + Internationalization options: --with-mule Compile with Mule (MUlti-Lingual Emacs) support, @@ -216,14 +221,14 @@ on Solaris and the XmIm* routines are detected. --with-canna (*) Compile with support for Canna (a Japanese input method used in conjunction with Mule support). ---with-wnn (*) Compile with support for WNN (a multi-language input +--with-wnn (*) Compile with support for Wnn (a multi-language input method used in conjunction with Mule support). ---with-wnn6 (*) Compile with support for the commercial package WNN6. +--with-wnn6 (*) Compile with support for the commercial package Wnn6. --with-i18n3 Compile with I18N level 3 (support for message translation). This doesn't currently work. ---with-xfs Compile with XFontSet support for bilingual menubar. - Can't use this option with --with-xim=motif or xlib. - And should have --with-menubars=lucid. +--with-xfs Compile with XFontSet support for internationalized + menubar. Incompatible with `--with-xim=motif'. + `--with-menubars=lucid' (the default) is desirable. Debugging options: @@ -243,6 +248,7 @@ --no-doc-file Don't rebuild the DOC file unless it's explicitly deleted. Only use during development. (It speeds up the compile-run-test cycle.) +--quick-build Don't GC when dumping. Implies --no-doc-file. --use-union-type Enable or disable use of a union, instead of an int, for the fundamental Lisp_Object type; this provides stricter type-checking. Only works with @@ -263,7 +269,7 @@ --with-clash-detection Use lock files to detect multiple edits of the same file. The default is to do clash detection. -You may also specify any of the `path' variables found in Makefile.in, +You may also specify any of the `path' variables found in Makefile.in.in, including --bindir, --libdir, --docdir, --lispdir, --sitelispdir, --datadir, --infodir, --mandir and so on. Note that we recommend against explicitly setting any of these variables. See the INSTALL diff --text -u 'xemacs-21.5.3/etc/NEWS' 'xemacs-21.5.4/etc/NEWS' Index: ././etc/NEWS --- ././etc/NEWS Sat May 5 08:31:31 2001 +++ ././etc/NEWS Tue Dec 4 03:02:49 2001 @@ -418,7 +418,7 @@ replaces the region rectangle. Otherwise, the command does not delete or overwrite any existing text. For those who want that feature but do not use pending-delete-mode, a new function, `replace-rectangle', is -available. +available, and bound to `C-x r p'. As a side effect, the FORCE argument to `move-to-column' now understands the special value `coerce', which means that the line diff --text -u /dev/null 'xemacs-21.5.4/etc/package-index.LATEST.gpg' Index: ././etc/package-index.LATEST.gpg --- ././etc/package-index.LATEST.gpg Thu Jan 1 09:00:00 1970 +++ ././etc/package-index.LATEST.gpg Sat Dec 29 09:41:13 2001 @@ -0,0 +1,2082 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +;; Package Index file -- Do not edit manually. +;;;@@@ +(package-get-update-base-entry (quote +(mule-ucs + (standards-version 1.1 + version "1.00" + author-version "0.84" + date "2001-12-17" + build-date "2001-12-17" + maintainer "Stephen J. Turnbull " + distribution mule + priority high + category "mule" + dump nil + description "MULE: Extended coding systems (including Unicode) for XEmacs." + filename "mule-ucs-1.00-pkg.tar.gz" + md5sum "0f369acc648f66a1f76bf07ec46236bd" + size 1308719 + provides (mccl-font mucs-ccl mucs-error mucs-type mucs mule-uni tae tbl-mg trans-util txt-tbl un-data un-define un-supple un-tools un-trbase unicode unidata utf u-cns-1 u-cns-2 u-cns-3 u-cns-4 u-cns-5 u-cns-6 u-cns-7 uascii ubig5 uetiopic ugb2312 uipa uiscii uiso8859-1 uiso8859-14 uiso8859-15 uiso8859-2 uiso8859-3 uiso8859-4 uiso8859-5 uiso8859-6 uiso8859-7 uiso8859-8 uiso8859-9 ujisx0201 ujisx0208 ujisx0212 uksc5601 usisheng usupple utibetan utis620 uviscii) + requires (mule-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(clearcase + (standards-version 1.0 + version "1.00" + author-version "21.5b3" + date "2001-12-09" + build-date "2001-12-10" + maintainer "Adrian Aichner " + distribution xemacs + priority low + category "standard" + dump nil + description "New Clearcase Version Control for XEmacs (UNIX, Windows)." + filename "clearcase-1.00-pkg.tar.gz" + md5sum "6ae8f1896b97f90a94a6391beeb6f018" + size 88185 + provides (clearcase) + requires (dired fsf-compat mail-lib xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(tramp + (standards-version 1.1 + version "1.00" + author-version "2.46" + date "2001-12-08" + build-date "2001-12-08" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "standard" + dump nil + description "Remote shell-based file editing." + filename "tramp-1.00-pkg.tar.gz" + md5sum "31d4925445293ad091381218fc9e10fa" + size 130274 + provides (tramp tramp-util tramp-vc trampcache) + requires (tramp xemacs-base vc fsf-compat efs dired mail-lib gnus) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(dictionary + (standards-version 1.1 + version "1.06" + author-version "1.7" + date "2001-12-21" + build-date "2001-12-22" + maintainer "Torsten Hilbrich " + distribution xemacs + priority low + category "standard" + dump nil + description "Interface to RFC2229 dictionary servers." + filename "dictionary-1.06-pkg.tar.gz" + md5sum "63393d735b65ce60c7199e6bf3278b1f" + size 37621 + provides (dictionary connection link) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(build + (standards-version 1.0 + version "1.03" + author-version "21.5b3" + date "2001-12-02" + build-date "2001-12-03" + maintainer "Adrian Aichner " + distribution stable + priority low + category "standard" + dump nil + description "Build XEmacs from within (UNIX, Windows)." + filename "build-1.03-pkg.tar.gz" + md5sum "beaa6b5e8731f13de47c4b5d5ef6fde4" + size 31341 + provides (build) + requires (xemacs-base pcl-cvs dired w3 prog-modes) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(xslt-process + (standards-version 1.0 + version "1.05" + author-version "1.2.1" + date "2001-08-25" + build-date "2001-08-27" + maintainer "Ovidiu Predescu " + distribution xemacs + priority medium + category "standard" + dump nil + description "XSLT processing support." + filename "xslt-process-1.05-pkg.tar.gz" + md5sum "f38db5adcbff961d8b542fc5840cab22" + size 202235 + provides (xslt-process) + requires (jde cc-mode semantic debug speedbar edit-utils eterm mail-lib xemacs-base elib eieio sh-script) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(eieio + (standards-version 1.1 + version "1.01" + author-version "0.16" + date "2001-02-20" + build-date "2001-02-20" + maintainer "Eric Ludlam " + distribution xemacs + priority low + category "libs" + dump nil + description "Enhanced Implementation of Emacs Interpreted Objects" + filename "eieio-1.01-pkg.tar.gz" + md5sum "936e2330f1ac6e76f437154ad60f5b0f" + size 136677 + provides (eieio chart tree) + requires (eieio speedbar xemacs-base ) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(skk + (standards-version 1.1 + version "1.19" + author-version "10.62a" + date "2001-06-18" + build-date "2001-07-02" + maintainer "XEmacs Development Team " + distribution mule + priority medium + category "mule" + dump nil + description "MULE: Japanese Language Input Method." + filename "skk-1.19-pkg.tar.gz" + md5sum "1655024ec7091ec05558062e7344a93f" + size 1505369 + provides (skk skk-tut) + requires (viper mule-base elib xemacs-base apel) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(egg-its + (standards-version 1.1 + version "1.26" + author-version "21.5b1" + date "2001-05-07" + build-date "2001-05-10" + maintainer "XEmacs Development Team " + distribution mule + priority high + category "mule" + dump nil + description "MULE: Wnn (4.2 and 6) support. SJ3 support." + filename "egg-its-1.26-pkg.tar.gz" + md5sum "a69b09fedc9aee8422ed7ed35b6649eb" + size 260749 + provides (egg-cnpinyin egg-cnzhuyin egg-cwnn-leim egg-jisx0201 egg-jsymbol egg-kwnn-leim egg-leim egg-sj3-client egg-sj3-leim egg-sj3 egg-wnn egg) + requires (leim mule-base fsf-compat xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(edict + (standards-version 1.1 + version "1.12" + author-version "0.9.8" + date "2000-11-08" + build-date "2001-01-15" + maintainer "Stephen J. Turnbull " + distribution mule + priority high + category "mule" + dump nil + description "MULE: Lisp Interface to EDICT, Kanji Dictionary" + filename "edict-1.12-pkg.tar.gz" + md5sum "ac774d2ae02fe32de755e758af5dac11" + size 71792 + provides (dui-registry dui edict-edit edict-english edict-japanese edict-morphology edict-test edict ts-mode) + requires (mule-base xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(lookup + (standards-version 1.1 + version "1.08" + author-version "1.0" + date "2001-01-14" + build-date "2001-07-02" + maintainer "XEmacs Development Team " + distribution mule + priority high + category "mule" + dump nil + description "MULE: Dictionary support" + filename "lookup-1.08-pkg.tar.gz" + md5sum "49e7d04e5a9f85f060365433cd45f31d" + size 214238 + provides (lookup) + requires (mule-base cookie lookup) + type regular +)) +)) +;;;@@@ +(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" + 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 + provides () + requires (mule-base fsf-compat xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(locale + (standards-version 1.1 + version "1.18" + author-version "21.1" + date "2000-11-08" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution mule + priority high + category "mule" + dump nil + description "MULE: Localized menubars and localized splash screens." + filename "locale-1.18-pkg.tar.gz" + md5sum "dbc3b123a7f12804fb81643b40fe766a" + size 38660 + provides () + requires (mule-base) + type regular +)) +)) +;;;@@@ +(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" + 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 + 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 +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(strokes + (standards-version 1.1 + version "1.08" + author-version "21.1" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority medium + category "oa" + dump nil + description "Mouse enhancement utility." + filename "strokes-1.08-pkg.tar.gz" + md5sum "c5ab0860ceb23b40798b11a1fa4c0240" + size 43486 + provides (strokes) + requires (text-modes edit-utils mail-lib xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(time + (standards-version 1.1 + version "1.11" + author-version "1.17" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority medium + category "oa" + dump nil + description "Display time & date on the modeline." + filename "time-1.11-pkg.tar.gz" + md5sum "93ca34fe3275dc3ef5b8fd4c6824551d" + size 19983 + provides (time) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(text-modes + (standards-version 1.1 + version "1.32" + author-version "21.5b1" + date "2001-07-18" + build-date "2001-07-21" + maintainer "XEmacs Development Team " + distribution xemacs + priority high + category "standard" + dump nil + description "Miscellaneous support for editing text files." + filename "text-modes-1.32-pkg.tar.gz" + md5sum "6af333dc07f90ef72f735ae5a53da5f3" + size 225512 + provides (autoinsert crontab-edit filladapt fold-isearch folding image-mode iso-acc iso-ascii iso-cvt iso-insert iso-swed swedish tabify whitespace-mode winmgr-mode xpm-mode xrdb-mode) + requires (ispell fsf-compat xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(slider + (standards-version 1.1 + version "1.13" + author-version "0.3x1" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "oa" + dump nil + description "User interface tool." + filename "slider-1.13-pkg.tar.gz" + md5sum "3fbc16b2caeef30e87969e19efa40f32" + size 12021 + provides (slider color-selector) + requires () + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(sgml + (standards-version 1.1 + version "1.08" + author-version "21.1" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "oa" + dump nil + description "SGML/Linuxdoc-SGML editing." + filename "sgml-1.08-pkg.tar.gz" + md5sum "bdadf462489fa1540cc56d1c561aaa54" + size 26964 + provides (sgml linuxdoc-sgml) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(psgml + (standards-version 1.1 + version "1.25" + author-version "1.22" + date "2001-12-20" + build-date "2001-12-22" + maintainer "XEmacs Development Team " + distribution xemacs + priority medium + category "standard" + dump nil + description "Validated HTML/SGML editing." + filename "psgml-1.25-pkg.tar.gz" + md5sum "76d15ccbd2aa98630dc5c8c43cd8168a" + size 651986 + 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 +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(pc + (standards-version 1.1 + version "1.20" + author-version "21.5b1" + date "2000-02-12" + build-date "2001-05-10" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "oa" + dump nil + description "PC style interface emulation." + filename "pc-1.20-pkg.tar.gz" + md5sum "ceab8a41e2992aebfa6efe247c6c851c" + size 16703 + provides (delbs fusion pc-select pending-del s-region) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(ispell + (standards-version 1.1 + version "1.23" + author-version "3.2" + date "2001-08-02" + build-date "2001-08-07" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "standard" + dump nil + description "Spell-checking with GNU ispell." + filename "ispell-1.23-pkg.tar.gz" + md5sum "d6313eaf9fd77554cd4ee2fc42b898e9" + size 72495 + provides (ispell) + requires () + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(hm--html-menus + (standards-version 1.1 + version "1.16" + author-version "5.9" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "oa" + dump nil + description "HTML editing." + filename "hm--html-menus-1.16-pkg.tar.gz" + md5sum "defc795c8c783b13599927399df7bf18" + size 178704 + provides (adapt hm--date hm--html-configuration hm--html-drag-and-drop hm--html-indentation hm--html-keys hm--html-menu hm--html-mode hm--html-not-standard hm--html html-view tmpl-minor-mode) + requires (dired xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(frame-icon + (standards-version 1.1 + version "1.09" + author-version "21.1" + date "1998-07-14" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "oa" + dump nil + description "Set up mode-specific icons for each frame under XEmacs" + filename "frame-icon-1.09-pkg.tar.gz" + md5sum "91922e43447422f175065428367fb00b" + size 33436 + provides (forms forms-mode) + requires () + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(forms + (standards-version 1.1 + version "1.13" + author-version "2.37" + date "1999-10-07" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "oa" + dump nil + description "Forms editing support (obsolete, use Widget instead)." + filename "forms-1.13-pkg.tar.gz" + md5sum "f18fd40a2068b851890ca59d3f1845a7" + size 48380 + provides (forms forms-mode) + requires () + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(calendar + (standards-version 1.1 + version "1.18" + author-version "21.5b3" + date "2001-12-22" + build-date "2001-12-22" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "standard" + dump nil + description "Calendar and diary support." + filename "calendar-1.18-pkg.tar.gz" + md5sum "1fbd29614f2b1b29494dc2ea3241c16a" + size 252308 + provides (appt cal-china cal-coptic cal-dst cal-french cal-hebrew cal-islam cal-iso cal-japanese cal-julian cal-mayan cal-move cal-persia cal-tex cal-x cal-xemacs calendar diary-lib holidays lunar solar) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(calc + (standards-version 1.1 + version "1.17" + author-version "2.02fX3" + date "2001-07-30" + build-date "2001-07-31" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "standard" + dump nil + description "Emacs calculator" + filename "calc-1.17-pkg.tar.gz" + md5sum "96d9973ad70e2d7b8a8b9682188335ef" + size 1614612 + provides (calc) + requires () + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(speedbar + (standards-version 1.1 + version "1.21" + author-version "0.13" + date "2001-07-26" + build-date "2001-07-28" + maintainer "Eric M. Ludlam " + distribution xemacs + priority low + category "standard" + dump nil + description "Provides a separate frame with convenient references." + filename "speedbar-1.21-pkg.tar.gz" + md5sum "0cc730cc05aebd7ab14ad60d5cd53065" + size 136610 + provides (speedbar) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(edit-utils + (standards-version 1.1 + version "1.73" + author-version "21.5b3" + date "2001-12-13" + build-date "2001-12-13" + maintainer "XEmacs Development Team " + distribution xemacs + priority high + category "standard" + dump nil + description "Miscellaneous editor extensions, you probably need this." + filename "edit-utils-1.73-pkg.tar.gz" + md5sum "508d8b321a81bfc69b2ddc3ae3f49174" + size 697616 + provides (abbrevlist 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 man mic-paren paren popper mode-motion+ outl-mouse page-ext blink-paren paren permanent-buffers recent-files redo reportmail rsz-minibuf saveconfsavehist saveplace scroll-in-place tempo toolbar-utils tree-menu uniquify where-was-i-db) + requires (xemacs-base fsf-compat) + type single +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(pcomplete + (standards-version 1.1 + version "1.01" + author-version "1.1.6" + date "2000-03-06" + build-date "2001-01-15" + maintainer "John Wiegley " + distribution xemacs + priority medium + category "os" + dump nil + description "Provides programmatic completion." + filename "pcomplete-1.01-pkg.tar.gz" + md5sum "ee42f90e2a4bb878bd5768ba49ed96ba" + size 37289 + provides (pcomplete) + requires (sh-script) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(eshell + (standards-version 1.1 + version "1.01" + author-version "2.4.1" + date "2000-12-20" + build-date "2001-01-15" + maintainer "John Wiegley " + distribution xemacs + priority medium + category "os" + dump nil + description "Command shell implemented entirely in Emacs Lisp" + filename "eshell-1.01-pkg.tar.gz" + md5sum "71d400303baad4de19334b4693b443da" + size 231267 + provides (eshell) + requires (xemacs-base eterm) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(view-process + (standards-version 1.1 + version "1.11" + author-version "2.4" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "os" + dump nil + description "A Unix process browsing tool." + filename "view-process-1.11-pkg.tar.gz" + md5sum "8273fcfd035804c4b376786629c7b205" + size 60260 + provides (view-process-mode) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(ps-print-nomule + (standards-version 1.1 + version "1.05" + author-version "3.05x1" + date "2000-10-28" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority medium + category "os" + dump nil + description "Old, but no-Mule safe ps-print" + filename "ps-print-nomule-1.05-pkg.tar.gz" + md5sum "c071d71ac89d9a540c0799fb33f40c3a" + size 52879 + provides (ps-print) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(os-utils + (standards-version 1.1 + version "1.25" + author-version "21.1" + date "2000-11-09" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority medium + category "os" + dump nil + description "Miscellaneous O/S utilities." + filename "os-utils-1.25-pkg.tar.gz" + md5sum "e71b109e0fb81032fa664768c98b6bcc" + size 202651 + provides (archive-mode background crypt crypt++ inf-lisp jka-compr lpr mchat tar-mode telnet terminal uncompress) + requires (xemacs-base) + type single +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(ilisp + (standards-version 1.1 + version "1.19" + author-version "5.11.1" + date "2001-07-05" + build-date "2001-07-05" + maintainer "ilisp Maintainers " + distribution xemacs + priority low + category "standard" + dump nil + description "Front-end for Inferior Lisp." + filename "ilisp-1.19-pkg.tar.gz" + md5sum "c4379cdfd02c0d578e8877191d3658ff" + size 335570 + provides (ilisp completer) + requires (xemacs-base mail-lib fsf-compat eterm) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(igrep + (standards-version 1.1 + version "1.08" + author-version "2.83" + date "1998-08-11" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "os" + dump nil + description "Enhanced front-end for Grep." + filename "igrep-1.08-pkg.tar.gz" + md5sum "bc3e4d7a897edb164f93ef49eeff87d3" + size 15184 + provides (igrep) + requires (dired xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(eterm + (standards-version 1.1 + version "1.13" + author-version "21.1" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority medium + category "os" + dump nil + description "Terminal emulation." + filename "eterm-1.13-pkg.tar.gz" + md5sum "ebd64834d12a2a3fc04bbb6f4dd836fa" + size 109184 + provides (eterm) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(viper + (standards-version 1.1 + version "1.29" + author-version "3.09" + date "2001-10-13" + build-date "2001-11-26" + maintainer "Michael Kifer " + distribution xemacs + priority low + category "standard" + dump nil + description "VI emulation support." + filename "viper-1.29-pkg.tar.gz" + md5sum "aa4126c14967ab99fe5584ff8d1d7365" + size 327443 + provides (viper) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(tpu + (standards-version 1.1 + version "1.12" + author-version "4.2X" + date "2000-10-05" + build-date "2001-01-15" + maintainer "Kevin Oberman " + distribution xemacs + priority medium + category "wp" + dump nil + description "DEC EDIT/TPU support." + filename "tpu-1.12-pkg.tar.gz" + md5sum "8ee6ca98afc9c18a1df013065c430f5e" + size 58850 + provides (tpu) + requires () + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(textools + (standards-version 1.1 + version "1.12" + author-version "21.1" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority medium + category "wp" + dump nil + description "Miscellaneous TeX support." + filename "textools-1.12-pkg.tar.gz" + md5sum "2ce1dc6eb29773d2ab6ce2e04463e54f" + size 79212 + provides (bib-mode bibtex refer-to-bibtex) + requires (xemacs-base) + type single +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(texinfo + (standards-version 1.1 + version "1.20" + author-version "21.1" + date "2000-03-18" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority high + category "wp" + dump nil + description "XEmacs TeXinfo support." + filename "texinfo-1.20-pkg.tar.gz" + md5sum "25a3261b1700f4b83d229dc1dcf633ae" + size 133067 + provides (makeinfo tex-mode texinfmt texinfo texnfo-tex texnfo-upd) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(reftex + (standards-version 1.1 + version "1.23" + author-version "4.16" + date "artin@xema" + build-date "2001-06-14" + maintainer "Carsten Dominik " + distribution xemacs + priority medium + category "wp" + dump nil + description "Emacs support for LaTeX cross-references, citations.." + filename "reftex-1.23-pkg.tar.gz" + md5sum "418d13bcf80e929e27be7c68bf718e3c" + size 330411 + provides (reftex) + requires (fsf-compat xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(edt + (standards-version 1.1 + version "1.12" + author-version "21.5b1" + date "2001-07-14" + build-date "2001-07-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "standard" + dump nil + description "DEC EDIT/EDT emulation." + filename "edt-1.12-pkg.tar.gz" + md5sum "0d7649d0f65d9de732918d756f5cf48b" + size 62441 + provides (edt) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(crisp + (standards-version 1.1 + version "1.12" + author-version "1.34" + date "1998-08-18" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "wp" + dump nil + description "Crisp/Brief emulation." + filename "crisp-1.12-pkg.tar.gz" + md5sum "30308c6e5fb14f621d53046894c8c180" + size 10075 + provides (crisp scroll-lock) + requires () + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(auctex + (standards-version 1.1 + version "1.28" + author-version "10.0g" + date "2001-12-13" + build-date "2001-12-13" + maintainer "XEmacs Development Team " + distribution xemacs + priority medium + category "standard" + dump nil + description "Basic TeX/LaTeX support." + filename "auctex-1.28-pkg.tar.gz" + md5sum "a159936d264c746b33776ca9ec078ee8" + size 385145 + provides (auc-old bib-cite font-latex latex multi-prompt tex-buf tex-info tex-jp tex-site tex) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(vhdl + (standards-version 1.1 + version "1.13" + author-version "3.31.20" + date "2001-02-16" + build-date "2001-02-18" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "prog" + dump nil + description "Support for VHDL." + filename "vhdl-1.13-pkg.tar.gz" + md5sum "76ef5bea9a7f1c5fb899306089efd0d8" + size 272552 + provides (vhdl-mode) + requires (xemacs-base edit-utils c-support speedbar ps-print-nomule os-utils) + type regular +)) +)) +;;;@@@ +(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" + 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) + requires (dired xemacs-base vc mail-lib ediff) + type regular +)) +)) +;;;@@@ +(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" + 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) + requires (dired xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(sh-script + (standards-version 1.1 + version "1.13" + author-version "2.0e" + date "2000-07-11" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "prog" + dump nil + description "Support for editing shell scripts." + filename "sh-script-1.13-pkg.tar.gz" + md5sum "d9fa57da5e44091bf31282886de25687" + size 35304 + provides (sh-script executable) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(scheme + (standards-version 1.1 + version "1.11" + author-version "21.1" + date "1999-06-15" + build-date "2001-01-15" + maintainer "Karl M. Hegbloom " + distribution xemacs + priority low + category "prog" + dump nil + description "Front-end support for Inferior Scheme." + filename "scheme-1.11-pkg.tar.gz" + md5sum "8994fb43b37a55d4b9ad763af67a45ba" + size 36497 + provides (scheme xscheme cmuscheme cmuscheme48) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(prog-modes + (standards-version 1.1 + version "1.48" + author-version "21.5b3" + date "2001-12-27" + build-date "2001-12-27" + maintainer "XEmacs Development Team " + distribution xemacs + priority medium + category "standard" + dump nil + description "Support for various programming languages." + filename "prog-modes-1.48-pkg.tar.gz" + md5sum "4ece71bc7398aaa408659f422f72c2d0" + size 921783 + provides (autoconf-mode awk-mode cperl-mode cvs diff-mode eiffel3 f90 fortran ksh-mode m4-mode makefile mode-compile mode-compile-kill c-mode p4 perl-mode php-mode postscript pydoc python-mode rexx-mode simula-mode sql tcl teco verilog-mode) + requires (mail-lib xemacs-devel xemacs-base cc-mode ps-print-nomule fsf-compat edit-utils ediff emerge efs vc speedbar dired) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(jde + (standards-version 1.1 + version "1.31" + author-version "2.2.8" + date "2001-10-14" + build-date "2001-11-26" + maintainer "Paul Kinnucan " + distribution xemacs + priority medium + category "standard" + dump nil + description "Java language and development support." + filename "jde-1.31-pkg.tar.gz" + md5sum "1013e43ea81d2cc354da2bb19f44b205" + size 1620042 + provides (jde) + requires (jde cc-mode semantic debug speedbar edit-utils eterm mail-lib xemacs-base xemacs-devel eieio elib sh-script) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(idlwave + (standards-version 1.1 + version "1.23" + author-version "4.7" + date "2000-12-08" + build-date "2001-01-15" + maintainer "Carsten Dominik " + distribution xemacs + priority medium + category "prog" + dump nil + description "Editing and Shell mode for the Interactive Data Language" + filename "idlwave-1.23-pkg.tar.gz" + md5sum "71163a118316b2da6cff6371455dad4c" + size 345555 + provides (idlwave) + requires (fsf-compat xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(emerge + (standards-version 1.1 + version "1.09" + author-version "21.1" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "prog" + dump nil + description "Another interface over GNU patch." + filename "emerge-1.09-pkg.tar.gz" + md5sum "231c8120d60da2c9ddd856510da2491c" + size 61043 + provides (emerge) + requires () + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(ediff + (standards-version 1.1 + version "1.33" + author-version "2.75" + date "2001-09-27" + build-date "2001-09-29" + maintainer "Michael Kifer " + distribution xemacs + priority medium + category "standard" + dump nil + description "Interface over GNU patch." + filename "ediff-1.33-pkg.tar.gz" + md5sum "8a5b50752086adb44f7d2ec99e10d2eb" + size 295809 + provides (ediff) + requires (pcl-cvs elib dired xemacs-base edebug prog-modes) + type regular +)) +)) +;;;@@@ +(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" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "prog" + 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) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(c-support + (standards-version 1.1 + version "1.16" + author-version "21.1" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "prog" + dump nil + description "Basic single-file add-ons for editing C code." + filename "c-support-1.16-pkg.tar.gz" + md5sum "047accf51457a041bf920c9563de1bf6" + size 70393 + provides (c-comment-edit cmacexp ctypes hideif hideshow) + requires (cc-mode xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(ada + (standards-version 1.1 + version "1.10" + author-version "2.27" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "prog" + dump nil + description "Ada language support." + filename "ada-1.10-pkg.tar.gz" + md5sum "6ba6ca52a345831e8fafa241119db39f" + size 54387 + provides (ada-mode ada-stmt) + requires () + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(pcl-cvs + (standards-version 1.1 + version "1.56" + author-version "R-2_9_9" + date "2001-12-22" + build-date "2001-12-22" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "standard" + dump nil + description "CVS frontend." + filename "pcl-cvs-1.56-pkg.tar.gz" + md5sum "97d7fdac2805e1130a12615ff7748570" + size 160967 + 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 +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(cc-mode + (standards-version 1.1 + version "1.26" + author-version "5.28" + date "2001-08-13" + build-date "2001-08-14" + maintainer "Martin Stjernholm " + distribution xemacs + priority medium + category "standard" + dump nil + description "C, C++ and Java language support." + filename "cc-mode-1.26-pkg.tar.gz" + md5sum "206a11ebe3e1e4639e9e3cbf681d9096" + size 262806 + provides (cc-mode) + requires (xemacs-base mail-lib) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(semantic + (standards-version 1.1 + version "1.10" + author-version "1.4beta8" + date "2001-08-16" + build-date "2001-08-16" + maintainer "Eric M. Ludlam " + distribution xemacs + priority low + category "standard" + dump nil + description "Semantic bovinator (Yacc/Lex for XEmacs). Includes Senator." + filename "semantic-1.10-pkg.tar.gz" + md5sum "a3806bbbd6d4cd1ebb11ed969ccc37ec" + size 281656 + provides (semantic senator) + requires (eieio xemacs-base xemacs-devel edit-utils speedbar texinfo) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(misc-games + (standards-version 1.1 + version "1.15" + author-version "21.1" + date "2000-11-18" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "games" + dump nil + description "Other amusements and diversions." + filename "misc-games-1.15-pkg.tar.gz" + md5sum "a77db688d2d276aaca5840a7c16615f0" + size 166336 + provides (decipher gomoku hanoi life morse rot13) + requires (xemacs-base) + type single +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(mine + (standards-version 1.1 + version "1.14" + author-version "1.9" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "games" + dump nil + description "Minehunt Game." + filename "mine-1.14-pkg.tar.gz" + md5sum "ebe471b68642906786db139d402002c7" + size 66727 + provides (xmine) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(games + (standards-version 1.1 + version "1.13" + author-version "1.04" + date "2000-03-23" + build-date "2001-01-15" + maintainer "Glynn Clements " + distribution xemacs + priority low + category "games" + dump nil + description "Tetris, Sokoban, and Snake." + filename "games-1.13-pkg.tar.gz" + md5sum "4138cc59fd6a9316adbb14e7468af593" + size 32438 + provides (gamegrid snake tetris sokoban) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(cookie + (standards-version 1.1 + version "1.13" + author-version "21.1" + date "1998-04-07" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "games" + dump nil + description "Spook and Yow (Zippy quotes)." + filename "cookie-1.13-pkg.tar.gz" + md5sum "9aeaa055b157c6fa50991758851ec16d" + size 34192 + provides (cookie1 yow) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(eicq + (standards-version 1.1 + version "1.05" + author-version "0.2.14" + date "2001-06-06" + build-date "2001-07-02" + maintainer "Steve Youngs " + distribution xemacs + priority low + category "standard" + dump nil + description "ICQ Client developed and tested on Linux x86; only supported on that platform" + filename "eicq-1.05-pkg.tar.gz" + md5sum "09c41ae8e50c418bc73029a05c0694f3" + size 299679 + provides (eicq eicq-toolbar eicq-report) + requires (xemacs-base mail-lib eicq gnus fsf-compat cookie) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(bbdb + (standards-version 1.1 + version "1.16" + author-version "2.32" + date "2001-08-29" + build-date "2001-09-01" + maintainer "Ronan Waide " + distribution xemacs + priority medium + category "standard" + dump nil + description "The Big Brother Data Base" + filename "bbdb-1.16-pkg.tar.gz" + md5sum "076538ab2bf64b6bfbe0ce02edf51eac" + size 338066 + provides (bbdb) + requires (bbdb edit-utils gnus mh-e rmail supercite vm tm apel mail-lib xemacs-base w3) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(zenirc + (standards-version 1.1 + version "1.11" + author-version "2.112" + date "2001-06-16" + build-date "2001-07-28" + maintainer "XEmacs Development Team " + distribution xemacs + priority medium + category "standard" + dump nil + description "ZENIRC IRC Client." + filename "zenirc-1.11-pkg.tar.gz" + md5sum "ef56684bdf71cae7e15f58c3819a7ee9" + size 276478 + provides (zenirc) + requires (zenirc) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(mew + (standards-version 1.1 + version "1.14" + author-version "1.94.2" + date "2001-02-05" + build-date "2001-02-05" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "comm" + dump nil + description "Messaging in an Emacs World." + filename "mew-1.14-pkg.tar.gz" + md5sum "c46627866de19034116a0c739be8e1eb" + size 655083 + provides (mew) + requires (mew w3 efs mail-lib xemacs-base fsf-compat) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(tm + (standards-version 1.1 + version "1.29" + author-version "21.5b2" + date "2001-07-31" + build-date "2001-07-31" + 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.29-pkg.tar.gz" + md5sum "ae9c106bafbfb471ceaaaf16b7acb8ac" + size 332928 + provides (tm tm-edit tm-view mime-setup) + requires (gnus mh-e rmail vm mailcrypt mail-lib apel xemacs-base fsf-compat) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(gnus + (standards-version 1.1 + version "1.57" + author-version "5.8.8" + date "2001-08-29" + build-date "2001-09-01" + maintainer "XEmacs Development Team " + distribution xemacs + priority medium + category "standard" + dump nil + description "The Gnus Newsreader and Mailreader." + filename "gnus-1.57-pkg.tar.gz" + md5sum "e0d0ffe9792aad3c28af0077b5809c07" + size 2350636 + provides (gnus message) + requires (gnus w3 mh-e mailcrypt rmail eterm mail-lib xemacs-base fsf-compat) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(rmail + (standards-version 1.1 + version "1.12" + author-version "21.1" + date "1998-06-28" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "comm" + dump nil + description "An obsolete Emacs mailer." + filename "rmail-1.12-pkg.tar.gz" + md5sum "ef29f27bfb5b7af89ae57be18b94da6f" + size 96401 + provides (rmail rmailsum) + requires (tm apel mail-lib xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(mailcrypt + (standards-version 1.1 + version "2.09" + author-version "3.5.6" + date "2001-07-01" + build-date "2001-07-02" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "standard" + dump nil + description "Support for messaging encryption with PGP." + filename "mailcrypt-2.09-pkg.tar.gz" + md5sum "34b06d81b131c89d83b1c9387e23975a" + size 141199 + provides (mailcrypt) + requires (mail-lib fsf-compat xemacs-base cookie gnus mh-e rmail vm) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(supercite + (standards-version 1.1 + version "1.18" + author-version "3.55x3" + date "2001-08-06" + build-date "2001-08-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "standard" + dump nil + description "An Emacs citation tool for News & Mail messages." + filename "supercite-1.18-pkg.tar.gz" + md5sum "e19c81599495ff2a010e81f4b175b9fd" + size 100848 + provides (supercite) + requires (mail-lib xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(mh-e + (standards-version 1.1 + version "1.13" + author-version "21.1" + date "2000-05-08" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "comm" + dump nil + description "Front end support for MH." + filename "mh-e-1.13-pkg.tar.gz" + md5sum "213d2484432c141ba2017d437922076b" + size 176657 + provides (mh-e) + requires (mail-lib xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(gnats + (standards-version 1.1 + version "1.12" + author-version "3.101" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority high + category "comm" + dump nil + description "XEmacs bug reports." + filename "gnats-1.12-pkg.tar.gz" + md5sum "8487d89459c7be544547558d39f42945" + size 189342 + provides (gnats gnats-admin send-pr) + requires (mail-lib xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(footnote + (standards-version 1.1 + version "1.13" + author-version "0.18x" + date "2000-01-22" + build-date "2001-01-15" + maintainer "SL Baur " + distribution xemacs + priority low + category "comm" + dump nil + description "Footnoting in mail message editing modes." + filename "footnote-1.13-pkg.tar.gz" + md5sum "23aa290969664f5edb96c79ae322759b" + size 21084 + provides (footnote) + requires (mail-lib xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(eudc + (standards-version 1.1 + version "1.34" + author-version "1.32" + date "2001-07-28" + build-date "2001-08-20" + maintainer "Oscar Figueiredo " + distribution xemacs + priority low + category "standard" + dump nil + description "Emacs Unified Directory Client (LDAP, PH)." + filename "eudc-1.34-pkg.tar.gz" + md5sum "31aaecdc3bbf2660999ad8b668eb6d9d" + size 78955 + provides (eudc eudc-vars eudc-hotlist eudc-export eudc-bob eudcb-ldap eudcb-ph eudcb-bbdb) + requires (fsf-compat xemacs-base bbdb) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(net-utils + (standards-version 1.1 + version "1.23" + author-version "21.5b3" + date "2001-09-28" + build-date "2001-09-29" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "standard" + dump nil + description "Miscellaneous Networking Utilities." + filename "net-utils-1.23-pkg.tar.gz" + md5sum "3677407752d20aa6f72be5d497eae0c8" + size 119855 + provides (ilisp-browse-cltl2 emacsbug feedmail metamail net-utils rcompile shadowfile webjump webster-www) + requires (w3 efs mail-lib xemacs-base) + type single +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(w3 + (standards-version 1.1 + version "1.20" + author-version "4.0pre46" + date "2001-06-18" + build-date "2001-07-03" + maintainer "XEmacs Development Team " + distribution xemacs + priority high + category "standard" + dump nil + description "A Web browser." + filename "w3-1.20-pkg.tar.gz" + md5sum "d2887a223788fec1deb43ba7489cf603" + size 689279 + provides (w3 url) + requires (w3 mail-lib xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(vm + (standards-version 1.1 + version "7.00" + author-version "7.00" + date "2001-12-09" + build-date "2001-12-09" + maintainer "Kyle Jones " + distribution xemacs + priority medium + category "standard" + dump nil + description "An Emacs mailer." + filename "vm-7.00-pkg.tar.gz" + md5sum "5cda132d6599eab758ff8623f93bad40" + size 699259 + provides (vm) + requires (mail-lib xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(sounds-wav + (standards-version 1.1 + version "1.10" + author-version "21.1" + date "2000-05-23" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority high + category "libs" + dump nil + description "XEmacs Microsoft sound files." + filename "sounds-wav-1.10-pkg.tar.gz" + md5sum "89dff9f3b8e1aaaa19f000035e3aa199" + size 149162 + provides () + requires () + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(sounds-au + (standards-version 1.1 + version "1.10" + author-version "21.1" + date "2000-05-23" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority high + category "libs" + dump nil + description "XEmacs Sun sound files." + filename "sounds-au-1.10-pkg.tar.gz" + md5sum "256e09c0570a19ae545350681bacaf3e" + size 126306 + provides () + requires () + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(xemacs-devel + (standards-version 1.1 + version "1.39" + author-version "21.5b3" + date "2001-12-25" + build-date "2001-12-27" + maintainer "XEmacs Development Team " + distribution xemacs + priority medium + category "standard" + dump nil + description "Emacs Lisp developer support." + filename "xemacs-devel-1.39-pkg.tar.gz" + md5sum "cb18e5920d5a132bec6783ba01a2c6c0" + size 156984 + provides (docref eldoc elp find-func hide-copyleft ielm regexp-opt trace) + requires (xemacs-base ispell mail-lib) + type single +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(tooltalk + (standards-version 1.1 + version "1.13" + author-version "21.1" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "libs" + dump nil + description "Support for building with Tooltalk." + filename "tooltalk-1.13-pkg.tar.gz" + md5sum "3f01dab216a3bc318d11f362d22ea89c" + size 9301 + provides () + requires () + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(elib + (standards-version 1.1 + version "1.08" + author-version "1.0" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority high + category "libs" + dump nil + description "Portable Emacs Lisp utilities library." + filename "elib-1.08-pkg.tar.gz" + md5sum "dd8c626d4a2b967febe68bcaa1cd1b96" + size 72867 + provides (avltree bintree cookie dll elib-node queue-f queue-m read stack-f stack-m string) + requires () + type single +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(edebug + (standards-version 1.1 + version "1.14" + author-version "21.5b1" + date "2001-07-16" + build-date "2001-07-21" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "standard" + dump nil + description "An Emacs Lisp debugger." + filename "edebug-1.14-pkg.tar.gz" + md5sum "8cac8a4c9e7f01bc3199f395fc9d975b" + size 112374 + provides (edebug cl-read cust-print eval-reg cl-specs) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(Sun + (standards-version 1.1 + version "1.13" + author-version "21.1" + date "1998-07-25" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "libs" + dump nil + description "Support for Sparcworks." + filename "Sun-1.13-pkg.tar.gz" + md5sum "455b7e1c3564563687e36ab53352ba76" + size 63836 + provides (sccs eos-browser eos-common eos-debugger eos-debugger eos-editor eos-init eos-load eos-menubar eos-toolbar sunpro) + requires (cc-mode xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(apel + (standards-version 1.1 + version "1.20" + author-version "10.2" + date "2000-11-14" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority high + category "libs" + dump nil + description "A Portable Emacs Library. Used by XEmacs MIME support." + filename "apel-1.20-pkg.tar.gz" + md5sum "0d3ac6c109783e1cc48cc4608843d6c3" + size 107611 + 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 +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(efs + (standards-version 1.0 + version "1.26" + author-version "1.20pre2" + date "2001-06-09" + build-date "2001-06-14" + 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.26-pkg.tar.gz" + md5sum "cecc2e953d90dd3fc3938d26fce4f0f7" + size 369938 + provides (efs) + requires (xemacs-base dired) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(dired + (standards-version 1.0 + version "1.11" + author-version "7.10" + date "2001-06-03" + build-date "2001-06-14" + 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 + provides (diff dired) + requires (xemacs-base prog-modes) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(mail-lib + (standards-version 1.1 + version "1.40" + author-version "21.5b3" + date "2001-11-27" + build-date "2001-11-28" + maintainer "Simon Josefsson " + distribution xemacs + priority medium + category "standard" + dump nil + description "Fundamental lisp files for providing email support." + filename "mail-lib-1.40-pkg.tar.gz" + md5sum "9bac3da5281026155fd6fadb93efb938" + size 177170 + provides (browse-url highlight-headers mail-abbrevs mail-extr mail-utils reporter rfc822 rmail-mini rmailout sendmail smtpmail) + requires (eterm xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(fsf-compat + (standards-version 1.1 + version "1.09" + author-version "21.4" + date "2001-04-28" + build-date "2001-04-28" + maintainer "XEmacs Development Team " + distribution xemacs + priority high + category "libs" + dump nil + description "FSF Emacs compatibility files." + filename "fsf-compat-1.09-pkg.tar.gz" + md5sum "b0f33bb047d8c64020b1fa0bf35eb12e" + size 21096 + provides (overlay thingatpt timer x-popup-menu) + requires (xemacs-base) + type single +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(xemacs-base + (standards-version 1.1 + version "1.56" + author-version "21.5b3" + date "2001-12-10" + build-date "2001-12-10" + 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.56-pkg.tar.gz" + md5sum "c619c482b36b55468f4e29d775b2f12f" + size 454879 + provides (add-log 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 overlay passwd pp regi ring shell skeleton sort thing time-stamp timezone xbm-button xpm-button tq) + requires () + type regular +)) +)) +;;;@@@ +;; Package Index file ends here +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.0.6 (GNU/Linux) +Comment: The XEmacs Development Team + +iD8DBQE8KlNgjNKQaxDVycURAuijAJ90kOn+o7HMfaPtA8Zo4HbJKQqUwwCfS4JK +5czOSl0dZfRl8QDUn6iYtjM= +=+UnN +-----END PGP SIGNATURE----- diff --text -u 'xemacs-21.5.3/etc/package-index.LATEST.pgp' 'xemacs-21.5.4/etc/package-index.LATEST.pgp' Index: ././etc/package-index.LATEST.pgp --- ././etc/package-index.LATEST.pgp Fri Apr 13 03:20:51 2001 +++ ././etc/package-index.LATEST.pgp Sat Dec 29 09:41:13 2001 @@ -1,114 +1,155 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 - ;; Package Index file -- Do not edit manually. ;;;@@@ (package-get-update-base-entry (quote -(lookup +(mule-ucs (standards-version 1.1 - version "1.03" - author-version "1.0" - date "1999-05-05" - build-date "1999-07-30" - maintainer "XEmacs Development Team " + version "1.00" + author-version "0.84" + date "2001-12-17" + build-date "2001-12-17" + maintainer "Stephen J. Turnbull " distribution mule priority high category "mule" dump nil - description "Dictionary support" - filename "lookup-1.03-pkg.tar.gz" - md5sum "d99759b042f8bf401d487e4ea140450d" - size 212861 - provides (lookup) - requires (cookie lookup) + description "MULE: Extended coding systems (including Unicode) for XEmacs." + filename "mule-ucs-1.00-pkg.tar.gz" + md5sum "0f369acc648f66a1f76bf07ec46236bd" + size 1308719 + provides (mccl-font mucs-ccl mucs-error mucs-type mucs mule-uni tae tbl-mg trans-util txt-tbl un-data un-define un-supple un-tools un-trbase unicode unidata utf u-cns-1 u-cns-2 u-cns-3 u-cns-4 u-cns-5 u-cns-6 u-cns-7 uascii ubig5 uetiopic ugb2312 uipa uiscii uiso8859-1 uiso8859-14 uiso8859-15 uiso8859-2 uiso8859-3 uiso8859-4 uiso8859-5 uiso8859-6 uiso8859-7 uiso8859-8 uiso8859-9 ujisx0201 ujisx0208 ujisx0212 uksc5601 usisheng usupple utibetan utis620 uviscii) + requires (mule-base) type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(os-utils +(clearcase + (standards-version 1.0 + version "1.00" + author-version "21.5b3" + date "2001-12-09" + build-date "2001-12-10" + maintainer "Adrian Aichner " + distribution xemacs + priority low + category "standard" + dump nil + description "New Clearcase Version Control for XEmacs (UNIX, Windows)." + filename "clearcase-1.00-pkg.tar.gz" + md5sum "6ae8f1896b97f90a94a6391beeb6f018" + size 88185 + provides (clearcase) + requires (dired fsf-compat mail-lib xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(tramp (standards-version 1.1 - version "1.18" - author-version "21.1" - date "1999-07-20" - build-date "1999-07-30" + version "1.00" + author-version "2.46" + date "2001-12-08" + build-date "2001-12-08" maintainer "XEmacs Development Team " distribution xemacs - priority medium - category "os" + priority low + category "standard" dump nil - description "Miscellaneous O/S utilities." - filename "os-utils-1.18-pkg.tar.gz" - md5sum "bafbe5e2628fc678daad46b07ba7fef6" - size 179680 - provides (archive-mode background crypt crypt++ inf-lisp jka-compr lpr mchat tar-mode telnet terminal uncompress) - requires (xemacs-base) - type single + description "Remote shell-based file editing." + filename "tramp-1.00-pkg.tar.gz" + md5sum "31d4925445293ad091381218fc9e10fa" + size 130274 + provides (tramp tramp-util tramp-vc trampcache) + requires (tramp xemacs-base vc fsf-compat efs dired mail-lib gnus) + type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(ediff +(dictionary (standards-version 1.1 - version "1.22" - author-version "2.72" - date "1999-05-27" - build-date "1999-07-30" - maintainer "Michael Kifer " + version "1.06" + author-version "1.7" + date "2001-12-21" + build-date "2001-12-22" + maintainer "Torsten Hilbrich " distribution xemacs - priority medium - category "prog" + priority low + category "standard" dump nil - description "Interface over GNU patch." - filename "ediff-1.22-pkg.tar.gz" - md5sum "a9ece02fc03ac74ee4501845dec88710" - size 282084 - provides (ediff) - requires (pcl-cvs elib dired xemacs-base) + description "Interface to RFC2229 dictionary servers." + filename "dictionary-1.06-pkg.tar.gz" + md5sum "63393d735b65ce60c7199e6bf3278b1f" + size 37621 + provides (dictionary connection link) + requires (xemacs-base) type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(hm--html-menus +(build (standards-version 1.0 - version "1.12" - author-version "5.9" - date "1999-02-05" - build-date "1999-02-05" - maintainer "XEmacs Development Team " + version "1.03" + author-version "21.5b3" + date "2001-12-02" + build-date "2001-12-03" + maintainer "Adrian Aichner " distribution stable priority low - category "oa" + category "standard" dump nil - description "HTML editing." - filename "hm--html-menus-1.12-pkg.tar.gz" - md5sum "fc80ef260cc0682bde6e706cdc8ddae4" - size 177442 - provides (adapt hm--date hm--html-configuration hm--html-drag-and-drop hm--html-indentation hm--html-keys hm--html-menu hm--html-mode hm--html-not-standard hm--html html-view tmpl-minor-mode) - requires (dired xemacs-base) + description "Build XEmacs from within (UNIX, Windows)." + filename "build-1.03-pkg.tar.gz" + md5sum "beaa6b5e8731f13de47c4b5d5ef6fde4" + size 31341 + provides (build) + requires (xemacs-base pcl-cvs dired w3 prog-modes) type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(jde +(xslt-process (standards-version 1.0 - version "1.14" - author-version "2.14" - date "1999-02-05" - build-date "1999-02-05" - maintainer "Andy Piper " - distribution stable + version "1.05" + author-version "1.2.1" + date "2001-08-25" + build-date "2001-08-27" + maintainer "Ovidiu Predescu " + distribution xemacs priority medium - category "prog" + category "standard" dump nil - description "Java language and development support." - filename "jde-1.14-pkg.tar.gz" - md5sum "1028c54ef317d8dd4d4c78e5b9c004e6" - size 320702 - provides (jde) - requires (cc-mode debug speedbar edit-utils mail-lib xemacs-base) + description "XSLT processing support." + filename "xslt-process-1.05-pkg.tar.gz" + md5sum "f38db5adcbff961d8b542fc5840cab22" + size 202235 + provides (xslt-process) + requires (jde cc-mode semantic debug speedbar edit-utils eterm mail-lib xemacs-base elib eieio sh-script) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(eieio + (standards-version 1.1 + version "1.01" + author-version "0.16" + date "2001-02-20" + build-date "2001-02-20" + maintainer "Eric Ludlam " + distribution xemacs + priority low + category "libs" + dump nil + description "Enhanced Implementation of Emacs Interpreted Objects" + filename "eieio-1.01-pkg.tar.gz" + md5sum "936e2330f1ac6e76f437154ad60f5b0f" + size 136677 + provides (eieio chart tree) + requires (eieio speedbar xemacs-base ) type regular )) )) @@ -116,21 +157,21 @@ (package-get-update-base-entry (quote (skk (standards-version 1.1 - version "1.14" - author-version "10.38" - date "1999-05-18" - build-date "1999-07-30" - maintainer "SL Baur " + version "1.19" + author-version "10.62a" + date "2001-06-18" + build-date "2001-07-02" + maintainer "XEmacs Development Team " distribution mule priority medium category "mule" dump nil - description "Japanese Language Input Method." - filename "skk-1.14-pkg.tar.gz" - md5sum "b8c89832f314570cb251147ced107c49" - size 1514095 + description "MULE: Japanese Language Input Method." + filename "skk-1.19-pkg.tar.gz" + md5sum "1655024ec7091ec05558062e7344a93f" + size 1505369 provides (skk skk-tut) - requires (viper mule-base elib xemacs-base) + requires (viper mule-base elib xemacs-base apel) type regular )) )) @@ -138,19 +179,19 @@ (package-get-update-base-entry (quote (egg-its (standards-version 1.1 - version "1.19" - author-version "21.1" - date "1999-07-26" - build-date "1999-07-30" + version "1.26" + author-version "21.5b1" + date "2001-05-07" + build-date "2001-05-10" maintainer "XEmacs Development Team " distribution mule priority high category "mule" dump nil - description "Wnn (4.2 and 6) support. SJ3 support." - filename "egg-its-1.19-pkg.tar.gz" - md5sum "121037363bae6925fd4933f861cbdabb" - size 261537 + description "MULE: Wnn (4.2 and 6) support. SJ3 support." + filename "egg-its-1.26-pkg.tar.gz" + md5sum "a69b09fedc9aee8422ed7ed35b6649eb" + size 260749 provides (egg-cnpinyin egg-cnzhuyin egg-cwnn-leim egg-jisx0201 egg-jsymbol egg-kwnn-leim egg-leim egg-sj3-client egg-sj3-leim egg-sj3 egg-wnn egg) requires (leim mule-base fsf-compat xemacs-base) type regular @@ -160,19 +201,19 @@ (package-get-update-base-entry (quote (edict (standards-version 1.1 - version "1.08" + version "1.12" author-version "0.9.8" - date "1998-07-23" - build-date "1999-07-30" + date "2000-11-08" + build-date "2001-01-15" maintainer "Stephen J. Turnbull " distribution mule priority high category "mule" dump nil - description "Lisp Interface to EDICT, Kanji Dictionary" - filename "edict-1.08-pkg.tar.gz" - md5sum "f339e93a2cb02d9224e4bf9f313b0b62" - size 71621 + description "MULE: Lisp Interface to EDICT, Kanji Dictionary" + filename "edict-1.12-pkg.tar.gz" + md5sum "ac774d2ae02fe32de755e758af5dac11" + size 71792 provides (dui-registry dui edict-edit edict-english edict-japanese edict-morphology edict-test edict ts-mode) requires (mule-base xemacs-base) type regular @@ -180,21 +221,43 @@ )) ;;;@@@ (package-get-update-base-entry (quote +(lookup + (standards-version 1.1 + version "1.08" + author-version "1.0" + date "2001-01-14" + build-date "2001-07-02" + maintainer "XEmacs Development Team " + distribution mule + priority high + category "mule" + dump nil + description "MULE: Dictionary support" + filename "lookup-1.08-pkg.tar.gz" + md5sum "49e7d04e5a9f85f060365433cd45f31d" + size 214238 + provides (lookup) + requires (mule-base cookie lookup) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote (leim (standards-version 1.1 - version "1.13" + version "1.17" author-version "21.1" - date "1999-06-29" - build-date "1999-07-30" + date "2000-11-08" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution mule priority medium category "mule" dump nil - description "Quail. All non-English and non-Japanese language support." - filename "leim-1.13-pkg.tar.gz" - md5sum "9cd059afefa3aff94fd1802c8db6c39a" - size 1702922 + description "MULE: Quail. All non-English and non-Japanese language support." + filename "leim-1.17-pkg.tar.gz" + md5sum "61d39ee096e39219651b01648a37ef2e" + size 1708067 provides () requires (mule-base fsf-compat xemacs-base) type regular @@ -204,19 +267,19 @@ (package-get-update-base-entry (quote (locale (standards-version 1.1 - version "1.14" + version "1.18" author-version "21.1" - date "1999-05-11" - build-date "1999-07-30" + date "2000-11-08" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution mule priority high category "mule" dump nil - description "Localized menubars and localized splash screens." - filename "locale-1.14-pkg.tar.gz" - md5sum "5a5c7e878596a1009e97a8c4f491826c" - size 35744 + description "MULE: Localized menubars and localized splash screens." + filename "locale-1.18-pkg.tar.gz" + md5sum "dbc3b123a7f12804fb81643b40fe766a" + size 38660 provides () requires (mule-base) type regular @@ -226,19 +289,19 @@ (package-get-update-base-entry (quote (mule-base (standards-version 1.1 - version "1.32" - author-version "21.1" - date "1999-06-30" - build-date "1999-07-30" - maintainer "SL Baur " + version "1.39" + author-version "21.5b1" + date "2001-05-23" + build-date "2001-06-14" + maintainer "XEmacs Development Team " distribution mule priority high category "mule" dump nil - description "Basic Mule support, required for building with Mule." - filename "mule-base-1.32-pkg.tar.gz" - md5sum "40950af24540e6cfc6875a9ddc7bab5d" - size 453902 + description "MULE: Basic Mule support, required for building with Mule." + filename "mule-base-1.39-pkg.tar.gz" + md5sum "5686febbb08c950ead2b4d0b1707c09e" + size 443543 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 @@ -248,19 +311,19 @@ (package-get-update-base-entry (quote (strokes (standards-version 1.1 - version "1.05" + version "1.08" author-version "21.1" - date "1998-01-25" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority medium category "oa" dump nil description "Mouse enhancement utility." - filename "strokes-1.05-pkg.tar.gz" - md5sum "42b991c28dc393a78f9da792f15e53d3" - size 43480 + filename "strokes-1.08-pkg.tar.gz" + md5sum "c5ab0860ceb23b40798b11a1fa4c0240" + size 43486 provides (strokes) requires (text-modes edit-utils mail-lib xemacs-base) type regular @@ -270,19 +333,19 @@ (package-get-update-base-entry (quote (time (standards-version 1.1 - version "1.08" + version "1.11" author-version "1.17" - date "1998-04-24" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority medium category "oa" dump nil description "Display time & date on the modeline." - filename "time-1.08-pkg.tar.gz" - md5sum "c67d7143de5694ec4a7e17023ceab902" - size 19994 + filename "time-1.11-pkg.tar.gz" + md5sum "93ca34fe3275dc3ef5b8fd4c6824551d" + size 19983 provides (time) requires (xemacs-base) type regular @@ -292,19 +355,19 @@ (package-get-update-base-entry (quote (text-modes (standards-version 1.1 - version "1.21" - author-version "21.1" - date "1999-07-06" - build-date "1999-07-30" + version "1.32" + author-version "21.5b1" + date "2001-07-18" + build-date "2001-07-21" maintainer "XEmacs Development Team " distribution xemacs priority high - category "oa" + category "standard" dump nil description "Miscellaneous support for editing text files." - filename "text-modes-1.21-pkg.tar.gz" - md5sum "d9d9505dfbe52854b3337eddfce093d1" - size 207873 + filename "text-modes-1.32-pkg.tar.gz" + md5sum "6af333dc07f90ef72f735ae5a53da5f3" + size 225512 provides (autoinsert crontab-edit filladapt fold-isearch folding image-mode iso-acc iso-ascii iso-cvt iso-insert iso-swed swedish tabify whitespace-mode winmgr-mode xpm-mode xrdb-mode) requires (ispell fsf-compat xemacs-base) type regular @@ -314,19 +377,19 @@ (package-get-update-base-entry (quote (slider (standards-version 1.1 - version "1.10" + version "1.13" author-version "0.3x1" - date "1998-08-13" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "oa" dump nil description "User interface tool." - filename "slider-1.10-pkg.tar.gz" - md5sum "a67e165592a2921ff0978a69befa0d6d" - size 12000 + filename "slider-1.13-pkg.tar.gz" + md5sum "3fbc16b2caeef30e87969e19efa40f32" + size 12021 provides (slider color-selector) requires () type regular @@ -336,19 +399,19 @@ (package-get-update-base-entry (quote (sgml (standards-version 1.1 - version "1.05" + version "1.08" author-version "21.1" - date "1998-01-25" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "oa" dump nil description "SGML/Linuxdoc-SGML editing." - filename "sgml-1.05-pkg.tar.gz" - md5sum "ead5d1671dfebf394be76166c786b0c2" - size 26937 + filename "sgml-1.08-pkg.tar.gz" + md5sum "bdadf462489fa1540cc56d1c561aaa54" + size 26964 provides (sgml linuxdoc-sgml) requires (xemacs-base) type regular @@ -358,21 +421,21 @@ (package-get-update-base-entry (quote (psgml (standards-version 1.1 - version "1.14" - author-version "1.01" - date "1999-06-13" - build-date "1999-07-30" + version "1.25" + author-version "1.22" + date "2001-12-20" + build-date "2001-12-22" maintainer "XEmacs Development Team " distribution xemacs priority medium - category "oa" + category "standard" dump nil description "Validated HTML/SGML editing." - filename "psgml-1.14-pkg.tar.gz" - md5sum "44102484c3e5588bab21005cec1a46e1" - size 425227 - provides (psgml sgml) - requires (edit-utils) + filename "psgml-1.25-pkg.tar.gz" + md5sum "76d15ccbd2aa98630dc5c8c43cd8168a" + size 651986 + 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 )) )) @@ -380,19 +443,19 @@ (package-get-update-base-entry (quote (pc (standards-version 1.1 - version "1.16" - author-version "21.1" - date "1999-04-13" - build-date "1999-07-30" + version "1.20" + author-version "21.5b1" + date "2000-02-12" + build-date "2001-05-10" maintainer "XEmacs Development Team " distribution xemacs priority low category "oa" dump nil description "PC style interface emulation." - filename "pc-1.16-pkg.tar.gz" - md5sum "d721157770274b9fee0b16933764c636" - size 16324 + filename "pc-1.20-pkg.tar.gz" + md5sum "ceab8a41e2992aebfa6efe247c6c851c" + size 16703 provides (delbs fusion pc-select pending-del s-region) requires (xemacs-base) type regular @@ -402,19 +465,19 @@ (package-get-update-base-entry (quote (ispell (standards-version 1.1 - version "1.16" + version "1.23" author-version "3.2" - date "1999-07-22" - build-date "1999-07-30" + date "2001-08-02" + build-date "2001-08-07" maintainer "XEmacs Development Team " distribution xemacs priority low - category "oa" + category "standard" dump nil description "Spell-checking with GNU ispell." - filename "ispell-1.16-pkg.tar.gz" - md5sum "a3140984afc8a9d5aa0d0116625b2d07" - size 68157 + filename "ispell-1.23-pkg.tar.gz" + md5sum "d6313eaf9fd77554cd4ee2fc42b898e9" + size 72495 provides (ispell) requires () type regular @@ -422,21 +485,43 @@ )) ;;;@@@ (package-get-update-base-entry (quote +(hm--html-menus + (standards-version 1.1 + version "1.16" + author-version "5.9" + date "2000-10-05" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority low + category "oa" + dump nil + description "HTML editing." + filename "hm--html-menus-1.16-pkg.tar.gz" + md5sum "defc795c8c783b13599927399df7bf18" + size 178704 + provides (adapt hm--date hm--html-configuration hm--html-drag-and-drop hm--html-indentation hm--html-keys hm--html-menu hm--html-mode hm--html-not-standard hm--html html-view tmpl-minor-mode) + requires (dired xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote (frame-icon (standards-version 1.1 - version "1.07" + version "1.09" author-version "21.1" date "1998-07-14" - build-date "1999-07-30" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "oa" dump nil description "Set up mode-specific icons for each frame under XEmacs" - filename "frame-icon-1.07-pkg.tar.gz" - md5sum "320909b8d8caa9754c08963878acbb8b" - size 33434 + filename "frame-icon-1.09-pkg.tar.gz" + md5sum "91922e43447422f175065428367fb00b" + size 33436 provides (forms forms-mode) requires () type regular @@ -446,19 +531,19 @@ (package-get-update-base-entry (quote (forms (standards-version 1.1 - version "1.11" + version "1.13" author-version "2.37" - date "1999-05-11" - build-date "1999-07-30" + date "1999-10-07" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "oa" dump nil description "Forms editing support (obsolete, use Widget instead)." - filename "forms-1.11-pkg.tar.gz" - md5sum "36604485f4a1031d28968fe2c8534a6d" - size 48263 + filename "forms-1.13-pkg.tar.gz" + md5sum "f18fd40a2068b851890ca59d3f1845a7" + size 48380 provides (forms forms-mode) requires () type regular @@ -468,20 +553,20 @@ (package-get-update-base-entry (quote (calendar (standards-version 1.1 - version "1.12" - author-version "21.1" - date "1999-06-24" - build-date "1999-07-30" + version "1.18" + author-version "21.5b3" + date "2001-12-22" + build-date "2001-12-22" maintainer "XEmacs Development Team " distribution xemacs priority low - category "oa" + category "standard" dump nil description "Calendar and diary support." - filename "calendar-1.12-pkg.tar.gz" - md5sum "d6ad2b3a3477d04ca3b669a67eecc8bc" - size 250669 - provides (appt cal-dst cal-french cal-mayan cal-x cal-xemacs calendar diary-ins diary-lib holidays lunar solar) + filename "calendar-1.18-pkg.tar.gz" + md5sum "1fbd29614f2b1b29494dc2ea3241c16a" + size 252308 + provides (appt cal-china cal-coptic cal-dst cal-french cal-hebrew cal-islam cal-iso cal-japanese cal-julian cal-mayan cal-move cal-persia cal-tex cal-x cal-xemacs calendar diary-lib holidays lunar solar) requires (xemacs-base) type regular )) @@ -490,19 +575,19 @@ (package-get-update-base-entry (quote (calc (standards-version 1.1 - version "1.11" + version "1.17" author-version "2.02fX3" - date "1998-07-25" - build-date "1999-07-30" + date "2001-07-30" + build-date "2001-07-31" maintainer "XEmacs Development Team " distribution xemacs priority low - category "oa" + category "standard" dump nil description "Emacs calculator" - filename "calc-1.11-pkg.tar.gz" - md5sum "7a0cce9d75b5c70f02db67f18eb6a97d" - size 1616700 + filename "calc-1.17-pkg.tar.gz" + md5sum "96d9973ad70e2d7b8a8b9682188335ef" + size 1614612 provides (calc) requires () type regular @@ -512,19 +597,19 @@ (package-get-update-base-entry (quote (speedbar (standards-version 1.1 - version "1.13" - author-version "0.6.2x" - date "1999-07-15" - build-date "1999-07-30" - maintainer "XEmacs Development Team " + version "1.21" + author-version "0.13" + date "2001-07-26" + build-date "2001-07-28" + maintainer "Eric M. Ludlam " distribution xemacs priority low - category "oa" - dump nil - description "Provides a seperate frame with convenient references." - filename "speedbar-1.13-pkg.tar.gz" - md5sum "0a2352aa6866888fc8ecdc7ec8d86516" - size 64955 + category "standard" + dump nil + description "Provides a separate frame with convenient references." + filename "speedbar-1.21-pkg.tar.gz" + md5sum "0cc730cc05aebd7ab14ad60d5cd53065" + size 136610 provides (speedbar) requires (xemacs-base) type regular @@ -534,41 +619,85 @@ (package-get-update-base-entry (quote (edit-utils (standards-version 1.1 - version "1.41" - author-version "21.1" - date "1999-07-07" - build-date "1999-07-30" + version "1.73" + author-version "21.5b3" + date "2001-12-13" + build-date "2001-12-13" maintainer "XEmacs Development Team " distribution xemacs priority high - category "oa" + category "standard" dump nil description "Miscellaneous editor extensions, you probably need this." - filename "edit-utils-1.41-pkg.tar.gz" - md5sum "a3d5116811348bde6d56976ce94a991a" - size 579673 + filename "edit-utils-1.73-pkg.tar.gz" + md5sum "508d8b321a81bfc69b2ddc3ae3f49174" + size 697616 provides (abbrevlist 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 man mic-paren paren popper mode-motion+ outl-mouse page-ext blink-paren paren permanent-buffers recent-files redo reportmail rsz-minibuf saveconfsavehist saveplace scroll-in-place tempo toolbar-utils tree-menu uniquify where-was-i-db) - requires (xemacs-base) + requires (xemacs-base fsf-compat) type single )) )) ;;;@@@ (package-get-update-base-entry (quote +(pcomplete + (standards-version 1.1 + version "1.01" + author-version "1.1.6" + date "2000-03-06" + build-date "2001-01-15" + maintainer "John Wiegley " + distribution xemacs + priority medium + category "os" + dump nil + description "Provides programmatic completion." + filename "pcomplete-1.01-pkg.tar.gz" + md5sum "ee42f90e2a4bb878bd5768ba49ed96ba" + size 37289 + provides (pcomplete) + requires (sh-script) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(eshell + (standards-version 1.1 + version "1.01" + author-version "2.4.1" + date "2000-12-20" + build-date "2001-01-15" + maintainer "John Wiegley " + distribution xemacs + priority medium + category "os" + dump nil + description "Command shell implemented entirely in Emacs Lisp" + filename "eshell-1.01-pkg.tar.gz" + md5sum "71d400303baad4de19334b4693b443da" + size 231267 + provides (eshell) + requires (xemacs-base eterm) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote (view-process (standards-version 1.1 - version "1.07" + version "1.11" author-version "2.4" - date "1998-01-24" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "os" dump nil description "A Unix process browsing tool." - filename "view-process-1.07-pkg.tar.gz" - md5sum "47a82bb6569dd9d9bed03a57c9391538" - size 59953 + filename "view-process-1.11-pkg.tar.gz" + md5sum "8273fcfd035804c4b376786629c7b205" + size 60260 provides (view-process-mode) requires (xemacs-base) type regular @@ -576,22 +705,44 @@ )) ;;;@@@ (package-get-update-base-entry (quote +(ps-print-nomule + (standards-version 1.1 + version "1.05" + author-version "3.05x1" + date "2000-10-28" + build-date "2001-01-15" + maintainer "XEmacs Development Team " + distribution xemacs + priority medium + category "os" + dump nil + description "Old, but no-Mule safe ps-print" + filename "ps-print-nomule-1.05-pkg.tar.gz" + md5sum "c071d71ac89d9a540c0799fb33f40c3a" + size 52879 + provides (ps-print) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote (os-utils - (standards-version 1.0 - version "1.15" - author-version "21.0" - date "1999-03-19" - build-date "1999-05-13" + (standards-version 1.1 + version "1.25" + author-version "21.1" + date "2000-11-09" + build-date "2001-01-15" maintainer "XEmacs Development Team " - distribution stable + distribution xemacs priority medium category "os" dump nil description "Miscellaneous O/S utilities." - filename "os-utils-1.15-pkg.tar.gz" - md5sum "92a3d72b0df1fb79fef2aee88a4d4f50" - size 228261 - provides (archive-mode background crypt crypt++ inf-lisp jka-compr lpr mchat ps-print tar-mode telnet terminal uncompress) + filename "os-utils-1.25-pkg.tar.gz" + md5sum "e71b109e0fb81032fa664768c98b6bcc" + size 202651 + provides (archive-mode background crypt crypt++ inf-lisp jka-compr lpr mchat tar-mode telnet terminal uncompress) requires (xemacs-base) type single )) @@ -600,21 +751,21 @@ (package-get-update-base-entry (quote (ilisp (standards-version 1.1 - version "1.08" - author-version "5.8" - date "1998-01-24" - build-date "1999-07-30" - maintainer "XEmacs Development Team " + version "1.19" + author-version "5.11.1" + date "2001-07-05" + build-date "2001-07-05" + maintainer "ilisp Maintainers " distribution xemacs priority low - category "os" + category "standard" dump nil description "Front-end for Inferior Lisp." - filename "ilisp-1.08-pkg.tar.gz" - md5sum "12041533cb292d9d58a55278c8882c70" - size 262171 + filename "ilisp-1.19-pkg.tar.gz" + md5sum "c4379cdfd02c0d578e8877191d3658ff" + size 335570 provides (ilisp completer) - requires (xemacs-base) + requires (xemacs-base mail-lib fsf-compat eterm) type regular )) )) @@ -622,19 +773,19 @@ (package-get-update-base-entry (quote (igrep (standards-version 1.1 - version "1.06" + version "1.08" author-version "2.83" date "1998-08-11" - build-date "1999-07-30" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "os" dump nil description "Enhanced front-end for Grep." - filename "igrep-1.06-pkg.tar.gz" - md5sum "9a61dc2c81e909993e14254f30df3ee7" - size 14927 + filename "igrep-1.08-pkg.tar.gz" + md5sum "bc3e4d7a897edb164f93ef49eeff87d3" + size 15184 provides (igrep) requires (dired xemacs-base) type regular @@ -644,19 +795,19 @@ (package-get-update-base-entry (quote (eterm (standards-version 1.1 - version "1.09" + version "1.13" author-version "21.1" - date "1999-07-07" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority medium category "os" dump nil description "Terminal emulation." - filename "eterm-1.09-pkg.tar.gz" - md5sum "9cdab77e28dc87a79db4c503c961b37a" - size 109066 + filename "eterm-1.13-pkg.tar.gz" + md5sum "ebd64834d12a2a3fc04bbb6f4dd836fa" + size 109184 provides (eterm) requires (xemacs-base) type regular @@ -666,19 +817,19 @@ (package-get-update-base-entry (quote (viper (standards-version 1.1 - version "1.17" - author-version "3.061" - date "1999-05-27" - build-date "1999-07-30" + version "1.29" + author-version "3.09" + date "2001-10-13" + build-date "2001-11-26" maintainer "Michael Kifer " distribution xemacs priority low - category "wp" + category "standard" dump nil description "VI emulation support." - filename "viper-1.17-pkg.tar.gz" - md5sum "89285f1297d73552d43602cf1288aefd" - size 317943 + filename "viper-1.29-pkg.tar.gz" + md5sum "aa4126c14967ab99fe5584ff8d1d7365" + size 327443 provides (viper) requires (xemacs-base) type regular @@ -688,19 +839,19 @@ (package-get-update-base-entry (quote (tpu (standards-version 1.1 - version "1.09" + version "1.12" author-version "4.2X" - date "1998-07-23" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "Kevin Oberman " distribution xemacs priority medium category "wp" dump nil description "DEC EDIT/TPU support." - filename "tpu-1.09-pkg.tar.gz" - md5sum "9a467bd306599d97f0f5be0266850d79" - size 58814 + filename "tpu-1.12-pkg.tar.gz" + md5sum "8ee6ca98afc9c18a1df013065c430f5e" + size 58850 provides (tpu) requires () type regular @@ -710,19 +861,19 @@ (package-get-update-base-entry (quote (textools (standards-version 1.1 - version "1.09" + version "1.12" author-version "21.1" - date "1998-04-29" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority medium category "wp" dump nil description "Miscellaneous TeX support." - filename "textools-1.09-pkg.tar.gz" - md5sum "d0e16392dfdcd9ec8eab4ebc8da9948e" - size 79187 + filename "textools-1.12-pkg.tar.gz" + md5sum "2ce1dc6eb29773d2ab6ce2e04463e54f" + size 79212 provides (bib-mode bibtex refer-to-bibtex) requires (xemacs-base) type single @@ -732,19 +883,19 @@ (package-get-update-base-entry (quote (texinfo (standards-version 1.1 - version "1.15" + version "1.20" author-version "21.1" - date "1998-07-20" - build-date "1999-07-30" + date "2000-03-18" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority high category "wp" dump nil description "XEmacs TeXinfo support." - filename "texinfo-1.15-pkg.tar.gz" - md5sum "3c0ba97404953b4383d06f0a88a3a6cd" - size 127873 + filename "texinfo-1.20-pkg.tar.gz" + md5sum "25a3261b1700f4b83d229dc1dcf633ae" + size 133067 provides (makeinfo tex-mode texinfmt texinfo texnfo-tex texnfo-upd) requires (xemacs-base) type regular @@ -754,19 +905,19 @@ (package-get-update-base-entry (quote (reftex (standards-version 1.1 - version "1.14" - author-version "3.43" - date "1999-04-06" - build-date "1999-07-30" - maintainer "Carsten Dominik " + version "1.23" + author-version "4.16" + date "artin@xema" + build-date "2001-06-14" + maintainer "Carsten Dominik " distribution xemacs priority medium category "wp" dump nil description "Emacs support for LaTeX cross-references, citations.." - filename "reftex-1.14-pkg.tar.gz" - md5sum "e56e631f54e895ed95377be6e882bed5" - size 215968 + filename "reftex-1.23-pkg.tar.gz" + md5sum "418d13bcf80e929e27be7c68bf718e3c" + size 330411 provides (reftex) requires (fsf-compat xemacs-base) type regular @@ -776,19 +927,19 @@ (package-get-update-base-entry (quote (edt (standards-version 1.1 - version "1.08" - author-version "21.1" - date "1998-04-07" - build-date "1999-07-30" + version "1.12" + author-version "21.5b1" + date "2001-07-14" + build-date "2001-07-15" maintainer "XEmacs Development Team " distribution xemacs priority low - category "wp" + category "standard" dump nil description "DEC EDIT/EDT emulation." - filename "edt-1.08-pkg.tar.gz" - md5sum "bade43d3b5c90a4b9c969a1f85ef606e" - size 46128 + filename "edt-1.12-pkg.tar.gz" + md5sum "0d7649d0f65d9de732918d756f5cf48b" + size 62441 provides (edt) requires (xemacs-base) type regular @@ -798,19 +949,19 @@ (package-get-update-base-entry (quote (crisp (standards-version 1.1 - version "1.10" + version "1.12" author-version "1.34" date "1998-08-18" - build-date "1999-07-30" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "wp" dump nil description "Crisp/Brief emulation." - filename "crisp-1.10-pkg.tar.gz" - md5sum "82fcef8e2a2c6e0d40c68f6142c6a780" - size 10065 + filename "crisp-1.12-pkg.tar.gz" + md5sum "30308c6e5fb14f621d53046894c8c180" + size 10075 provides (crisp scroll-lock) requires () type regular @@ -820,19 +971,19 @@ (package-get-update-base-entry (quote (auctex (standards-version 1.1 - version "1.17" - author-version "9.7p" - date "1998-09-30" - build-date "1999-07-30" + version "1.28" + author-version "10.0g" + date "2001-12-13" + build-date "2001-12-13" maintainer "XEmacs Development Team " distribution xemacs priority medium - category "wp" + category "standard" dump nil description "Basic TeX/LaTeX support." - filename "auctex-1.17-pkg.tar.gz" - md5sum "be1dc85bba341dba02ec13ce06bf9609" - size 365053 + filename "auctex-1.28-pkg.tar.gz" + md5sum "a159936d264c746b33776ca9ec078ee8" + size 385145 provides (auc-old bib-cite font-latex latex multi-prompt tex-buf tex-info tex-jp tex-site tex) requires (xemacs-base) type regular @@ -842,21 +993,21 @@ (package-get-update-base-entry (quote (vhdl (standards-version 1.1 - version "1.08" - author-version "2.74" - date "1998-01-24" - build-date "1999-07-30" + version "1.13" + author-version "3.31.20" + date "2001-02-16" + build-date "2001-02-18" maintainer "XEmacs Development Team " distribution xemacs priority low category "prog" dump nil description "Support for VHDL." - filename "vhdl-1.08-pkg.tar.gz" - md5sum "8d3422f8b6ba5584dbf89d3ef6759594" - size 65948 + filename "vhdl-1.13-pkg.tar.gz" + md5sum "76ef5bea9a7f1c5fb899306089efd0d8" + size 272552 provides (vhdl-mode) - requires () + requires (xemacs-base edit-utils c-support speedbar ps-print-nomule os-utils) type regular )) )) @@ -864,21 +1015,21 @@ (package-get-update-base-entry (quote (vc (standards-version 1.1 - version "1.19" - author-version "21.1" - date "1999-06-07" - build-date "1999-07-30" + version "1.30" + author-version "21.5b3" + date "2001-12-17" + build-date "2001-12-17" maintainer "XEmacs Development Team " distribution xemacs priority low - category "prog" + category "standard" dump nil description "Version Control for Free systems." - filename "vc-1.19-pkg.tar.gz" - md5sum "2794428c1167de3f1db8e9928041b065" - size 84689 + filename "vc-1.30-pkg.tar.gz" + md5sum "f62e070f0f5e04c8b9ee4ec7badaa787" + size 91668 provides (vc) - requires (dired xemacs-base) + requires (dired xemacs-base vc mail-lib ediff) type regular )) )) @@ -886,19 +1037,19 @@ (package-get-update-base-entry (quote (vc-cc (standards-version 1.1 - version "1.12" - author-version "21.1" - date "1998-12-09" - build-date "1999-07-30" + version "1.18" + author-version "21.5b3" + date "2001-12-10" + build-date "2001-12-10" maintainer "XEmacs Development Team " distribution xemacs priority low - category "prog" + category "standard" dump nil description "Version Control for ClearCase (UnFree) systems." - filename "vc-cc-1.12-pkg.tar.gz" - md5sum "db978159bf5d1d194782b79961d003d1" - size 96520 + filename "vc-cc-1.18-pkg.tar.gz" + md5sum "6885bb091d1fd108a7ec4353a96016ec" + size 94520 provides (vc) requires (dired xemacs-base) type regular @@ -908,19 +1059,19 @@ (package-get-update-base-entry (quote (sh-script (standards-version 1.1 - version "1.10" + version "1.13" author-version "2.0e" - date "1999-05-31" - build-date "1999-07-30" + date "2000-07-11" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "prog" dump nil description "Support for editing shell scripts." - filename "sh-script-1.10-pkg.tar.gz" - md5sum "003e39a5e97acce6f9b751a1fec5e398" - size 33987 + filename "sh-script-1.13-pkg.tar.gz" + md5sum "d9fa57da5e44091bf31282886de25687" + size 35304 provides (sh-script executable) requires (xemacs-base) type regular @@ -930,19 +1081,19 @@ (package-get-update-base-entry (quote (scheme (standards-version 1.1 - version "1.09" + version "1.11" author-version "21.1" date "1999-06-15" - build-date "1999-07-30" + build-date "2001-01-15" maintainer "Karl M. Hegbloom " distribution xemacs priority low category "prog" dump nil description "Front-end support for Inferior Scheme." - filename "scheme-1.09-pkg.tar.gz" - md5sum "a4542795594e46af3b803d44ed3d7c8d" - size 36505 + filename "scheme-1.11-pkg.tar.gz" + md5sum "8994fb43b37a55d4b9ad763af67a45ba" + size 36497 provides (scheme xscheme cmuscheme cmuscheme48) requires (xemacs-base) type regular @@ -952,21 +1103,65 @@ (package-get-update-base-entry (quote (prog-modes (standards-version 1.1 - version "1.21" - author-version "21.1" - date "1999-07-15" - build-date "1999-07-30" + version "1.48" + author-version "21.5b3" + date "2001-12-27" + build-date "2001-12-27" maintainer "XEmacs Development Team " distribution xemacs priority medium - category "prog" + category "standard" dump nil description "Support for various programming languages." - filename "prog-modes-1.21-pkg.tar.gz" - md5sum "e83aff3ead4ab018d07b9b22e9ba301d" - size 601321 - provides (autoconf-mode cperl-mode eiffel3 f90 fortran ksh-mode m4-mode makefile perl-mode postscript python-mode rexx-mode simula-mode tcl teco verilog-mod) - requires (mail-lib xemacs-devel xemacs-base) + filename "prog-modes-1.48-pkg.tar.gz" + md5sum "4ece71bc7398aaa408659f422f72c2d0" + size 921783 + provides (autoconf-mode awk-mode cperl-mode cvs diff-mode eiffel3 f90 fortran ksh-mode m4-mode makefile mode-compile mode-compile-kill c-mode p4 perl-mode php-mode postscript pydoc python-mode rexx-mode simula-mode sql tcl teco verilog-mode) + requires (mail-lib xemacs-devel xemacs-base cc-mode ps-print-nomule fsf-compat edit-utils ediff emerge efs vc speedbar dired) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(jde + (standards-version 1.1 + version "1.31" + author-version "2.2.8" + date "2001-10-14" + build-date "2001-11-26" + maintainer "Paul Kinnucan " + distribution xemacs + priority medium + category "standard" + dump nil + description "Java language and development support." + filename "jde-1.31-pkg.tar.gz" + md5sum "1013e43ea81d2cc354da2bb19f44b205" + size 1620042 + provides (jde) + requires (jde cc-mode semantic debug speedbar edit-utils eterm mail-lib xemacs-base xemacs-devel eieio elib sh-script) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(idlwave + (standards-version 1.1 + version "1.23" + author-version "4.7" + date "2000-12-08" + build-date "2001-01-15" + maintainer "Carsten Dominik " + distribution xemacs + priority medium + category "prog" + dump nil + description "Editing and Shell mode for the Interactive Data Language" + filename "idlwave-1.23-pkg.tar.gz" + md5sum "71163a118316b2da6cff6371455dad4c" + size 345555 + provides (idlwave) + requires (fsf-compat xemacs-base) type regular )) )) @@ -974,19 +1169,19 @@ (package-get-update-base-entry (quote (emerge (standards-version 1.1 - version "1.06" + version "1.09" author-version "21.1" - date "1998-04-07" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "prog" dump nil description "Another interface over GNU patch." - filename "emerge-1.06-pkg.tar.gz" - md5sum "1f4c3003975e8c540742c37cd398dd4b" - size 61012 + filename "emerge-1.09-pkg.tar.gz" + md5sum "231c8120d60da2c9ddd856510da2491c" + size 61043 provides (emerge) requires () type regular @@ -994,21 +1189,43 @@ )) ;;;@@@ (package-get-update-base-entry (quote +(ediff + (standards-version 1.1 + version "1.33" + author-version "2.75" + date "2001-09-27" + build-date "2001-09-29" + maintainer "Michael Kifer " + distribution xemacs + priority medium + category "standard" + dump nil + description "Interface over GNU patch." + filename "ediff-1.33-pkg.tar.gz" + md5sum "8a5b50752086adb44f7d2ec99e10d2eb" + size 295809 + provides (ediff) + requires (pcl-cvs elib dired xemacs-base edebug prog-modes) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote (debug (standards-version 1.1 - version "1.10" - author-version "21.1" - date "1999-05-12" - build-date "1999-07-30" + version "1.14" + author-version "21.2b42" + date "2000-11-07" + build-date "2001-01-27" maintainer "XEmacs Development Team " distribution xemacs priority low category "prog" dump nil description "GUD, gdb, dbx debugging support." - filename "debug-1.10-pkg.tar.gz" - md5sum "81fab3bf4b08036d122f1e6abb7ffc74" - size 103093 + filename "debug-1.14-pkg.tar.gz" + md5sum "20312f80900f1c99f3eeecddf75026ca" + size 103296 provides (dbx gdb-highlight gdb gdbsrc gud history) requires (xemacs-base) type regular @@ -1018,19 +1235,19 @@ (package-get-update-base-entry (quote (c-support (standards-version 1.1 - version "1.13" + version "1.16" author-version "21.1" - date "1999-03-02" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "prog" dump nil description "Basic single-file add-ons for editing C code." - filename "c-support-1.13-pkg.tar.gz" - md5sum "d4568a0fd8c0ea31917ad37e190e443b" - size 69931 + filename "c-support-1.16-pkg.tar.gz" + md5sum "047accf51457a041bf920c9563de1bf6" + size 70393 provides (c-comment-edit cmacexp ctypes hideif hideshow) requires (cc-mode xemacs-base) type regular @@ -1040,19 +1257,19 @@ (package-get-update-base-entry (quote (ada (standards-version 1.1 - version "1.07" + version "1.10" author-version "2.27" - date "1998-01-24" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "prog" dump nil description "Ada language support." - filename "ada-1.07-pkg.tar.gz" - md5sum "f12fe7c6ac8ed3bcfeb761ffd9e60661" - size 54369 + filename "ada-1.10-pkg.tar.gz" + md5sum "6ba6ca52a345831e8fafa241119db39f" + size 54387 provides (ada-mode ada-stmt) requires () type regular @@ -1062,21 +1279,21 @@ (package-get-update-base-entry (quote (pcl-cvs (standards-version 1.1 - version "1.40" - author-version "R-2_0-Beta_2" - date "1999-06-16" - build-date "1999-07-30" + version "1.56" + author-version "R-2_9_9" + date "2001-12-22" + build-date "2001-12-22" maintainer "XEmacs Development Team " distribution xemacs priority low - category "prog" + category "standard" dump nil description "CVS frontend." - filename "pcl-cvs-1.40-pkg.tar.gz" - md5sum "2ad22b28bb14a7bade0b2fad0723d35f" - size 163639 - provides (pcl-cvs generic-sc) - requires (xemacs-base elib dired) + filename "pcl-cvs-1.56-pkg.tar.gz" + md5sum "97d7fdac2805e1130a12615ff7748570" + size 160967 + 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 )) )) @@ -1084,21 +1301,43 @@ (package-get-update-base-entry (quote (cc-mode (standards-version 1.1 - version "1.16" - author-version "5.25" - date "1998-12-30" - build-date "1999-07-30" - maintainer "Barry Warsaw " + version "1.26" + author-version "5.28" + date "2001-08-13" + build-date "2001-08-14" + maintainer "Martin Stjernholm " distribution xemacs priority medium - category "prog" + category "standard" dump nil description "C, C++ and Java language support." - filename "cc-mode-1.16-pkg.tar.gz" - md5sum "9f8c53d9abca09982e739344c733c7c3" - size 212664 + filename "cc-mode-1.26-pkg.tar.gz" + md5sum "206a11ebe3e1e4639e9e3cbf681d9096" + size 262806 provides (cc-mode) - requires (xemacs-base) + requires (xemacs-base mail-lib) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(semantic + (standards-version 1.1 + version "1.10" + author-version "1.4beta8" + date "2001-08-16" + build-date "2001-08-16" + maintainer "Eric M. Ludlam " + distribution xemacs + priority low + category "standard" + dump nil + description "Semantic bovinator (Yacc/Lex for XEmacs). Includes Senator." + filename "semantic-1.10-pkg.tar.gz" + md5sum "a3806bbbd6d4cd1ebb11ed969ccc37ec" + size 281656 + provides (semantic senator) + requires (eieio xemacs-base xemacs-devel edit-utils speedbar texinfo) type regular )) )) @@ -1106,19 +1345,19 @@ (package-get-update-base-entry (quote (misc-games (standards-version 1.1 - version "1.12" + version "1.15" author-version "21.1" - date "1999-03-05" - build-date "1999-07-30" + date "2000-11-18" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "games" dump nil description "Other amusements and diversions." - filename "misc-games-1.12-pkg.tar.gz" - md5sum "74c3421bdfdfe77989741389f0e1330a" - size 166163 + filename "misc-games-1.15-pkg.tar.gz" + md5sum "a77db688d2d276aaca5840a7c16615f0" + size 166336 provides (decipher gomoku hanoi life morse rot13) requires (xemacs-base) type single @@ -1128,19 +1367,19 @@ (package-get-update-base-entry (quote (mine (standards-version 1.1 - version "1.11" + version "1.14" author-version "1.9" - date "1998-05-09" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "games" dump nil description "Minehunt Game." - filename "mine-1.11-pkg.tar.gz" - md5sum "fad5f9d385ac22c2cf446db18e57300e" - size 66703 + filename "mine-1.14-pkg.tar.gz" + md5sum "ebe471b68642906786db139d402002c7" + size 66727 provides (xmine) requires (xemacs-base) type regular @@ -1150,19 +1389,19 @@ (package-get-update-base-entry (quote (games (standards-version 1.1 - version "1.10" + version "1.13" author-version "1.04" - date "1998-06-04" - build-date "1999-07-30" + date "2000-03-23" + build-date "2001-01-15" maintainer "Glynn Clements " distribution xemacs priority low category "games" dump nil description "Tetris, Sokoban, and Snake." - filename "games-1.10-pkg.tar.gz" - md5sum "e43de212a7ceb56cbaad7e40eb775dd2" - size 32184 + filename "games-1.13-pkg.tar.gz" + md5sum "4138cc59fd6a9316adbb14e7468af593" + size 32438 provides (gamegrid snake tetris sokoban) requires (xemacs-base) type regular @@ -1172,19 +1411,19 @@ (package-get-update-base-entry (quote (cookie (standards-version 1.1 - version "1.11" + version "1.13" author-version "21.1" date "1998-04-07" - build-date "1999-07-30" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "games" dump nil description "Spook and Yow (Zippy quotes)." - filename "cookie-1.11-pkg.tar.gz" - md5sum "291ea47a1e71de661de365aea0addb60" - size 34221 + filename "cookie-1.13-pkg.tar.gz" + md5sum "9aeaa055b157c6fa50991758851ec16d" + size 34192 provides (cookie1 yow) requires (xemacs-base) type regular @@ -1192,23 +1431,45 @@ )) ;;;@@@ (package-get-update-base-entry (quote +(eicq + (standards-version 1.1 + version "1.05" + author-version "0.2.14" + date "2001-06-06" + build-date "2001-07-02" + maintainer "Steve Youngs " + distribution xemacs + priority low + category "standard" + dump nil + description "ICQ Client developed and tested on Linux x86; only supported on that platform" + filename "eicq-1.05-pkg.tar.gz" + md5sum "09c41ae8e50c418bc73029a05c0694f3" + size 299679 + provides (eicq eicq-toolbar eicq-report) + requires (xemacs-base mail-lib eicq gnus fsf-compat cookie) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote (bbdb (standards-version 1.1 - version "1.08" - author-version "2.00.06" - date "1999-01-24" - build-date "1999-07-30" - maintainer "XEmacs Development Team " + version "1.16" + author-version "2.32" + date "2001-08-29" + build-date "2001-09-01" + maintainer "Ronan Waide " distribution xemacs priority medium - category "comm" + category "standard" dump nil description "The Big Brother Data Base" - filename "bbdb-1.08-pkg.tar.gz" - md5sum "c95ed737fab5b59e88d9acc33703697b" - size 282061 + filename "bbdb-1.16-pkg.tar.gz" + md5sum "076538ab2bf64b6bfbe0ce02edf51eac" + size 338066 provides (bbdb) - requires (bbdb edit-utils gnus mh-e rmail supercite vm tm apel mail-lib xemacs-base) + requires (bbdb edit-utils gnus mh-e rmail supercite vm tm apel mail-lib xemacs-base w3) type regular )) )) @@ -1216,19 +1477,19 @@ (package-get-update-base-entry (quote (zenirc (standards-version 1.1 - version "1.06" + version "1.11" author-version "2.112" - date "1998-08-15" - build-date "1999-07-30" + date "2001-06-16" + build-date "2001-07-28" maintainer "XEmacs Development Team " distribution xemacs priority medium - category "comm" + category "standard" dump nil description "ZENIRC IRC Client." - filename "zenirc-1.06-pkg.tar.gz" - md5sum "7b701d195193ad6b0bf8e2067e17e372" - size 276012 + filename "zenirc-1.11-pkg.tar.gz" + md5sum "ef56684bdf71cae7e15f58c3819a7ee9" + size 276478 provides (zenirc) requires (zenirc) type regular @@ -1238,21 +1499,21 @@ (package-get-update-base-entry (quote (mew (standards-version 1.1 - version "1.08" - author-version "1.93b38x1" - date "1998-12-09" - build-date "1999-07-30" + version "1.14" + author-version "1.94.2" + date "2001-02-05" + build-date "2001-02-05" maintainer "XEmacs Development Team " distribution xemacs priority low category "comm" dump nil description "Messaging in an Emacs World." - filename "mew-1.08-pkg.tar.gz" - md5sum "47ff3e8966c6a198cbae3a413139f4b7" - size 518502 + filename "mew-1.14-pkg.tar.gz" + md5sum "c46627866de19034116a0c739be8e1eb" + size 655083 provides (mew) - requires (mew) + requires (mew w3 efs mail-lib xemacs-base fsf-compat) type regular )) )) @@ -1260,21 +1521,21 @@ (package-get-update-base-entry (quote (tm (standards-version 1.1 - version "1.20" - author-version "21.1" - date "1999-02-06" - build-date "1999-07-30" + version "1.29" + author-version "21.5b2" + date "2001-07-31" + build-date "2001-07-31" maintainer "XEmacs Development Team " distribution xemacs priority low - category "comm" + category "standard" dump nil - description "Emacs MIME support." - filename "tm-1.20-pkg.tar.gz" - md5sum "d602235f7efdcdd37e7758101e3c162d" - size 329547 + description "Emacs MIME support. Not needed for gnus >= 5.8.0" + filename "tm-1.29-pkg.tar.gz" + md5sum "ae9c106bafbfb471ceaaaf16b7acb8ac" + size 332928 provides (tm tm-edit tm-view mime-setup) - requires (gnus mh-e rmail vm mailcrypt mail-lib apel xemacs-base) + requires (gnus mh-e rmail vm mailcrypt mail-lib apel xemacs-base fsf-compat) type regular )) )) @@ -1282,21 +1543,21 @@ (package-get-update-base-entry (quote (gnus (standards-version 1.1 - version "1.42" - author-version "5.6.45x1" - date "1999-03-12" - build-date "1999-07-30" + version "1.57" + author-version "5.8.8" + date "2001-08-29" + build-date "2001-09-01" maintainer "XEmacs Development Team " distribution xemacs priority medium - category "comm" + category "standard" dump nil description "The Gnus Newsreader and Mailreader." - filename "gnus-1.42-pkg.tar.gz" - md5sum "f076c9ae4ca6ab468454d8036a178501" - size 1872714 + filename "gnus-1.57-pkg.tar.gz" + md5sum "e0d0ffe9792aad3c28af0077b5809c07" + size 2350636 provides (gnus message) - requires (gnus tm apel w3 mh-e mailcrypt rmail mail-lib xemacs-base) + requires (gnus w3 mh-e mailcrypt rmail eterm mail-lib xemacs-base fsf-compat) type regular )) )) @@ -1304,19 +1565,19 @@ (package-get-update-base-entry (quote (rmail (standards-version 1.1 - version "1.10" + version "1.12" author-version "21.1" date "1998-06-28" - build-date "1999-07-30" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "comm" dump nil description "An obsolete Emacs mailer." - filename "rmail-1.10-pkg.tar.gz" - md5sum "4a8b8e1d7b68957ab357d8f86f232fac" - size 96442 + filename "rmail-1.12-pkg.tar.gz" + md5sum "ef29f27bfb5b7af89ae57be18b94da6f" + size 96401 provides (rmail rmailsum) requires (tm apel mail-lib xemacs-base) type regular @@ -1326,21 +1587,21 @@ (package-get-update-base-entry (quote (mailcrypt (standards-version 1.1 - version "2.01" - author-version "3.5.3" - date "1999-03-12" - build-date "1999-07-30" + version "2.09" + author-version "3.5.6" + date "2001-07-01" + build-date "2001-07-02" maintainer "XEmacs Development Team " distribution xemacs priority low - category "comm" + category "standard" dump nil description "Support for messaging encryption with PGP." - filename "mailcrypt-2.01-pkg.tar.gz" - md5sum "1225a54298f26e6a06749dfb0665b658" - size 134061 + filename "mailcrypt-2.09-pkg.tar.gz" + md5sum "34b06d81b131c89d83b1c9387e23975a" + size 141199 provides (mailcrypt) - requires (mail-lib fsf-compat xemacs-base) + requires (mail-lib fsf-compat xemacs-base cookie gnus mh-e rmail vm) type regular )) )) @@ -1348,19 +1609,19 @@ (package-get-update-base-entry (quote (supercite (standards-version 1.1 - version "1.13" + version "1.18" author-version "3.55x3" - date "1999-04-06" - build-date "1999-07-30" + date "2001-08-06" + build-date "2001-08-15" maintainer "XEmacs Development Team " distribution xemacs priority low - category "comm" + category "standard" dump nil description "An Emacs citation tool for News & Mail messages." - filename "supercite-1.13-pkg.tar.gz" - md5sum "7f599f29f111dca3e62c3baeec2b2d91" - size 99547 + filename "supercite-1.18-pkg.tar.gz" + md5sum "e19c81599495ff2a010e81f4b175b9fd" + size 100848 provides (supercite) requires (mail-lib xemacs-base) type regular @@ -1370,19 +1631,19 @@ (package-get-update-base-entry (quote (mh-e (standards-version 1.1 - version "1.10" + version "1.13" author-version "21.1" - date "1998-07-12" - build-date "1999-07-30" + date "2000-05-08" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "comm" dump nil description "Front end support for MH." - filename "mh-e-1.10-pkg.tar.gz" - md5sum "e04e85a9ff62282a18a06872c840e22f" - size 176436 + filename "mh-e-1.13-pkg.tar.gz" + md5sum "213d2484432c141ba2017d437922076b" + size 176657 provides (mh-e) requires (mail-lib xemacs-base) type regular @@ -1392,19 +1653,19 @@ (package-get-update-base-entry (quote (gnats (standards-version 1.1 - version "1.09" + version "1.12" author-version "3.101" - date "1998-08-01" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority high category "comm" dump nil description "XEmacs bug reports." - filename "gnats-1.09-pkg.tar.gz" - md5sum "0893c6cad7179a2be79744bdfc0c6932" - size 189250 + filename "gnats-1.12-pkg.tar.gz" + md5sum "8487d89459c7be544547558d39f42945" + size 189342 provides (gnats gnats-admin send-pr) requires (mail-lib xemacs-base) type regular @@ -1414,19 +1675,19 @@ (package-get-update-base-entry (quote (footnote (standards-version 1.1 - version "1.11" + version "1.13" author-version "0.18x" - date "1999-03-11" - build-date "1999-07-30" + date "2000-01-22" + build-date "2001-01-15" maintainer "SL Baur " distribution xemacs priority low category "comm" dump nil description "Footnoting in mail message editing modes." - filename "footnote-1.11-pkg.tar.gz" - md5sum "7aa931c602913134e5e716de752439db" - size 18364 + filename "footnote-1.13-pkg.tar.gz" + md5sum "23aa290969664f5edb96c79ae322759b" + size 21084 provides (footnote) requires (mail-lib xemacs-base) type regular @@ -1436,20 +1697,20 @@ (package-get-update-base-entry (quote (eudc (standards-version 1.1 - version "1.29" - author-version "1.29" - date "1999-07-21" - build-date "1999-07-30" + version "1.34" + author-version "1.32" + date "2001-07-28" + build-date "2001-08-20" maintainer "Oscar Figueiredo " distribution xemacs priority low - category "comm" + category "standard" dump nil description "Emacs Unified Directory Client (LDAP, PH)." - filename "eudc-1.29-pkg.tar.gz" - md5sum "23f490bd6771d873c1869fa1ac56a3a8" - size 71390 - provides (eudc eudc-ldap eudc-ph eudc-bbdb) + filename "eudc-1.34-pkg.tar.gz" + md5sum "31aaecdc3bbf2660999ad8b668eb6d9d" + size 78955 + provides (eudc eudc-vars eudc-hotlist eudc-export eudc-bob eudcb-ldap eudcb-ph eudcb-bbdb) requires (fsf-compat xemacs-base bbdb) type regular )) @@ -1458,19 +1719,19 @@ (package-get-update-base-entry (quote (net-utils (standards-version 1.1 - version "1.12" - author-version "21.1" - date "1998-07-01" - build-date "1999-07-30" + version "1.23" + author-version "21.5b3" + date "2001-09-28" + build-date "2001-09-29" maintainer "XEmacs Development Team " distribution xemacs priority low - category "comm" + category "standard" dump nil description "Miscellaneous Networking Utilities." - filename "net-utils-1.12-pkg.tar.gz" - md5sum "49b7e1d0f2f97519eca07d3562f6a00d" - size 107202 + filename "net-utils-1.23-pkg.tar.gz" + md5sum "3677407752d20aa6f72be5d497eae0c8" + size 119855 provides (ilisp-browse-cltl2 emacsbug feedmail metamail net-utils rcompile shadowfile webjump webster-www) requires (w3 efs mail-lib xemacs-base) type single @@ -1480,19 +1741,19 @@ (package-get-update-base-entry (quote (w3 (standards-version 1.1 - version "1.14" - author-version "4.0pre39x1" - date "1999-03-02" - build-date "1999-07-30" + version "1.20" + author-version "4.0pre46" + date "2001-06-18" + build-date "2001-07-03" maintainer "XEmacs Development Team " distribution xemacs priority high - category "comm" + category "standard" dump nil description "A Web browser." - filename "w3-1.14-pkg.tar.gz" - md5sum "693692928758ea53e9fa76527893a483" - size 680740 + filename "w3-1.20-pkg.tar.gz" + md5sum "d2887a223788fec1deb43ba7489cf603" + size 689279 provides (w3 url) requires (w3 mail-lib xemacs-base) type regular @@ -1502,19 +1763,19 @@ (package-get-update-base-entry (quote (vm (standards-version 1.1 - version "1.21" - author-version "6.72" - date "1999-05-13" - build-date "1999-07-30" - maintainer "XEmacs Development Team " + version "7.00" + author-version "7.00" + date "2001-12-09" + build-date "2001-12-09" + maintainer "Kyle Jones " distribution xemacs priority medium - category "comm" + category "standard" dump nil description "An Emacs mailer." - filename "vm-1.21-pkg.tar.gz" - md5sum "1110173b0759dbed61e9b1690d32d984" - size 619207 + filename "vm-7.00-pkg.tar.gz" + md5sum "5cda132d6599eab758ff8623f93bad40" + size 699259 provides (vm) requires (mail-lib xemacs-base) type regular @@ -1524,19 +1785,19 @@ (package-get-update-base-entry (quote (sounds-wav (standards-version 1.1 - version "1.08" + version "1.10" author-version "21.1" - date "1999-02-02" - build-date "1999-07-30" + date "2000-05-23" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority high category "libs" dump nil description "XEmacs Microsoft sound files." - filename "sounds-wav-1.08-pkg.tar.gz" - md5sum "8d34b4f2a6cb90f3d86c94d018cc3912" - size 149046 + filename "sounds-wav-1.10-pkg.tar.gz" + md5sum "89dff9f3b8e1aaaa19f000035e3aa199" + size 149162 provides () requires () type regular @@ -1546,19 +1807,19 @@ (package-get-update-base-entry (quote (sounds-au (standards-version 1.1 - version "1.08" + version "1.10" author-version "21.1" - date "1999-02-02" - build-date "1999-07-30" + date "2000-05-23" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority high category "libs" dump nil description "XEmacs Sun sound files." - filename "sounds-au-1.08-pkg.tar.gz" - md5sum "8344fa28ad13a14e67accf72168ac91a" - size 126196 + filename "sounds-au-1.10-pkg.tar.gz" + md5sum "256e09c0570a19ae545350681bacaf3e" + size 126306 provides () requires () type regular @@ -1568,21 +1829,21 @@ (package-get-update-base-entry (quote (xemacs-devel (standards-version 1.1 - version "1.23" - author-version "21.1" - date "1999-05-28" - build-date "1999-07-30" + version "1.39" + author-version "21.5b3" + date "2001-12-25" + build-date "2001-12-27" maintainer "XEmacs Development Team " distribution xemacs priority medium - category "libs" + category "standard" dump nil description "Emacs Lisp developer support." - filename "xemacs-devel-1.23-pkg.tar.gz" - md5sum "f0f629aed67569b793347ca9713fc836" - size 83642 + filename "xemacs-devel-1.39-pkg.tar.gz" + md5sum "cb18e5920d5a132bec6783ba01a2c6c0" + size 156984 provides (docref eldoc elp find-func hide-copyleft ielm regexp-opt trace) - requires (xemacs-base) + requires (xemacs-base ispell mail-lib) type single )) )) @@ -1590,19 +1851,19 @@ (package-get-update-base-entry (quote (tooltalk (standards-version 1.1 - version "1.10" + version "1.13" author-version "21.1" - date "1998-07-25" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "libs" dump nil description "Support for building with Tooltalk." - filename "tooltalk-1.10-pkg.tar.gz" - md5sum "6e73fe7a0ef9d9511e885999b806f914" - size 9279 + filename "tooltalk-1.13-pkg.tar.gz" + md5sum "3f01dab216a3bc318d11f362d22ea89c" + size 9301 provides () requires () type regular @@ -1612,19 +1873,19 @@ (package-get-update-base-entry (quote (elib (standards-version 1.1 - version "1.05" + version "1.08" author-version "1.0" - date "1998-10-01" - build-date "1999-07-30" + date "2000-10-05" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority high category "libs" dump nil description "Portable Emacs Lisp utilities library." - filename "elib-1.05-pkg.tar.gz" - md5sum "b9f0d18ae78f70a65a341c515aae2095" - size 72809 + filename "elib-1.08-pkg.tar.gz" + md5sum "dd8c626d4a2b967febe68bcaa1cd1b96" + size 72867 provides (avltree bintree cookie dll elib-node queue-f queue-m read stack-f stack-m string) requires () type single @@ -1634,19 +1895,19 @@ (package-get-update-base-entry (quote (edebug (standards-version 1.1 - version "1.08" - author-version "21.1" - date "1998-03-12" - build-date "1999-07-30" + version "1.14" + author-version "21.5b1" + date "2001-07-16" + build-date "2001-07-21" maintainer "XEmacs Development Team " distribution xemacs priority low - category "libs" + category "standard" dump nil description "An Emacs Lisp debugger." - filename "edebug-1.08-pkg.tar.gz" - md5sum "366450f91a308c84471f7cdb98fd907c" - size 112428 + filename "edebug-1.14-pkg.tar.gz" + md5sum "8cac8a4c9e7f01bc3199f395fc9d975b" + size 112374 provides (edebug cl-read cust-print eval-reg cl-specs) requires (xemacs-base) type regular @@ -1656,19 +1917,19 @@ (package-get-update-base-entry (quote (Sun (standards-version 1.1 - version "1.11" + version "1.13" author-version "21.1" date "1998-07-25" - build-date "1999-07-30" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority low category "libs" dump nil description "Support for Sparcworks." - filename "Sun-1.11-pkg.tar.gz" - md5sum "8920cd925c5bff8b9d4a353d08c1f7ff" - size 63685 + filename "Sun-1.13-pkg.tar.gz" + md5sum "455b7e1c3564563687e36ab53352ba76" + size 63836 provides (sccs eos-browser eos-common eos-debugger eos-debugger eos-editor eos-init eos-load eos-menubar eos-toolbar sunpro) requires (cc-mode xemacs-base) type regular @@ -1678,19 +1939,19 @@ (package-get-update-base-entry (quote (apel (standards-version 1.1 - version "1.15" - author-version "9.20" - date "1999-07-26" - build-date "1999-07-30" + version "1.20" + author-version "10.2" + date "2000-11-14" + build-date "2001-01-15" maintainer "XEmacs Development Team " distribution xemacs priority high category "libs" dump nil description "A Portable Emacs Library. Used by XEmacs MIME support." - filename "apel-1.15-pkg.tar.gz" - md5sum "503832a7c28fe700afc35dbaf7fdeb01" - size 79178 + filename "apel-1.20-pkg.tar.gz" + md5sum "0d3ac6c109783e1cc48cc4608843d6c3" + size 107611 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 @@ -1699,44 +1960,44 @@ ;;;@@@ (package-get-update-base-entry (quote (efs - (standards-version 1.1 - version "1.15" - author-version "1.18" - date "1999-01-03" - build-date "1999-07-30" + (standards-version 1.0 + version "1.26" + author-version "1.20pre2" + date "2001-06-09" + build-date "2001-06-14" maintainer "Mike Sperber " - distribution xemacs + distribution stable priority medium - category "libs" + category "standard" dump nil description "Treat files on remote systems the same as local files." - filename "efs-1.15-pkg.tar.gz" - md5sum "4c88a1915bace153310c681f24deb14d" - size 369713 + filename "efs-1.26-pkg.tar.gz" + md5sum "cecc2e953d90dd3fc3938d26fce4f0f7" + size 369938 provides (efs) - requires (xemacs-base vm dired) + requires (xemacs-base dired) type regular )) )) ;;;@@@ (package-get-update-base-entry (quote (dired - (standards-version 1.1 - version "1.06" - author-version "7.9" - date "1998-12-09" - build-date "1999-07-30" + (standards-version 1.0 + version "1.11" + author-version "7.10" + date "2001-06-03" + build-date "2001-06-14" maintainer "Mike Sperber " - distribution xemacs + distribution stable priority medium - category "libs" + category "standard" dump nil description "Manage file systems." - filename "dired-1.06-pkg.tar.gz" - md5sum "9c857aa147bf53d972ad6ac30ce34bd4" - size 187691 + filename "dired-1.11-pkg.tar.gz" + md5sum "0b44f0635a1d08189db83e8558cfe8e0" + size 193695 provides (diff dired) - requires (xemacs-base) + requires (xemacs-base prog-modes) type regular )) )) @@ -1744,21 +2005,21 @@ (package-get-update-base-entry (quote (mail-lib (standards-version 1.1 - version "1.24" - author-version "21.1" - date "1999-04-13" - build-date "1999-07-30" - maintainer "XEmacs Development Team " + version "1.40" + author-version "21.5b3" + date "2001-11-27" + build-date "2001-11-28" + maintainer "Simon Josefsson " distribution xemacs priority medium - category "libs" + category "standard" dump nil description "Fundamental lisp files for providing email support." - filename "mail-lib-1.24-pkg.tar.gz" - md5sum "9428816ccc49d99be80dcbfc34d7917f" - size 131977 + filename "mail-lib-1.40-pkg.tar.gz" + md5sum "9bac3da5281026155fd6fadb93efb938" + size 177170 provides (browse-url highlight-headers mail-abbrevs mail-extr mail-utils reporter rfc822 rmail-mini rmailout sendmail smtpmail) - requires (xemacs-base) + requires (eterm xemacs-base) type regular )) )) @@ -1766,21 +2027,21 @@ (package-get-update-base-entry (quote (fsf-compat (standards-version 1.1 - version "1.06" - author-version "21.1" - date "1998-09-12" - build-date "1999-07-30" + version "1.09" + author-version "21.4" + date "2001-04-28" + build-date "2001-04-28" maintainer "XEmacs Development Team " distribution xemacs priority high category "libs" dump nil description "FSF Emacs compatibility files." - filename "fsf-compat-1.06-pkg.tar.gz" - md5sum "b167c9b6e4b6ff464d34143782d6c633" - size 17356 + filename "fsf-compat-1.09-pkg.tar.gz" + md5sum "b0f33bb047d8c64020b1fa0bf35eb12e" + size 21096 provides (overlay thingatpt timer x-popup-menu) - requires () + requires (xemacs-base) type single )) )) @@ -1788,31 +2049,23 @@ (package-get-update-base-entry (quote (xemacs-base (standards-version 1.1 - version "1.32" - author-version "21.1" - date "1999-07-22" - build-date "1999-07-30" + version "1.56" + author-version "21.5b3" + date "2001-12-10" + build-date "2001-12-10" maintainer "XEmacs Development Team " distribution xemacs priority high - category "libs" + category "standard" dump nil description "Fundamental XEmacs support, you almost certainly need this." - filename "xemacs-base-1.32-pkg.tar.gz" - md5sum "ae699a67f9922ad330fc1e5d45d3ff87" - size 430787 - provides (add-log 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 overlay passwd pp regi ring shell skeleton sort thing time-stamp timezone xbm-button xpm-button) + filename "xemacs-base-1.56-pkg.tar.gz" + md5sum "c619c482b36b55468f4e29d775b2f12f" + size 454879 + provides (add-log 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 overlay passwd pp regi ring shell skeleton sort thing time-stamp timezone xbm-button xpm-button tq) requires () type regular )) )) ;;;@@@ ;; Package Index file ends here ------BEGIN PGP SIGNATURE----- -Version: GnuPG v0.9.8 (SunOS) -Comment: For info see http://www.gnupg.org - -iEYEARECAAYFAjehBIcACgkQEng2Tdz4C2tvvQCbBYGskNM16GwRfw/DjTS4byZN -6CIAnRGmsWGM/07NNA6mEyejc3SDD7/3 -=NjSE ------END PGP SIGNATURE----- diff --text -u /dev/null 'xemacs-21.5.4/info/.cvsignore' Index: ././info/.cvsignore --- ././info/.cvsignore Thu Jan 1 09:00:00 1970 +++ ././info/.cvsignore Wed Dec 19 07:55:34 2001 @@ -0,0 +1,4 @@ +*.info +*.info-[1-9] +*.info-[1-9][0-9] + diff --text -u 'xemacs-21.5.3/info/dir' 'xemacs-21.5.4/info/dir' Index: ././info/dir --- ././info/dir Fri Apr 13 03:20:58 2001 +++ ././info/dir Thu Jan 3 05:56:32 2002 @@ -34,7 +34,7 @@ * Menu: -XEmacs 21.4 +XEmacs 21.5 =========== * XEmacs:: XEmacs User's Manual. * Lispref:: XEmacs Lisp Reference Manual. @@ -47,7 +47,7 @@ * CL:: A Common Lisp compatibility package for Emacs-Lisp. * Custom:: Customization Library for Emacs. -* Emodules:: XEmacs dynamic loadable module support. +* Emodules:: XEmacs dynamically loadable module support. * External-Widget:: Use XEmacs as a text widget inside of another program. * Standards:: GNU coding standards. * Term:: A mode to control inferior processes (a comint replacement) diff --text -u 'xemacs-21.5.3/lib-src/ChangeLog' 'xemacs-21.5.4/lib-src/ChangeLog' Index: ././lib-src/ChangeLog --- ././lib-src/ChangeLog Fri Sep 7 18:13:25 2001 +++ ././lib-src/ChangeLog Wed Jan 9 01:22:54 2002 @@ -1,3 +1,34 @@ +2002-01-08 Stephen J. Turnbull + + * XEmacs 21.5.4 "bamboo" is released. + +2001-12-24 Yoshiki Hayashi + + * etags.c: Define __P if not already defined. + +2001-12-19 Yoshiki Hayashi + + * Makefile.in.in (etags_args): Define EMACS_NAME to XEmacs. + + * etags.c: Sync with pot version 14.28. + Additional change for XEmacs to define PTR macro. + + 2001-12-12 Francesco Potorti` + + * etags.c (PHP_functions): New function by Diez B. Roggisch, + heavily adapted by me, for parsing PHP. + (LOOKING_AT): New macro. + (Perl_functions, Python_functions, PHP_functions) + (Scheme_functions, Texinfo_nodes): Use it. + (Perl_functions): Use strneq. + (prolog_pred): Renamed to prolog_pr. + (prolog_pr): Recognise Prolog rules (thanks to Geert Kloosterman) + in addition to predicates. + [ETAGS_REGEXPS] [!HAVE_CONFIG_H] [__CYGWIN__]: Prevent + unmodified compile, as Cygwin's regex.h is incompatible with us + (thanks to Markus Hoenicka). + [!HAVE_CONFIG_H] [!__STDC__]: #define const as the empty string. + 2001-09-07 Stephen J. Turnbull * XEmacs 21.5.3 "asparagus" is released. diff --text -u 'xemacs-21.5.3/lib-src/Makefile.in.in' 'xemacs-21.5.4/lib-src/Makefile.in.in' Index: ././lib-src/Makefile.in.in --- ././lib-src/Makefile.in.in Fri Apr 13 03:20:59 2001 +++ ././lib-src/Makefile.in.in Thu Dec 20 16:58:19 2001 @@ -294,8 +294,8 @@ $(CC) -c $(cflags) \ -DINHIBIT_STRING_HEADER ${top_srcdir}/src/regex.c -etags_args = $(cflags) -DVERSION='"${version}"' ${srcdir}/etags.c \ - $(GETOPTOBJS) regex.o $(ldflags) +etags_args = $(cflags) -DEMACS_NAME='"XEmacs"' -DVERSION='"${version}"' \ + ${srcdir}/etags.c $(GETOPTOBJS) regex.o $(ldflags) etags_deps = ${srcdir}/etags.c $(GETOPTDEPS) regex.o ../src/config.h etags: ${etags_deps} diff --text -u 'xemacs-21.5.3/lib-src/etags.c' 'xemacs-21.5.4/lib-src/etags.c' Index: ././lib-src/etags.c --- ././lib-src/etags.c Sat May 12 20:16:12 2001 +++ ././lib-src/etags.c Mon Dec 24 16:44:56 2001 @@ -32,7 +32,7 @@ * Francesco Potortì has maintained it since 1993. */ -char pot_etags_version[] = "@(#) pot revision number is 14.20"; +char pot_etags_version[] = "@(#) pot revision number is 14.28"; #define TRUE 1 #define FALSE 0 @@ -45,12 +45,6 @@ # define NDEBUG /* disable assert */ #endif -#if defined(__STDC__) && (__STDC__ || defined(__SUNPRO_C)) -# define P_(proto) proto -#else -# define P_(proto) () -#endif - #ifdef HAVE_CONFIG_H # include /* On some systems, Emacs defines static as nothing for the sake @@ -58,9 +52,20 @@ # undef static # define ETAGS_REGEXPS /* use the regexp features */ # define LONG_OPTIONS /* accept long options */ +# ifndef __P +# define __P(args) args +# endif +# ifndef PTR +# define PTR void * +# endif #else -# ifndef __STDC__ -# define static /* remove static for old compilers' sake */ +# if defined(__STDC__) && (__STDC__ || defined(__SUNPRO_C)) +# define __P(args) args /* use prototypes */ +# define PTR void * /* for generic pointers */ +# else +# define __P(args) () /* no prototypes */ +# define const /* remove const for old compilers' sake */ +# define PTR long * /* don't use void* */ # endif #endif /* !HAVE_CONFIG_H */ @@ -148,6 +153,14 @@ #endif /* LONG_OPTIONS */ #ifdef ETAGS_REGEXPS +# ifndef HAVE_CONFIG_H /* this is a standalone compilation */ +# ifdef __CYGWIN__ /* compiling on Cygwin */ + !!! NOTICE !!! + the regex.h distributed with Cygwin is not compatible with etags, alas! +If you want regular expression support, you should delete this notice and + arrange to use the GNU regex.h and regex.c. +# endif +# endif # include #endif /* ETAGS_REGEXPS */ @@ -208,9 +221,9 @@ (char *) (op), (n) * sizeof (Type))) #endif -typedef int bool; +#define bool int -typedef void Lang_function P_((FILE *)); +typedef void Lang_function __P((FILE *)); typedef struct { @@ -256,82 +269,83 @@ /* Many compilers barf on this: Lang_function Ada_funcs; so let's write it this way */ -static void Ada_funcs P_((FILE *)); -static void Asm_labels P_((FILE *)); -static void C_entries P_((int c_ext, FILE *)); -static void default_C_entries P_((FILE *)); -static void plain_C_entries P_((FILE *)); -static void Cjava_entries P_((FILE *)); -static void Cobol_paragraphs P_((FILE *)); -static void Cplusplus_entries P_((FILE *)); -static void Cstar_entries P_((FILE *)); -static void Erlang_functions P_((FILE *)); -static void Fortran_functions P_((FILE *)); -static void Yacc_entries P_((FILE *)); -static void Lisp_functions P_((FILE *)); -static void Makefile_targets P_((FILE *)); -static void Pascal_functions P_((FILE *)); -static void Perl_functions P_((FILE *)); -static void Postscript_functions P_((FILE *)); -static void Prolog_functions P_((FILE *)); -static void Python_functions P_((FILE *)); -static void Scheme_functions P_((FILE *)); -static void TeX_commands P_((FILE *)); -static void Texinfo_nodes P_((FILE *)); -static void just_read_file P_((FILE *)); - -static void print_language_names P_((void)); -static void print_version P_((void)); -static void print_help P_((void)); -int main P_((int, char **)); -static int number_len P_((long)); - -static compressor *get_compressor_from_suffix P_((char *, char **)); -static language *get_language_from_langname P_((char *)); -static language *get_language_from_interpreter P_((char *)); -static language *get_language_from_filename P_((char *)); -static int total_size_of_entries P_((node *)); -static long readline P_((linebuffer *, FILE *)); -static long readline_internal P_((linebuffer *, FILE *)); -static void get_tag P_((char *)); +static void Ada_funcs __P((FILE *)); +static void Asm_labels __P((FILE *)); +static void C_entries __P((int c_ext, FILE *)); +static void default_C_entries __P((FILE *)); +static void plain_C_entries __P((FILE *)); +static void Cjava_entries __P((FILE *)); +static void Cobol_paragraphs __P((FILE *)); +static void Cplusplus_entries __P((FILE *)); +static void Cstar_entries __P((FILE *)); +static void Erlang_functions __P((FILE *)); +static void Fortran_functions __P((FILE *)); +static void Yacc_entries __P((FILE *)); +static void Lisp_functions __P((FILE *)); +static void Makefile_targets __P((FILE *)); +static void Pascal_functions __P((FILE *)); +static void Perl_functions __P((FILE *)); +static void PHP_functions __P((FILE *)); +static void Postscript_functions __P((FILE *)); +static void Prolog_functions __P((FILE *)); +static void Python_functions __P((FILE *)); +static void Scheme_functions __P((FILE *)); +static void TeX_commands __P((FILE *)); +static void Texinfo_nodes __P((FILE *)); +static void just_read_file __P((FILE *)); + +static void print_language_names __P((void)); +static void print_version __P((void)); +static void print_help __P((void)); +int main __P((int, char **)); +static int number_len __P((long)); + +static compressor *get_compressor_from_suffix __P((char *, char **)); +static language *get_language_from_langname __P((const char *)); +static language *get_language_from_interpreter __P((char *)); +static language *get_language_from_filename __P((char *)); +static int total_size_of_entries __P((node *)); +static long readline __P((linebuffer *, FILE *)); +static long readline_internal __P((linebuffer *, FILE *)); +static void get_tag __P((char *)); #ifdef ETAGS_REGEXPS -static void analyse_regex P_((char *, bool)); -static void add_regex P_((char *, bool, language *)); -static void free_patterns P_((void)); +static void analyse_regex __P((char *, bool)); +static void add_regex __P((char *, bool, language *)); +static void free_patterns __P((void)); #endif /* ETAGS_REGEXPS */ -static void error P_((const char *, const char *)); -static void suggest_asking_for_help P_((void)); -void fatal P_((char *, char *)); -static void pfatal P_((char *)); -static void add_node P_((node *, node **)); - -static void init P_((void)); -static void initbuffer P_((linebuffer *)); -static void find_entries P_((char *, FILE *)); -static void free_tree P_((node *)); -static void pfnote P_((char *, bool, char *, int, int, long)); -static void new_pfnote P_((char *, int, bool, char *, int, int, long)); -static void process_file P_((char *)); -static void put_entries P_((node *)); -static void takeprec P_((void)); - -static char *concat P_((char *, char *, char *)); -static char *skip_spaces P_((char *)); -static char *skip_non_spaces P_((char *)); -static char *savenstr P_((char *, int)); -static char *savestr P_((char *)); -static char *etags_strchr P_((const char *, int)); -static char *etags_strrchr P_((const char *, int)); -static char *etags_getcwd P_((void)); -static char *relative_filename P_((char *, char *)); -static char *absolute_filename P_((char *, char *)); -static char *absolute_dirname P_((char *, char *)); -static bool filename_is_absolute P_((char *f)); -static void canonicalize_filename P_((char *)); -static void linebuffer_setlen P_((linebuffer *, int)); -long *xmalloc P_((unsigned int)); -long *xrealloc P_((char *, unsigned int)); +static void error __P((const char *, const char *)); +static void suggest_asking_for_help __P((void)); +void fatal __P((char *, char *)); +static void pfatal __P((char *)); +static void add_node __P((node *, node **)); + +static void init __P((void)); +static void initbuffer __P((linebuffer *)); +static void find_entries __P((char *, FILE *)); +static void free_tree __P((node *)); +static void pfnote __P((char *, bool, char *, int, int, long)); +static void new_pfnote __P((char *, int, bool, char *, int, int, long)); +static void process_file __P((char *)); +static void put_entries __P((node *)); +static void takeprec __P((void)); + +static char *concat __P((char *, char *, char *)); +static char *skip_spaces __P((char *)); +static char *skip_non_spaces __P((char *)); +static char *savenstr __P((char *, int)); +static char *savestr __P((char *)); +static char *etags_strchr __P((const char *, int)); +static char *etags_strrchr __P((const char *, int)); +static char *etags_getcwd __P((void)); +static char *relative_filename __P((char *, char *)); +static char *absolute_filename __P((char *, char *)); +static char *absolute_dirname __P((char *, char *)); +static bool filename_is_absolute __P((char *f)); +static void canonicalize_filename __P((char *)); +static void linebuffer_setlen __P((linebuffer *, int)); +PTR xmalloc __P((unsigned int)); +PTR xrealloc __P((char *, unsigned int)); char searchar = '/'; /* use /.../ searches */ @@ -430,9 +444,9 @@ typedef struct pattern { struct pattern *p_next; - language *language; + language *lang; char *regex; - struct re_pattern_buffer *pattern; + struct re_pattern_buffer *pat; struct re_registers regs; char *name_pattern; bool error_signaled; @@ -521,6 +535,9 @@ char *Perl_interpreters [] = { "perl", "@PERL@", NULL }; +char *PHP_suffixes [] = + { "php", "php3", "php4", NULL }; + char *plain_C_suffixes [] = { "lm", /* Objective lex file */ "m", /* Objective C file */ @@ -571,6 +588,7 @@ { "makefile", Makefile_targets, Makefile_filenames, NULL, NULL }, { "pascal", Pascal_functions, NULL, Pascal_suffixes, NULL }, { "perl", Perl_functions, NULL, Perl_suffixes, Perl_interpreters }, + { "php", PHP_functions, NULL, PHP_suffixes, NULL }, { "postscript", Postscript_functions, NULL, Postscript_suffixes, NULL }, { "proc", plain_C_entries, NULL, plain_C_suffixes, NULL }, { "prolog", Prolog_functions, NULL, Prolog_suffixes, NULL }, @@ -1275,7 +1293,7 @@ */ static language * get_language_from_langname (name) - char *name; + const char *name; { language *lang; @@ -1951,9 +1969,9 @@ st_C_struct, st_C_extern, st_C_enum, st_C_define, st_C_typedef, st_C_typespec }; -static unsigned int hash P_((const char *, unsigned int)); -static struct C_stab_entry * in_word_set P_((const char *, unsigned int)); -static enum sym_type C_symtype P_((char *, int, int)); +static unsigned int hash __P((const char *, unsigned int)); +static struct C_stab_entry * in_word_set __P((const char *, unsigned int)); +static enum sym_type C_symtype __P((char *, int, int)); /* Feed stuff between (but not including) %[ and %] lines to: gperf -c -k 1,3 -o -p -r -t @@ -2301,9 +2319,9 @@ * Variables and functions for dealing with nested structures. * Idea by Mykola Dzyuba (2001) */ -static void pushclass_above P_((int, char *, int)); -static void popclass_above P_((int)); -static void write_classname P_((linebuffer *, char *qualifier)); +static void pushclass_above __P((int, char *, int)); +static void popclass_above __P((int)); +static void write_classname __P((linebuffer *, char *qualifier)); struct { char **cname; /* nested class names */ @@ -2392,8 +2410,8 @@ } -static bool consider_token P_((char *, int, int, int *, int, int, bool *)); -static void make_C_tag P_((bool)); +static bool consider_token __P((char *, int, int, int *, int, int, bool *)); +static void make_C_tag __P((bool)); /* * consider_token () @@ -3582,7 +3600,7 @@ } -/* A useful macro. */ +/* Useful macros. */ #define LOOP_ON_INPUT_LINES(file_pointer, line_buffer, char_pointer) \ for (lineno = charno = 0; /* loop initialization */ \ !feof (file_pointer) /* loop test */ \ @@ -3592,7 +3610,10 @@ char_pointer = lb.buffer, \ TRUE); \ ) - +#define LOOKING_AT(cp, keyword) /* keyword is a constant string */ \ + (strneq ((cp), keyword, sizeof(keyword)-1) /* cp points at kyword */ \ + && iswhite((cp)[sizeof(keyword)-1]) /* followed by a blank */ \ + && ((cp) = skip_spaces((cp)+sizeof(keyword)-1))) /* skip blanks */ /* * Read a file, but do no processing. This is used to do regexp @@ -3611,9 +3632,9 @@ /* Fortran parsing */ -static bool tail P_((char *)); -static void takeprec P_((void)); -static void getit P_((FILE *)); +static bool tail __P((char *)); +static void takeprec __P((void)); +static void getit __P((FILE *)); static bool tail (cp) @@ -3760,7 +3781,7 @@ * Philippe Waroquiers (1998) */ -static void adagetit P_((FILE *, char *)); +static void adagetit __P((FILE *, char *)); /* Once we are positioned after an "interesting" keyword, let's get the real tag value necessary. */ @@ -3971,11 +3992,8 @@ LOOP_ON_INPUT_LINES (inf, lb, cp) { - if (*cp++ == 's' - && *cp++ == 'u' - && *cp++ == 'b' && iswhite (*cp++)) + if (LOOKING_AT (cp, "sub")) { - cp = skip_spaces (cp); if (*cp != '\0') { char *sp = cp; @@ -3987,15 +4005,8 @@ } } else if (globals /* only if tagging global vars is enabled */ - && ((cp = lb.buffer, - *cp++ == 'm' - && *cp++ == 'y') - || (cp = lb.buffer, - *cp++ == 'l' - && *cp++ == 'o' - && *cp++ == 'c' - && *cp++ == 'a' - && *cp++ == 'l')) + && ((strneq (cp, "my", 2) && (cp+=2)) + || (strneq (cp, "local", 5) && (cp+=5))) && (*cp == '(' || iswhite (*cp))) { /* After "my" or "local", but before any following paren or space. */ @@ -4025,7 +4036,7 @@ } } - + /* * Python support * Look for /^def[ \t\n]+[^ \t\n(:]+/ or /^class[ \t\n]+[^ \t\n(:]+/ @@ -4038,29 +4049,89 @@ register char *cp; LOOP_ON_INPUT_LINES (inf, lb, cp) + if (LOOKING_AT (cp, "def") || LOOKING_AT (cp, "class")) + { + while (*cp != '\0' && !iswhite (*cp) && *cp != '(' && *cp != ':') + cp++; + pfnote (NULL, TRUE, + lb.buffer, cp - lb.buffer + 1, lineno, linecharno); + } +} + + +/* + * PHP support + * Look for: + * - /^[ \t]*function[ \t\n]+[^ \t\n(]+/ + * - /^[ \t]*class[ \t\n]+[^ \t\n]+/ + * - /^[ \t]*define\(\"[^\"]+/ + * Only with --members: + * - /^[ \t]*var[ \t\n]+\$[^ \t\n=;]/ + * originally by Diez B. Roggisch 2001-06-06 + */ +static void +PHP_functions (inf) + FILE *inf; +{ + register char *cp; + bool search_identifier = FALSE; + + LOOP_ON_INPUT_LINES (inf, lb, cp) { - if (*cp++ == 'd' - && *cp++ == 'e' - && *cp++ == 'f' && iswhite (*cp++)) + cp = skip_spaces (cp); + if (search_identifier + && *cp != '\0') { - cp = skip_spaces (cp); - while (*cp != '\0' && !iswhite (*cp) && *cp != '(' && *cp != ':') + while (*cp != '\0' && !iswhite (*cp) && *cp != '(') cp++; pfnote (NULL, TRUE, lb.buffer, cp - lb.buffer + 1, lineno, linecharno); + search_identifier = FALSE; } - - cp = lb.buffer; - if (*cp++ == 'c' - && *cp++ == 'l' - && *cp++ == 'a' - && *cp++ == 's' - && *cp++ == 's' && iswhite (*cp++)) + else if (LOOKING_AT (cp, "function")) + { + if(*cp == '&') + cp = skip_spaces (cp+1); + if(*cp != '\0') + { + while (*cp != '\0' && !iswhite (*cp) && *cp != '(') + cp++; + pfnote (NULL, TRUE, + lb.buffer, cp - lb.buffer + 1, lineno, linecharno); + } + else + search_identifier = TRUE; + } + else if (LOOKING_AT (cp, "class")) + { + if (*cp != '\0') + { + while (*cp != '\0' && !iswhite (*cp)) + cp++; + pfnote (NULL, FALSE, + lb.buffer, cp - lb.buffer + 1, lineno, linecharno); + } + else + search_identifier = TRUE; + } + else if (strneq (cp, "define", 6) + && (cp = skip_spaces (cp+6)) + && *cp++ == '(' + && (*cp == '"' || *cp == '\'')) { - cp = skip_spaces (cp); - while (*cp != '\0' && !iswhite (*cp) && *cp != '(' && *cp != ':') + char quote = *cp++; + while (*cp != quote && *cp != '\0') cp++; - pfnote (NULL, TRUE, + pfnote (NULL, FALSE, + lb.buffer, cp - lb.buffer + 1, lineno, linecharno); + } + else if (members + && LOOKING_AT (cp, "var") + && *cp == '$') + { + while (*cp != '=' && *cp != ';' && *cp != '\0' && !iswhite(*cp)) + cp++; + pfnote (NULL, FALSE, lb.buffer, cp - lb.buffer + 1, lineno, linecharno); } } @@ -4308,9 +4379,9 @@ * look for (def or (DEF, quote or QUOTE */ -static int L_isdef P_((char *)); -static int L_isquote P_((char *)); -static void L_getit P_((void)); +static int L_isdef __P((char *)); +static int L_isquote __P((char *)); +static void L_getit __P((void)); static int L_isdef (strp) @@ -4461,17 +4532,8 @@ bp++; get_tag (bp); } - if (bp[0] == '(' - && (bp[1] == 'S' || bp[1] == 's') - && (bp[2] == 'E' || bp[2] == 'e') - && (bp[3] == 'T' || bp[3] == 't') - && (bp[4] == '!' || bp[4] == '!') - && (iswhite (bp[5]))) - { - bp = skip_non_spaces (bp); - bp = skip_spaces (bp); - get_tag (bp); - } + if (LOOKING_AT (bp, "(SET!") || LOOKING_AT (bp, "(set!")) + get_tag (bp); } } @@ -4496,9 +4558,9 @@ :chapter:section:subsection:subsubsection:eqno:label:ref:cite:bibitem\ :part:appendix:entry:index"; -static void TEX_mode P_((FILE *)); -static struct TEX_tabent *TEX_decode_env P_((char *, char *)); -static int TEX_Token P_((char *)); +static void TEX_mode __P((FILE *)); +static struct TEX_tabent *TEX_decode_env __P((char *, char *)); +static int TEX_Token __P((char *)); char TEX_esc = '\\'; char TEX_opgrp = '{'; @@ -4666,32 +4728,26 @@ { char *cp, *start; LOOP_ON_INPUT_LINES (inf, lb, cp) - { - if ((*cp++ == '@' - && *cp++ == 'n' - && *cp++ == 'o' - && *cp++ == 'd' - && *cp++ == 'e' && iswhite (*cp++))) - { - start = cp = skip_spaces(cp); - while (*cp != '\0' && *cp != ',') - cp++; - pfnote (savenstr (start, cp - start), TRUE, - lb.buffer, cp - lb.buffer + 1, lineno, linecharno); - } - } + if (LOOKING_AT (cp, "@node")) + { + start = cp; + while (*cp != '\0' && *cp != ',') + cp++; + pfnote (savenstr (start, cp - start), TRUE, + lb.buffer, cp - lb.buffer + 1, lineno, linecharno); + } } /* * Prolog support (rewritten) by Anders Lindgren, Mar. 96 * - * Assumes that the predicate starts at column 0. - * Only the first clause of a predicate is added. + * Assumes that the predicate or rule starts at column 0. + * Only the first clause of a predicate or rule is added. */ -static int prolog_pred P_((char *, char *)); -static void prolog_skip_comment P_((linebuffer *, FILE *)); -static int prolog_atom P_((char *, int)); +static int prolog_pr __P((char *, char *)); +static void prolog_skip_comment __P((linebuffer *, FILE *)); +static int prolog_atom __P((char *, int)); static void Prolog_functions (inf) @@ -4713,10 +4769,10 @@ continue; else if (cp[0] == '/' && cp[1] == '*') /* comment. */ prolog_skip_comment (&lb, inf); - else if ((len = prolog_pred (cp, last)) > 0) + else if ((len = prolog_pr (cp, last)) > 0) { - /* Predicate. Store the function name so that we only - generate a tag for the first clause. */ + /* Predicate or rule. Store the function name so that we + only generate a tag for the first clause. */ if (last == NULL) last = xnew(len + 1, char); else if (len + 1 > allocated) @@ -4748,17 +4804,18 @@ } /* - * A predicate definition is added if it matches: + * A predicate or rule definition is added if it matches: * ( + * or :- * * It is added to the tags database if it doesn't match the * name of the previous clause header. * - * Return the size of the name of the predicate, or 0 if no header - * was found. + * Return the size of the name of the predicate or rule, or 0 if no + * header was found. */ static int -prolog_pred (s, last) +prolog_pr (s, last) char *s; char *last; /* Name of last clause. */ { @@ -4772,21 +4829,18 @@ len = pos; pos = skip_spaces (s + pos) - s; - if ((s[pos] == '(') || (s[pos] == '.')) - { - if (s[pos] == '(') - pos++; - - /* Save only the first clause. */ - if (last == NULL - || len != (int)strlen (last) - || !strneq (s, last, len)) + if ((s[pos] == '.' + || (s[pos] == '(' && (pos += 1)) + || (s[pos] == ':' && s[pos + 1] == '-' && (pos += 2))) + && (last == NULL /* save only the first clause */ + || len != strlen (last) + || !strneq (s, last, len))) { pfnote (savenstr (s, len), TRUE, s, pos, lineno, linecharno); return len; } - } - return 0; + else + return 0; } /* @@ -4856,9 +4910,9 @@ * * Assumes that Erlang functions start at column 0. */ -static int erlang_func P_((char *, char *)); -static void erlang_attribute P_((char *)); -static int erlang_atom P_((char *, int)); +static int erlang_func __P((char *, char *)); +static void erlang_attribute __P((char *)); +static int erlang_atom __P((char *, int)); static void Erlang_functions (inf) @@ -5029,10 +5083,10 @@ #ifdef ETAGS_REGEXPS -static char *scan_separators P_((char *)); -static void analyse_regex P_((char *, bool)); -static void add_regex P_((char *, bool, language *)); -static char *substitute P_((char *, char *, struct re_registers *)); +static char *scan_separators __P((char *)); +static void analyse_regex __P((char *, bool)); +static void add_regex __P((char *, bool, language *)); +static char *substitute __P((char *, char *, struct re_registers *)); /* Take a string like "/blah/" and turn it into "blah", making sure that the first and last characters are the same, and handling @@ -5085,7 +5139,10 @@ bool ignore_case; { if (regex_arg == NULL) - free_patterns (); /* --no-regex: remove existing regexps */ + { + free_patterns (); /* --no-regex: remove existing regexps */ + return; + } /* A real --regexp option or a line in a regexp file. */ switch (regex_arg[0]) @@ -5191,8 +5248,8 @@ p_head = xnew (1, pattern); p_head->regex = savestr (regexp_pattern); p_head->p_next = pp; - p_head->language = lang; - p_head->pattern = patbuf; + p_head->lang = lang; + p_head->pat = patbuf; p_head->name_pattern = savestr (name); p_head->error_signaled = FALSE; } @@ -5383,10 +5440,10 @@ for (pp = p_head; pp != NULL; pp = pp->p_next) { /* Only use generic regexps or those for the current language. */ - if (pp->language != NULL && pp->language != curlang) + if (pp->lang != NULL && pp->lang != curlang) continue; - match = re_match (pp->pattern, lbp->buffer, lbp->len, 0, &pp->regs); + match = re_match (pp->pat, lbp->buffer, lbp->len, 0, &pp->regs); switch (match) { case -2: @@ -5794,23 +5851,32 @@ } /* Like malloc but get fatal error if memory is exhausted. */ -long * +PTR xmalloc (size) unsigned int size; { - long *result = (long *) malloc (size); + PTR result = (PTR) malloc (size); if (result == NULL) fatal ("virtual memory exhausted", (char *)NULL); return result; } -long * +PTR xrealloc (ptr, size) char *ptr; unsigned int size; { - long *result = (long *) realloc (ptr, size); + PTR result = (PTR) realloc (ptr, size); if (result == NULL) fatal ("virtual memory exhausted", (char *)NULL); return result; } + +/* + * Local Variables: + * c-indentation-style: gnu + * indent-tabs-mode: t + * tab-width: 8 + * c-font-lock-extra-types: ("FILE" "bool" "language" "linebuffer") + * End: + */ diff --text -u 'xemacs-21.5.3/lisp/ChangeLog' 'xemacs-21.5.4/lisp/ChangeLog' Index: ././lisp/ChangeLog --- ././lisp/ChangeLog Fri Sep 7 18:13:26 2001 +++ ././lisp/ChangeLog Wed Jan 9 01:22:54 2002 @@ -1,3 +1,286 @@ +2002-01-08 Stephen J. Turnbull + + * XEmacs 21.5.4 "bamboo" is released. + +2002-01-04 Adrian Aichner + + * info.el (Info-auto-generate-directory): Default + Info-auto-generate-directory to 'if-outdated. + +2001-12-27 David A. Panariti + + * hyper-apropos.el (hyper-apropos-find-variable): + Added this function based on hyper-apropos-find-function. + + * hyper-apropos.el (hyper-apropos-help-map): + Added binding of "v" to hyper-apropos-find-variable. + +2001-12-27 John Paul Wallington + + * obsolete.el (interactive-form): new compatibility alias for + function-interactive. + +2001-12-26 Adrian Aichner + + * printer.el (generic-print-region): Pass on arguments start, end, + and buffer to lpr-region. The original problem was pointed out by + Nevin Kapur. + +2001-12-26 John Paul Wallington + + * keydefs.el (global-map): add a defn for C-x 5 1, previously + undefined, to run delete-other-frames. + +2001-12-18 John Paul Wallington + + * gnuserv.el: + (gnuserv-mode-line-string): new customizable variable + (gnuserv-minor-mode): make variable buffer-local + * isearch-mode.el: + (isearch-mode-line-string): new customizable variable + +2001-12-16 Andy Piper + + * package-get.el (package-get-update-all): Make sure installed.db + gets updated after updating packages. + +2001-12-13 William M. Perry + + * gtk-faces.el (gtk-init-device-faces): Better way of munging the + default faces from a style. Do not use 'device' as the locale + when setting it, or it makes it very difficult for a user to + override. Now munges highlight, zmacs-region, and toolbar from + the appropriate information in the default GtkStyle for the + device. + + * gui.el (gui-button-face): Ditto. + + * faces.el (text-cursor): + (highlight): + (zmacs-region): + (list-mode-item-selected): + (primary-selection): + (secondary-selection): + (isearch): + (isearch-secondary): Condense old window-system specific settings + into one specifier using the 'win default' tags. + + * dialog-gtk.el (popup-builtin-question-dialog): Deal gracefully + with buttons of length 1, 2, and 3. Fixed yes-or-no-p lossage. + +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 Andy Piper + + * printer.el (generic-print-region): fix for non-MS systems from + Mike Fabian. + +2001-11-30 Jan Vroonhof + + * font.el (font-window-system-mappings): Add mapping for Gtk + (assume identical to X) + +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. + +2001-11-21 Stephen J. Turnbull + + * package-net.el: Inadvertant synch with Windows branch. From + Andy's log: + (package-net-kit-version): new variable. + (package-net-generate-bin-ini): use it. Remove unwanted functions. + +2001-11-28 Steve Youngs + + * package-get.el (package-get-locate-index-file): Also search the + core etc/ directory for the package index file if it can't be + found in ~/.xemacs/. + +2001-12-13 William Perry + + * dialog-gtk.el (popup-builtin-question-dialog): + Conform to API in gui.c. + +2001-11-12 Andy Piper + + * cus-edit.el (custom-save-face-internal): make sure we save + non-themed faces. + (custom-save-variables): ditto variables. + +2001-11-20 Stephen J. Turnbull + + * faces.el (make-face-family): + (make-face-size): + New face-modifying functions per Jan Vroonhof. + + cus-face.el (custom-set-face-font-family): + (custom-set-face-font-size): + Use them. + + * font.el (font-window-system-mappings): More precise docstring. + + (font-create-name): + (font-create-object): + (tty-font-create-object): + (tty-font-create-plist): + (x-font-create-object): + (x-font-create-name): + (ns-font-create-name): + (mswindows-font-create-object): + (mswindows-font-create-name): + Add doctrings. + +2001-11-14 John Paul Wallington + + * gtk-faces.el (gtk-init-device-faces): removed spurious + quote before let* expression. + +2001-12-19 Jan Vroonhof + + * gtk-faces.el (gtk-init-device-faces): Fix missing close paren + problem with my application of the JPW's following patch. + +2001-11-29 John Paul Wallington + + * gtk-faces.el (gtk-init-device-faces): Replaced device locale + argument in set-face-background/foreground forms with + '(default gtk) tag set to make the faces customizable, as + suggested by Jan Vroonhof. + +2001-12-15 John Paul Wallington + + * modeline.el: + (abbrev-mode-line-string): new customizable variable + (overwrite-mode-line-string): ditto + (auto-fill-mode-line-string): ditto + (defining-kbd-macro-mode-line-string): ditto + * view-less.el: + (view-mode-line-string): ditto + +2001-12-12 John Paul Wallington + + * font-lock.el (font-lock-mode-line-string): new customizable + variable + +2001-10-16 Michael Diers + + * about.el: Update e-mail address. + +2001-12-05 Michael Sperber [Mr. Preprocessor] + + * packages.el (packages-compute-package-locations): Add + user-specific site-packages and infodock-packages hierarchies for + symmetry. + + * find-paths.el (paths-emacs-root-p): Use version-specific name + for root testing. + +2001-07-26 Mike Sperber + + * files.el (auto-mode-alist): .9 files are man pages, too. + +2001-12-04 John Paul Wallington + + * paragraphs.el (mark-paragraph): synched with FSF; + added optional argument. + +2001-12-03 Didier Verna + + * rect.el: autoload `replace-rectangle'. + * keydefs.el (global-map): bind it to `C-x r p'. + +2001-11-29 Charles G Waldman + + * startup.el (initial-scratch-message): be correct about case + +2001-12-02 Adrian Aichner + + * package-get.el (package-get-update-base-from-buffer): Use + exec-suffix-list with locate-file. + +2001-12-03 Steve Youngs + + * package-get.el (package-get-update-base-from-buffer): Add + autoload for 'mc-verify'. + +2001-12-02 Steve Youngs + + * package-get.el (package-get-base-filename): Rename default file + to 'package-index.LATEST.gpg' + (package-get-require-signed-base-updates): Update doc string. + +2001-11-29 Steve Youngs + + * package-get.el (package-entries-are-signed): New. + (package-get-continue-update-base): New. + (package-get-update-base-from-buffer): Use them. Fix PGP code. + +2001-11-29 Adrian Aichner + + * menubar-items.el (Menubar-items-truncate-list): Removed. + * menubar-items.el (Menubar-items-truncate-history): New. + * menubar-items.el (default-menubar): Use + Menubar-items-truncate-history. + +2001-11-28 Steve Youngs + + * package-get.el (package-get-locate-index-file): Also search the + core etc/ directory for the package index file if it can't be + found in ~/.xemacs/. + +2001-10-29 Andy Piper + + * code-files.el (toggle-buffer-file-coding-system): mark buffer as + modified when changing coding system. + + * toolbar-items.el (toolbar-dired): Use interactive "D" spec so + that we invoke the GUI directory selector. + +2001-10-25 Andy Piper + + * dialog.el (make-dialog-box): use new directory dialog support. + * minibuf.el (read-file-name-1): ditto. + (read-file-name): ditto. + (read-directory-name): ditto. + +2001-09-28 Ben Wing + + * font-lock.el: + * font-lock.el (font-lock-after-change-function): + fix problem with last patch, reported by Katsumi Yamaoka. + +2001-09-17 Ben Wing + + * font-lock.el (font-lock-after-change-function): + fix problem when you insert a comment on the line before a line of + code: if we use the following char, then when you hit backspace, + the following line of code turns the comment color. + +2001-09-15 Edward M. Lee + + * files.el (auto-mode-alist): Add configure.ac support. + 2001-09-07 Stephen J. Turnbull * XEmacs 21.5.3 "asparagus" is released. @@ -5,7 +288,7 @@ 2001-08-26 Stephen J. Turnbull * README: Partial update. - + 2001-08-26 Stephen J. Turnbull * wid-edit.el (widget-specify-secret): @@ -37,7 +320,7 @@ * term\AT386.el (AT386-keypad-map): * term\AT386.el (AT386-keypad-map)): New. Fix warnings. - + * term\linux.el: * term\lk201.el: * term\news.el: diff --text -u 'xemacs-21.5.3/lisp/about.el' 'xemacs-21.5.4/lisp/about.el' Index: ././lisp/about.el --- ././lisp/about.el Sun Jul 15 17:18:59 2001 +++ ././lisp/about.el Mon Dec 10 16:43:34 2001 @@ -1901,7 +1901,7 @@ (print-short "Christopher Davis" "ckd@kei.com") (print-short "Soren Dayton" "csdayton@cs.uchicago.edu") (print-short "Chris Dean" "ctdean@cogit.com") - (print-short "Michael Diers" "mdiers@logware.de") + (print-short "Michael Diers" "mdiers@elego.de") (print-short "William G. Dubuque" "wgd@martigny.ai.mit.edu") (print-short "Steve Dunham" "dunham@dunham.tcimet.net") (print-short "Samuel J. Eaton" "samuele@cogs.susx.ac.uk") diff --text -u 'xemacs-21.5.3/lisp/code-files.el' 'xemacs-21.5.4/lisp/code-files.el' Index: ././lisp/code-files.el --- ././lisp/code-files.el Sat May 5 07:42:00 2001 +++ ././lisp/code-files.el Tue Oct 30 14:13:27 2001 @@ -116,7 +116,8 @@ (coding-system-base buffer-file-coding-system) (cond ((eq eol-type 'lf) 'crlf) ((eq eol-type 'crlf) 'lf) - ((eq eol-type 'cr) 'lf)))))) + ((eq eol-type 'cr) 'lf)))) + (set-buffer-modified-p t))) (define-obsolete-function-alias 'set-file-coding-system diff --text -u 'xemacs-21.5.3/lisp/cus-edit.el' 'xemacs-21.5.4/lisp/cus-edit.el' Index: ././lisp/cus-edit.el --- ././lisp/cus-edit.el Sun Jun 10 19:42:22 2001 +++ ././lisp/cus-edit.el Thu Dec 20 14:49:30 2001 @@ -3392,7 +3392,7 @@ (princ "\n")) (princ "(custom-set-variables") (mapatoms (lambda (symbol) - (let ((spec (car-safe (get symbol 'theme-value))) + (let ((spec (car-safe (get symbol 'theme-value))) (requests (get symbol 'custom-requests)) (now (not (or (get symbol 'standard-value) (and (not (boundp symbol)) @@ -3400,7 +3400,9 @@ 'rogue)))))) (comment (get symbol 'saved-variable-comment))) (when (or (and spec (eq (car spec) 'user) - (eq (second spec) 'set)) comment) + (eq (second spec) 'set)) comment + ;; support non-themed vars + (and (null spec) (get symbol 'saved-value))) (princ "\n '(") (prin1 symbol) (princ " ") @@ -3431,9 +3433,12 @@ (not (eq (get symbol 'force-face) 'rogue))))))) (when (or (and (not (memq symbol custom-save-face-ignoring)) ;; Don't print default face here. - theme-spec - (eq (car theme-spec) 'user) - (eq (second theme-spec) 'set)) comment) + (or (and theme-spec + (eq (car theme-spec) 'user) + (eq (second theme-spec) 'set)) + ;; cope with non-themed faces + (and (null theme-spec) + (get symbol 'saved-face)))) comment) (princ "\n '(") (prin1 symbol) (princ " ") diff --text -u 'xemacs-21.5.3/lisp/cus-face.el' 'xemacs-21.5.4/lisp/cus-face.el' Index: ././lisp/cus-face.el --- ././lisp/cus-face.el Fri Apr 13 03:21:15 2001 +++ ././lisp/cus-face.el Thu Dec 20 14:49:30 2001 @@ -200,13 +200,20 @@ (and image (image-instance-file-name image)))) +;; This consistently fails to dtrt +;;(defun custom-set-face-font-size (face size &optional locale tags) +;; "Set the font of FACE to SIZE." +;; ;; #### should this call have tags in it? +;; (let* ((font (apply 'face-font-name face (list locale))) +;; ;; Gag +;; (fontobj (font-create-object font))) +;; (set-font-size fontobj size) +;; (apply 'font-set-face-font face fontobj locale tags))) + +;; From Jan Vroonhof -- see faces.el (defun custom-set-face-font-size (face size &optional locale tags) "Set the font of FACE to SIZE." - (let* ((font (apply 'face-font-name face locale)) - ;; Gag - (fontobj (font-create-object font))) - (set-font-size fontobj size) - (apply 'font-set-face-font face fontobj locale tags))) + (make-face-size face size locale tags)) (defun custom-face-font-size (face &rest args) "Return the size of the font of FACE as a string." @@ -215,13 +222,20 @@ (fontobj (font-create-object font))) (format "%s" (font-size fontobj)))) +;; Jan suggests this may not dtrt +;;(defun custom-set-face-font-family (face family &optional locale tags) +;; "Set the font of FACE to FAMILY." +;; ;; #### should this call have tags in it? +;; (let* ((font (apply 'face-font-name face (list locale))) +;; ;; Gag +;; (fontobj (font-create-object font))) +;; (set-font-family fontobj family) +;; (apply 'font-set-face-font face fontobj locale tags))) + +;; From Jan Vroonhof -- see faces.el (defun custom-set-face-font-family (face family &optional locale tags) "Set the font of FACE to FAMILY." - (let* ((font (apply 'face-font-name face locale)) - ;; Gag - (fontobj (font-create-object font))) - (set-font-family fontobj family) - (apply 'font-set-face-font face fontobj locale tags))) + (make-face-family face family locale tags)) (defun custom-face-font-family (face &rest args) "Return the name of the font family of FACE." diff --text -u 'xemacs-21.5.3/lisp/dialog-gtk.el' 'xemacs-21.5.4/lisp/dialog-gtk.el' Index: ././lisp/dialog-gtk.el --- ././lisp/dialog-gtk.el Fri Jun 22 10:49:59 2001 +++ ././lisp/dialog-gtk.el Thu Dec 20 14:49:30 2001 @@ -194,7 +194,9 @@ (dialog nil) ; GtkDialog (buttons nil) ; List of GtkButton objects (activep t) + (callback nil) (flushrightp nil) + (length nil) (errp t)) (if (not buttons-descr) (error 'syntax-error @@ -220,28 +222,29 @@ (if (not (vectorp button)) (error "Button descriptor is not a vector: %S" button)) - (if (< (length button) 3) - (error "Button descriptor is too small: %S" button)) + (setq length (length button)) - (push (gtk-button-new-with-label (aref button 0)) buttons) + (cond + ((= length 1) ; [ "name" ] + (setq callback nil + activep nil)) + ((= length 2) ; [ "name" callback ] + (setq callback (aref button 1) + activep t)) + ((and (or (= length 3) (= length 4)) + (not (keywordp (aref button 2)))) + ;; [ "name" callback active-p ] or + ;; [ "name" callback active-p suffix ] + ;; We ignore the 'suffix' entry, because that is + ;; what the X code does. + (setq callback (aref button 1) + activep (aref button 2))) + (t ; 100% keyword specification + (let ((plist (cdr (mapcar 'identity button)))) + (setq activep (plist-get plist :active) + callback (plist-get plist :callback))))) - ;; Need to detect what flavor of descriptor it is. - (if (not (keywordp (aref button 2))) - ;; Simple style... just [ name callback activep ] - ;; We ignore the 'suffix' entry, because that is what - ;; the X code does. - (setq activep (aref button 2)) - (let ((ctr 2) - (len (length button))) - (if (logand len 1) - (error - "Button descriptor has an odd number of keywords and values: %S" - button)) - (while (< ctr len) - (if (eq (aref button ctr) :active) - (setq activep (aref button (1+ ctr)) - ctr len)) - (setq ctr (+ ctr 2))))) + (push (gtk-button-new-with-label (aref button 0)) buttons) (gtk-widget-set-sensitive (car buttons) (eval activep)) ;; Apply the callback @@ -257,7 +260,7 @@ unread-command-events) (gtk-main-quit) t) - (cons (aref button 1) dialog)) + (cons callback dialog)) (gtk-widget-show (car buttons)) (funcall (if flushrightp 'gtk-box-pack-end 'gtk-box-pack-start) diff --text -u 'xemacs-21.5.3/lisp/dialog.el' 'xemacs-21.5.4/lisp/dialog.el' Index: ././lisp/dialog.el --- ././lisp/dialog.el Sun Jul 15 17:18:59 2001 +++ ././lisp/dialog.el Tue Oct 30 14:13:27 2001 @@ -262,6 +262,18 @@ --------------------------------------------------------------------------- +For type `directory': + +The keywords allowed are + +:initial-directory + The initial directory to be selected in the dialog box (defaults to the + current buffer's `default-directory). +:title + The title of the dialog box (defaults to \"Open\"). + +--------------------------------------------------------------------------- + For type `print': This invokes the Windows standard Print dialog. diff --text -u 'xemacs-21.5.3/lisp/faces.el' 'xemacs-21.5.4/lisp/faces.el' Index: ././lisp/faces.el --- ././lisp/faces.el Sat May 5 07:42:01 2001 +++ ././lisp/faces.el Sun Dec 23 10:01:46 2001 @@ -847,10 +847,21 @@ (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)) @@ -986,6 +997,27 @@ (face-property-instance unfrobbed-face 'font domain)) (set-face-property face 'font (vector frobbed-face) the-locale tags))))))) +;; WE DEMAND FOUNDRY FROBBING! + +;; Family frobbing +;; Thx Jan Vroonhof, Ref xemacs-beta <87oflypbum.fsf@petteflet.ntlworld.com> +;; Brainlessly derived from make-face-size by Stephen; don't blame Jan. +;; I'm long since flown to Rio, it does you little good to blame me, either. +(defun make-face-family (face family &optional locale tags) + "Set FACE's family to FAMILY in LOCALE, if possible. + +Add/replace settings specified by TAGS only." + (frob-face-property face 'font + ;; uses dynamic scope of family + #'(lambda (f d) + ;; keep the dependency on font.el for now + (let ((fo (font-create-object (font-instance-name f) + d))) + (set-font-family fo family) + (font-create-name fo d))) + nil locale tags)) + +;; Style (ie, typographical face) frobbing (defun make-face-bold (face &optional locale tags) "Make FACE bold in LOCALE, if possible. This will attempt to make the font bold for X/MSW locales and will set the @@ -1169,6 +1201,23 @@ ([bold-italic] . [bold])))) +;; Size frobbing +;; Thx Jan Vroonhof, Ref xemacs-beta <87oflypbum.fsf@petteflet.ntlworld.com> +;; Jan had a separate helper function +(defun make-face-size (face size &optional locale tags) + "Adjust FACE to SIZE in LOCALE, if possible. + +Add/replace settings specified by TAGS only." + (frob-face-property face 'font + ;; uses dynamic scope of size + #'(lambda (f d) + ;; keep the dependency on font.el for now + (let ((fo (font-create-object (font-instance-name f) + d))) + (set-font-size fo size) + (font-create-name fo d))) + nil locale tags)) + ;; Why do the following two functions lose so badly in so many ;; circumstances? @@ -1579,10 +1628,12 @@ (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 @@ -1592,14 +1643,14 @@ 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 @@ -1761,96 +1812,62 @@ ;; the first non-stream device. (set-face-background 'text-cursor - '(((x default) . "Red3") - ((mswindows default) . "Red3")) + '(((win default) . "Red3")) 'global) ;; some older X servers don't recognize "darkseagreen2" (set-face-background 'highlight - '(((x default color) . "darkseagreen2") - ((x default color) . "green") - ((x default grayscale) . "gray53") - ((mswindows default color) . "darkseagreen2") - ((mswindows default color) . "green") - ((mswindows default grayscale) . "gray53")) + '(((win default color) . "darkseagreen2") + ((win default color) . "green") + ((win default grayscale) . "gray53")) 'global) (set-face-background-pixmap 'highlight - '(((x default mono) . "gray1") -;; ((gtk default mono) . "gray1") - ((mswindows default mono) . "gray1")) + '(((win default mono) . "gray1")) 'global) (set-face-background 'zmacs-region - '(((x default color) . "gray65") - ((x default grayscale) . "gray65") - ((mswindows default color) . "gray65") - ((mswindows default grayscale) . "gray65")) + '(((win default color) . "gray65") + ((win default grayscale) . "gray65")) 'global) (set-face-background-pixmap 'zmacs-region - '(((x default mono) . "gray3") -;; ((gtk default mono) . "gray3") - ((mswindows default mono) . "gray3")) + '(((win default mono) . "gray3")) 'global) (set-face-background 'list-mode-item-selected - '(((x default color) . "gray68") - ((x default grayscale) . "gray68") - ((x default mono) . [default foreground]) -;; ((gtk default color) . "gray68") -;; ((gtk default grayscale) . "gray68") -;; ((gtk default mono) . [default foreground]) - ((mswindows default color) . "gray68") - ((mswindows default grayscale) . "gray68") - ((mswindows default mono) . [default foreground])) + '(((win default color) . "gray68") + ((win default grayscale) . "gray68") + ((win default mono) . [default foreground])) 'global) (set-face-foreground 'list-mode-item-selected - '(((x default mono) . [default background]) - ((mswindows default mono) . [default background])) + '(((win default mono) . [default background])) 'global) (set-face-background 'primary-selection - '(((x default color) . "gray65") - ((x default grayscale) . "gray65") - ((mswindows default color) . "gray65") - ((mswindows default grayscale) . "gray65")) + '(((win default color) . "gray65") + ((win default grayscale) . "gray65")) 'global) (set-face-background-pixmap 'primary-selection - '(((x default mono) . "gray3") - ;;((gtk default mono) . "gray3") - ((mswindows default mono) . "gray3")) + '(((win default mono) . "gray3")) 'global) (set-face-background 'secondary-selection - '(((x default color) . "paleturquoise") - ((x default color) . "green") - ((x default grayscale) . "gray53") - ;;((gtk default color) . "paleturquoise") - ;;((gtk default color) . "green") - ;;((gtk default grayscale) . "gray53") - ((mswindows default color) . "paleturquoise") - ((mswindows default color) . "green") - ((mswindows default grayscale) . "gray53")) + '(((win default color) . "paleturquoise") + ((win default color) . "green") + ((win default grayscale) . "gray53")) 'global) (set-face-background-pixmap 'secondary-selection - '(((x default mono) . "gray1") - ;;((gtk default mono) . "gray1") - ((mswindows default mono) . "gray1")) + '(((win default mono) . "gray1")) 'global) (set-face-background 'isearch - '(((x default color) . "paleturquoise") - ((x default color) . "green") - ;;((gtk default color) . "paleturquoise") - ;;((gtk default color) . "green") - ((mswindows default color) . "paleturquoise") - ((mswindows default color) . "green")) + '(((win default color) . "paleturquoise") + ((win default color) . "green")) 'global) ;; #### This should really, I mean *really*, be converted to some form ;; of `defface' one day. (set-face-foreground 'isearch-secondary - '(((x default color) . "red3") - ((mswindows default color) . "red3")) + '(((win default color) . "red3")) 'global) ;; Define some logical color names to be used when reading the pixmap files. diff --text -u 'xemacs-21.5.3/lisp/files.el' 'xemacs-21.5.4/lisp/files.el' Index: ././lisp/files.el --- ././lisp/files.el Sun Jun 10 19:42:23 2001 +++ ././lisp/files.el Wed Dec 5 21:29:17 2001 @@ -1193,7 +1193,7 @@ ("\\.m?spec$" .sh-mode) ;; The following come after the ChangeLog pattern for the sake of ;; ChangeLog.1, etc. and after the .scm.[0-9] pattern too. - ("\\.[12345678]\\'" . nroff-mode) + ("\\.[123456789]\\'" . nroff-mode) ("\\.[tT]e[xX]\\'" . tex-mode) ("\\.\\(?:sty\\|cls\\|bbl\\)\\'" . latex-mode) ("\\.bib\\'" . bibtex-mode) @@ -1224,7 +1224,7 @@ ;; Windows syntax. ("[/\\][._].*emacs\\'" . emacs-lisp-mode) ("\\.m4\\'" . autoconf-mode) - ("configure\\.in\\'" . autoconf-mode) + ("configure\\.\\(in\\|ac\\)\\'" . autoconf-mode) ("\\.ml\\'" . lisp-mode) ("\\.ma?ke?\\'" . makefile-mode) ("[Mm]akefile\\(\\.\\|\\'\\)" . makefile-mode) diff --text -u 'xemacs-21.5.3/lisp/find-paths.el' 'xemacs-21.5.4/lisp/find-paths.el' Index: ././lisp/find-paths.el --- ././lisp/find-paths.el Sat May 12 20:16:18 2001 +++ ././lisp/find-paths.el Thu Dec 6 18:35:50 2001 @@ -104,7 +104,7 @@ ;; installed (paths-file-readable-directory-p (paths-construct-path (list directory "lib" - emacs-program-name))) + (construct-emacs-version-name)))) ;; in-place or windows-nt (and (paths-file-readable-directory-p (paths-construct-path (list directory "lisp"))) diff --text -u 'xemacs-21.5.3/lisp/font-lock.el' 'xemacs-21.5.4/lisp/font-lock.el' Index: ././lisp/font-lock.el --- ././lisp/font-lock.el Thu May 24 20:01:54 2001 +++ ././lisp/font-lock.el Fri Dec 14 11:20:53 2001 @@ -2,7 +2,7 @@ ;; Copyright (C) 1992-1995, 1997 Free Software Foundation, Inc. ;; Copyright (C) 1995 Amdahl Corporation. -;; Copyright (C) 1996, 2000 Ben Wing. +;; Copyright (C) 1996, 2000, 2001 Ben Wing. ;; Author: Jamie Zawinski , for the LISPM Preservation Society. ;; Minimally merged with FSF 19.34 by Barry Warsaw @@ -319,6 +319,14 @@ string text when fontifying." :type 'boolean :group 'font-lock) + +;;;###autoload +(defcustom font-lock-mode-line-string " Font" + "*String to display in the modeline when Font Lock mode is active. +Set this to nil if you don't want a modeline indicator." + :type '(choice string + (const :tag "none" nil)) + :group 'font-lock) ;; Fontification variables: @@ -1203,10 +1211,15 @@ (defun font-lock-after-change-function (beg end old-len) (when font-lock-mode ;; treat deletions as if the following character (or previous, if - ;; there is no following) were inserted. this is a bit of a hack + ;; there is no following) were inserted. (also use the previous + ;; character at end of line. this avoids a problem when you + ;; insert a comment on the line before a line of code: if we use + ;; the following char, then when you hit backspace, the following + ;; line of code turns the comment color.) this is a bit of a hack ;; but allows us to use text properties for everything. (if (= beg end) - (cond ((/= end (point-max)) (setq end (1+ end))) + (cond ((not (save-excursion (goto-char end) (eolp))) + (setq end (1+ end))) ((/= beg (point-min)) (setq beg (1- beg))) (t nil))) (put-text-property beg end 'font-lock-pending t) @@ -2750,7 +2763,7 @@ (add-hook 'find-file-hooks 'font-lock-set-defaults t) ;;;###autoload -(add-minor-mode 'font-lock-mode " Font") +(add-minor-mode 'font-lock-mode 'font-lock-mode-line-string) ;; Provide ourselves: diff --text -u 'xemacs-21.5.3/lisp/font.el' 'xemacs-21.5.4/lisp/font.el' Index: ././lisp/font.el --- ././lisp/font.el Tue Jun 5 01:59:53 2001 +++ ././lisp/font.el Thu Dec 20 14:49:30 2001 @@ -110,8 +110,10 @@ (mswindows . (mswindows-font-create-name mswindows-font-create-object)) (pm . (x-font-create-name x-font-create-object)) ; Change? FIXME (tty . (tty-font-create-plist tty-font-create-object))) - "An assoc list mapping device types to the function used to create -a font name from a font structure.") + "An assoc list mapping device types to a list of translations. + +The first function creates a font name from a font descriptor object. +The second performs the reverse translation.") (defconst ns-font-weight-mappings '((:extra-light . "extralight") @@ -148,6 +150,8 @@ (defvar font-maximum-slippage "1pt" "How much a font is allowed to vary from the desired size.") +;; Canonical (internal) sizes are in points. +;; Registry (define-font-keywords :family :style :size :registry :encoding) (define-font-keywords @@ -304,8 +308,16 @@ w2)))) (defun font-spatial-to-canonical (spec &optional device) - "Convert SPEC (in inches, millimeters, points, or picas) into points." - ;; 1 in = 6 pa = 25.4 mm = 72 pt + "Convert SPEC (in inches, millimeters, points, picas, or pixels) into points. + +Canonical sizes are in points. If SPEC is null, nil is returned. If SPEC is +a number, it is interpreted as the desired point size and returned unchanged. +Otherwise SPEC must be a string consisting of a number and an optional type. +The type may be the strings \"px\", \"pix\", or \"pixel\" (pixels), \"pt\" or +\"point\" (points), \"pa\" or \"pica\" (picas), \"in\" or \"inch\" (inches), \"cm\" +(centimeters), or \"mm\" (millimeters). + +1 in = 2.54 cm = 6 pa = 25.4 mm = 72 pt. Pixel size is device-dependent." (cond ((numberp spec) spec) @@ -320,6 +332,8 @@ (mm-width (float (or (device-mm-width device) 293))) (retval nil)) (cond + ;; the following string-match is broken, there will never be a + ;; left operand detected ((string-match "^ *\\([-+*/]\\) *" spec) ; math! whee! (let ((math-func (intern (match-string 1 spec))) (other (font-spatial-to-canonical @@ -379,12 +393,14 @@ (plist-get args :encoding))) (defun font-create-name (fontobj &optional device) + "Return a font name constructed from FONTOBJ, appropriate for DEVICE." (let* ((type (device-type device)) (func (car (cdr-safe (assq type font-window-system-mappings))))) (and func (fboundp func) (funcall func fontobj device)))) ;;;###autoload (defun font-create-object (fontname &optional device) + "Return a font descriptor object for FONTNAME, appropriate for DEVICE." (let* ((type (device-type device)) (func (car (cdr (cdr-safe (assq type font-window-system-mappings)))))) (and func (fboundp func) (funcall func fontname device)))) @@ -437,9 +453,11 @@ ;;; The window-system dependent code (TTY-style) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun tty-font-create-object (fontname &optional device) + "Return a font descriptor object for FONTNAME, appropriate for TTY devices." (make-font :size "12pt")) (defun tty-font-create-plist (fontobj &optional device) + "Return a font name constructed from FONTOBJ, appropriate for TTY devices." (list (cons 'underline (font-underline-p fontobj)) (cons 'highlight (if (or (font-bold-p fontobj) @@ -524,6 +542,7 @@ "A list of font family mappings on X devices.") (defun x-font-create-object (fontname &optional device) + "Return a font descriptor object for FONTNAME, appropriate for X devices." (let ((case-fold-search t)) (if (or (not (stringp fontname)) (not (string-match font-x-font-regexp fontname))) @@ -626,6 +645,7 @@ (font-size (font-default-object-for-device (or device (selected-device))))) (defun x-font-create-name (fontobj &optional device) + "Return a font name constructed from FONTOBJ, appropriate for X devices." (if (and (not (or (font-family fontobj) (font-weight fontobj) (font-size fontobj) @@ -717,6 +737,7 @@ (sort (font-unique (nconc scaled normal)) 'string-lessp)))))) (defun ns-font-create-name (fontobj &optional device) + "Return a font name constructed from FONTOBJ, appropriate for NextSTEP devices." (let ((family (or (font-family fontobj) (ns-font-families-for-device device))) (weight (or (font-weight fontobj) :medium)) @@ -815,6 +836,7 @@ "A list of font family mappings on mswindows devices.") (defun mswindows-font-create-object (fontname &optional device) + "Return a font descriptor object for FONTNAME, appropriate for MS Windows devices." (let ((case-fold-search t) (font (mswindows-font-canonicalize-name fontname))) (if (or (not (stringp font)) @@ -853,6 +875,7 @@ retval)))) (defun mswindows-font-create-name (fontobj &optional device) + "Return a font name constructed from FONTOBJ, appropriate for MS Windows devices." (if (and (not (or (font-family fontobj) (font-weight fontobj) (font-size fontobj) diff --text -u 'xemacs-21.5.3/lisp/gnuserv.el' 'xemacs-21.5.4/lisp/gnuserv.el' Index: ././lisp/gnuserv.el --- ././lisp/gnuserv.el Fri Apr 13 03:21:21 2001 +++ ././lisp/gnuserv.el Sat Dec 22 16:20:58 2001 @@ -89,6 +89,14 @@ :group 'processes :group 'terminals) +;;;###autoload +(defcustom gnuserv-mode-line-string " Server" + "*String to display in the modeline when Gnuserv is active. +Set this to nil if you don't want a modeline indicator." + :type '(choice string + (const :tag "none" nil)) + :group 'gnuserv) + ;; Provide the old variables as aliases, to avoid breaking .emacs ;; files. However, they are obsolete and should be converted to the @@ -261,9 +269,10 @@ ;; We want the client-infested buffers to have some modeline ;; identification, so we'll make a "minor mode". (defvar gnuserv-minor-mode nil) -(make-variable-buffer-local 'gnuserv-mode) -(pushnew '(gnuserv-minor-mode " Server") minor-mode-alist - :test 'equal) +(make-variable-buffer-local 'gnuserv-minor-mode) +;;(pushnew '(gnuserv-minor-mode "Server") minor-mode-alist +;; :test 'equal) +(add-minor-mode 'gnuserv-minor-mode 'gnuserv-mode-line-string) ;; Sample gnuserv-frame functions diff --text -u 'xemacs-21.5.3/lisp/gtk-faces.el' 'xemacs-21.5.4/lisp/gtk-faces.el' Index: ././lisp/gtk-faces.el --- ././lisp/gtk-faces.el Sat May 5 07:42:04 2001 +++ ././lisp/gtk-faces.el Sun Dec 23 10:01:46 2001 @@ -42,14 +42,10 @@ gtk-font-selection-dialog-cancel-button gtk-widget-show-all gtk-main)) -(defun gtk-init-find-device () - (let ((dev nil) - (devices (device-list))) - (while (and (not dev) devices) - (if (eq (device-type (car devices)) 'gtk) - (setq dev (car devices))) - (setq devices (cdr devices))) - dev)) +(eval-when-compile + (defmacro gtk-style-munge-face (face attribute value) + (let ((func (intern (format "face-%s" (eval attribute))))) + `(add-spec-to-specifier (,func ,face) ,value nil '(gtk default) 'prepend)))) ;;; gtk-init-device-faces is responsible for initializing default ;;; values for faces on a newly created device. @@ -58,29 +54,30 @@ ;; ;; If the "default" face didn't have a font specified, try to pick one. ;; - (if (not (eq (device-type device) 'gtk)) - nil - (gtk-init-pointers) - '(let* ((style (gtk-style-info device)) - ;;(normal 0) ; GTK_STATE_NORMAL + (when (eq (device-type device) 'gtk) + (let* ((style (gtk-style-info device)) + (normal 0) ; GTK_STATE_NORMAL ;;(active 1) ; GTK_STATE_ACTIVE (prelight 2) ; GTK_STATE_PRELIGHT (selected 3) ; GTK_STATE_SELECTED ;;(insensitive 4) ; GTK_STATE_INSENSITIVE ) - (set-face-foreground 'highlight - (nth prelight (plist-get style 'text)) - device) - (set-face-background 'highlight - (nth prelight (plist-get style 'background)) - device) - (set-face-foreground 'zmacs-region - (nth selected (plist-get style 'text)) - device) - (set-face-background 'zmacs-region - (nth selected (plist-get style 'background)) - device)) - (set-face-background 'text-cursor "red3" device))) + (gtk-style-munge-face 'highlight 'foreground + (nth prelight (plist-get style 'text))) + (gtk-style-munge-face 'highlight 'background + (nth prelight (plist-get style 'background))) + (gtk-style-munge-face 'zmacs-region 'foreground + (nth selected (plist-get style 'text))) + (gtk-style-munge-face 'zmacs-region 'background + (nth selected (plist-get style 'background))) + (gtk-style-munge-face 'toolbar 'background + (nth normal (plist-get style 'base))) + (gtk-style-munge-face 'toolbar 'foreground + (nth normal (plist-get style 'text))) + (set-face-background 'modeline [toolbar background] '(gtk default)) + (set-face-foreground 'modeline [toolbar foreground] '(gtk default)) + ) + (gtk-init-pointers))) ;;; This is called from `init-frame-faces', which is called from ;;; init_frame_faces() which is called from Fmake_frame(), to perform @@ -94,9 +91,9 @@ ;;; specified. ;;; (defun gtk-init-global-faces () - (let* ((dev (gtk-init-find-device)) + (let* ((dev nil) (default-font (or (face-font 'default 'global) - ;(plist-get (gtk-style-info dev) 'font) + ;;(plist-get (gtk-style-info dev) 'font) "-*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*")) (italic-font (or (gtk-make-font-italic default-font dev) default-font)) (bold-font (or (gtk-make-font-bold default-font dev) default-font)) diff --text -u 'xemacs-21.5.3/lisp/gui.el' 'xemacs-21.5.4/lisp/gui.el' Index: ././lisp/gui.el --- ././lisp/gui.el Fri Apr 13 03:21:26 2001 +++ ././lisp/gui.el Sun Dec 23 10:01:46 2001 @@ -89,10 +89,8 @@ (if (not (face-differs-from-default-p 'gui-button-face)) (progn (set-face-reverse-p 'gui-button-face t) - (set-face-background 'gui-button-face '(((x color) . "grey75") - ((mswindows color) . "grey75"))) - (set-face-foreground 'gui-button-face '(((x color) . "black") - ((mswindows color) . "black"))))) + (set-face-background 'gui-button-face '(((win color) . "grey75"))) + (set-face-foreground 'gui-button-face '(((win color) . "black"))))) (defun gui-button-action (instance action user-data) diff --text -u 'xemacs-21.5.3/lisp/hyper-apropos.el' 'xemacs-21.5.4/lisp/hyper-apropos.el' Index: ././lisp/hyper-apropos.el --- ././lisp/hyper-apropos.el Sat May 5 07:42:07 2001 +++ ././lisp/hyper-apropos.el Fri Dec 28 10:38:42 2001 @@ -174,6 +174,7 @@ (define-key map "l" 'hyper-apropos-last-help) (define-key map "c" 'hyper-apropos-customize-variable) (define-key map "f" 'hyper-apropos-find-function) + (define-key map "v" 'hyper-apropos-find-variable) (define-key map [button2] 'hyper-apropos-mouse-get-doc) (define-key map [button3] 'hyper-apropos-popup-menu) ;; for the totally hardcore... @@ -1232,6 +1233,17 @@ (list fn))) (if fn (find-function-other-window fn))) + +(defun hyper-apropos-find-variable (fn) + "Find the variable for the symbol on the current line in other +window. (See also `find-variable'.)" + (interactive + (let ((fn (hyper-apropos-this-symbol))) + (or (boundp fn) + (setq fn nil)) + (list fn))) + (if fn + (find-variable-other-window fn))) ;; ---------------------------------------------------------------------- ;; diff --text -u 'xemacs-21.5.3/lisp/info.el' 'xemacs-21.5.4/lisp/info.el' Index: ././lisp/info.el --- ././lisp/info.el Mon May 21 06:36:07 2001 +++ ././lisp/info.el Sat Jan 5 04:53:34 2002 @@ -395,7 +395,7 @@ :type '(repeat directory) :group 'info) -(defcustom Info-auto-generate-directory 'if-missing +(defcustom Info-auto-generate-directory 'if-outdated "*When to auto generate an info directory listing. Possible values are: nil or `never' never auto-generate a directory listing, diff --text -u 'xemacs-21.5.3/lisp/isearch-mode.el' 'xemacs-21.5.4/lisp/isearch-mode.el' Index: ././lisp/isearch-mode.el --- ././lisp/isearch-mode.el Sat May 5 07:42:08 2001 +++ ././lisp/isearch-mode.el Sat Dec 22 16:20:58 2001 @@ -225,6 +225,13 @@ :type 'boolean :group 'isearch) +(defcustom isearch-mode-line-string " Isearch" + "*String to display in the modeline when `isearch-mode' is active. +Set this to nil if you don't want a modeline indicator." + :type '(choice string + (const :tag "none" nil)) + :group 'isearch) + ;;;==================================================== ;;; Define isearch-mode keymap. @@ -384,7 +391,7 @@ ;; Minor-mode-alist changes - kind of redundant with the ;; echo area, but if isearching in multiple windows, it can be useful. -(add-minor-mode 'isearch-mode 'isearch-mode) +(add-minor-mode 'isearch-mode 'isearch-mode-line-string) (defvar isearch-mode nil) ;; Name of the minor mode, if non-nil. (make-variable-buffer-local 'isearch-mode) diff --text -u 'xemacs-21.5.3/lisp/keydefs.el' 'xemacs-21.5.4/lisp/keydefs.el' Index: ././lisp/keydefs.el --- ././lisp/keydefs.el Fri Jun 22 10:49:59 2001 +++ ././lisp/keydefs.el Thu Dec 27 08:57:56 2001 @@ -19,7 +19,7 @@ ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with XEmacs; see the file COPYING. If not, write to the +;; along with XEmacs; see the file COPYING. If not, write to the ;; Free Software Foundation, 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. @@ -150,6 +150,8 @@ (define-key global-map "\C-x52" 'make-frame) (define-key global-map "\C-x50" 'delete-frame) (define-key global-map "\C-x5o" 'other-frame) +;; New FSF21 binding: +(define-key global-map "\C-x51" 'delete-other-frames) ;; FSFmacs help.el @@ -340,6 +342,7 @@ (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) @@ -511,7 +514,7 @@ ;; expected behavior even in, for example, vi-mode. ;; We use here symbolic names, assuming that the corresponding keys will -;; generate these keysyms. This is not true on Suns, but x-win-sun.el +;; generate these keysyms. This is not true on Suns, but x-win-sun.el ;; fixes that. If it turns out that the semantics of these keys should ;; differ from server to server, this should be moved into server-specific ;; files, but these appear to be the standard Motif and PC bindings. diff --text -u 'xemacs-21.5.3/lisp/menubar-items.el' 'xemacs-21.5.4/lisp/menubar-items.el' Index: ././lisp/menubar-items.el --- ././lisp/menubar-items.el Mon Aug 6 13:40:54 2001 +++ ././lisp/menubar-items.el Fri Nov 30 03:39:21 2001 @@ -54,12 +54,18 @@ ;;; Code: -(defun Menubar-items-truncate-list (list n) +(defun Menubar-items-truncate-history (list count label-length) + "Truncate a history LIST to first COUNT items. +Return a list of (label value) lists with labels truncated to last +LABEL-LENGTH characters of value." (mapcar #'(lambda (x) - (if (<= (length x) 50) x (concat "..." (substring x -50)))) - (if (<= (length list) n) + (if (<= (length x) label-length) + (list x x) + (list + (concat "..." (substring x (- label-length))) x))) + (if (<= (length list) count) list - (butlast list (- (length list) n))))) + (butlast list (- (length list) count))))) (defun submenu-generate-accelerator-spec (list &optional omit-chars-list) "Add auto-generated accelerator specifications to a submenu. @@ -447,10 +453,11 @@ menu (let ((items (submenu-generate-accelerator-spec - (mapcar #'(lambda (string) - (vector string - (list 'grep string))) - (Menubar-items-truncate-list grep-history 10))))) + (mapcar #'(lambda (label-value) + (vector (first label-value) + (list 'grep (second label-value)))) + (Menubar-items-truncate-history + grep-history 10 50))))) (append menu '("---") items)))) ["%_Grep..." grep :active (fboundp 'grep)] ["%_Kill Grep" kill-compilation @@ -555,10 +562,11 @@ menu (let ((items (submenu-generate-accelerator-spec - (mapcar #'(lambda (string) - (vector string - (list 'compile string))) - (Menubar-items-truncate-list compile-history 10))))) + (mapcar #'(lambda (label-value) + (vector (first label-value) + (list 'compile (second label-value)))) + (Menubar-items-truncate-history + compile-history 10 50))))) (append menu '("---") items)))) ["%_Compile..." compile :active (fboundp 'compile)] ["%_Repeat Compilation" recompile :active (fboundp 'recompile)] diff --text -u 'xemacs-21.5.3/lisp/menubar.el' 'xemacs-21.5.4/lisp/menubar.el' Index: ././lisp/menubar.el --- ././lisp/menubar.el Sat May 5 07:42:10 2001 +++ ././lisp/menubar.el Thu Dec 20 14:49:31 2001 @@ -671,6 +671,10 @@ 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 @@ (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 --text -u 'xemacs-21.5.3/lisp/minibuf.el' 'xemacs-21.5.4/lisp/minibuf.el' Index: ././lisp/minibuf.el --- ././lisp/minibuf.el Sun May 6 17:33:36 2001 +++ ././lisp/minibuf.el Tue Oct 30 14:13:27 2001 @@ -1664,22 +1664,22 @@ :activate-callback 'read-file-name-activate-callback) (goto-char (point-min) completion-buf))))) -(defun read-file-name-1 (history prompt dir default - must-match initial-contents - completer) +(defun read-file-name-1 (type history prompt dir default + must-match initial-contents + completer) (if (should-use-dialog-box-p) (condition-case nil (let ((file (apply #'make-dialog-box - 'file `(:title ,(capitalize-string-as-title - ;; Kludge: Delete ": " off the end. - (replace-in-string prompt ": $" "")) - ,@(and dir (list :initial-directory - dir)) - :file-must-exist ,must-match - ,@(and initial-contents - (list :initial-filename - initial-contents)))))) + type `(:title ,(capitalize-string-as-title + ;; Kludge: Delete ": " off the end. + (replace-in-string prompt ": $" "")) + ,@(and dir (list :initial-directory + dir)) + :file-must-exist ,must-match + ,@(and initial-contents + (list :initial-filename + initial-contents)))))) ;; hack -- until we implement reading a directory properly, ;; allow a file as indicating the directory it's in (if (and (eq completer 'read-directory-name-internal) @@ -1730,8 +1730,8 @@ Sixth arg HISTORY specifies the history list to use. Default is `file-name-history'. DIR defaults to current buffer's directory default." - (read-file-name-1 - (or history 'file-name-history) + (read-file-name-1 + 'file (or history 'file-name-history) prompt dir (or default (and initial-contents (abbreviate-file-name (expand-file-name @@ -1761,9 +1761,9 @@ `file-name-history'. DIR defaults to current buffer's directory default." (read-file-name-1 - (or history 'file-name-history) - prompt dir (or default default-directory) must-match initial-contents - 'read-directory-name-internal)) + 'directory (or history 'file-name-history) + prompt dir (or default default-directory) must-match initial-contents + 'read-directory-name-internal)) ;; Environment-variable and ~username completion hack diff --text -u 'xemacs-21.5.3/lisp/modeline.el' 'xemacs-21.5.4/lisp/modeline.el' Index: ././lisp/modeline.el --- ././lisp/modeline.el Sat May 5 07:42:11 2001 +++ ././lisp/modeline.el Sat Dec 15 20:46:34 2001 @@ -456,18 +456,44 @@ (cons toggle keymap) 'minor-mode-map-alist))))) +(defcustom abbrev-mode-line-string " Abbrev" + "*String to display in the modeline when `abbrev-mode' is active. +Set this to nil if you don't want a modeline indicator." + :type '(choice string + (const :tag "none" nil))) + +(defcustom overwrite-mode-line-string " Ovwrt" + "*String to display in the modeline when `overwrite-mode' is active. +Set this to nil if you don't want a modeline indicator." + :type '(choice string + (const :tag "none" nil))) + +(defcustom auto-fill-mode-line-string " Fill" + "*String to display in the modeline when `auto-fill-mode' is active. +Set this to nil if you don't want a modeline indicator." + :type '(choice string + (const :tag "none" nil))) + +(defcustom defining-kbd-macro-mode-line-string " Def" + "*String to display in the modeline when `defining-kbd-macro' is active. +Set this to nil if you don't want a modeline indicator." + :type '(choice string + (const :tag "none" nil))) + ;; #### TODO: Add `:menu-tag' keyword to add-minor-mode. Or create a ;; separate function to manage the minor mode menu. ;(put 'abbrev-mode :menu-tag "Abbreviation Expansion") -(add-minor-mode 'abbrev-mode " Abbrev") +(add-minor-mode 'abbrev-mode 'abbrev-mode-line-string) ;; only when visiting a file... -(add-minor-mode 'overwrite-mode 'overwrite-mode) +(add-minor-mode 'overwrite-mode 'overwrite-mode-line-string) ;(put 'auto-fill-function :menu-tag "Auto Fill") -(add-minor-mode 'auto-fill-function " Fill" nil nil 'auto-fill-mode) +(add-minor-mode 'auto-fill-function 'auto-fill-mode-line-string + nil nil 'auto-fill-mode) ;(put 'defining-kbd-macro :menu-tag "Keyboard Macro") -(add-minor-mode 'defining-kbd-macro " Def" nil nil +(add-minor-mode 'defining-kbd-macro 'defining-kbd-macro-mode-line-string + nil nil (lambda () (interactive) (if defining-kbd-macro diff --text -u 'xemacs-21.5.3/lisp/obsolete.el' 'xemacs-21.5.4/lisp/obsolete.el' Index: ././lisp/obsolete.el --- ././lisp/obsolete.el Fri Apr 13 03:21:32 2001 +++ ././lisp/obsolete.el Fri Dec 28 10:38:42 2001 @@ -257,6 +257,9 @@ (make-obsolete-variable 'executing-macro 'executing-kbd-macro) +(define-compatible-function-alias 'interactive-form + 'function-interactive) ;FSFmacs 21.1 + ;;;;;;;;;;;;;;;;;;;;;;;;;;;; modeline (define-compatible-function-alias 'redraw-mode-line 'redraw-modeline) diff --text -u 'xemacs-21.5.3/lisp/package-get.el' 'xemacs-21.5.4/lisp/package-get.el' Index: ././lisp/package-get.el --- ././lisp/package-get.el Sun Jul 15 17:18:59 2001 +++ ././lisp/package-get.el Thu Dec 20 14:49:31 2001 @@ -252,7 +252,7 @@ ;; #### it may make sense for this to be a list of names. ;; #### also, should we rename "*base*" to "*index*" or "*db*"? ;; "base" is a pretty poor name. -(defcustom package-get-base-filename "package-index.LATEST.pgp" +(defcustom package-get-base-filename "package-index.LATEST.gpg" "*Name of the default package-get database file. This may either be a relative path, in which case it is interpreted with respect to `package-get-remote', or an absolute path." @@ -272,10 +272,16 @@ (defcustom package-get-require-signed-base-updates nil "*If set to a non-nil value, require explicit user confirmation for updates to the package-get database which cannot have their signature verified via PGP. -When nil, updates which are not PGP signed are allowed without confirmation." +When nil, no PGP verification will be done." :type 'boolean :group 'package-get) +(defvar package-entries-are-signed nil + "Non-nil when the package index file has been PGP signed.") + +(defvar package-get-continue-update-base nil + "Non-nil update the index even if it hasn't been signed.") + (defvar package-get-was-current nil "Non-nil we did our best to fetch a current database.") @@ -359,7 +365,9 @@ is non-nil." (or (package-get-locate-file package-get-base-filename t no-remote) (if (file-exists-p package-get-user-index-filename) - package-get-user-index-filename))) + package-get-user-index-filename) + (locate-data-file package-get-base-filename) + (error "Can't locate a package index file."))) (defun package-get-maybe-save-index (filename) "Offer to save the current buffer as the local package index file, @@ -424,39 +432,37 @@ (setq beg (match-beginning 0)) (setq content-beg (match-end 0))) (when (re-search-forward package-get-pgp-signature-begin-line nil t) - (setq content-end (match-beginning 0))) + (setq content-end (match-beginning 0)) + (setq package-entries-are-signed t)) (when (re-search-forward package-get-pgp-signature-end-line nil t) (setq end (point))) - (if (not (and content-beg content-end beg end)) - (or (not package-get-require-signed-base-updates) - (yes-or-no-p "Package-get entries not PGP signed, continue? ") - (error "Package-get database not updated"))) - (if (and content-beg content-end beg end) - (if (not (condition-case nil - (or (fboundp 'mc-pgp-verify-region) - (load-library "mc-pgp") - (fboundp 'mc-pgp-verify-region)) - (error nil))) - (or (not package-get-require-signed-base-updates) - (yes-or-no-p - "No mailcrypt; can't verify package-get DB signature, continue? ") - (error "Package-get database not updated")))) - (if (and beg end - (fboundp 'mc-pgp-verify-region) - (or (not - (condition-case err - (declare-fboundp (mc-pgp-verify-region beg end)) - (file-error - (and (string-match "No such file" (nth 2 err)) - (or (not package-get-require-signed-base-updates) - (yes-or-no-p - (concat "Can't find PGP, continue without " - "package-get DB verification? "))))) - (t nil))))) - (error "Package-get PGP signature failed to verify")) + (setq package-get-continue-update-base t) + (if package-get-require-signed-base-updates + (if package-entries-are-signed + (progn + (setq package-get-continue-update-base nil) + (autoload 'mc-setversion "mc-setversion") + (or + (cond ((locate-file "gpg" exec-path exec-suffix-list) + (mc-setversion "gpg")) + ((locate-file "pgpe" exec-path exec-suffix-list) + (mc-setversion "5.0")) + ((locate-file "pgp" exec-path exec-suffix-list) + (mc-setversion "2.6"))) + (error "Can't find a suitable pgp executable")) + (autoload 'mc-verify "mc-toplev") + (mc-verify) + (setq package-get-continue-update-base t)) + (if (yes-or-no-p + "Package Index is not PGP signed. Continue anyway? ") + (setq package-get-continue-update-base t) + (error "Package database not updated") + (setq package-get-continue-update-base nil)))) ;; ToDo: We should call package-get-maybe-save-index on the region - (package-get-update-base-entries content-beg content-end) - (message "Updated package-get database")))) + (if package-get-continue-update-base + (progn + (package-get-update-base-entries content-beg content-end) + (message "Updated package-get database")))))) (defun package-get-update-base-entries (start end) "Update the package-get database with the entries found between @@ -565,7 +571,8 @@ (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 --text -u 'xemacs-21.5.3/lisp/package-net.el' 'xemacs-21.5.4/lisp/package-net.el' Index: ././lisp/package-net.el --- ././lisp/package-net.el Fri Apr 13 03:21:33 2001 +++ ././lisp/package-net.el Thu Dec 20 14:49:31 2001 @@ -55,32 +55,9 @@ ;; ;; 3. For package releases that's all you need to do. For binary ;; releases you need to build both cygwin and win32 binaries and put -;; them in appropriate tarballs: +;; them in appropriate tarballs: This can be achieved by running +;; build-msw-release.sh ;; -;; For cygwin, configure, make and install and then do (this is for -;; 21.1.13): -;; -;; cd -;; tar cvzf xemacs-i686-pc-cygwin32-21.1.13.tar.gz \ -;; ./bin/i686-pc-cygwin32 ./lib/xemacs-21.1.13 \ -;; ./lib/xemacs/lock ./man/man1/xemacs.1 \ -;; ./man/man1/ctags.1 ./man/man1/gnu*.1' -;; -;; Note that the naming of the package is important. Don't be tempted -;; to change the order in any way. -;; -;; For win32 build and install the release and then (again for -;; 21.1.13): -;; -;; cd -;; tar cvzf xemacs-i386-pc-win32-21.1.13.tar.gz ./XEmacs-21.1.13 -;; -;; The binaries should be uploaded to -;; `ftp://ftp.xemacs.org/pub/xemacs/binaries/cygwin32' and -;; `ftp://ftp.xemacs.org/pub/xemacs/binaries/win32' respectively. Take -;; a note of their sizes and set `package-net-cygwin32-binary-size' -;; and `package-net-win32-binary-size' appropriately in this file and -;; then follow step 2. (require 'package-admin) (require 'package-get) @@ -99,86 +76,68 @@ ;; ;; 2. Generating setup.ini should be more automatic. -(defvar package-net-cygwin32-binary-size 6917126 +(defvar package-net-cygwin32-binary-size 0 "The size in bytes of the cygwin32 binary distribution.") -(defvar package-net-win32-binary-size 6563941 +(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.") + ;;;###autoload (defun package-net-setup-directory () (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*"))) +(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*"))) (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: binaries/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: binaries/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 "# 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-i586-pc-win32")) + (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 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%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 package-net-kit-version + ".tar.gz") + package-net-cygwin32-binary-size)) (insert "# setup.ini file ends here\n") - (write-region (point-min) (point-max) (concat destdir "setup.ini"))) - (kill-buffer buf)))) + (write-region (point-min) (point-max) "setup-bin.ini"))) + (kill-buffer buf))) -(defun package-net-batch-convert-index-to-ini () +(defun package-net-batch-generate-bin-ini () "Convert the package index to ini file format." (unless noninteractive - (error "`package-net-batch-convert-index-to-ini' is to be used only with -batch")) - (let ((dir (car command-line-args-left)) - (version (car (cdr command-line-args-left))) - (package-get-require-signed-base-updates nil)) - (package-net-convert-index-to-ini dir nil version))) + (error "`package-net-batch-generate-bin-ini' is to be used only with -batch")) + (package-net-generate-bin-ini package-net-setup-version)) ;;;###autoload (defun package-net-update-installed-db (&optional destdir) diff --text -u 'xemacs-21.5.3/lisp/packages.el' 'xemacs-21.5.4/lisp/packages.el' Index: ././lisp/packages.el --- ././lisp/packages.el Fri Jul 20 11:41:29 2001 +++ ././lisp/packages.el Thu Dec 6 18:35:50 2001 @@ -96,6 +96,10 @@ The third component is a thunk which, if it returns NIL, causes the directory to be ignored." (list + (list (paths-construct-path (list user-init-directory "site-packages")) + 'early #'(lambda () t)) + (list (paths-construct-path (list user-init-directory "infodock-packages")) + 'early #'(lambda () (featurep 'infodock))) (list (paths-construct-path (list user-init-directory "mule-packages")) 'early #'(lambda () (featurep 'mule))) (list (paths-construct-path (list user-init-directory "xemacs-packages")) diff --text -u 'xemacs-21.5.3/lisp/paragraphs.el' 'xemacs-21.5.4/lisp/paragraphs.el' Index: ././lisp/paragraphs.el --- ././lisp/paragraphs.el Fri Apr 13 03:21:34 2001 +++ ././lisp/paragraphs.el Wed Dec 5 13:09:25 2001 @@ -1,6 +1,7 @@ ;;; paragraphs.el --- paragraph and sentence parsing. -;; Copyright (C) 1985, 86, 87, 91, 94, 95, 97 Free Software Foundation, Inc. +;; Copyright (C) 1985, 86, 87, 91, 94, 95, 97, 2001 +;; Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: wp, dumped @@ -292,13 +293,19 @@ (or arg (setq arg 1)) (forward-paragraph (- arg))) -(defun mark-paragraph () +(defun mark-paragraph (&optional arg) "Put point at beginning of this paragraph, mark at end. -The paragraph marked is the one that contains point or follows point." - (interactive) - (forward-paragraph 1) +The paragraph marked is the one that contains point or follows point. +With arg N, puts mark at end of following N paragraphs; +negative arg -N means point is put at end of this paragraph, mark is put +at beginning of this or a previous paragraph." + (interactive "p") + (unless arg (setq arg 1)) + (when (zerop arg) + (error "Cannot mark zero paragraphs")) + (forward-paragraph arg) (push-mark nil t t) - (backward-paragraph 1)) + (backward-paragraph arg)) (defun kill-paragraph (arg) "Kill forward to end of paragraph. diff --text -u 'xemacs-21.5.3/lisp/printer.el' 'xemacs-21.5.4/lisp/printer.el' Index: ././lisp/printer.el --- ././lisp/printer.el Sun May 20 10:17:09 2001 +++ ././lisp/printer.el Fri Dec 28 07:52:26 2001 @@ -310,7 +310,10 @@ ;; 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)) @@ -443,5 +446,5 @@ (setq copies (1- copies))))) ((and (not (eq system-type 'windows-nt)) (fboundp 'lpr-region)) - (lpr-region buffer)) + (lpr-region start end buffer)) (t (error "No print support available")))) diff --text -u 'xemacs-21.5.3/lisp/rect.el' 'xemacs-21.5.4/lisp/rect.el' Index: ././lisp/rect.el --- ././lisp/rect.el Fri Apr 13 03:21:34 2001 +++ ././lisp/rect.el Tue Dec 4 03:02:47 2001 @@ -310,6 +310,7 @@ (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 --text -u 'xemacs-21.5.3/lisp/startup.el' 'xemacs-21.5.4/lisp/startup.el' Index: ././lisp/startup.el --- ././lisp/startup.el Fri Jun 8 21:21:11 2001 +++ ././lisp/startup.el Mon Dec 3 15:49:11 2001 @@ -578,8 +578,8 @@ ;; This buffer is for notes you don't want to save, and for Lisp evaluation. ;; If you want to create a file, first visit that file with C-x C-f, ;; then enter the text in that file's own buffer. (C-x is the standard -;; XEmacs abbreviation for `Control+X', i.e. hold down the Control key -;; while hitting the X key.) +;; XEmacs abbreviation for `Control+x', i.e. hold down the Control key +;; while hitting the x key.) ;; ;; For Lisp evaluation, type an expression, move to the end and hit C-j. diff --text -u 'xemacs-21.5.3/lisp/toolbar-items.el' 'xemacs-21.5.4/lisp/toolbar-items.el' Index: ././lisp/toolbar-items.el --- ././lisp/toolbar-items.el Sat May 5 07:42:15 2001 +++ ././lisp/toolbar-items.el Tue Oct 30 14:13:28 2001 @@ -71,9 +71,9 @@ (function :tag "Other")) :group 'toolbar) -(defun toolbar-dired () - (interactive) - (call-interactively toolbar-dired-function)) +(defun toolbar-dired (dir) + (interactive "DDired directory: ") + (funcall toolbar-dired-function dir)) (defcustom toolbar-save-function 'save-buffer "*Function to call when the save icon is selected." diff --text -u 'xemacs-21.5.3/lisp/view-less.el' 'xemacs-21.5.4/lisp/view-less.el' Index: ././lisp/view-less.el --- ././lisp/view-less.el Fri Apr 13 03:21:38 2001 +++ ././lisp/view-less.el Sat Dec 15 20:46:34 2001 @@ -99,7 +99,16 @@ map )) -(add-minor-mode 'view-minor-mode " View" view-minor-mode-map) +;;;###autoload +(defcustom view-mode-line-string " View" + "*String to display in the modeline when View mode is active. +Set this to nil if you don't want a modeline indicator." + :type '(choice string + (const :tag "none" nil))) + +(add-minor-mode 'view-minor-mode + 'view-mode-line-string + view-minor-mode-map) ;;;###autoload (defvar view-mode-map diff --text -u 'xemacs-21.5.3/lisp/wid-edit.el' 'xemacs-21.5.4/lisp/wid-edit.el' Index: ././lisp/wid-edit.el --- ././lisp/wid-edit.el Sun Aug 26 19:25:12 2001 +++ ././lisp/wid-edit.el Sat Jan 5 16:33:20 2002 @@ -202,12 +202,19 @@ (console-on-window-system-p)) ;; Pressed by the mouse. (let ((val (get-popup-menu-response + (let ((menu-thingee (cons title (mapcar (lambda (x) (if (stringp x) (vector x nil nil) - (vector (car x) (list (car x)) t))) - items))))) + (vector (car x) + (list (car x)) ; 'eval 'quote + t))) + items)) + )) + (message "%s" menu-thingee) + menu-thingee) + ))) (setq val (and val (listp (event-object val)) (stringp (car-safe (event-object val))) diff --text -u 'xemacs-21.5.3/lwlib/ChangeLog' 'xemacs-21.5.4/lwlib/ChangeLog' Index: ././lwlib/ChangeLog --- ././lwlib/ChangeLog Fri Sep 7 18:13:26 2001 +++ ././lwlib/ChangeLog Wed Jan 9 01:22:54 2002 @@ -1,3 +1,7 @@ +2002-01-08 Stephen J. Turnbull + + * XEmacs 21.5.4 "bamboo" is released. + 2001-09-07 Stephen J. Turnbull * XEmacs 21.5.3 "asparagus" is released. diff --text -u 'xemacs-21.5.3/man/ChangeLog' 'xemacs-21.5.4/man/ChangeLog' Index: ././man/ChangeLog --- ././man/ChangeLog Fri Sep 7 18:13:26 2001 +++ ././man/ChangeLog Wed Jan 9 01:22:54 2002 @@ -1,3 +1,104 @@ +2002-01-08 Stephen J. Turnbull + + * XEmacs 21.5.4 "bamboo" is released. + +2001-11-15 Darryl Okahata + + * glyphs.texi: + lispref.texi: Add examples of how to insert graphics into a + buffer. + +2002-01-02 Adrian Aichner + + * emodules.texi: Add missing direntry, reword "dynamic loadable" + to "dynamically loadable". + * external-widget.texi: Add missing direntry. + +2001-12-19 Yoshiki Hayashi + + * xemacs/programs.texi: Etags update from Francesco. + +2001-12-18 Valdis.Kletnieks + + * xemacs/programs.texi (Tags): Add node name to Ebrowse + cross reference. + +2001-12-15 Adrian Aichner + + * xemacs\xemacs.texi (Top): Change from @ifinfo to @ifnottex for + the benefit of HTML online docs. + +2001-12-15 Adrian Aichner + + * term.texi: Fix broken settitle. Make @titlepage, @direntry, and + @chapter agree with new title. + +2001-12-15 Stephen J. Turnbull + + * lispref/packaging.texi (The User's View): + Correct description of man subdirectory. + + (The Package Release Engineer's View): + (package-compile.el): + Change hazmat to useful documentation. + + (Issues): + Hazmat removal. + +2001-11-27 Stephen J. Turnbull + + * lispref/packaging.texi: New file. + * lispref/lispref.texi (Top): Add Packaging & subnodes to menus. + Include packaging.texi. + * lispref/intro.texi (Introduction): Next -> Packaging. + * lispref/objects.texi (Lisp Data Types): Previous -> Packaging. + * Makefile (lispref-srcs): Depend on lispref/packaging.texi. + +2001-11-26 Adrian Aichner + + * xemacs-faq.texi (Top): Remove duplicate node "Introduction". + * xemacs-faq.texi (Q7.0.2): Rename changes sections uniquely. + * xemacs-faq.texi (Q7.0.3): Ditto. + +2001-11-26 Adrian Aichner + + * external-widget.texi: Add @settitle to this stand-alone + document. + +2001-11-25 Adrian Aichner + + * Makefile: Add rule to produce html from texi sources (currently + using texi2html). + * Makefile (HTMLDIR): New. + * Makefile (html_files): New. + * Makefile (html): New target. + +2001-09-16 Adrian Aichner + + * xemacs-faq.texi (Q4.0.7): Fix link to VM FAQ thanks to word I + got from Gregory Neil Shapiro. + +2001-09-16 Adrian Aichner + + * xemacs-faq.texi (Q1.3.7): Update moved link. + * xemacs-faq.texi (Q7.0.2): Comment out empty list of bullets to + avoid HTML error in texi2html translation. + +2001-09-15 Adrian Aichner + + * xemacs-faq.texi (Q4.6.1): Infodock is now hosted on SourceForge, + infodock.com is no more. + * xemacs-faq.texi (Q4.7.1): Take auc out of http://sunsite.auc.dk. + +2001-09-15 Adrian Aichner + + * xemacs-faq.texi (Q4.6.1): + +2001-09-09 Adrian Aichner + + * xemacs-faq.texi (Q1.0.9): Correct link to snapshots as suggested + by Robin S. Socha. + 2001-09-07 Stephen J. Turnbull * XEmacs 21.5.3 "asparagus" is released. diff --text -u 'xemacs-21.5.3/man/Makefile' 'xemacs-21.5.4/man/Makefile' Index: ././man/Makefile --- ././man/Makefile Fri Apr 13 03:21:58 2001 +++ ././man/Makefile Fri Dec 14 16:50:06 2001 @@ -22,10 +22,12 @@ SHELL = /bin/sh MAKEINFO = makeinfo TEXI2DVI = texi2dvi +TEXI2HTML = texi2html -verbose -split chapter + RM = rm -f .SUFFIXES: -.SUFFIXES: .info .texi .dvi +.SUFFIXES: .html .info .texi .dvi RECURSIVE_MAKE = $(MAKE) $(MFLAGS) MAKEINFO='$(MAKEINFO)' TEXI2DVI='$(TEXI2DVI)' @@ -34,6 +36,7 @@ # Ughhh! The things we do to have portable makefiles... INFODIR = ../info +HTMLDIR = ../html info_files = \ $(INFODIR)/cl.info \ @@ -52,6 +55,23 @@ $(INFODIR)/xemacs.info \ $(INFODIR)/xemacs-faq.info +html_files = \ + $(HTMLDIR)/cl.html \ + $(HTMLDIR)/custom.html \ + $(HTMLDIR)/emodules.html \ + $(HTMLDIR)/external-widget.html \ + $(HTMLDIR)/info.html \ + $(HTMLDIR)/lispref.html \ + $(HTMLDIR)/internals.html \ + $(HTMLDIR)/new-users-guide.html \ + $(HTMLDIR)/standards.html \ + $(HTMLDIR)/term.html \ + $(HTMLDIR)/termcap.html \ + $(HTMLDIR)/texinfo.html \ + $(HTMLDIR)/widget.html \ + $(HTMLDIR)/xemacs.html \ + $(HTMLDIR)/xemacs-faq.html + dvi_files = \ cl.dvi \ custom.dvi \ @@ -161,6 +181,7 @@ lispref/numbers.texi \ lispref/objects.texi \ lispref/os.texi \ + lispref/packaging.texi \ lispref/positions.texi \ lispref/processes.texi \ lispref/range-tables.texi \ @@ -263,6 +284,7 @@ .PHONY : xemacs lispref internals new-users-guide info dvi info : $(info_files) +html : $(html_files) # tm: FRC.tm # cd ./tm && $(RECURSIVE_MAKE) @@ -299,3 +321,71 @@ realclean: distclean extraclean: distclean $(RM) *~ \#* */*~ */\#* + +############################################################################ + +$(HTMLDIR)/cl.html : cl.texi + $(TEXI2HTML) -subdir $(HTMLDIR) cl.texi + +$(HTMLDIR)/custom.html : custom.texi + $(TEXI2HTML) -subdir $(HTMLDIR) custom.texi + +$(HTMLDIR)/emodules.html : emodules.texi + $(TEXI2HTML) -subdir $(HTMLDIR) emodules.texi + +$(HTMLDIR)/external-widget.html : external-widget.texi + $(TEXI2HTML) -subdir $(HTMLDIR) external-widget.texi + +$(HTMLDIR)/info.html : info.texi + $(TEXI2HTML) -subdir $(HTMLDIR) info.texi + +$(HTMLDIR)/standards.html : standards.texi + $(TEXI2HTML) -subdir $(HTMLDIR) standards.texi + +$(HTMLDIR)/term.html : term.texi + $(TEXI2HTML) -subdir $(HTMLDIR) term.texi + +$(HTMLDIR)/termcap.html : termcap.texi + $(TEXI2HTML) -subdir $(HTMLDIR) termcap.texi + +$(HTMLDIR)/texinfo.html : texinfo.texi + $(TEXI2HTML) -subdir $(HTMLDIR) texinfo.texi + +$(HTMLDIR)/widget.html : widget.texi + $(TEXI2HTML) -subdir $(HTMLDIR) widget.texi + +$(HTMLDIR)/xemacs-faq.html : xemacs-faq.texi + $(TEXI2HTML) -top_file xemacs-faq_1.html -subdir $(HTMLDIR) xemacs-faq.texi + +# Manuals with their own subdirectory +$(HTMLDIR)/xemacs.html : $(xemacs-srcs) + $(TEXI2HTML) -subdir $(HTMLDIR) xemacs/xemacs.texi + +$(HTMLDIR)/lispref.html : $(lispref-srcs) + $(TEXI2HTML) -subdir $(HTMLDIR) lispref/lispref.texi + +$(HTMLDIR)/internals.html : $(internals-srcs) + $(TEXI2HTML) -subdir $(HTMLDIR) internals/internals.texi + +$(HTMLDIR)/new-users-guide.html : $(new-users-guide-srcs) + $(TEXI2HTML) -subdir $(HTMLDIR) new-users-guide/new-users-guide.texi + +# $(HTMLDIR)/w3.html : w3.texi +# $(TEXI2HTML) -subdir $(HTMLDIR) w3.texi + +# EMACS = ../src/xemacs +# EMACSFLAGS = -batch -q -no-site-file + +# $(HTMLDIR)/vm.html : vm.texi +# -$(EMACS) $(EMACSFLAGS) -insert vm.texi -l texinfmt \ +# -f texinfo-format-buffer -f save-buffer +# -mv vm.html* $(HTMLDIR)/. + +# special = # $(HTMLDIR)/vm.html $(HTMLDIR)/texinfo.html + +xemacs : $(HTMLDIR)/xemacs.html +lispref : $(HTMLDIR)/lispref.html +internals : $(HTMLDIR)/internals.html +new-users-guide.html : $(HTMLDIR)/new-users-guide.html + +html : $(html_files) diff --text -u 'xemacs-21.5.3/man/emodules.texi' 'xemacs-21.5.4/man/emodules.texi' Index: ././man/emodules.texi --- ././man/emodules.texi Tue Jul 3 05:45:03 2001 +++ ././man/emodules.texi Thu Jan 3 05:56:36 2002 @@ -3,6 +3,11 @@ @c %**start of header @setfilename ../info/emodules.info @settitle Extending Emacs using C Modules +@direntry +* Emodules: (emodules). XEmacs dynamically loadable module support. +@end direntry +@c footnotestyle separate +@c paragraphindent 2 @c %**end of header @c @@ -113,8 +118,8 @@ @ifinfo @node Top, Introduction, (dir), (dir) -This Info file contains v1.0 of the @value{emacs} dynamic loadable module -support documentation. +This Info file contains v1.0 of the @value{emacs} dynamically loadable +module support documentation. @menu * Introduction:: Introducing Emacs Modules * Anatomy of a Module:: Basic module layout and technology @@ -174,12 +179,12 @@ @cindex DLL @cindex DSO @cindex shared object - This manual describes a new way of extending @value{emacs}, by using dynamic -loadable modules (also known as dynamically loadable libraries (DLLs), -dynamic shared objects (DSOs) or just simply shared objects), which can -be written in C or C++ and loaded into @value{emacs} at any time. I sometimes -refer to this technology as @dfn{CEmacs}, which is short for @dfn{C -Extensible Emacs}. + This manual describes a new way of extending @value{emacs}, by using +dynamically loadable modules (also known as dynamically loadable +libraries (DLLs), dynamic shared objects (DSOs) or just simply shared +objects), which can be written in C or C++ and loaded into @value{emacs} +at any time. I sometimes refer to this technology as @dfn{CEmacs}, +which is short for @dfn{C Extensible Emacs}. @value{emacs} modules are configured into and installed with @value{emacs} by default on all systems that support loading of shared objects. From a diff --text -u 'xemacs-21.5.3/man/external-widget.texi' 'xemacs-21.5.4/man/external-widget.texi' Index: ././man/external-widget.texi --- ././man/external-widget.texi Fri Apr 13 03:22:00 2001 +++ ././man/external-widget.texi Thu Jan 3 05:56:36 2002 @@ -1,10 +1,11 @@ \input texinfo @c -*-texinfo-*- @setfilename ../info/external-widget.info +@settitle The External Client Widget @ifinfo @dircategory XEmacs Editor @direntry -* External Widget: (external-widget) External Client Widget. +* External Widget: (external-widget). External Client Widget. @end direntry @end ifinfo diff --text -u 'xemacs-21.5.3/man/lispref/glyphs.texi' 'xemacs-21.5.4/man/lispref/glyphs.texi' Index: ././man/lispref/glyphs.texi --- ././man/lispref/glyphs.texi Fri Apr 13 03:22:14 2001 +++ ././man/lispref/glyphs.texi Thu Dec 20 14:49:37 2001 @@ -36,6 +36,7 @@ * Redisplay Glyphs:: Glyphs controlling various redisplay functions. * Subwindows:: Inserting an externally-controlled subwindow into a buffer. +* Glyph Examples:: Examples of how to work with glyphs. @end menu @node Glyph Functions @@ -1380,3 +1381,199 @@ @defun subwindowp object This function returns non-@code{nil} if @var{object} is a subwindow. @end defun + +@node Glyph Examples +@section Glyph Examples + +For many applications, displaying graphics is a simple process: you +create a glyph, and then you insert it into a buffer. + +The easiest way to create a glyph is to use a file that contains a +graphical image, such as a JPEG, TIFF, or PNG file: + +@lisp +;; Create a glyph from a JPEG file: +(setq foo (make-glyph [jpeg :file "/tmp/file1.jpg"])) +@end lisp + +@lisp +;; Create a glyph from a XPM file: +(setq foo (make-glyph [xpm :file "/tmp/file2.xpm"])) +@end lisp + +@lisp +;; Create a glyph from a PNG file: +(setq foo (make-glyph [png :file "/tmp/file3.png"])) +@end lisp + +@lisp +;; Create a glyph from a TIFF file: +(setq foo (make-glyph [tiff :file "/tmp/file4.tiff"])) +@end lisp + +The parameters passed to @code{make-glyph} are called "Image +Specifiers", and can handle more image types than those shown above. +You can also put the raw image data into a string (e.g., if you put the +contents of a JPEG file into a string), and use that to create a glyph. +@xref{Image Specifiers}, for more information. + +@quotation +@strong{Caution}: In order for XEmacs to read a particular graphics file +format, support for that format must have been compiled into XEmacs. +It's possible, although somewhat unlikely, for XEmacs to have been +compiled without support for any of the various graphics file formats. +To see what graphics formats your particular version of XEmacs supports, +use @kbd{M-x describe-installation}. + +To programmatically query whether or not a particular file format is +supported, you can use the @code{featurep} function, with one of: +@code{gif}, @code{tiff}, @code{jpeg}, @code{xpm}, @code{xbm}, +@code{png}, or @code{xface}. For an up-to-date list, @ref{Image +Specifiers}. Example: + +@example +;; Returns `t' if TIFF is supported: +(featurep 'tiff) +@end example + +Another example is: + +@example +;; Returns a list of `t' or `nil', depending on whether or not the +;; corresponding feature is supported: +(mapcar #'(lambda (format-symbol) (featurep format-symbol)) + '(gif tiff jpeg xpm png)) +@end example + +@end quotation + +Once you have a glyph, you can then insert it into a buffer. Example: + +@lisp +;; Use this function to insert a glyph at the left edge of point in the +;; current buffer. Any existing glyph at this location is replaced. +(defun insert-glyph (gl) + "Insert a glyph at the left edge of point." + (let ( (prop 'myimage) ;; myimage is an arbitrary name, chosen + ;; to (hopefully) not conflict with any + ;; other properties. Change it if + ;; necessary. + extent ) + ;; First, check to see if one of our extents already exists at + ;; point. For ease-of-programming, we are creating and using our + ;; own extents (multiple extents are allowed to exist/overlap at the + ;; same point, and it's quite possible for other applications to + ;; embed extents in the current buffer without your knowledge). + ;; Basically, if an extent, with the property stored in "prop", + ;; exists at point, we assume that it is one of ours, and we re-use + ;; it (this is why it is important for the property stored in "prop" + ;; to be unique, and only used by us). + (if (not (setq extent (extent-at (point) (current-buffer) prop))) + (progn + ;; If an extent does not already exist, create a zero-length + ;; extent, and give it our special property. + (setq extent (make-extent (point) (point) (current-buffer))) + (set-extent-property extent prop t) + )) + ;; Display the glyph by storing it as the extent's "begin-glyph". + (set-extent-property extent 'begin-glyph gl) + )) + +;; You can then use this function like: +(insert-glyph (make-glyph [jpeg :file "/tmp/file1.jpg"])) +;; This will insert the glyph at point. + +;; Here's an example of how to insert two glyphs side-by-side, at point +;; (using the above code): +(progn + (insert-glyph (make-glyph [jpeg :file "/tmp/file1.jpg"])) + ;; Create a new extent at point. We can't simply call "insert-glyph", + ;; as "insert-glyph" will simply replace the first glyph with the + ;; second. + (setq extent (make-extent (point) (point) (current-buffer))) + ;; Here, we're only setting the 'myimage property in case we need + ;; to later identify/locate/reuse this particular extent. + (set-extent-property extent 'myimage t) + (set-extent-property extent 'begin-glyph + (make-glyph [jpeg :file "/tmp/file2.jpg"])) + ) + +@end lisp + +Here are the gory details: + +@itemize @bullet + +@item +Glyphs are displayed by attaching them to extents (see @ref{Extents}), +either to the beginning or the end of extents. + +Note that extents can be used for many things, and not just for +displaying images (although, in the above example, we are creating our +own extent for the sole purpose of displaying an image). Also, note +that multiple extents are allowed to exist at the same position, and +they can overlap. + +@item +Glyphs are often displayed inside the text area (alongside text). This +is the default. + +Although glyphs can also be displayed in the margins, how to do this +will not be described here. For more information on this, see +@ref{Annotation Basics} (look for information on "layout types") and +@ref{Extent Properties} (look for @code{begin-glyph-layout} and +@code{end-glyph-layout}). + +@item +The easiest way to insert a glyph into text is to create a zero-length +extent at the point where you want the glyph to appear. + +Note that zero-length extents are attached to the character to the +right of the extent; deleting this character will also delete the extent. + +@item +It's often a good idea to assign a unique property to the newly-created +extent, in case you later want to locate it, and replace any existing +glyph with a different one (or just delete the existing one). In the +above example, we are using "myimage" as our (hopefully) unique property +name. + +If you need to locate all of the extents, you'll have to use functions +like @code{extent-list} or @code{next-extent}, or provide additional +parameters to the @code{extent-at} function. Assigning a unique +property to the extent makes it easy to locate your extents; for +example, @code{extent-list} can return only those extents with a +particular property. @xref{Finding Extents}, and @ref{Mapping Over +Extents}, for more information. + +@item +Glyphs are displayed by assigning then to the @code{begin-glyph} or +@code{end-glyph} property of the extent. For zero-length extents, it +doesn't really matter if you assign the glyph to the @code{begin-glyph} +or @code{end-glyph} property, as they are both at the same location; +however, for non-zero-length extents (extents that cover one or more +characters of text), it does matter which one you use. + +Assigning @code{nil} to the @code{begin-glyph} or @code{end-glyph} +property will delete any existing glyph. In this case, you may also +want to delete the extent, assuming that the extent is used for no other +purpose. + +@item +If you happen to insert two glyphs, side-by-side, note that the example +@code{insert-glyph} function will have trouble, if it's again used at +the same point (it can only locate one of the two extents). +@xref{Finding Extents}, and @ref{Mapping Over Extents}, for more +information on locating extents in a buffer. + +@item +Among other things, glyphs provide a way of displaying graphics +alongside text. Note, however, that glyphs only provide a way of +displaying graphics; glyphs are not actually part of the text, and are +only displayed alongside the text. If you save the text in the buffer, +the graphics are not saved. The low-level glyph code does not provide a +way of saving graphics with the text. If you need to save graphics and +text, you have to write your own code to do this, and this topic is +outside the scope of this discussion. + +@end itemize diff --text -u 'xemacs-21.5.3/man/lispref/intro.texi' 'xemacs-21.5.4/man/lispref/intro.texi' Index: ././man/lispref/intro.texi --- ././man/lispref/intro.texi Fri Apr 13 03:22:15 2001 +++ ././man/lispref/intro.texi Fri Dec 14 16:50:10 2001 @@ -400,7 +400,7 @@ library. If this is what you want to do, use the GNU Library General Public License instead of this License. -@node Introduction, Lisp Data Types, Copying, Top +@node Introduction, Packaging, Copying, Top @chapter Introduction Most of the XEmacs text editor is written in the programming diff --text -u 'xemacs-21.5.3/man/lispref/lispref.texi' 'xemacs-21.5.4/man/lispref/lispref.texi' Index: ././man/lispref/lispref.texi --- ././man/lispref/lispref.texi Fri Apr 13 03:22:16 2001 +++ ././man/lispref/lispref.texi Thu Dec 20 14:49:37 2001 @@ -130,6 +130,8 @@ * Copying:: Conditions for copying and changing XEmacs. * Introduction:: Introduction and conventions used. +* Packaging:: Lisp library administrative infrastructure. + * Lisp Data Types:: Data types of objects in XEmacs Lisp. * Numbers:: Numbers and arithmetic functions. * Strings and Characters:: Strings, and functions that work on them. @@ -250,6 +252,34 @@ * A Sample Function Description:: * A Sample Variable Description:: +Packaging + +* Package Overview:: Lisp Libraries and Packages. +* Package Terminology:: Basic stuff. +* Building Packages:: Turn packaged source into a tarball. +* Local.rules File:: Tell the XEmacs Packaging System about your host. +* Creating Packages:: Tell the XEmacs Packaging System about your package. +* Issues:: + +Package Overview + +* The User's View:: +* The Library Maintainer's View:: +* The Package Release Engineer's View:: + +The Library Maintainer's View + +* Infrastructure:: Global Makefiles and common rules. +* Control Files:: Package-specific Makefiles and administrative files. +* Obtaining:: Obtaining the XEmacs Packaging System and utilities. + +Creating Packages + +* package-compile.el:: +* package-info.in Fields:: +* Makefile Variables:: +* Makefile Targets:: + Lisp Data Types * Printed Representation:: How Lisp objects are represented as text. @@ -970,6 +1000,7 @@ * Redisplay Glyphs:: Glyphs controlling various redisplay functions. * Subwindows:: Inserting an externally-controlled subwindow into a buffer. +* Glyph Examples:: Examples of how to work with glyphs. Glyph Functions @@ -1153,6 +1184,7 @@ @end menu @include intro.texi +@include packaging.texi @include objects.texi @include numbers.texi @include strings.texi diff --text -u 'xemacs-21.5.3/man/lispref/objects.texi' 'xemacs-21.5.4/man/lispref/objects.texi' Index: ././man/lispref/objects.texi --- ././man/lispref/objects.texi Fri Apr 13 03:22:18 2001 +++ ././man/lispref/objects.texi Fri Dec 14 16:50:10 2001 @@ -3,7 +3,7 @@ @c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc. @c See the file lispref.texi for copying conditions. @setfilename ../../info/objects.info -@node Lisp Data Types, Numbers, Introduction, Top +@node Lisp Data Types, Numbers, Packaging, Top @chapter Lisp Data Types @cindex object @cindex Lisp object diff --text -u /dev/null 'xemacs-21.5.4/man/lispref/packaging.texi' Index: ././man/lispref/packaging.texi --- ././man/lispref/packaging.texi Thu Jan 1 09:00:00 1970 +++ ././man/lispref/packaging.texi Sat Dec 15 18:16:21 2001 @@ -0,0 +1,1245 @@ +@c -*-texinfo-*- +@c This is part of the XEmacs Lisp Reference Manual. +@c Copyright (C) 2001 Free Software Foundation, Inc. +@c See the file lispref.texi for copying conditions. + +@setfilename ../../info/packaging.info + +@c Macro to make formatting of the XEmacs pms name consistent. +@c Maybe @sc looks OK in HTML? If so, condition on Info. +@iftex +@macro xpms +XE@sc{macs} Packaging System +@end macro +@end iftex +@ifnottex +@macro xpms +XEmacs Packaging System +@end macro +@end ifnottex + +@node Packaging, Lisp Data Types, Introduction, Top +@chapter The @xpms{} +@cindex package +@cindex packaging + +The XEmacs distribution, starting with version 21, comes only with a +very basic set of built-in modes and libraries. Most of the libraries +that were part of the distribution of earlier versions of XEmacs are now +available separately. The user as well as the system administrator can +choose which packages to install; the actual installation process is +easy. This gives an installer the ability to tailor an XEmacs +installation for local needs with safe removal of unnecessary code. + +This chapter describes how to package Lisp libraries for use with the +@xpms{}. + +@emph{Please note carefully} that the term @dfn{package} as used in +XEmacs refers to an aggregation of Lisp code and/or data distributed as +a unit. It does not, as it does in many Lisps, refer to a way of +creating separate name spaces. XEmacs has no facility for providing +separate name spaces. (If we ever do get separate name spaces, we'll +probably regret overloading the nomenclature in this way, but it's +become established.) + +@menu +Introduction: +* Package Overview:: Lisp Libraries and Packages. + +Packaging Lisp Libraries: +* Package Terminology:: Basic stuff. +* Building Packages:: Turn packaged source into a tarball. +* Local.rules File:: Tell the @xpms{} about your host. +* Creating Packages:: Tell the @xpms{} about your package. +@c * History:: History of the @xpms{} +@c * Installation:: Installing the @xpms{} with your (X)Emacs. +@c * Configuration:: Configuring the @xpms{} for use. +@c * Usage:: An overview of the operation of the @xpms{}. +@c * Bug Reports:: Reporting Bugs and Problems +@c * Frequently Asked Questions:: Questions and answers from the mailing list. + +Internals and Package Release Engineering: +* Issues:: +@end menu + +@node Package Overview, Package Terminology, , Packaging +@chapter An overview of the @xpms{} + +The @xpms{} is a system for administering the installation, upgrade, and +removal of Lisp libraries. For the end user, it provides facilities for +determining availability of packages and which versions at remote +sites. It will download and automatically install a package, ensuring +that any old files from previous versions of the package are removed +first. By providing a standard set of hierarchies for installation, it +makes configuration of XEmacs simpler. Furthermore, packages normally +provide ancillary auto-autoloads and custom-loads libraries, which are +automatically detected and loaded by XEmacs upon startup. This means +that once installed, all facilities of package, including autoloading +the library upon invocation of a command provided by the library and +convenient configuration and customization, are automatically available +to the user. There is no need to add autoloads or keybindings to in the +init file, and structured configuration of the package is available +through the Customize system even before the libraries are loaded. + +All of this convenience comes at a cost. The cost of administration at +the package level is negligible compared to the benefits, of course. +However, the requirement that XEmacs find and load auto-autoloads and +custom-loads libraries comes at a fairly large cost in startup time. In +order to reduce this cost, XEmacs imposes fairly strict conditions on +the structure of an installed package. + +Meeting these requirements, as well as simply providing the +auto-autoloads and the information about availability and so on does +impose some costs on the library maintainer. The @xpms{} also provides +structure and utilities to the library maintainer to make these tasks +easier. This manual documents the requirements and the tools that the +@xpms{} provides to ensure that a package satisfies them. + +@menu +* The User's View:: +* The Library Maintainer's View:: +* The Package Release Engineer's View:: +@end menu + + +@node The User's View, The Library Maintainer's View, , Package Overview +@section The User's View + +@strong{N.B.} Much of the discussion in this section undoubtedly +belongs elsewhere, @ref{Packages,,,xemacs}. + +From the user's point of view, an XEmacs binary package is simply a +standard tarball (usually gzipped) containing Lisp sources, compiled +Lisp, documentation, and possibly data files or supporting executables. +The tarball is unpacked using standard tools such as GNU tar and gzip. +The package system does impose certain requirements for automatic +configuration to work. + +Here the main consideration is that the tarball ``expects'' to be +unpacked from the top of a package hierarchy. A @dfn{package hierarchy} +is basically an image of a classic Emacs ``run-in-place'' tree, with +@file{lisp}, @file{etc}, @file{info}, @file{man}, @file{lib-src}, and +@file{pkginfo} subdirectories of the top. The @file{pkginfo} +subdirectory is for use by the @xpms{} administration tools, and +currently contains a @file{MANIFEST.@var{package-name}} file for each +package to ensure that no cruft remains when a package is removed or +updated. The @file{lisp}, @file{etc}, and @file{lib-src} subdirectories +are further subdivided, with a subdirectory for each package. The +@file{info} directory obeys the usual conventions. +@emph{I.e.}, the @file{info} directory is flat +with a(n) (optional) @file{dir} file and one (set of) info file(s) per +package. The @file{man} subdirectory typically contains documentation +sources, separated by package. (It does not contain @file{man(1)} +pages, as Emacs provides very few of them.) + +There are several standard package hierarchies, and administrators can +configure others at build time, while users can configure others at run +time. The standard system hierarchies are all subdirectories of an +@c #### This is possibly incorrect usage of "installation root." +XEmacs installation root, typically @file{/usr/local/lib/xemacs/}. +These are the @file{xemacs-packages}, @file{mule-packages}, +@file{infodock-packages}, and @file{site-packages} hierarchies. Each +has the structure described above, but the purposes differ. The +@file{xemacs-packages} is the normal place for installing ``official'' +packages and many third-party libraries. Unfortunately, it is not yet +quite possible to read libraries containing international characters +with a non-Mule XEmacs, so such libraries are sequestered in the +@file{mule-packages} hierarchy. Some packages are compatible only with +the Infodock development environment, and they will be installed in the +@file{infodock-packages} hierarchy. The @file{site-packages} hierarchy +is for packages not distributed by XEmacs.org, typically locally +developed. + +Packages are in principle supposed to be XEmacs version-independent, but +if such dependencies are unavoidable, additional standard package +hierarchies may be installed under version directories, @emph{e.g.} +@file{/usr/local/lib/xemacs-21.4.6/}. + +Users who do not have sufficient privilege to install packages in the +system hierarchies may install package hierarchies under +@file{~/.xemacs}. At present only the @file{xemacs-packages} and +@file{mule-packages} hierarchies are supported, but it might make sense +to extend this to support @file{infodock-packages} and +@file{site-packages} hierarchies in the future. + +The package hierarchies are not searched directly for libraries to be +loaded; this would be very costly. Instead, the hierarchies are ordered +according to certain rules, and searched for package lisp directories at +invocation. These directories are added to the general +@code{load-path}. As usual, it is @code{load-path} that is searched at +run-time. This approach is somewhat costly at initialization, but +results in a very ``clean'' @code{load-path}. + +The order of search can be changed at build time by specifying the +@samp{--package-path} option to @file{configure}, or at run-time by +specifying the @code{EMACSPACKAGEPATH} environment variable. +@xref{Packages,,,xemacs}. + +@c #### The following description is quite possibly inaccurate. +@c Please, Michael, write some specs up! +The default order of search is hierarchically determined. First, the +roots are ordered. The @dfn{early} roots are the user-specific roots, +typically @file{~/.xemacs}. The @dfn{late} roots are the system roots, +typically @file{/usr/local/lib/xemacs-21.4.6} and +@file{/usr/local/lib/xemacs}, in that order. All hierarchies for a +given root are searched for package Lisp directories, which are appended +to @code{load-path} in the order found. Then the search proceeds to the +next root, whose results will be appended to the @code{load-path} +generated by previous roots. + +Second, the hierarchies below each root are searched in the order +@file{site-packages}, @file{infodock-packages}, @file{mule-packages}, +then @file{xemacs-packages}. + +In each hierarchy there should be a @file{lisp} subdirectory, containing +directories named for the packages. Each package's Lisp libraries thus +are contained in a directory of the form +@var{root}/@var{hierarchy}/lisp/@var{package}/. + +With such a complex search algorithm, the possibility of libraries being +shadowed by another library with the same name is quite real. There are +two considerations here. First, every XEmacs package contains certain +libraries with constant names. These are + +@table @file +@item _pkg.el +Lisp code to inform the package administration system about the package + +@item auto-autoloads.el +Lisp code to set up autoloaded functions and variables that may be +needed at load time + +@item custom-load.el +definitions of configuration variables for use with the Customize +system. +@end table + +They are special-cased, because the way they are used prevents shadowing +from being an issue. + +Second, it is possible that multiple copies of some library, or +different libraries with the same name, are installed in various places +in the hierarchies. To detect such shadows, use +@code{list-load-path-shadows}. + +Finally, note that most basic Emacs functionality, including most of the +Lisp API, is implemented in Lisp libraries. Because they use internal +reserved APIs that are subject to change according the needs of the +developers, these libraries are distributed with the XEmacs binary, and +are called @dfn{core Lisp libraries}. Most core Lisp libraries are +``preloaded'' into the Emacs binary and in normal usage are never +explicitly loaded. However, they can be explicitly loaded, and if so +they are searched on @code{load-path}. +@c #### Is this correct? It is not for C-h f, for example. +Furthermore, functions such as @code{locate-library} will also search on +the @code{load-path}. The searching takes place under somewhat +different rules from those used for packaged Lisp. It is probably +easiest to think of the package hierarchy searching algorithm as +receiving a @code{load-path} initialized to the core Lisp directories. + + +@node The Library Maintainer's View, The Package Release Engineer's View, The User's View, Package Overview +@section The Library Maintainer's View + +From the library maintainer's viewpoint, the advantages to the @xpms{} +stem from the convenience to the user of installation and upgrade. +Since an installed package automatically registers its entry points via +autoload and its configuration variables with the Customize system, +configuration FAQs are reduced. When it's easy to upgrade, users learn +to try @samp{Tools | Packages | Update Installed Packages} before +posting a FAQ whose answer is ``long since fixed, please upgrade.'' + +This comes at some cost, as the library maintainer needs to arrange that +the package be installed in a directory structure that satisfies the +requirements of the @xpms{}. Autoload cookies and defcustoms must also +be added to existing libraries. The @xpms{} provides infrastructure to +assure that all of these annoyances need only be dealt with once. The +autoload cookies and defcustoms are beyond the scope of this chapter, but +most maintainers of modern packages are already familiar with these +mechanisms. + +The @xpms{} may be divided into the @dfn{infrastructure} common to all +packages, and the package-specific @dfn{control files}. The +infrastructure supports global builds, installation, and generation of +the ``sumo'' bundles of packages, as well as generation of individual +packages. The package control files describe the structure of the +package's source tree and provide administrative information. + +@menu +* Infrastructure:: Global Makefiles and common rules. +* Control Files:: Package-specific Makefiles and administrative files. +* Obtaining:: Obtaining the @xpms{} and required utilities. +@end menu + +@node Infrastructure, Control Files, , The Library Maintainer's View +@subsection Infrastructure + +In order to get the greatest benefit from the @xpms{}, a library +maintainer should place the package sources in an appropriate place in +the XEmacs source package hierarchy, and arrange to have the source +package imported into the XEmacs CVS repository. +@c #### the parenthetical remark should go to "issues." +(We realize that the +latter requirement can be quite burdensome. We are working on ways to +remove this requirement, but for the present it remains necessary.) The +library maintainer must also keep sources for any packages his/her +package requires. This requirement is somewhat burdensome, but unlikely +to be relaxed because of the implementation of compilation of macros in +Emacs Lisp. Macros cannot be called by compiled Lisp (the macro +expansion, which is always known at compile time, is inlined), so the +source of the macro must be loaded before compiling the called function. + +The source package hierarchy may be rooted anywhere. The CVS module is +called ``packages,'' so we will refer to the top directory of the source +package hierarchy as ``the @file{packages} directory.'' The +@file{packages} directory contains two source subdirectories, +@file{xemacs-packages} and @file{mule-packages} (for convenience in +segregating the packages which depend on Mule, as they will cause +load-time errors in a non-Mule XEmacs). Each subdirectory contains many +package source directories, whose internal structure is not specified. +That structure is left up to the convenience of the library maintainers. +The requirements on the top directory of an individual package source +tree are given below, @ref{Control Files}. + +The @file{packages} directory contains some auxiliary Lisp libraries +used in the compilation and packaging process. The content of these +libraries is of interest primarily to the packaging engineers, @ref{The +Package Release Engineer's View}. + +Finally, the @file{packages}, @file{packages/xemacs-packages}, and +@file{packages/mule-packages} directories contain @file{Makefile}s and +include files to control the package creation process. The +@file{Makefile}s in @file{packages/xemacs-packages} and +@file{packages/mule-packages} simply define the default sets of known +packages and include @file{../iterate.rules}, which implements recursive +building of all target packages. + +The @samp{make} infrastructure in @file{packages} includes + +@table @file +@item Makefile +controls building of individual packages, local installation, and +bundling of ``sumo'' tarballs + +@item iterate.rules +controls recursive builds of multiple packages + +@item XEmacs.rules +provides the rules for building and packaging. Included by all package +@file{Makefile}s. + +@item Local.rules +provides local configuration, such as installation targets and staging +directories, as well as a number of kludges (many now obsolete) required +for building packages on the Windows platform. + +@item Local.rules.template +a template for Local.rules, liberally commented + +@item Local.rules.mk +consistency checking for @file{Local.rules}, included by both the +top-level @file{Makefile} and by @file{XEmacs.rules}. + +@c #### Add to "issues" +@item package-compile.el +compile environment (@emph{e.g.}, load-path) setup. It is very bogus +that this is here, an alternative mechanism is likely to be provided. +@end table + +Of these, only @file{Local.rules} and @file{package-compile.el} need to +be modified by the library maintainer. The changes to Local.rules +affect only your environment. This should need to be done only once +when first preparing the source environment. The necessary +modifications to @file{package-compile.el} need to be done for each +package and are discussed in the next section, @ref{Control Files}. + + +@node Control Files, Obtaining, Infrastructure, The Library Maintainer's View +@subsection Control Files + +Each package source must contain a number of control files in the +top-level directory. These files in general can be created and then +ignored, except for a few variables that need to be updated when new +versions are released. In most cases even adding, renaming, and +removing library source files can be handled by generic rules. + +The package control files include + +@table @file +@item Makefile +Must set a few @file{make} variables used by the administrative +utilities, and defines a couple of package-building targets to depend on +appropriate targets defined generically in @file{XEmacs.rules}. It may +also provide various variables and rules to transform the source tree +structure into that expected by the run-time system. + +@item package-info.in +Provides a template for package information to be provided to the +administrative utilities. Static variables that are rarely changed +(such as the package's name) are entered as literals. Some variables +are generated by the build process (build dates and MD5 checksums) and +are automatically filled in. Finally, some variables that change +irregularly (dependences and even version numbers) are set as +@file{make} variables in the @file{Makefile}. + +@item ChangeLog +Not strictly required, but normally a ChangeLog will be added by the +XEmacs package maintainer if different from the upstream maintainer. + +@item package-compile.el +compile environment (@emph{e.g.}, load-path) setup. It is very bogus +that this is here, an alternative mechanism is likely to be provided. + +@item _pkg.el +Generated. Simply does a @code{package-provide} for the package. + +@item _auto-autoloads.el +Generated. Read when XEmacs is initialized, and provides autoloads for +all defuns and other specially-marked forms in the sources. + +@item custom-loads.el +Generated. Read when XEmacs is initialized, and informs the Customize +subsystem how to find the defcustom forms needed to create Customization +forms for the usre configuration variables of the package. +@end table + + +@node Obtaining, , Control Files, The Library Maintainer's View +@subsection Obtaining the @xpms{} and Required Utilities + +Currently both the infrastructure for creating XEmacs packages and the +package sources themselves are available only by CVS. See +@uref{http://www.xemacs.org/Develop/cvsaccess.html} for more +intformation. + +The @xpms{} currently requires GNU @file{make}, and probably XEmacs, to +build packages. + + +@node The Package Release Engineer's View, , The Library Maintainer's View, Package Overview +@subsection The Package Release Engineer's View + +The XEmacs Package Release Engineer is responsible for keeping the +system coherent. The changes to @file{packages/package-compile.el} and +@file{packages/xemacs-packages/Makefile} required to make the package +available to others, and for building SUMO tarballs, @emph{etc}, are +done by the Package Release Engineer, not individual library +maintainers. + +The Package Release Engineer also maintains assorted infrastructure for +actually making releases. These are generally available for inspection +in the @code{xemacs-builds} module in the CVS repository. + +@c #### To be completed. + + +@c #### The following section is lifted verbatim from the XEmacs User's +@c Manual, file packages.texi. +@node Package Terminology, Building Packages, Package Overview, Packaging +@comment node-name, next, previous, up +@heading Package Terminology: + +@subsection Libraries and Packages +@cindex library +@cindex package + +A Lisp @dfn{library} is a single loadable file containing Lisp code. It +may be in source or byte-compiled form. A Lisp @dfn{package} is a set +of one or more libraries, usually related to each other in some way, +bundled with administrative information for convenient distribution. + +@subsection Package Flavors + +There are two main flavors of packages. + +@table @strong +@item Regular Packages +@cindex regular package +A regular package is a set of Lisp libraries design to cooperate with +one another. A very complex example is Gnus. One may not in general +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 +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 +other libraries in the package. However, we would recommend that you +follow this rule of thumb: "When in doubt, don't delete". If it's +really that big a deal, request that the maintainers split the package +into smaller aggregations. +@end table + +@subsection Package Distributions +@cindex package distributions +@cindex binary packages +@cindex source packages +XEmacs Lisp packages are distributed in two ways. @dfn{Binary packages} +are used by system administrators and end users. They are packaged in a +form convenient for direct installation into an XEmacs package +hierarchy. @dfn{Source packages} are for developers and include all +files necessary for rebuilding byte-compiled lisp and creating tarballs +for distribution or installation. This is all of the package author's +source code plus all of the files necessary to build distribution +tarballs (Unix Tar format files, gzipped for space savings). +@c #### This next is an Evile Practice and should be discontinued. +(Occasionally sources that are not relevant to XEmacs are removed.) + +Currently, source packages are only available via CVS. See +@url{http://www.xemacs.org/Develop/cvsaccess.html} for details. + +The package distributions are also split according to major features +required in XEmacs to support them. At present there are @dfn{generic} +packages, which can be loaded by @emph{any} XEmacs, and @dfn{Mule} +packages, which @emph{require} Mule support or they will cause errors +when loaded. Note that there is no guarantee that a generic package +will have any useful functionality in a minimally configured XEmacs. As +long as any XEmacs can successfully load the package's libraries +(perhaps given other required Lisp libraries), it will be classified as +generic. At the present time only Mule packages need be treated +specially, and even those only if they contain multibyte characters. + + +@c #### The following section is lifted verbatim from the XEmacs User's +@c Manual, file packages.texi. +@node Building Packages, Local.rules File, Package Terminology, Packaging +@comment node-name, next, previous, up +@cindex building packages +@cindex package building +@heading Building Packages: +Currently, source packages are only available via anonymous CVS. See +@url{http://www.xemacs.org/Develop/cvsaccess.html} for details of +checking out the @file{packages} module. + +@subsection Prerequisites for Building Source Packages + +@table @code +@item GNU cp +@item GNU install +(or a BSD compatible install program). +@item GNU make +(3.75 or later preferred). +@item makeinfo +(1.68 from texinfo-3.11 or later required, 1.69 from Texinfo 4 preferred). +@item GNU tar +(or equivalent). +@item GNU gzip +(or equivalent). +@item A properly configured @file{Local.rules} file. +@ref{Local.rules File}. +@end table + +And of course, XEmacs, 21.0 or higher. + +@subsection What You Can Do With Source Packages + +The packages CVS sources are most useful for creating XEmacs package +tarballs for installation into your own XEmacs installations or for +distributing to others. + +The supported @file{make} targets are: + +@table @code +@item all +Bytecompile all files, build and bytecompile byproduct files like +@file{auto-autoloads.el} and @file{custom-load.el}. Create info version +of TeXinfo documentation if present. + +@c #### Why do we need this _and_ the binkit target? +@item bindist +Does a @code{make all} as well as create a binary package tarball in the +staging directory. + +@item install +Bytecompile all files, build and bytecompile byproduct files like +@file{auto-autoloads.el} and @file{custom-load.el}. Create info version +of TeXinfo documentation if present. And install everything into the +staging directory. + +@item srckit +Usually simply depends on @code{srckit-std}, with no actions. This does +a @code{make distclean} and creates a package source tarball in the +staging directory. This is generally only of use for package +maintainers. + +@item binkit +May depend on @code{binkit-sourceonly}, @code{binkit-sourceinfo}, +@code{binkit-sourcedata}, or @code{binkit-sourcedatainfo}, with no +actions. @code{sourceonly} indicates there is nothing to install in a +data directory or info directory. @code{sourceinfo} indicates that +source and info files are to be installed. @code{sourcedata} indicates +that source and etc (data) files are to be installed. +@code{sourcedatainfo} indicates source, etc (data), and info files are +to be installed. A few packages have needs beyond the basic templates +so this is not yet complete. + +@item dist +Runs the rules @code{srckit} followed by @code{binkit}. This is +primarily of use by XEmacs maintainers producing files for distribution. + +@item clean +Remove all built files except @file{auto-autoloads.el} and +@file{custom-load.el}. + +@item distclean +Remove all created files. +@end table + +@c #### The following section is lifted verbatim from the XEmacs User's +@c Manual, file packages.texi. +@node Local.rules File, Creating Packages, Building Packages, Packaging +@comment node-name, next, previous, up +@cindex local.rules +@heading The Local.rules File: +This file in @file{packages} provides the @xpms{} with information about +the local configuration and environment. To create @file{Local.rules}, +simply copy @file{Local.rules.template} from that directory to +@file{Local.rules} and edit it to suit your needs. + +These are the variables in @file{Local.rules} that you will need to +provide values for. The following variables control which packages will +be built: + +@table @var +@item XEMACS_PACKAGES +The default is @samp{xemacs-packages}, which results in the set in +the @file{xemacs-packages/Makefile} @code{PACKAGES} variable. + +Otherwise, it should be a list of package source directories prefixed by +@samp{xemacs-packages}: + +@example +XEMACS_PACKAGES = xemacs-packages/xemacs-base xemacs-packages/bbdb +@end example + +@item BUILD_WITHOUT_MULE +The default is the empty value. + +Building from CVS defaults to building the Mule +packages. Set this to 't' if you don't want/have Mule. + +@item MULE_PACKAGES +The default is @samp{mule-packages}, which results in the set in +the @file{mule-packages/Makefile} @code{PACKAGES} variable. + +Otherwise, it should be a list of package source directories prefixed by +@samp{mule-packages}: + +@example +MULE_PACKAGES = mule-packages/mule-base mule-packages/skk +@end example + +@item PACKAGE_INDEX +The default is @file{package-index}. + +If you want the package index file to have a different name, change +this. This is probably a bad idea unless you are a packages release +engineer, as it will confuse the package administration tools. +@end table + +The following variables determine where files are installed and how they +are installed. Several of the defaults use the variable +@var{XEMACS_PACKAGES_BASE}. Never set this variable in +@file{Local.rules}; it is automatically set in @file{XEmacs.rules}. + +@table @asis +@item @var{XEMACS_STAGING} +The default is @file{$@{XEMACS_PACKAGES_BASE@}/../xemacs-packages}. + +Generic packages will be installed here. This can be the final +destination for files or symlinks (if the packages are being installed +locally), or a clean staging area for building tarballs. + +@strong{N.B.} @samp{make bindist} ignores this variable. It should be +handled by the administration utilities, but currently isn't. + +@item @var{MULE_STAGING} + +The default is @file{$@{XEMACS_PACKAGES_BASE@}/../mule-packages}. + +Packages requiring Mule to load correctly will be installed here. This +can be the final destination for files or symlinks (if the packages are +being installed locally), or a clean staging area for building tarballs. + +@strong{N.B.} @samp{make bindist} ignores this variable. It should be +handled by the administration utilities, but currently isn't. + +@item symlink +The default is the empty value. + +Set this to 't' if you want to simulate ``running in place.'' It is +currently not possible to ask XEmacs to use any package source tree as +an automatically configured member of @code{load-path}, and it is +unlikely that complex trees such as that of the Gnus package will ever +be able to ``run in place.'' This variable, when set to `t', causes the +build process to create a symlink farm otherwise identical to an +installed tree of binary packages. Thus it is purely a space +optimization. + +Setting this is incompatible with @samp{make bindist}. +@end table + +The following variables determine how packages are made. + +@table @var +@item XEMACS +The default is @samp{xemacs}. + +The path to the XEmacs executable you wish to use to compile the +packages and execute Lisp build scripts. + +@item XEMACS_NATIVE_NT +The default is the empty value. + +Set this to 't' if you are building on WinNT. It controls hairy shell +quoting in the @file{Makefile}s. + +@item INSTALL +The default is @samp{install -c}. + +The path to your BSD compatible install program. + +@item TAR +The default is @samp{tar}. + +The path to your tar program. + +@item BZIP2 +The default is the empty value. + +If unset, bzipped tarballs will not be built. If this is set to +something that resolves to a @samp{bzip2} executable, bzip2 tarballs +will be built @emph{in addition to} @samp{gzip} tarballs. + +@item MAKEINFO +The default is @samp{makeinfo}. + +The path to your @file{makeinfo} program +@end table + + +@c #### The following section is lifted verbatim from the XEmacs User's +@c Manual, file packages.texi. +@node Creating Packages, Issues, Local.rules File, Packaging +@comment node-name, next, previous, up +@cindex creating packages +@heading Creating Packages: +Creating a package from an existing Lisp library is not very difficult. + +In addition to the Lisp libraries themselves, you need a +@file{package-info.in} file and a simple @file{Makefile}. The rest is +done by @file{XEmacs.rules}, part of the packaging system +infrastructure. + +@file{package-info.in} contains a single Lisp form like this: + +@example +(NAME ; your package's name + (standards-version 1.1 + version VERSION ; Makefile + author-version AUTHOR_VERSION ; Makefile + date DATE ; Makefile + build-date BUILD_DATE ; generated + maintainer MAINTAINER ; Makefile + distribution DISTRIBUTION ; "mule" if MULE is needed, + ; else "xemacs" + priority high + category CATEGORY ; Makefile + dump nil + description "description" ; a one-line description string + filename FILENAME ; obsolete + md5sum MD5SUM ; generated + size SIZE ; generated + provides (FEATURE ...) ; one for every `provides' form + requires (REQUIRES) ; Makefile + ; NOT run-time dependencies! These + ; are files that provide macros or + ; defsubsts that must be inlined. + type regular +)) +@end example + +You should replace NAME, DISTRIBUTION, DESCRIPTION, and FEATURE ... with +appropriate values, according to the comments. Fields marked as +@samp{obsolete} can be ignored. Fields marked as @samp{generated} are +generated by the package construction process, and will be filled in +automatically. Fields marked as @samp{Makefile} should be set as +variables in the @file{Makefile}. + +The @samp{provides} can be done automatically, but currently aren't. It +would probably be a good idea to set them in the @file{Makefile} (they +do change, fairly often, but at present they aren't. + +The @file{Makefile} is quite stylized. The idea is similar to an +@file{Imakefile} or an @code{automake} file: the complexity is hidden in +generic rules files, in this case the @file{XEmacs.rules} include file +in the top directory of the packages hierarchy. + +An @xpms{} @file{Makefile} has three components. First, there is a +variable definition section. The standard @xpms{} @file{make} variables +must be defined here for use by the @file{XEmacs.rules} include file. +Second, the file @file{../../XEmacs.rules} is included. Finally, the +@file{make} rules are defined, possibly including additional variable +definitions for use by the @file{Makefile}. These always include rules +for the targets @samp{all}, @samp{binkit}, and @file{srckit}. + +Although a number of facilities are available for complex libraries, +most simple packages' @file{Makefile}s contain a copyright notice, the +variable definitions mentioned above, and some boilerplate. + +@example +# Makefile for apackage's lisp code + +# This file is part of XEmacs. + +# XEmacs is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2, or (at your option) any +# later version. + +# XEmacs is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. + +# You should have received a copy of the GNU General Public License +# along with XEmacs; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +VERSION = 0.00 +AUTHOR_VERSION = 0.00 +MAINTAINER = A. M. Aintainer +PACKAGE = apackage +PKG_TYPE = regular +REQUIRES = xemacs-base +CATEGORY = standard + +# All .els should be compiled and packaged. +ELS = $(wildcard *.el) +ELCS = $(ELS:.el=.elc) + +include ../../XEmacs.rules + +all:: $(ELCS) auto-autoloads.elc custom-load.elc + +srckit: srckit-std + +binkit: binkit-common +@end example + +@menu +* package-compile.el:: +* package-info.in Fields:: +* Makefile Variables:: +* Makefile Targets:: +@end menu + + +@node package-compile.el, package-info.in Fields, , Creating Packages + +The @xpms{} does not automatically become aware of your package simply +because there is a new subtree. If any package, including your own, +requires any of your files, it must be explicitly added to the compile +environment or loads/requires that search load-path will fail. The +changes that need to be made are + +@table @strong +@item an entry in @code{package-directory-map} +This tells the @xpms{} which distribution (currently +@samp{xemacs-packages} or @samp{mule-packages}) your package is found +in. It then looks in the distribution subdirectory whose name is the +same as the package's. + +@item an entry in the @code{cond} in @code{package-name-to-directory} +This is optional; it is necessary only if you keep your Lisp code +somewhere other than the top-level directory of the package's source +tree, eg, in @file{packages/xemacs-packages/@var{PACKAGE}/lisp}. +@end table + +This only needs to be done once, when the package is first added to the +@xpms{}. (Well, when you randomly change the subdirectory layout, too.) +Your changes to @file{package-compile.el} must be cleared and checked in +by the XEmacs Package Release Engineer before your package will build +correctly from a fresh checkout. + +This is unfortunate; it works pretty well once set up, but can cause +confusion when first building a package in the @xpms{} context. In +particular, if the @code{package-directory-map} entry for a required +package +@c #### including the package itself? +is not found, the necessary requires will not be executed by +@file{package-compile.el}. If required functions are executed (under +@code{eval-when-compile}), they won't be found and the compile will +fail. If required function is actually a macro, the byte compiler will +not recognize that, compile a function call to the macro. This will +cause a run-time error because the byte-code interpreter does not know +how to execute macros. (Macros can always be expanded at compile-time, +and this is more efficient.) + +If your package keeps some or all Lisp code somewhere other than the top +directory, then an entry in @code{package-name-to-directory} is also +necessary, or requires will fail, leading to the problems just described. + + +@node package-info.in Fields, Makefile Variables, package-compile.el, Creating Packages + +The @file{package-info.in} structure is simply Lisp data, to be read by +a Lisp script, have values substituted for variables, and then written +out (appropriately quoted) into a loadable Lisp file, to be consed into +the @file{package-index.el} list at the FTP archives. That list is +structured as an alist with package names as keys. The package data is +a plist. Do not rely on this, as it may change. If you have a good +reason for relying on it, let the maintainers know and we may +incorporate it in a future revision of the @xpms{} standard. + +There are several kinds of fields, distinguished by how they get their +values. There are literals written into @file{package-info.in} by the +package maintainer. There are variables substituted in by the build +process, some computed, and others written as values of @file{make} +variables in the @file{Makefile} by the package maintainer. There are a +few implementation constants, some of which are simply the default value +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 +are normally interpreted as symbols by the package build process. The +maintainer literals are + +@table @asis +@item @var{package_name} +A literal. The only unnamed ``field,'' the name of the package. + +@item distribution +A literal, either @samp{xemacs} (for generic packages) or @samp{mule} +(for packages requiring Mule). @xref{Package Terminology}. + +@item description +A Lisp string containing a one-line text description for use in package +listings. + +@item provides +A (Lisp) list of features provided by the libraries in the package. All +of the features provided by libraries in your package should be elements +of this list. + +@item type +A literal, either @samp{regular} or @samp{single-file}. For practical +purposes, @samp{regular} should be considered an implementation constant. +@end table + +@c #### The following should be rewritten to @xref the make variables +@c node, and simply associate the field names to the make variables with +@c one line of description. +Values which are expected to change regularly as the package is enhanced +are implemented as @file{make} variables. You should not change them in +the @file{package-info.in} file; they are automatically filled in by the +build process. + +The corresponding field name is given in parentheses. These include + +@table @code +@item VERSION +(version) +The version of the XEmacs package, a numeric literal (a decimal +fixed-point number with two-places of precision). + +@item AUTHOR_VERSION +(author-version) +The upstream author's version, an unintepreted literal. + +@item DATE +(date) +Date of release of the upstream version. + +@item MAINTAINER +(maintainer) +A literal containing the XEmacs package's maintainer and his/her email +address. + +@item CATEGORY +(category) +A literal, either @samp{standard} or @samp{mule}. Probably redundant. + +@item REQUIRES +(requires) +A list of packages required to correctly build this package. + +Note that the usual form in @file{package-info.in} already has the +parentheses, so the @file{make} variable should be set to a +space-separated list of package names @emph{not} enclosed in +parentheses. + +The list is of @emph{packages}, not @emph{libraries}, as would +ordinarily be provided to the Lisp @code{require} function. + +@samp{REQUIRES} cannot be correctly computed from the calls to +@code{require} in the package's library sources. @samp{REQUIRES} is +used to ensure that all macro and defstruct definitions used by the +package are available at build time. This is not merely a matter of +efficiency, to get the expansions inlined. In fact, it is +@emph{impossible} to call a macro by name in byte-compiled Emacs Lisp +code. Thus, if the macro expansion is not inlined, the call will result +in an error at run-time! Thus, packages providing libraries that would +be loaded because of autoload definitions must also be included. + +On the other hand, if a package provides no macros to this package, it +is preferable @emph{not} to include it in @samp{REQUIRES}, because it is +not uncommon that if the developer doesn't normally use the required +package, he will never use the functionality in the package being built, +either. In that case it would be preferable to not require the +developer to have source for the dependencies. That said, of course it +is safe to put too many packages in @samp{REQUIRES}. +@end table + +Values for the following fields are automatically generated by the build +process. + +@table @asis +@item build-date +The date the package tarball was generated. + +@item md5sum +An MD5 checksum for the package tarball, as gzipped. + +@item size +The size of the package tarball, as gzipped. +@end table + +It is not clear that either md5sum or size works correctly if the +@samp{BZIP2} variable in @file{Local.rules} is set. + +The implementation constants are + +@table @asis +@item standards-version +Currently 1.1. Defines the format of the @file{package-info.in} file +and the @file{Makefile}. A true implementation constant. + +@item priority +An unimplemented and underspecified feature. Suggestions for +specification and implementation welcome. + +@item dump +An obsolete feature, superseded by the @file{site-load.el} mechanism. +The value should always be nil. + +@item filename +An obsolete feature, completely ignored. Don't even think about doing +anything useful with it. +@end table + + +@node Makefile Variables, Makefile Targets, package-info.in Fields, Creating Packages + +A number of @file{make} variables are defined by the @xpms{}. Some are +required, others are optional. Of course your @file{Makefile} may +define other variables for private use, but you should be careful not to +choose names that conflict with variables defined and used by the +@xpms{}. + +The required variables are described in the table below. +The corresponding field names for @file{package-info.in}, where +relevant, are given in parentheses. + +@c #### This is the canonical place for this information. If there is +@c unnecessary duplication with package-info.in documentation, shorten +@c that and leave this full-length. +@table @code +@item VERSION +(version) +The version of the XEmacs package, a numeric literal (a decimal +fixed-point number with two-places of precision). + +@item AUTHOR_VERSION +(author-version) +The upstream author's version, an unintepreted literal. + +@item DATE +(date) +Date of release of the upstream version. + +@item MAINTAINER +(maintainer) +A literal containing the XEmacs package's maintainer and his/her email +address. + +@item CATEGORY +(category) +A literal, either @samp{standard} or @samp{mule}. Probably redundant. + +@item REQUIRES +(requires) +A list of packages required to correctly build this package. + +Note that the usual form in @file{package-info.in} already has the +parentheses, so the @file{make} variable should be set to a +space-separated list of package names @emph{not} enclosed in +parentheses. + +The list is of @emph{packages}, not @emph{libraries}, as would +ordinarily be provided to the Lisp @code{require} function. + +@samp{REQUIRES} cannot be correctly computed from the calls to +@code{require} in the package's library sources. @samp{REQUIRES} is +used to ensure that all macro and defstruct definitions used by the +package are available at build time. This is not merely a matter of +efficiency, to get the expansions inlined. In fact, it is +@emph{impossible} to call a macro by name in byte-compiled Emacs Lisp +code. Thus, if the macro expansion is not inlined, the call will result +in an error at run-time! Thus, packages providing libraries that would +be loaded because of autoload definitions must also be included. + +On the other hand, if a package provides no macros to this package, it +is preferable @emph{not} to include it in @samp{REQUIRES}, because it is +not uncommon that if the developer doesn't normally use the required +package, he will never use the functionality in the package being built, +either. In that case it would be preferable to not require the +developer to have source for the dependencies. That said, of course it +is safe to put too many packages in @samp{REQUIRES}. + +@item ELCS +The list of the byte-compiled Lisp files used by the package. These +files and their @file{.el} versions will be included in the binary +package. This variable determines which libraries will be +byte-compiled. These libraries are also deleted by @samp{make clean}. + +Note there is no sanity-checking done on this variable. If you put +@samp{.el} files in here, they will not be compiled and they @emph{will} +be deleted by @samp{make clean}. You would surely be very distressed if +that happened, so be very careful. If this variable is left empty, none +of your Lisp code will be compiled or packaged. This would be a less +than amusing surprise, too. + +We don't consider this a feature, of course. Please do submit code to +do sanity checking to @email{xemacs-patches@@xemacs.org}. +@end table + +Optional, but very commonly used variables include: + +@table @code +item EXTRA_SOURCES +Other files (such as extra Lisp sources or an upstream @file{Makefile}) +that are normally placed in the installed Lisp directory, but not +byte-compiled. These files are @emph{preserved} by the @samp{clean} +targets. + +@item EXTRA_OBJS +Other files (such as compiled autoload or concatenated @file{.elc} +libraries) which are normally placed in the installed Lisp directory, +but do @emph{not} have corresponding source files and @emph{should} be +deleted by the @samp{clean} targets. Some of these (such as +package-specific autoload setups) can and probably should be replaced by +@xpms{} solutions such as @file{auto-autoloads.el}, but many cannot. + +@item PRELOADS +A specification for loading libraries containing macros before compiling +the Lisp in the package. This is spliced directly into the invocation +of XEmacs for byte-compilation, so it must contain the @samp{-l} flag +for XEmacs: + +@example +PRELOADS=-l ./apackage-macros.el -l ../bpackage/lisp/bpackage-macros.el +@end example + +@item INFO_FILES +Any Info file(s) generated by the package. These must be paths relative +to the root of the package's source tree. + +@item TEXI_FILES +The Texinfo source file(s). These must be paths relative +to the root of the package's source tree. + +@item MANUAL +The name to be used for Info files and man pages. + +@item DATA_FILES +Any data files, such as pixmaps, READMEs, and ChangeLogs. These must be +paths relative to the root of the package's source tree. + +@item DATA_DEST +The installation location for data files, relative to the @file{etc/} +directory of the package hierarchy. The normal value is simply +$(PACKAGE). Leaving it empty (@emph{i.e.}, put it directly under +@file{etc/}) will probably work, but is subject to name conflicts with +other packages. +@end table + +Rarely used variables. + +@c @table @code +@c @item +@c @end table + +@node Makefile Targets, , Makefile Variables, Creating Packages + +The standard targets that need to be defined in your @file{Makefile} +follow. These normally should @emph{not} have an action. All of the +work should be done by dependent targets, usually having standard +definitions in the @xpms{}. + +@table @samp +@item all +A list of generated files, usually byte-compiled Lisp libraries, to be +bundled in the package. The typical dependencies are + +@example +$(ELCS) auto-autoloads.elc custom-load.elc +@end example + +Other targets (such as Info files) may need to be added as dependencies +for the @code{all} target. + +@item srckit +The target for generating a source package. Not implemented. If it +were, the normal dependency would be @samp{srckit-std}. + +@item binkit +The target for creating a ``master'' installation. Binary packages are +actually generated by the @samp{bindist} target. @xref{Building Packages}. +@end table + +Standard dependencies for @code{srckit} and @code{binkit} are defined in +@file{XEmacs.rules}. The most useful of these values are given in the +following table. + +@table @samp +@item srckit-std +Build a standard source kit. Not fully implemented. + +@item binkit-sourceonly +The @samp{binkit} target need only install source and compiled Lisp in +the staging area. There is nothing to install in a data directory or +info directory. + +@item binkit-sourceinfo +Both source and info files are to be installed in the staging area. + +@item binkit-sourcedata +Both source and etc (data) files are to be installed in the staging +area. + +@item binkit-sourcedatainfo +Source, etc (data), and info files all are present and need to be +installed in the staging area. + +@item binkit-common +A dependency for all the above. (In fact in the current implementation +@samp{binkit-common} does all the work for all of the @samp{binkit} +targets.) +@end table + +Data files include things like pixmaps for a package-specific toolbar, +and are normally installed in @file{etc/@var{PACKAGE_NAME}}. A few +packages have needs beyond the basic templates. See @file{XEmacs.rules} +or a future revision of this manual for details. + + +@node Issues, , Creating Packages, Packaging +@section Issues + +To be completed. + diff --text -u 'xemacs-21.5.3/man/term.texi' 'xemacs-21.5.4/man/term.texi' Index: ././man/term.texi --- ././man/term.texi Thu May 13 21:19:40 1999 +++ ././man/term.texi Sun Dec 16 04:25:19 2001 @@ -1,16 +1,16 @@ @\input texinfo @c -*-texinfo-*- -settitle Notes about emacs Term mode @setfilename ../info/term.info +@settitle XEmacs Terminal Emulator Mode @titlepage @sp 6 -@center @titlefont(Notes about Emacs TERM Mode) +@center @titlefont(XEmacs Terminal Emulator Mode) @end titlepage @ifinfo @dircategory XEmacs Editor @direntry -* Term mode: (term). Emacs terminal emulator mode. +* Term mode: (term). XEmacs Terminal Emulator Mode. @end direntry @node Top, , (DIR) @@ -24,7 +24,7 @@ @end menu @node term mode -@chapter Term Mode +@chapter XEmacs Terminal Emulator Mode @menu * Overview:: diff --text -u 'xemacs-21.5.3/man/xemacs-faq.texi' 'xemacs-21.5.4/man/xemacs-faq.texi' Index: ././man/xemacs-faq.texi --- ././man/xemacs-faq.texi Mon Aug 13 13:45:59 2001 +++ ././man/xemacs-faq.texi Wed Nov 28 03:54:56 2001 @@ -7,7 +7,7 @@ @finalout @titlepage @title XEmacs FAQ -@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2001/08/13 04:45:59 $ +@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2001/11/27 18:54:56 $ @sp 1 @author Tony Rossini @author Ben Wing @@ -28,7 +28,6 @@ @node Top, Introduction, (dir), (dir) @top XEmacs FAQ -@unnumbered Introduction This is the guide to the XEmacs Frequently Asked Questions list---a compendium of questions and answers pertaining to one of the finest @@ -655,10 +654,9 @@ @node Q1.0.9, Q1.0.10, Q1.0.8, Introduction @unnumberedsubsec Q1.0.9: What does XEmacs look like? -Screen snapshots are available in the WWW version of the FAQ. -@example -@uref{http://www.xemacs.org/faq/xemacs-faq.html} -@end example +Screen snapshots are available at +@uref{http://www.xemacs.org/About/Screenshots/index.html} +as part of the XEmacs website. @node Q1.0.10, Q1.0.11, Q1.0.9, Introduction @unnumberedsubsec Q1.0.10: Is there a port of XEmacs to Microsoft ('95 or NT)? @@ -1056,8 +1054,7 @@ which can be obtained from @end quotation -@uref{http://ftpsearch.ntnu.no/?query=russian.el.Z}. -@c dead link above +@uref{http://ftpsearch.lycos.com/?query=russian.el.Z&form=medium}. @email{d.barsky@@ee.surrey.ac.uk, Dima Barsky} writes: @@ -1077,7 +1074,7 @@ @quotation The fullest resource I found on Russian language use (in and out of -XEmacs) is @uref{http://sunsite.oit.unc.edu/sergei/Software/Software.html} +XEmacs) is @uref{http://www.ibiblio.org/sergei/Software/Software.html} @end quotation @node Q1.4.1, Q1.4.2, Q1.3.7, Introduction @@ -3904,7 +3901,7 @@ @node Q4.0.7, Q4.0.8, Q4.0.6, Subsystems @unnumberedsubsec Q4.0.7: Is there a mailing list or FAQ for VM? -A FAQ for VM exists at @uref{http://www.cyberpass.net/~gorkab/vmfaq.htm}. +A FAQ for VM exists at @uref{http://www.wonderworks.com/vm/FAQ.html}. VM has its own newsgroups gnu.emacs.vm.info and gnu.emacs.vm.bug. @@ -4371,11 +4368,9 @@ @unnumberedsec 4.6: Infodock @unnumberedsubsec Q4.6.1: What is Infodock? -InfoDock is an integrated productivity toolset, mainly aimed at -technical people. It is developed and supported by InfoDock -Associates, a firm that offers custom support and development -for InfoDock, XEmacs and GNU Emacs. ( @uref{http://www.infodock.com}, -@email{info@@infodock.com}, +1 408 243 3300). +@uref{http://sourceforge.net/projects/infodock/, InfoDock} is an +integrated productivity toolset, mainly aimed at technical people, +hosted at SourceForge. InfoDock is built atop the XEmacs variant of GNU Emacs and so has all of the power of Emacs, but with an easier to use and more comprehensive @@ -4543,7 +4538,7 @@ @iftex @* @end iftex -@uref{ftp://sunsite.auc.dk/packages/auctex/auctex.tar.gz}. +@uref{ftp://sunsite.dk/packages/auctex/auctex.tar.gz}. In case you don't have access to anonymous ftp, you can get it by an email request to @email{ftpmail@@decwrl.dec.com}. @@ -4552,7 +4547,7 @@ @iftex @* @end iftex -@uref{http://sunsite.auc.dk/auctex/}. +@uref{http://sunsite.dk/auctex/}. @node Q4.7.2, Q4.7.3, Q4.7.1, Subsystems @unnumberedsubsec Q4.7.2: Are there any Emacs Lisp Spreadsheets? @@ -6606,7 +6601,7 @@ directory of the XEmacs distribution, or use @kbd{C-h n} or the @samp{Help} menu to view this file inside of XEmacs. -@unnumberedsubsubsec User-visible changes +@unnumberedsubsubsec User-visible changes in XEmacs 21.4 @itemize @bullet @@ -6691,12 +6686,14 @@ Etags changes. See @file{NEWS} for full details. @end itemize -@unnumberedsubsubsec Lisp and internal changes +@unnumberedsubsubsec Lisp and internal changes in XEmacs 21.4 Not yet written. -@itemize @bullet -@end itemize +@c APA: Texi2html produces invalid HTML from an empty list of bullets! +@c Please uncomment following list when it does contain bullets. +@c @itemize @bullet +@c @end itemize @node Q7.0.3, Q7.0.4, Q7.0.2, Current Events @unnumberedsubsec Q7.0.3: What's new in XEmacs 21.1? @@ -6709,7 +6706,7 @@ directory of the XEmacs distribution, or use @kbd{C-h n} or the @samp{Help} menu to view this file inside of XEmacs. -@unnumberedsubsubsec User-visible changes +@unnumberedsubsubsec User-visible changes in XEmacs 21.1 @itemize @bullet @@ -6772,7 +6769,7 @@ @end itemize -@unnumberedsubsubsec Lisp and internal changes +@unnumberedsubsubsec Lisp and internal changes in XEmacs 21.1 @itemize @bullet diff --text -u 'xemacs-21.5.3/man/xemacs/programs.texi' 'xemacs-21.5.4/man/xemacs/programs.texi' Index: ././man/xemacs/programs.texi --- ././man/xemacs/programs.texi Fri Apr 13 03:22:29 2001 +++ ././man/xemacs/programs.texi Thu Dec 20 16:58:23 2001 @@ -1033,7 +1033,7 @@ @cindex class browser, C++ @cindex Ebrowse The Ebrowse is a separate facility tailored for C++, with tags and a -class browser. @xref{,,, ebrowse, Ebrowse User's Manual}. +class browser. @xref{Ebrowse,,, ebrowse, Ebrowse User's Manual}. @menu * Tag Syntax:: Tag syntax for various types of code and text files. @@ -1181,10 +1181,15 @@ to tag global variables. @item +In PHP code, tags are functions, classes and defines. When using the +@samp{--members} option, vars are tags too. + +@item In PostScript code, the tags are the functions. @item -In Prolog code, a tag name appears at the left margin. +In Prolog code, tags are predicates and rules at the beginning of +line. @item In Python code, @code{def} or @code{class} at the beginning of a line diff --text -u 'xemacs-21.5.3/man/xemacs/xemacs.texi' 'xemacs-21.5.4/man/xemacs/xemacs.texi' Index: ././man/xemacs/xemacs.texi --- ././man/xemacs/xemacs.texi Fri Apr 13 03:22:30 2001 +++ ././man/xemacs/xemacs.texi Sun Dec 16 04:25:21 2001 @@ -88,7 +88,7 @@ translation approved by the author instead of in the original English. @end titlepage @page -@ifinfo +@ifnottex @node Top, License,, (dir) @top The XEmacs Editor @@ -102,7 +102,7 @@ you are looking for an introductory manual, see the New User's Guide. -@end ifinfo +@end ifnottex @menu * License:: The GNU General Public License gives you permission to redistribute XEmacs on certain terms; and also diff --text -u 'xemacs-21.5.3/netinstall/ChangeLog' 'xemacs-21.5.4/netinstall/ChangeLog' Index: ././netinstall/ChangeLog --- ././netinstall/ChangeLog Fri Sep 7 18:13:26 2001 +++ ././netinstall/ChangeLog Wed Jan 9 01:22:54 2002 @@ -1,3 +1,169 @@ +2002-01-08 Stephen J. Turnbull + + * XEmacs 21.5.4 "bamboo" is released. + +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-11-21 Stephen J. Turnbull + + * XEmacs 21.4.6 "Common Lisp" is released. + +2001-10-27 Andy Piper + + * localdir.cc (dialog_cmd): allow download directory to be + created. + * log.cc (exit_setup): cygwin -> XEmacs + * net.cc (dialog_cmd): + (dialog_proc): + (do_net): sync with cygwin installer. + * res.rc: + * resource.h (IDS_CREATE_DIR): new. + * source.cc (load_dialog): + (save_dialog): + (dialog_cmd): + (dialog_proc): + (do_source): sync with cygwin installer. + * uninstall.cc (progress): remove log message. + * Makefile.in.in: generated setup-bin.ini correctly. + +2001-10-25 Andy Piper + + * Merge 21.5 codeline. + +2001-10-25 Andy Piper + + * setup.mak (OBJS): minor build fixes. + (distclean): + +2001-10-25 Andy Piper + + * desktop.cc: + * desktop.cc (do_desktop_setup): + * desktop.cc (load_dialog): + * desktop.cc (save_dialog): + * desktop.cc (do_desktop): handle idl file registration. + * geturl.cc (dialog): warning removal. + * geturl.cc (get_url_to_string): + * geturl.cc (get_url_to_file): make sure the nio gets deleted + after use, this also closes the inbound socket. + * nio-ftp.cc (ftp_line): fix from cygwin installer. + * nio-ftp.cc (NetIO_FTP): fix typeo. + * res.rc: support idl types. + * resource.h (IDC_IDL_TYPE): ditto. + * state.h: ditto. + +2001-09-24 Andy Piper + + * desktop.cc: + * desktop.cc (make_link): + * desktop.cc (find_xemacs_exe_name): + * desktop.cc (remove_link): + * desktop.cc (start_menu): + * desktop.cc (desktop_icon): + * desktop.cc (remove_desktop_setup): + * desktop.cc (FROB): + * desktop.cc (do_desktop_setup): + * desktop.cc (check_startmenu): + * desktop.cc (do_desktop): Be more exacting about removal of + desktop things. + * regedit.cc (remove1): + * regedit.cc (remove_app_path): + * regedit.h (remove_app_path): remove more registry pieces. + * res.rc: + * setup.mak (APPVER): + * setup.mak (CCV): + * setup.mak (OBJS): + * setup.mak (LIBS): + * setup.mak (distclean): + * uninstall.cc: + * uninstall.cc (read_installed_db): + * uninstall.cc (uninstall_all): Cleanup. + +2001-09-08 Andy Piper + + * Makefile.in.in (OBJS): + * Makefile.in.in (all): + * Makefile.in.in (extraclean): + * choose.cc (base): + * desktop.cc: + * desktop.cc (remove_link): + * desktop.cc (start_menu): + * desktop.cc (desktop_icon): + * desktop.cc (remove_desktop_setup): + * desktop.cc (do_desktop_setup): + * desktop.cc (load_dialog): + * desktop.cc (save_dialog): + * desktop.cc (do_desktop): + * dialog.h: + * download.cc (download_one): + * ini.h (pinfo): + * main.cc (WinMain): + * nio-ie5.cc: + * regedit.cc: + * regedit.cc (create_xemacs_root): + * regedit.cc (set_app_path): + * regedit.cc (set_install_path): + * regedit.cc (setup_explorer): + * regedit.cc (remove_app_path): + * regedit.cc (remove_uninstall_path): + * regedit.h (remove_app_path): + * reginfo.h: + * reginfo.h (XEMACS_INFO_XEMACS_ORG_REGISTRY_NAME): + * reginfo.h (XEMACS_NATIVE_ARCH_NAME): + * res.rc: + * resource.h (IDD_UNINSTALL): + * resource.h (IDC_TXT_TYPE): + * root.cc: + * root.cc (browse_cb): + * root.cc (set_default_root): + * splash.cc (do_splash): + * state.h: + * state.h (MIRROR_SITE): + * uninstall.cc: + * uninstall.cc (dialog_proc): + * uninstall.cc (progress): + * uninstall.cc (uninstall_one): + * uninstall.cc (do_uninstall): + * uninstall.cc (read_installed_db): + * uninstall.cc (uninstall_all): + * win32.h: + * win32.h (NOCOMATTRIBUTE): Update netinstaller to support + uninstallation and register standard file-types. + 2001-09-07 Stephen J. Turnbull * XEmacs 21.5.3 "asparagus" is released. @@ -226,3 +392,8 @@ 2000-11-12 Andy Piper * all: port from cygwin setup. + +%%% $Id: ChangeLog,v 1.11 2001/12/20 05:49:40 andyp Exp $ +$Revision: 1.11 $ + + diff --text -u 'xemacs-21.5.3/netinstall/Makefile.in.in' 'xemacs-21.5.4/netinstall/Makefile.in.in' Index: ././netinstall/Makefile.in.in --- ././netinstall/Makefile.in.in Fri Apr 13 03:22:42 2001 +++ ././netinstall/Makefile.in.in Thu Dec 20 14:49:40 2001 @@ -94,6 +94,10 @@ PROGS = setup.exe XEMACS=${blddir}/src/${PROGNAME} +CYGWIN_SIZE=0 +WIN32_SIZE=0 +KIT_VERSION="" + CONFIG_H = ../src/config.h OBJS = \ @@ -111,6 +115,7 @@ ini.o \ inilex.o \ iniparse.o \ + init.o \ install.o \ localdir.o \ log.o \ @@ -135,6 +140,7 @@ splash.o \ state.o \ tar.o \ + uninstall.o \ version.o .SUFFIXES: @@ -151,12 +157,16 @@ -L$(MINGW_ZLIB_DIR) -lz -lmingw32 @chmod a-x $@ -setup.ini: setup.exe +setup-bin.ini: V=`grep '^\$$Revision.*' $(srcdir)/ChangeLog \ - | sed -e 's/\$$Revision:* *//' \ - -e 's/ *$$.*//'` ;\ - $(XEMACS) -batch -vanilla -l ${srcdir}/../lisp/package-net.el \ - -f package-net-batch-convert-index-to-ini . $$V + | sed -e 's/\$$Revision:* *//' -e 's/ *$$.*//'` ;\ + $(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 install: @echo; echo "Installing net setup." @@ -191,7 +201,7 @@ .PHONY: mostlyclean clean distclean realclean extraclean mostlyclean: - $(RM) *.o *.i core $(PROGS) + $(RM) *.o *.i *.ini core $(PROGS) clean: mostlyclean @@ -207,7 +217,7 @@ 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 + 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 \ @@ -228,7 +238,11 @@ 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 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 --text -u 'xemacs-21.5.3/netinstall/choose.cc' 'xemacs-21.5.4/netinstall/choose.cc' Index: ././netinstall/choose.cc --- ././netinstall/choose.cc Fri Apr 13 03:22:44 2001 +++ ././netinstall/choose.cc Sun Sep 9 13:37:46 2001 @@ -623,7 +623,7 @@ return FALSE; } -static char * +char * base (char *s) { if (!s) diff --text -u 'xemacs-21.5.3/netinstall/desktop.cc' 'xemacs-21.5.4/netinstall/desktop.cc' Index: ././netinstall/desktop.cc --- ././netinstall/desktop.cc Fri Apr 13 03:22:44 2001 +++ ././netinstall/desktop.cc Thu Dec 20 14:49:40 2001 @@ -40,6 +40,8 @@ #include "reginfo.h" #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); @@ -60,27 +62,31 @@ static char *iconname; static char *batname; +static char *uninstname; static void -make_link (char *linkpath, char *title, char *target) +make_link (char *linkpath, char *title, char *target, char* args) { +#if 0 char argbuf[_MAX_PATH]; +#endif char *fname = concat (linkpath, "/", title, ".lnk", 0); if (_access (fname, 0) == 0) return; /* already exists */ - msg ("make_link %s, %s, %s\n", fname, title, target); + msg ("make_link %s, %s, %s, %s\n", fname, title, target, args); mkdir_p (0, fname); - char *exepath, *args; - + char *exepath; +#if 0 /* If we are running Win9x, build a command line. */ if (verinfo.dwPlatformId == VER_PLATFORM_WIN32_NT) { +#endif exepath = target; - args = ""; +#if 0 } else { @@ -91,9 +97,19 @@ sprintf (argbuf, "%s %s", COMMAND9XARGS, target); args = argbuf; } - +#endif msg ("make_link_2 (%s, %s, %s, %s)", exepath, args, iconname, fname); - make_link_2 (exepath, args, iconname, fname); + make_link_2 (backslash (exepath), args, iconname, fname); +} + +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* @@ -103,11 +119,11 @@ 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)); } -static char* +char* find_xemacs_exe_name () { /* Hack to support older versions. */ @@ -116,14 +132,34 @@ 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"); } static void -start_menu (char *title, char *target) +remove_link (char *linkpath, char* title) +{ + if (title) + { + char *fname = backslash (concat (linkpath, "/", title, ".lnk", 0)); + msg ("remove_link %s, %s\n", fname, title); + if (_access (fname, 0) != 0) + return; /* doesn't exist */ + _unlink (fname); + } + else + { + msg ("remove_link %s\n", linkpath); + if (_access (linkpath, 0) != 0) + return; /* doesn't exist */ + _rmdir (linkpath); + } +} + +static void +start_menu (char *title, char *target, int rem, char* args) { char path[_MAX_PATH]; LPITEMIDLIST id; @@ -139,13 +175,16 @@ msg("Program directory for program link changed to: %s",path); } // end of Win95 addition - strcat (path, "/"); + strcat (path, "\\"); strcat (path, XEMACS_INFO_XEMACS_ORG_REGISTRY_NAME); - make_link (path, title, target); + if (rem == 0) + make_link (path, title, target, args); + else + remove_link (path, title); } static void -desktop_icon (char *title, char *target) +desktop_icon (char *title, char *target, int rem) { char path[_MAX_PATH]; LPITEMIDLIST id; @@ -162,59 +201,10 @@ msg("Desktop directory for deskop link changed to: %s",path); } // end of Win95 addition - make_link (path, title, target); -} - -static int -uexists (char *path) -{ - char *f = concat (root_dir, path, 0); - int a = _access (f, 0); - free (f); - if (a == 0) - return 1; - return 0; -} - -static void -make_passwd_group () -{ - if (verinfo.dwPlatformId != VER_PLATFORM_WIN32_NT) - { - int i; - - LOOP_PACKAGES - { - if (!strcmp (package[i].name, "cygwin")) - { - /* mkpasswd and mkgroup are not working on 9x/ME up to 1.1.5-4 */ - char *border_version = canonicalize_version ("1.1.5-4"); - char *inst_version = canonicalize_version (pi.version); - - if (strcmp (inst_version, border_version) <= 0) - return; - - break; - } - } - } - - if (uexists ("/etc/passwd") && uexists ("/etc/group")) - return; - - char *fname = concat (root_dir, "/etc/postinstall/passwd-grp.bat", 0); - mkdir_p (0, fname); - - FILE *p = fopen (fname, "wb"); - if (!p) - return; - - if (!uexists ("/etc/passwd")) - fprintf (p, "bin\\mkpasswd -l > etc\\passwd\n"); - if (!uexists ("/etc/group")) - fprintf (p, "bin\\mkgroup -l > etc\\group\n"); - - fclose (p); + if (rem == 0) + make_link (path, title, target, ""); + else + remove_link (path, title); } static void @@ -240,46 +230,114 @@ } } +void +remove_xemacs_setup() +{ + if (xemacs_package == 0) + return; + + start_menu ("XEmacs", 0, 1, 0); + desktop_icon ("XEmacs", 0, 1); + +#define FROB(exe) remove_app_path (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 do_desktop_setup() { save_icon (); if (root_menu && batname) { - start_menu ("XEmacs", batname); + start_menu ("XEmacs", batname, 0, ""); + start_menu ("Uninstall XEmacs", uninstname, 0, "-u"); } if (root_desktop && batname) { - desktop_icon ("XEmacs", batname); + desktop_icon ("XEmacs", batname, 0); } // set regkeys for the application if (xemacs_package != 0) { int issystem = (root_scope == IDC_ROOT_SYSTEM ? 1 : 0); - if (xemacs_package->type == TY_NATIVE) + if (xemacs_package->type == TY_NATIVE + || xemacs_package->type == TY_CYGWIN) { + if (xemacs_package->type == TY_NATIVE) + { #define FROB(exe) set_app_path ((exe), \ find_xemacs_exe_path (), \ issystem) - FROB (find_xemacs_exe_name ()); - FROB ("runemacs.exe"); - FROB ("xemacs.exe"); + FROB (find_xemacs_exe_name ()); + FROB ("runemacs.exe"); + FROB ("xemacs.exe"); #undef FROB - } - else if (xemacs_package->type == TY_CYGWIN) - { - int junk; - char* root = find_cygwin_root (&junk); + } + else if (xemacs_package->type == TY_CYGWIN) + { + int junk; + char* root = find_cygwin_root (&junk); #define FROB(exe) set_app_path ((exe), \ concat (find_xemacs_exe_path (), ";", \ root, "\\bin;", \ root, "\\usr\\bin", 0), \ issystem) - FROB (find_xemacs_exe_name ()); - FROB ("runemacs.exe"); - FROB ("xemacs.exe"); + FROB (find_xemacs_exe_name ()); + FROB ("runemacs.exe"); + FROB ("xemacs.exe"); #undef FROB + } + set_install_path (find_xemacs_exe_path(), issystem); + } + // Register file types + if (batname) + { + if (reg_java) + { + log (0, "Registering .java files"); + setup_explorer ("java", "Java Source file", batname); + setup_explorer ("jav", "Java Source file", batname); + } + if (reg_cpp) + { + log (0, "Registering .cpp files"); + setup_explorer ("cpp", "C++ Source file", batname); + setup_explorer ("cc", "C++ Source file", batname); + setup_explorer ("hh", "C++ Header file", batname); + } + if (reg_c) + { + log (0, "Registering .c files"); + setup_explorer ("c", "C Source file", batname); + setup_explorer ("h", "C Header file", batname); + } + if (reg_elisp) + { + log (0, "Registering .el files"); + setup_explorer ("el", "E-Lisp Source file", batname); + } + if (reg_txt) + { + log (0, "Registering .txt files"); + setup_explorer ("txt", "Text file", batname); + } + if (reg_idl) + { + log (0, "Registering .idl files"); + setup_explorer ("idl", "OMG IDL file", batname); + } } } } @@ -287,6 +345,13 @@ static int da[] = { IDC_ROOT_DESKTOP, 0 }; static int ma[] = { IDC_ROOT_MENU, 0 }; +static int ct[] = { IDC_C_TYPE, 0 }; +static int javat[] = { IDC_JAVA_TYPE, 0 }; +static int cppt[] = { IDC_CPP_TYPE, 0 }; +static int elispt[] = { IDC_ELISP_TYPE, 0 }; +static int txtt[] = { IDC_TXT_TYPE, 0 }; +static int idlt[] = { IDC_IDL_TYPE, 0 }; + static void check_if_enable_next (HWND h) { @@ -298,6 +363,12 @@ { rbset (h, da, root_desktop); rbset (h, ma, root_menu); + rbset (h, ct, reg_c); + rbset (h, javat, reg_java); + rbset (h, cppt, reg_cpp); + rbset (h, elispt, reg_elisp); + rbset (h, txtt, reg_txt); + rbset (h, idlt, reg_idl); check_if_enable_next (h); } @@ -346,14 +417,14 @@ msg ("Program directory for program link changed to: %s",path); } // end of Win95 addition - strcat (path, "/"); + strcat (path, "\\"); strcat (path, XEMACS_INFO_XEMACS_ORG_REGISTRY_NAME); - char *fname = concat (path, "/", title, ".lnk", 0); + char *fname = concat (path, "\\", title, ".lnk", 0); if (_access (fname, 0) == 0) return 0; /* already exists */ - fname = concat (path, "/", title, ".pif", 0); /* check for a pif as well */ + fname = concat (path, "\\", title, ".pif", 0); /* check for a pif as well */ if (_access (fname, 0) == 0) return 0; /* already exists */ @@ -366,6 +437,12 @@ { root_desktop= rbget (h, da); root_menu = rbget (h, ma); + reg_c = rbget (h, ct); + reg_java = rbget (h, javat); + reg_cpp = rbget (h, cppt); + reg_elisp = rbget (h, elispt); + reg_txt = rbget (h, txtt); + reg_idl = rbget (h, idlt); } static BOOL @@ -420,19 +497,33 @@ verinfo.dwOSVersionInfoSize = sizeof (verinfo); GetVersionEx (&verinfo); batname = 0; + uninstname = 0; if (xemacs_package != 0 && xemacs_package->type != TY_GENERIC) { batname = concat (find_xemacs_exe_path (), "\\", find_xemacs_exe_name (), 0); + uninstname = concat (find_xemacs_exe_path (), "\\", "setup.exe", 0); root_desktop = check_desktop ("XEmacs", batname); root_menu = check_startmenu ("XEmacs", batname); + reg_c = IDC_C_TYPE; + reg_cpp = IDC_CPP_TYPE; + reg_java = IDC_JAVA_TYPE; + reg_elisp = IDC_ELISP_TYPE; + reg_txt = IDC_TXT_TYPE; + reg_idl = IDC_IDL_TYPE; } else { root_desktop = 0; root_menu = 0; + reg_c = 0; + reg_cpp = 0; + reg_java = 0; + reg_elisp = 0; + reg_txt = 0; + reg_idl = 0; } int rv = 0; diff --text -u /dev/null 'xemacs-21.5.4/netinstall/desktop.h' Index: ././netinstall/desktop.h --- ././netinstall/desktop.h Thu Jan 1 09:00:00 1970 +++ ././netinstall/desktop.h Thu Dec 20 14:49:40 2001 @@ -0,0 +1,23 @@ +/* + Copyright (C) 2001 Andy Piper. + +This file is part of XEmacs. + +XEmacs is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2, or (at your option) any +later version. + +XEmacs is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with XEmacs; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +extern void remove_desktop_setup (); +extern void remove_xemacs_setup (); +extern char* find_xemacs_exe_name(); diff --text -u 'xemacs-21.5.3/netinstall/dialog.h' 'xemacs-21.5.4/netinstall/dialog.h' Index: ././netinstall/dialog.h --- ././netinstall/dialog.h Fri Apr 13 03:22:45 2001 +++ ././netinstall/dialog.h Sun Sep 9 13:37:46 2001 @@ -31,11 +31,13 @@ D(do_download); D(do_fromcwd); D(do_ini); +D(do_init); D(do_install); D(do_local_dir); D(do_net); D(do_other); D(do_postinstall); +D(do_uninstall); D(do_root); D(do_site); D(do_source); diff --text -u 'xemacs-21.5.3/netinstall/download.cc' 'xemacs-21.5.4/netinstall/download.cc' Index: ././netinstall/download.cc --- ././netinstall/download.cc Fri Apr 13 03:22:45 2001 +++ ././netinstall/download.cc Sun Sep 9 13:37:46 2001 @@ -32,8 +32,6 @@ #include "mkdir.h" #include "log.h" -#define pi (package[i].info[package[i].trust]) - static int download_one (char *name, int expected_size) { diff --text -u 'xemacs-21.5.3/netinstall/geturl.cc' 'xemacs-21.5.4/netinstall/geturl.cc' Index: ././netinstall/geturl.cc --- ././netinstall/geturl.cc Fri Apr 13 03:22:46 2001 +++ ././netinstall/geturl.cc Fri Oct 26 11:42:53 2001 @@ -72,10 +72,10 @@ dialog (void *) { MSG m; - HWND gw_dialog = CreateDialog (hinstance, MAKEINTRESOURCE (IDD_DLSTATUS), + HWND lgw_dialog = CreateDialog (hinstance, MAKEINTRESOURCE (IDD_DLSTATUS), 0, dialog_proc); - ShowWindow (gw_dialog, SW_SHOWNORMAL); - UpdateWindow (gw_dialog); + ShowWindow (lgw_dialog, SW_SHOWNORMAL); + UpdateWindow (lgw_dialog); while (GetMessage (&m, 0, 0, 0) > 0) { TranslateMessage (&m); DispatchMessage (&m); @@ -197,6 +197,10 @@ bufs = tmp; } *rvp = 0; + + if (n) + delete n; + return rv; } @@ -243,6 +247,9 @@ } fclose (f); + + if (n) + delete n; return 0; } diff --text -u 'xemacs-21.5.3/netinstall/ini.h' 'xemacs-21.5.4/netinstall/ini.h' Index: ././netinstall/ini.h --- ././netinstall/ini.h Fri Apr 13 03:22:47 2001 +++ ././netinstall/ini.h Sun Sep 9 13:37:47 2001 @@ -73,7 +73,8 @@ Package *new_package (char *name); void ini_init (char *string); -#define pi (package[i].info[package[i].trust]) +#define pinfo(p) ((p).info[(p).trust]) +#define pi pinfo(package[i]) #define LOOP_PACKAGES \ for (i=0; i * based on work and suggestions of DJ Delorie * + * Sync'ed with cinstall 2001-10-16 */ /* The purpose of this file is to ask the user where they want the @@ -23,7 +24,9 @@ #include #include #include +#include +#include "mkdir.h" #include "dialog.h" #include "resource.h" #include "state.h" @@ -102,6 +105,11 @@ case IDOK: save_dialog (h); + if (_access (local_dir, 0) != 0 && yesno (IDS_CREATE_DIR, local_dir) == IDYES) + { + log (0, "Created install directory %s\n", local_dir); + mkdir_p (1, local_dir); + } if (SetCurrentDirectoryA (local_dir)) { switch (source) @@ -132,7 +140,6 @@ NEXT (0); break; } - return FALSE; } static BOOL CALLBACK diff --text -u 'xemacs-21.5.3/netinstall/log.cc' 'xemacs-21.5.4/netinstall/log.cc' Index: ././netinstall/log.cc --- ././netinstall/log.cc Fri Apr 13 03:22:48 2001 +++ ././netinstall/log.cc Tue Oct 30 14:13:28 2001 @@ -110,7 +110,7 @@ if (exit_msg) note (exit_msg); - log (LOG_TIMESTAMP, "Ending cygwin install"); + log (LOG_TIMESTAMP, "Ending XEmacs install"); if (source == IDC_SOURCE_DOWNLOAD || !root_dir) { diff --text -u 'xemacs-21.5.3/netinstall/main.cc' 'xemacs-21.5.4/netinstall/main.cc' Index: ././netinstall/main.cc --- ././netinstall/main.cc Fri Apr 13 03:22:49 2001 +++ ././netinstall/main.cc Sun Sep 9 13:37:47 2001 @@ -51,21 +51,29 @@ int cmd_show) { hinstance = h; + int pos = -1; + if ((pos = strcspn(command_line, "-")) >= 0 + && + command_line[pos+1] == 'u') + { + next_dialog = IDD_UNINSTALL; + log (LOG_TIMESTAMP, "Starting XEmacs uninstall"); + uninstall = 1; + } + else + { + next_dialog = IDD_SPLASH; + log (LOG_TIMESTAMP, "Starting XEmacs install"); + } - next_dialog = IDD_SPLASH; - - log (LOG_TIMESTAMP, "Starting XEmacs install"); - - char cwd[_MAX_PATH]; - GetCurrentDirectory (sizeof (cwd), cwd); - local_dir = strdup (cwd); - log (0, "Current Directory: %s", cwd); + do_init(h); while (next_dialog) { switch (next_dialog) { case IDD_SPLASH: do_splash (h); break; + case IDD_UNINSTALL: do_uninstall (h); break; case IDD_SOURCE: do_source (h); break; case IDD_LOCAL_DIR: do_local_dir (h); break; case IDD_ROOT: do_root (h); break; diff --text -u 'xemacs-21.5.3/netinstall/msg.cc' 'xemacs-21.5.4/netinstall/msg.cc' Index: ././netinstall/msg.cc Prereq: 1.3 --- ././netinstall/msg.cc Fri Apr 13 18:11:35 2001 +++ ././netinstall/msg.cc Tue Oct 30 14:13:28 2001 @@ -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.3 2001/04/13 09:11:35 michaels Exp $\n"; - #include "win32.h" #include #include diff --text -u 'xemacs-21.5.3/netinstall/net.cc' 'xemacs-21.5.4/netinstall/net.cc' Index: ././netinstall/net.cc --- ././netinstall/net.cc Fri Apr 13 03:22:50 2001 +++ ././netinstall/net.cc Tue Oct 30 14:13:28 2001 @@ -11,6 +11,7 @@ * * Written by DJ Delorie * + * Sync'ed with cinstall 2001-10-16 */ /* The purpose of this file is to get the network configuration @@ -115,7 +116,6 @@ NEXT (0); break; } - return FALSE; } static BOOL CALLBACK @@ -125,6 +125,13 @@ { case WM_INITDIALOG: load_dialog (h); + + // Check to see if any radio buttons are selected. If not, select a default. + if ((!SendMessage(GetDlgItem (h, IDC_NET_IE5), BM_GETCHECK, 0, 0) == BST_CHECKED) + && (!SendMessage(GetDlgItem (h, IDC_NET_PROXY), BM_GETCHECK, 0, 0) == BST_CHECKED)) + { + SendMessage(GetDlgItem (h, IDC_NET_DIRECT), BM_CLICK, 0, 0); + } return FALSE; case WM_COMMAND: return HANDLE_WM_COMMAND (h, wParam, lParam, dialog_cmd); @@ -137,6 +144,7 @@ { int rv = 0; + net_method = IDC_NET_DIRECT; rv = DialogBox (h, MAKEINTRESOURCE (IDD_NET), 0, dialog_proc); if (rv == -1) fatal (IDS_DIALOG_FAILED); diff --text -u 'xemacs-21.5.3/netinstall/nio-ftp.cc' 'xemacs-21.5.4/netinstall/nio-ftp.cc' Index: ././netinstall/nio-ftp.cc --- ././netinstall/nio-ftp.cc Fri Apr 13 03:22:51 2001 +++ ././netinstall/nio-ftp.cc Fri Oct 26 11:42:53 2001 @@ -43,7 +43,7 @@ last_line = s->gets (); log (LOG_BABBLE, "ftp > %s", last_line); } while (last_line && (!isdigit (last_line[0]) || last_line[3] != ' ')); - return atoi (last_line ? last_line : "0"); + return atoi (last_line ?: "0"); } NetIO_FTP::NetIO_FTP (char *Purl) @@ -73,7 +73,7 @@ code = ftp_line (c); if (code == 331) { - c->printf ("PASS xenacs-setup@\r\n"); + c->printf ("PASS xemacs-setup@\r\n"); code = ftp_line (c); } diff --text -u 'xemacs-21.5.3/netinstall/nio-ie5.cc' 'xemacs-21.5.4/netinstall/nio-ie5.cc' Index: ././netinstall/nio-ie5.cc Prereq: 1.3 --- ././netinstall/nio-ie5.cc Fri Apr 13 18:11:35 2001 +++ ././netinstall/nio-ie5.cc Sun Sep 9 13:37:47 2001 @@ -18,8 +18,6 @@ must already have installed and configured IE5. This module is called from netio.cc, which is called from geturl.cc */ -static char *cvsid = "\n%%% $Id: nio-ie5.cc,v 1.3 2001/04/13 09:11:35 michaels Exp $\n"; - #include "win32.h" #include "resource.h" diff --text -u 'xemacs-21.5.3/netinstall/regedit.cc' 'xemacs-21.5.4/netinstall/regedit.cc' Index: ././netinstall/regedit.cc --- ././netinstall/regedit.cc Fri Apr 13 03:22:52 2001 +++ ././netinstall/regedit.cc Tue Sep 25 11:35:32 2001 @@ -180,6 +180,7 @@ path, path); RegSetValueEx (key, XEMACS_INFO_XEMACS_PACKAGE_KEY, 0, REG_SZ, (BYTE *)buf, strlen (buf)+1); + RegCloseKey (key); } void @@ -201,6 +202,117 @@ RegSetValueEx (key, "Path", 0, REG_SZ, (BYTE *)path, strlen (path)+1); + RegCloseKey (key); +} + +void +set_install_path (char* path, int issystem) +{ + char buf[1000]; + HKEY key; + DWORD disposition; + + sprintf (buf, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\XEmacs"); + + HKEY kr = issystem ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER; + RegDeleteKey (kr, buf); + + if (RegCreateKeyEx (kr, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS, + 0, &key, &disposition) != ERROR_SUCCESS) + fatal ("set_install_path"); + + RegSetValueEx (key, "DisplayName", + 0, REG_SZ, (BYTE *)"XEmacs", strlen ("XEmacs")+1); + + sprintf (buf, "%s\\setup.exe -u", path); + RegSetValueEx (key, "UninstallString", + 0, REG_SZ, (BYTE *)buf, strlen (buf)+1); + RegCloseKey (key); +} + +void +setup_explorer (char* file_type, char* name, char *exe) +{ + char buf[1000]; + char ftype[32]; + HKEY key; + DWORD disposition; + + sprintf (buf, ".%s", file_type); + RegDeleteKey (HKEY_CLASSES_ROOT, buf); + + if (RegCreateKeyEx (HKEY_CLASSES_ROOT, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS, + 0, &key, &disposition) != ERROR_SUCCESS) + fatal ("setup_explorer"); + + // set default key + sprintf (ftype, "%sfile", file_type); + RegSetValueEx (key, NULL, + 0, REG_SZ, (BYTE *)ftype, strlen (ftype)+1); + RegCloseKey (key); + + // create file type entry + RegDeleteKey (HKEY_CLASSES_ROOT, ftype); + if (RegCreateKeyEx (HKEY_CLASSES_ROOT, ftype, 0, "XEmacs", + 0, KEY_ALL_ACCESS, + 0, &key, &disposition) != ERROR_SUCCESS) + fatal ("setup_explorer"); + RegSetValueEx (key, NULL, + 0, REG_SZ, (BYTE *)name, strlen (name)+1); + RegSetValueEx (key, "AlwaysShowExt", + 0, REG_SZ, (BYTE *)"", strlen ("")+1); + RegCloseKey (key); + + // make xemacs file the default icon + sprintf(buf, "%s\\DefaultIcon", ftype); + if (RegCreateKeyEx (HKEY_CLASSES_ROOT, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS, + 0, &key, &disposition) != ERROR_SUCCESS) + fatal ("setup_explorer"); + + sprintf(buf, "%s,1", exe); + RegSetValueEx (key, NULL, + 0, REG_SZ, (BYTE *)buf, strlen (buf)+1); + RegCloseKey (key); + + // command default key (exe) + sprintf(buf, "%s\\shell\\Open\\command", ftype); + if (RegCreateKeyEx (HKEY_CLASSES_ROOT, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS, + 0, &key, &disposition) != ERROR_SUCCESS) + fatal ("setup_explorer"); + + sprintf(buf, "\"%s\"", exe); // Don't need %1 because dde will open the file + RegSetValueEx (key, NULL, + 0, REG_SZ, (BYTE *)buf, strlen (buf)+1); + RegCloseKey (key); + + // ddeexec + sprintf(buf, "%s\\shell\\Open\\ddeexec", ftype); + if (RegCreateKeyEx (HKEY_CLASSES_ROOT, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS, + 0, &key, &disposition) != ERROR_SUCCESS) + fatal ("setup_explorer"); + +#define DDE_OPEN "Open(\"%1\")" + RegSetValueEx (key, NULL, + 0, REG_SZ, (BYTE *)DDE_OPEN, strlen (DDE_OPEN)+1); + RegCloseKey (key); + + // ddeexec application + sprintf(buf, "%s\\shell\\Open\\ddeexec\\application", ftype); + if (RegCreateKeyEx (HKEY_CLASSES_ROOT, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS, + 0, &key, &disposition) != ERROR_SUCCESS) + fatal ("setup_explorer"); + RegSetValueEx (key, NULL, + 0, REG_SZ, (BYTE *)"XEmacs", strlen ("XEmacs")+1); + RegCloseKey (key); + + // ddeexec topic + sprintf(buf, "%s\\shell\\Open\\ddeexec\\topic", ftype); + if (RegCreateKeyEx (HKEY_CLASSES_ROOT, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS, + 0, &key, &disposition) != ERROR_SUCCESS) + fatal ("setup_explorer"); + RegSetValueEx (key, NULL, + 0, REG_SZ, (BYTE *)"system", strlen ("system")+1); + RegCloseKey (key); } static void @@ -211,7 +323,10 @@ sprintf (buf, "Software\\%s\\%s", XEMACS_INFO_XEMACS_ORG_REGISTRY_NAME, XEMACS_INFO_XEMACS_REGISTRY_NAME); + RegDeleteKey (rkey, buf); + sprintf (buf, "Software\\%s", + XEMACS_INFO_XEMACS_ORG_REGISTRY_NAME); RegDeleteKey (rkey, buf); } @@ -222,3 +337,23 @@ remove1 (HKEY_CURRENT_USER); } +void +remove_app_path (char *exe) +{ + char buf[1000]; + sprintf (buf, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\%s", + exe); + + RegDeleteKey (HKEY_LOCAL_MACHINE, buf); + RegDeleteKey (HKEY_CURRENT_USER, buf); +} + +void +remove_uninstall_path () +{ + char buf[1000]; + sprintf (buf, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\XEmacs"); + + RegDeleteKey (HKEY_LOCAL_MACHINE, buf); + RegDeleteKey (HKEY_CURRENT_USER, buf); +} diff --text -u 'xemacs-21.5.3/netinstall/regedit.h' 'xemacs-21.5.4/netinstall/regedit.h' Index: ././netinstall/regedit.h --- ././netinstall/regedit.h Fri Apr 13 03:22:53 2001 +++ ././netinstall/regedit.h Tue Sep 25 11:35:32 2001 @@ -23,4 +23,8 @@ void create_xemacs_root (char *posix, int issystem, int isnative); void remove_xemacs_root (); void set_app_path (char *exe, char* path, int issystem); +void set_install_path (char* path, int issystem); +void setup_explorer (char* file_type, char* name, char *exe); +void remove_app_path (char *exe); +void remove_uninstall_path (); diff --text -u 'xemacs-21.5.3/netinstall/reginfo.h' 'xemacs-21.5.4/netinstall/reginfo.h' Index: ././netinstall/reginfo.h --- ././netinstall/reginfo.h Fri Apr 13 03:22:53 2001 +++ ././netinstall/reginfo.h Sun Sep 9 13:37:47 2001 @@ -2,7 +2,7 @@ Copyright (C) 2000 Andy Piper. */ -#define XEMACS_INFO_XEMACS_ORG_REGISTRY_NAME "GNU" +#define XEMACS_INFO_XEMACS_ORG_REGISTRY_NAME "XEmacs" #define XEMACS_INFO_XEMACS_REGISTRY_NAME "XEmacs" /* Keys */ #define XEMACS_INFO_XEMACS_ROOT_KEY "emacs_dir" @@ -20,8 +20,8 @@ #define XEMACS_PACKAGE_DIR \ ((char*)(install_type == IDC_INSTALL_NATIVE ? "\\xemacs-packages\\" \ : "/lib/xemacs/xemacs-packages/")) -#define XEMACS_NATIVE_ARCH_NAME "i386-pc-win32" -#define XEMACS_CYGWIN_ARCH_NAME "i686-pc-cygwin32" +#define XEMACS_NATIVE_ARCH_NAME "i586-pc-win32" +#define XEMACS_CYGWIN_ARCH_NAME "i686-pc-cygwin" /* * Installation hierarchy is: @@ -35,8 +35,8 @@ * \pkginfo * \site-packages * \mule-packages - * \XEmacs-21.2 - * \i386-pc-win32 + * \XEmacs-21.4 + * \i586-pc-win32 * \etc * \info * \lisp @@ -45,12 +45,12 @@ * /xemacs/xemacs-packages * /xemacs/site-packages * /xemacs/mule-packages - * /xemacs-21.2 - * /i686-pc-cygwin32 + * /xemacs-21.4 + * /i686-pc-cygwin * /etc * /info * /lisp - * /usr/local/bin/i686-pc-cygwin32 + * /usr/local/bin/i686-pc-cygwin */ diff --text -u 'xemacs-21.5.3/netinstall/res.rc' 'xemacs-21.5.4/netinstall/res.rc' Index: ././netinstall/res.rc Prereq: 1.3 --- ././netinstall/res.rc Fri Apr 13 18:11:35 2001 +++ ././netinstall/res.rc Tue Oct 30 14:13:28 2001 @@ -33,20 +33,20 @@ CAPTION "XEmacs Setup" FONT 8, "MS Sans Serif" BEGIN - DEFPUSHBUTTON "Next >",IDOK,199,176,45,15,WS_DISABLED + 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 + CONTROL "Install from the Internet",IDC_SOURCE_NETINST,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,127,121,87,10 + CONTROL "Install from Local Directory",IDC_SOURCE_CWD,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,127,140,104,10 LTEXT "",IDC_STATIC,10,10,87,151,SS_SUNKEN | NOT WS_GROUP LTEXT "",IDC_STATIC,10,169,291,1,SS_SUNKEN | NOT WS_GROUP LTEXT "Setup will use the following installation method.", IDC_STATIC,112,11,170,17 LTEXT "To exit setup click Cancel at any time.",IDC_STATIC,112, 32,166,17 - CONTROL "Download from the Internet",IDC_SOURCE_DOWNLOAD,"Button", - BS_AUTORADIOBUTTON,127,102,152,10 - CONTROL "Install from the Internet",IDC_SOURCE_NETINST,"Button", - BS_AUTORADIOBUTTON,127,121,87,10 - CONTROL "Install from Local Directory",IDC_SOURCE_CWD,"Button", - BS_AUTORADIOBUTTON,127,140,104,10 GROUPBOX "Installation method",IDC_STATIC,113,84,188,77 CONTROL "GNU",IDC_STATIC,"Static",SS_BITMAP,19,36,69,62 END @@ -142,26 +142,26 @@ CONTROL "GNU",IDC_STATIC,"Static",SS_BITMAP,19,36,69,62 END -IDD_NET DIALOG 0, 0, 311, 201 +IDD_NET DIALOG DISCARDABLE 0, 0, 311, 201 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "XEmacs Setup" FONT 8, "MS Sans Serif" BEGIN - DEFPUSHBUTTON "Next >",IDOK,199,176,45,15 + PUSHBUTTON "Next >",IDOK,199,176,45,15,WS_GROUP PUSHBUTTON "< Back",IDC_BACK,154,176,45,15 PUSHBUTTON "Cancel",IDCANCEL,256,176,45,15 LTEXT "",IDC_STATIC,10,10,87,151,SS_SUNKEN | NOT WS_GROUP LTEXT "",IDC_STATIC,10,169,291,1,SS_SUNKEN | NOT WS_GROUP LTEXT "Setup will use the following connection method.", - IDC_STATIC,112,11,170,17 + IDC_STATIC,112,11,170,17,NOT WS_GROUP LTEXT "To exit setup click Cancel at any time.",IDC_STATIC,112, - 32,166,17 + 32,166,17,NOT WS_GROUP CONTROL "Use IE5 Settings",IDC_NET_IE5,"Button", - BS_AUTORADIOBUTTON,128,93,69,10 + BS_AUTORADIOBUTTON | WS_TABSTOP,128,93,69,10 CONTROL "Direct Connection",IDC_NET_DIRECT,"Button", - BS_AUTORADIOBUTTON,128,109,73,10 + BS_AUTORADIOBUTTON | WS_TABSTOP,128,109,73,10 CONTROL "Use HTTP/FTP Proxy:",IDC_NET_PROXY,"Button", - BS_AUTORADIOBUTTON,128,124,88,10 + BS_AUTORADIOBUTTON | WS_TABSTOP,128,124,88,10 EDITTEXT IDC_PROXY_HOST,128,141,80,12,ES_AUTOHSCROLL | WS_DISABLED LTEXT "Proxy",IDC_STATIC,10,55,50,15,SS_CENTERIMAGE, @@ -216,6 +216,30 @@ CONTROL "GNU",IDC_STATIC,"Static",SS_BITMAP,19,36,69,62 END +IDD_UNINSTALL DIALOG DISCARDABLE 0, 0, 311, 201 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Uninstall XEmacs" +FONT 8, "MS Sans Serif" +BEGIN + PUSHBUTTON "Cancel",IDCANCEL,199,176,45,15 + DEFPUSHBUTTON "Uninstall",IDOK,256,176,45,15 + LTEXT "",IDC_STATIC,10,10,87,151,SS_SUNKEN | NOT WS_GROUP + LTEXT "",IDC_STATIC,10,169,291,1,SS_SUNKEN | NOT WS_GROUP + LTEXT "Uninstalling Packages",IDC_STATIC,112,10,170,17 + LTEXT "(PKG)",IDC_UNINS_PKG,112,26,170,11 + LTEXT "(FILE)",IDC_UNINS_FILE,112,41,166,11 + CONTROL "Progress1",IDC_UNINS_DISKFULL,"msctls_progress32", + WS_BORDER,123,143,165,10 + CONTROL "Progress1",IDC_UNINS_IPROGRESS,"msctls_progress32", + WS_BORDER,125,106,163,10 + CONTROL "Progress1",IDC_UNINS_PPROGRESS,"msctls_progress32", + WS_BORDER,125,67,163,10 + GROUPBOX "Disk",IDC_STATIC,112,130,186,31 + GROUPBOX "Package",IDC_STATIC,112,54,186,31 + GROUPBOX "Total",IDC_STATIC,112,93,186,31 + CONTROL "GNU",IDC_STATIC,"Static",SS_BITMAP,19,36,69,62 +END + IDD_PROXY_AUTH DIALOG DISCARDABLE 0, 0, 215, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "XEmacs Setup" @@ -250,7 +274,7 @@ PUSHBUTTON "Cancel",IDCANCEL,165,75,45,15 END -IDD_SPLASH DIALOG 0, 0, 311, 201 +IDD_SPLASH DIALOG DISCARDABLE 0, 0, 311, 201 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "XEmacs Setup" FONT 8, "MS Sans Serif" @@ -301,17 +325,29 @@ DEFPUSHBUTTON "Finish",IDOK,199,176,45,15 PUSHBUTTON "< Back",IDC_BACK,154,176,45,15 PUSHBUTTON "Cancel",IDCANCEL,256,176,45,15 - LTEXT "",IDC_STATIC,10,10,87,151,SS_SUNKEN | NOT WS_GROUP - LTEXT "",IDC_STATIC,10,169,291,1,SS_SUNKEN | NOT WS_GROUP LTEXT "Setup has now finished. To create desktop shortcuts, please select from the following options.", IDC_STATIC,112,11,170,17 LTEXT "To complete setup click Finish.",IDC_STATIC,112,32,166, 17 CONTROL "Create Desktop Icon",IDC_ROOT_DESKTOP,"Button", - BS_AUTOCHECKBOX,113,76,100,8 + BS_AUTOCHECKBOX,113,50,100,8 CONTROL "Add to Start Menu",IDC_ROOT_MENU,"Button", - BS_AUTOCHECKBOX,113,97,100,8 + BS_AUTOCHECKBOX,113,66,100,8 + CONTROL "GNU",IDC_STATIC,"Static",SS_BITMAP,19,36,69,62 + CONTROL "Text",IDC_TXT_TYPE,"Button",BS_AUTOCHECKBOX,209,101,38, + 8 + CONTROL "Java",IDC_JAVA_TYPE,"Button",BS_AUTOCHECKBOX,113,100,50, + 8 + CONTROL "C",IDC_C_TYPE,"Button",BS_AUTOCHECKBOX,113,116,41,8 + CONTROL "C++",IDC_CPP_TYPE,"Button",BS_AUTOCHECKBOX,113,133,38,8 + CONTROL "E-Lisp",IDC_ELISP_TYPE,"Button",BS_AUTOCHECKBOX,113,148, + 38,8 + LTEXT "Register XEmacs for these file types:",IDC_STATIC,113, + 84,166,13 + LTEXT "",IDC_STATIC,10,169,291,1,SS_SUNKEN | NOT WS_GROUP + LTEXT "",IDC_STATIC,10,10,87,151,SS_SUNKEN | NOT WS_GROUP CONTROL "GNU",IDC_STATIC,"Static",SS_BITMAP,19,36,69,62 + CONTROL "IDL",IDC_IDL_TYPE,"Button",BS_AUTOCHECKBOX,209,116,38,8 END @@ -433,6 +469,8 @@ IDD_DESKTOP, DIALOG BEGIN VERTGUIDE, 113 + VERTGUIDE, 209 + HORZGUIDE, 124 END END #endif // APSTUDIO_INVOKED @@ -449,7 +487,7 @@ IDB_CHECK_YES BITMAP DISCARDABLE "check-yes.bmp" IDB_CHECK_NO BITMAP DISCARDABLE "check-no.bmp" IDB_CHECK_NA BITMAP DISCARDABLE "check-na.bmp" -GNU BITMAP DISCARDABLE "gnu.bmp" +GNU BITMAP DISCARDABLE "gnu.bmp" IDB_GNU BITMAP DISCARDABLE "gnu.bmp" ///////////////////////////////////////////////////////////////////////////// @@ -478,11 +516,12 @@ 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.3 2001/04/13 09:11:35 michaels Exp $\n" + IDS_CVSID "\n%%% $Id: res.rc,v 1.7 2001/10/30 05:13:28 andyp 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?" diff --text -u 'xemacs-21.5.3/netinstall/resource.h' 'xemacs-21.5.4/netinstall/resource.h' Index: ././netinstall/resource.h --- ././netinstall/resource.h Fri Apr 13 03:22:53 2001 +++ ././netinstall/resource.h Tue Oct 30 14:13:28 2001 @@ -28,6 +28,7 @@ #define IDS_DOWNLOAD_INCOMPLETE 26 #define IDS_INSTALL_INCOMPLETE 27 #define IDS_ROOT_NOCYGWIN 28 +#define IDS_CREATE_DIR 29 #define IDD_ROOT 101 #define IDD_SOURCE 102 #define IDD_OTHER_URL 103 @@ -54,6 +55,7 @@ #define IDB_CHECK_NO 124 #define IDB_CHECK_NA 125 #define IDB_GNU 126 +#define IDD_UNINSTALL 127 #define IDC_SOURCE_DOWNLOAD 1000 #define IDC_SOURCE_NETINST 1001 #define IDC_SOURCE_CWD 1002 @@ -94,9 +96,21 @@ #define IDC_ROOT_DESKTOP 1041 #define IDC_ROOT_MENU 1042 #define IDC_LOCAL_DIR_BROWSE 1043 +#define IDC_TXT_TYPE 1043 #define IDC_LOCAL_DIR 1044 +#define IDC_JAVA_TYPE 1044 #define IDC_INSTALL_NATIVE 1045 +#define IDC_C_TYPE 1045 #define IDC_INSTALL_CYGWIN 1046 +#define IDC_CPP_TYPE 1046 +#define IDC_UNINS_PKG 1047 +#define IDC_ELISP_TYPE 1047 +#define IDC_UNINS_FILE 1048 +#define IDC_IDL_TYPE 1048 +#define IDC_UNINS_DISKFULL 1049 +#define IDC_UNINS_IPROGRESS 1050 +#define IDC_UNINS_PPROGRESS 1051 +#define IDC_UNINS_ACTION 1052 #define IDC_STATIC -1 // Next default values for new objects diff --text -u 'xemacs-21.5.3/netinstall/root.cc' 'xemacs-21.5.4/netinstall/root.cc' Index: ././netinstall/root.cc --- ././netinstall/root.cc Fri Apr 13 03:22:54 2001 +++ ././netinstall/root.cc Sun Sep 9 13:37:47 2001 @@ -137,32 +137,6 @@ } } -static void -read_mount_table () -{ - int isnative, issystem; - root_dir = find_root_location (&issystem, &isnative); - if (root_dir) - { - if (isnative) - install_type = IDC_INSTALL_NATIVE; - else - install_type = IDC_INSTALL_CYGWIN; - - if (issystem) - root_scope = IDC_ROOT_SYSTEM; - else - root_scope = IDC_ROOT_USER; - root_dir_default = 0; - } - else - { - change_default_root (IDC_INSTALL_NATIVE); - root_scope = (is_admin()) ? IDC_ROOT_SYSTEM : IDC_ROOT_USER; - root_dir_default = 1; - } -} - static int CALLBACK browse_cb (HWND h, UINT m, LPARAM lp, LPARAM data) { @@ -317,11 +291,21 @@ return FALSE; } +static void +set_default_root () +{ + change_default_root (IDC_INSTALL_NATIVE); + root_scope = (is_admin()) ? IDC_ROOT_SYSTEM : IDC_ROOT_USER; + root_dir_default = 1; +} + void do_root (HINSTANCE h) { int rv = 0; - read_mount_table (); + // init will have read a previous root + if (!root_dir) + set_default_root (); rv = DialogBox (h, MAKEINTRESOURCE (IDD_ROOT), 0, dialog_proc); if (rv == -1) diff --text -u 'xemacs-21.5.3/netinstall/setup.mak' 'xemacs-21.5.4/netinstall/setup.mak' Index: ././netinstall/setup.mak --- ././netinstall/setup.mak Fri Apr 13 03:22:54 2001 +++ ././netinstall/setup.mak Tue Sep 25 11:35:32 2001 @@ -26,7 +26,6 @@ TARGETOS=BOTH APPVER=4.0 -!include "c:\Program Files\Microsoft Platform SDK\Include\win32.mak" default: all @@ -55,9 +54,9 @@ VERBOSECC=0 !endif !if $(VERBOSECC) -cc=$(cc) +CCV=$(CC) !else -cc=@$(cc) +CCV=@$(CC) !endif !if $(DEBUG_XEMACS) @@ -83,6 +82,7 @@ $(OUTDIR)\geturl.obj \ $(OUTDIR)\hash.obj \ $(OUTDIR)\ini.obj \ + $(OUTDIR)\init.obj \ $(OUTDIR)\inilex.obj \ $(OUTDIR)\iniparse.obj \ $(OUTDIR)\install.obj \ @@ -101,7 +101,6 @@ $(OUTDIR)\nio-http.obj \ $(OUTDIR)\other.obj \ $(OUTDIR)\postinstall.obj \ -# $(OUTDIR)\res.obj \ $(OUTDIR)\root.obj \ $(OUTDIR)\simpsock.obj \ $(OUTDIR)\site.obj \ @@ -109,6 +108,7 @@ $(OUTDIR)\splash.obj \ $(OUTDIR)\state.obj \ $(OUTDIR)\tar.obj \ + $(OUTDIR)\uninstall.obj \ $(OUTDIR)\version.obj # @@ -126,9 +126,9 @@ # nmake rule .cc{$(OUTDIR)}.obj: - $(cc) /TP $(cflags) $(cdebug) $(cvarsmt) $(defines) -Fo$@ $< + $(CC) /TP $(cflags) $(cdebug) $(cvarsmt) $(defines) -Fo$@ $< .c{$(OUTDIR)}.obj: - $(cc) $(cflags) $(cdebug) $(cvarsmt) $(defines) -Fo$@ $< + $(CC) $(cflags) $(cdebug) $(cvarsmt) $(defines) -Fo$@ $< # # Main target @@ -169,8 +169,9 @@ # DO NOT DELETE $(OUTDIR)/autoload.obj: autoload.c win32.h -$(OUTDIR)/inilex.obj: inilex.c win32.h ini.h iniparse.h \ - +$(OUTDIR)/inilex.obj: inilex.c win32.h ini.h iniparse.h +$(OUTDIR)/init.obj: win32.h dialog.h resource.h \ + state.h ini.h concat.h msg.h log.h find.h reginfo.h $(OUTDIR)/iniparse.obj: iniparse.c ini.h iniparse.h port.h $(OUTDIR)/inilex.obj: inilex.c win32.h ini.h iniparse.h $(OUTDIR)/mklink2.obj: mklink2.c win32.h @@ -237,6 +238,10 @@ $(OUTDIR)/splash.obj: splash.cc win32.h dialog.h resource.h msg.h \ version.h $(OUTDIR)/state.obj: state.cc state.h +$(OUTDIR)/uninstall.obj: install.cc win32.h \ + $(ZLIBDIR)/zlib.h $(ZLIBDIR)/zconf.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 $(OUTDIR)/tar.obj: tar.cc win32.h \ $(ZLIBDIR)/zlib.h $(ZLIBDIR)/zconf.h \ tar.h mkdir.h log.h port.h diff --text -u 'xemacs-21.5.3/netinstall/source.cc' 'xemacs-21.5.4/netinstall/source.cc' Index: ././netinstall/source.cc --- ././netinstall/source.cc Fri Apr 13 03:22:55 2001 +++ ././netinstall/source.cc Thu Dec 20 14:49:40 2001 @@ -11,6 +11,7 @@ * * Written by DJ Delorie * + * Sync'ed with cinstall 2001-10-16 */ /* The purpose of this file is to manage the dialog box that lets the @@ -25,19 +26,12 @@ #include "msg.h" #include "log.h" -static int rb[] = { IDC_SOURCE_DOWNLOAD, IDC_SOURCE_NETINST, IDC_SOURCE_CWD, 0 }; - -static void -check_if_enable_next (HWND h) -{ - EnableWindow (GetDlgItem (h, IDOK), source ? 1 : 0); -} +static int rb[] = { IDC_SOURCE_NETINST, IDC_SOURCE_DOWNLOAD, IDC_SOURCE_CWD, 0 }; static void load_dialog (HWND h) { rbset (h, rb, source); - check_if_enable_next (h); } static void @@ -56,7 +50,6 @@ case IDC_SOURCE_NETINST: case IDC_SOURCE_CWD: save_dialog (h); - check_if_enable_next (h); break; case IDOK: @@ -72,8 +65,10 @@ case IDCANCEL: NEXT (0); break; + + default: + break; } - return FALSE; } static BOOL CALLBACK @@ -83,6 +78,12 @@ { case WM_INITDIALOG: load_dialog (h); + // Check to see if any radio buttons are selected. If not, select a default. + if ((!SendMessage(GetDlgItem (h, IDC_SOURCE_DOWNLOAD), BM_GETCHECK, 0, 0) == BST_CHECKED) + && (!SendMessage(GetDlgItem (h, IDC_SOURCE_CWD), BM_GETCHECK, 0, 0) == BST_CHECKED)) + { + SendMessage(GetDlgItem (h, IDC_SOURCE_NETINST), BM_SETCHECK, BST_CHECKED, 0); + } return FALSE; case WM_COMMAND: return HANDLE_WM_COMMAND (h, wParam, lParam, dialog_cmd); @@ -94,6 +95,8 @@ do_source (HINSTANCE h) { int rv = 0; + /* source = IDC_SOURCE_CWD;*/ + source = IDC_SOURCE_NETINST; rv = DialogBox (h, MAKEINTRESOURCE (IDD_SOURCE), 0, dialog_proc); if (rv == -1) fatal (IDS_DIALOG_FAILED); diff --text -u 'xemacs-21.5.3/netinstall/splash.cc' 'xemacs-21.5.4/netinstall/splash.cc' Index: ././netinstall/splash.cc --- ././netinstall/splash.cc Fri Apr 13 03:22:55 2001 +++ ././netinstall/splash.cc Sun Sep 9 13:37:47 2001 @@ -68,7 +68,6 @@ do_splash (HINSTANCE h) { int rv = 0; - HANDLE gnu = LoadImage (h, MAKEINTRESOURCE (IDB_GNU), IMAGE_BITMAP, 0, 0, 0); rv = DialogBox (h, MAKEINTRESOURCE (IDD_SPLASH), 0, dialog_proc); if (rv == -1) fatal (IDS_DIALOG_FAILED); diff --text -u 'xemacs-21.5.3/netinstall/state.h' 'xemacs-21.5.4/netinstall/state.h' Index: ././netinstall/state.h --- ././netinstall/state.h Fri Apr 13 03:22:55 2001 +++ ././netinstall/state.h Fri Oct 26 11:42:53 2001 @@ -29,6 +29,13 @@ extern int root_menu; extern int root_desktop; +extern int reg_c; +extern int reg_cpp; +extern int reg_java; +extern int reg_elisp; +extern int reg_txt; +extern int reg_idl; + extern int net_method; extern char * net_proxy_host; extern int net_proxy_port; @@ -42,5 +49,6 @@ extern char * other_url; extern int trust_level; +extern int uninstall; #define MIRROR_SITE (mirror_site ? mirror_site : other_url) diff --text -u /dev/null 'xemacs-21.5.4/netinstall/uninstall.cc' Index: ././netinstall/uninstall.cc --- ././netinstall/uninstall.cc Thu Jan 1 09:00:00 1970 +++ ././netinstall/uninstall.cc Thu Dec 20 14:49:40 2001 @@ -0,0 +1,326 @@ +/* + * Copyright (c) 2000, Red Hat, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * A copy of the GNU General Public License can be found at + * http://www.gnu.org/ + * + * Written by DJ Delorie + * + */ + +/* The purpose of this file is to intall all the packages selected in + the install list (in ini.h). Note that we use a separate thread to + maintain the progress dialog, so we avoid the complexity of + handling two tasks in one thread. We also create or update all the + files in /etc/setup and create the mount points. */ + +#include +#include +#include +#include +#ifndef WIN32_NATIVE +#include +#endif +#include +#include +#include +#include + +#include "win32.h" +#include "commctrl.h" + +#include "resource.h" +#include "ini.h" +#include "dialog.h" +#include "concat.h" +#include "geturl.h" +#include "mkdir.h" +#include "state.h" +#include "tar.h" +#include "diskfull.h" +#include "msg.h" +#include "regedit.h" +#include "reginfo.h" +#include "log.h" +#include "hash.h" +#include "desktop.h" + +#include "port.h" + +#define XM_DONE (WM_USER + 101) + +static HWND unins_dialog = 0; +static HWND unins_action = 0; +static HWND unins_pkgname = 0; +static HWND unins_filename = 0; +static HWND unins_pprogress = 0; +static HWND unins_iprogress = 0; +static HWND unins_diskfull = 0; +static HANDLE init_event; + +static int package_bytes = 0; +static int uninstall_started = 0; + +extern char * map_filename (char *fn, int type); +static void start_uninstall (); + +char * +base (char *s); + +static BOOL +dialog_cmd (HWND h, int id, HWND hwndctl, UINT code) +{ + switch (id) + { + case IDCANCEL: + exit_setup (1); + case IDOK: + if (uninstall_started == 0) { + uninstall_started = 1; + start_uninstall(); + } + else + exit_setup(0); + break; + } + return FALSE; +} + +static BOOL CALLBACK +dialog_proc (HWND h, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_INITDIALOG: + unins_dialog = h; + unins_action = GetDlgItem (h, IDC_UNINS_ACTION); + unins_pkgname = GetDlgItem (h, IDC_UNINS_PKG); + unins_filename = GetDlgItem (h, IDC_UNINS_FILE); + unins_pprogress = GetDlgItem (h, IDC_UNINS_PPROGRESS); + unins_iprogress = GetDlgItem (h, IDC_UNINS_IPROGRESS); + unins_diskfull = GetDlgItem (h, IDC_UNINS_DISKFULL); + SendMessage (unins_pprogress, PBM_SETRANGE, 0, MAKELPARAM (0, 100)); + SendMessage (unins_iprogress, PBM_SETRANGE, 0, MAKELPARAM (0, 100)); + SendMessage (unins_diskfull, PBM_SETRANGE, 0, MAKELPARAM (0, 100)); + SetWindowText (unins_pkgname, ""); + SetWindowText (unins_filename, ""); + SendMessage (unins_pprogress, PBM_SETPOS, (WPARAM) 0, 0); + SendMessage (unins_iprogress, PBM_SETPOS, (WPARAM) 0, 0); + SendMessage (unins_diskfull, PBM_SETPOS, (WPARAM) 0, 0); + return FALSE; + + case XM_DONE: + { + SetWindowText (GetDlgItem (h, IDOK), "Ok"); + LONG style = GetWindowLong (GetDlgItem (h, IDCANCEL), + GWL_STYLE); + SetWindowLong (GetDlgItem (h, IDCANCEL), + GWL_STYLE, style & WS_DISABLED); + } + return FALSE; + + case WM_COMMAND: + return HANDLE_WM_COMMAND (h, wParam, lParam, dialog_cmd); + } + return DefWindowProc (h, message, wParam, lParam); +} + +static DWORD WINAPI uninstall_all (void *); + +static void +start_uninstall () +{ + DWORD tid; + HANDLE thread; + init_event = CreateEvent (0, 0, 0, 0); + thread = CreateThread (0, 0, uninstall_all, 0, 0, &tid); + WaitForSingleObject (init_event, 10000); + CloseHandle (init_event); +} + +static void +progress (int bytes, int num) +{ + int perc; + log (0, "%d bytes", bytes); + if (package_bytes > 100) + { + perc = (bytes * 100) / package_bytes; + SendMessage (unins_pprogress, PBM_SETPOS, (WPARAM) perc, 0); + } + + if (npackages > 0) + { + perc = (num * 100) / npackages; + SendMessage (unins_iprogress, PBM_SETPOS, (WPARAM) perc, 0); + } +} + +static int num_installs, num_uninstalls; + +static void +uninstall_one (char *name, int type, int num) +{ + hash dirs; + char line[_MAX_PATH]; + char* fname = (type == TY_GENERIC ? + concat (root_dir, XEMACS_PACKAGE_DIR, "pkginfo/MANIFEST.", + name, 0) : + concat (root_dir, XEMACS_SETUP_DIR, "MANIFEST.", name, 0)); + + FILE* lst = fopen (fname, "rb"); + int pos = 0; + + if (lst) + { + fseek (lst, 0, SEEK_END); + package_bytes = ftell (lst); + fseek (lst, 0, SEEK_SET); + + SetWindowText (unins_pkgname, name); + SetWindowText (unins_action, "Uninstalling..."); + log (0, "uninstalling %s", name); + + while (fgets (line, sizeof (line), lst)) + { + progress (pos, num); + pos += strlen(line); + if (line[strlen(line)-1] == '\n') + line[strlen(line)-1] = 0; + + dirs.add_subdirs (line); + + char *d = map_filename (line, type); + DWORD dw = GetFileAttributes (d); + if (dw != 0xffffffff && !(dw & FILE_ATTRIBUTE_DIRECTORY)) + { + log (LOG_BABBLE, "unlink %s", d); + DeleteFile (d); + } + } + fclose (lst); + remove (fname); + + dirs.reverse_sort (); + char *subdir = 0; + while ((subdir = dirs.enumerate (subdir)) != 0) + { + char *d = map_filename (subdir, type); + if (RemoveDirectory (d)) + log (LOG_BABBLE, "rmdir %s", d); + } + num_uninstalls ++; + } +} + +void +do_uninstall (HINSTANCE h) +{ + num_installs = 0, num_uninstalls = 0; + + next_dialog = 0; // we're done after this + + if (!root_dir) + fatal ("no installation found"); + + int rv = DialogBox (h, MAKEINTRESOURCE (IDD_UNINSTALL), 0, dialog_proc); + if (rv == -1) + fatal (IDS_DIALOG_FAILED); +} + +static void +read_installed_db () +{ + if (!root_dir) + return; + + char line[1000], pkg[1000], inst[1000], src[1000]; + int instsz, srcsz; + + FILE *db = fopen (concat (root_dir, XEMACS_SETUP_DIR, "installed.db", 0), "rt"); + if (!db) + return; + + while (fgets (line, 1000, db)) + { + src[0] = 0; + srcsz = 0; + sscanf (line, "%s %s %d %s %d", pkg, inst, &instsz, src, &srcsz); + + log (0, "read %s", pkg); + Package* np = new_package(strdup(pkg)); + pinfo(*np).install = inst; + pinfo(*np).install_size = instsz; + // pick up versoin + char *v, *d; + for (v=base (inst); *v; v++) + if (*v == '-' && isdigit(v[1])) + { + v++; + break; + } + if (!v) + v = inst; + for (d=v; *d; d++) + if (strncmp (d, ".tar", 4) == 0 + || strncmp (d, "-pkg", 4) == 0) + { + *d = 0; + break; + } + if (v[0]) + pinfo(*np).version = strdup (v); + else + pinfo(*np).version = "0"; + // Crude but effective + if (pkg != 0) + if (strncmp ("xemacs-i686", pkg, 11) == 0 + || (strncmp ("xemacs-i586", pkg, 11) == 0)) + { + np->type = install_type; + xemacs_package = np; + } + } + fclose (db); +} + +static DWORD WINAPI +uninstall_all (void *) +{ + int i; + SetEvent (init_event); + + int df = diskfull (root_dir); + SendMessage (unins_diskfull, PBM_SETPOS, (WPARAM) df, 0); + + read_installed_db(); + + log (0, "There are %d packages\n", npackages); + for (i=0; i -#ifdef WIN32_NATIVE -/* MSVC is barking with the list above, something else is missing, so - I'm using and lean-n-mean. FP, 2000-23-12 */ -#include -#endif -#include -#include -#include -#include -#include -#include -#include - -#include - /* Cope with native win32 & mingw differences. Written by F. Popineau */ #ifdef WIN32_NATIVE @@ -49,6 +31,14 @@ # define stat _stat # define strnicmp _strnicmp #endif + +#include + +#define WIN32_LEAN_AND_MEAN +#include + +#include +#include #ifndef CDECL #define CDECL __cdecl diff --text -u 'xemacs-21.5.3/nt/ChangeLog' 'xemacs-21.5.4/nt/ChangeLog' Index: ././nt/ChangeLog --- ././nt/ChangeLog Fri Sep 7 18:13:26 2001 +++ ././nt/ChangeLog Wed Jan 9 01:22:54 2002 @@ -1,3 +1,12 @@ +2002-01-08 Stephen J. Turnbull + + * XEmacs 21.5.4 "bamboo" is released. + +2001-09-28 Adrian Aichner + + * xemacs.mak (COPY): Use xcopy /r for NT 4.0 compatibility. + * xemacs.mak (COPYDIR): Ditto + 2001-09-07 Stephen J. Turnbull * XEmacs 21.5.3 "asparagus" is released. diff --text -u 'xemacs-21.5.3/nt/installer/Wise/ChangeLog' 'xemacs-21.5.4/nt/installer/Wise/ChangeLog' Index: ././nt/installer/Wise/ChangeLog --- ././nt/installer/Wise/ChangeLog Fri Sep 7 18:13:26 2001 +++ ././nt/installer/Wise/ChangeLog Wed Jan 9 01:22:54 2002 @@ -1,3 +1,7 @@ +2002-01-08 Stephen J. Turnbull + + * XEmacs 21.5.4 "bamboo" is released. + 2001-09-07 Stephen J. Turnbull * XEmacs 21.5.3 "asparagus" is released. diff --text -u 'xemacs-21.5.3/nt/xemacs.mak' 'xemacs-21.5.4/nt/xemacs.mak' Index: ././nt/xemacs.mak --- ././nt/xemacs.mak Thu Jul 26 15:21:45 2001 +++ ././nt/xemacs.mak Sat Sep 29 00:31:01 2001 @@ -56,8 +56,9 @@ # Define the 'copy' command to use # Suppress confirmation for overwriting files -COPY=xcopy /q /y -COPYDIR=xcopy /q /y /e +# Use /r (instead of /y), which exists on Windows NT 4 and 5. +COPY=xcopy /q /r +COPYDIR=xcopy /q /r /e # Program name and version diff --text -u 'xemacs-21.5.3/src/.cvsignore' 'xemacs-21.5.4/src/.cvsignore' Index: ././src/.cvsignore --- ././src/.cvsignore Sat May 12 20:39:22 2001 +++ ././src/.cvsignore Wed Dec 19 07:55:31 2001 @@ -1,21 +1,22 @@ -Makefile.in -paths.h -config.h +*.so.* Emacs.ad.h -Makefile GNUmakefile +Makefile +Makefile.in +NEEDTODUMP +SATISFIED +Xpm.dll +config.h +dump-id.c +gmon.out +paths.h 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 +temacs.pdb +update-elc.stamp +xemacs +xemacs.dmp xemacs.opt diff --text -u 'xemacs-21.5.3/src/ChangeLog' 'xemacs-21.5.4/src/ChangeLog' Index: ././src/ChangeLog --- ././src/ChangeLog Fri Sep 7 18:13:26 2001 +++ ././src/ChangeLog Wed Jan 9 01:22:54 2002 @@ -1,3 +1,1553 @@ +2002-01-08 Stephen J. Turnbull + + * XEmacs 21.5.4 "bamboo" is released. + +2001-07-22 Stephen J. Turnbull + + * config.h.in (IPV6_CANONICALIZE): New #define for --with-ipv6-lookup. + * process-unix.c (unix_canonicalize_host_name): + sysdep.c (init_system_name): + Use it to conditionally support IPv6 canonicalization. + +2002-01-04 Martin Buchholz + + * keymap.c (define_key_alternate_name): Parenthesize EQ. + +2001-12-22 William M. Perry + + * glyphs-gtk.c (gtk_xpm_instantiate): Don't bother doing the + xpm-color-symbols checks, they are impossible to implement with + GTK's XPM implementation. :( + +2001-12-13 William M. Perry + + * select-gtk.c (gtk_own_selection): Update to follow the new + method signature. Ignore owned_p as it appears to only be used + for motif hacks. + + * redisplay-gtk.c (gtk_output_string): Fixed some warnings about + signed/unsigned comparison. + (gtk_output_gdk_pixmap): Remove clipping code as per change by + andy@xemacs.org to the X11 code. + (gtk_output_pixmap): Make this follow the output_pixmap method + conventions and expose it. + (gtk_output_horizontal_line): Renamed from output_hline, and + expose it in our method structure. + (gtk_ring_bell): Don't ring the bell if volume <= 0 + + * toolbar-gtk.c (gtk_output_toolbar_button): + (gtk_output_frame_toolbars): + (gtk_redraw_exposed_toolbars): + (gtk_redraw_frame_toolbars): These are now just aliases for the + common_XXX() routines in toolbar-common.c + + * toolbar-common.c: New common toolbar implementation. This file + uses only the redisplay_XXX() functions and device methods to draw + the toolbar, and so should be portable across all windowing + systems (other than tty, and even then I imagine text-based stuff + would work if you had a way to select it). + +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-11-24 Andy Piper + + * window.c (Fsplit_window): Doc return type. + +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. + +2001-11-15 Andy Piper + + (Fmswindows_shell_execute): fix handling of URL's under cygwin (again). + +2001-11-14 Andy Piper + + * nt.c (REG_ROOT): change registry key to XEmacs. + +2001-10-29 Andy Piper + + * dialog-msw.c (handle_directory_dialog_box): quit if the user + cancels. + +2001-12-16 Torsten Duwe + + * search.c (Freplace_match): Add missing sub-expression functionality. + + * buffer.c (decode_buffer): Add a check for pointer type to + decode_buffer, before gcc's CSE optimization reorders a + dereference in front of the allow_string test. + +2001-11-16 Darryl Okahata + + * window.c (window_loop): Fix bug that sometimes prevented + window_loop() from iterating across multiple devices. Also, at + Ben's request, changed infloop-detecting code to abort() instead + of silently terminating window_loop(). + +2001-11-21 Stephen J. Turnbull + + Based on analysis and patch by Simon Josefson . + * editfns.c (make_time): New function. + (Fencode_time): Use it instead of wasteful_word_to_lisp. + * lisp.h (make_time): Prototype and comment it. + * dired.c (wasteful_word_to_lisp): Deprecate. + (Ffile_attributes): Use make_time() instead of wasteful_word_to_lisp(). + +2001-10-31 Kyle Jones + + * fileio.c (auto_save_1): Use current coding system, not + escape-quoted. + +2001-11-13 Ben Wing + + * window.c: + * window.c (window_truncation_on): + * window.c (syms_of_window): + truncate-partial-width-windows should respect the buffer being + displayed, like other redisplay vars. + +2001-11-13 Hirokazu FUKUI + + * event-stream.c (Fread_key_sequence): save current buffer. + +2001-10-29 Andrew Begel + + * ntheap.c (_heap_init): Don't redefine in VS.NET (MSC >= 1300). + +2001-10-29 Andrew Begel + + * alloc.c (lcrecord_stats): Add space for types defined in modules. + +2001-12-18 Adrian Aichner + + * .cvsignore: Sort lines, add dump-id.c. + +2001-12-13 William M. Perry + + * glyphs-gtk.c (gtk_map_subwindow): Make sure that we always call + gtk_fixed_put, even if the size allocations are the same. + (gtk_subwindow_instantiate): Fixed compilation warnings. + +2001-10-26 Mike Alexander + + * event-msw.c (slurper_free_shared_data_maybe): Free the pipe handle. + +2001-10-25 Andy Piper + + * ChangeLog: + * dialog-msw.c (handle_directory_proc): new function. + (handle_directory_dialog_box): new fucntion. + (handle_file_dialog_box): use new directory dialog support. + (mswindows_make_dialog_box_internal): ditto. + * event-msw.c (mswindows_wnd_proc): minor fix to scrollbar event + handling. + (mswindows_find_frame): make global. + * fileio.c (Fexpand_file_name): build fix. + * general-slots.h: add Qdirectory. + * scrollbar-msw.c (mswindows_handle_scrollbar_event): fix focus + handling. + * syswindows.h (LOCAL_TO_WIN32_FILE_FORMAT): fix problem with + cygwin not leaving win32 paths unchanged. + * win32.c (Fmswindows_cygwin_to_win32_path): new function. Use the + cygwin runtime to do path conversion. + (Fmswindows_shell_execute): fix cygwin handling of URLs. + (syms_of_win32): add new function. + * window.c (window_loop): build fix. + +2001-10-15 Andy Piper + + (Fmswindows_shell_execute): fix handling of URL's under cygwin. + +2001-08-30 Daiki Ueno + + * process-unix.c (unix_open_multicast_group): Remove too much + conversion between host and network byte order. + +2001-09-19 Ben Wing + + * abbrev.c (abbrev_match_mapper): + * abbrev.c (abbrev_oblookup): + * abbrev.c (obarray_has_blank_p): + * abbrev.c (abbrev_count_case): + * abbrev.c (Fexpand_abbrev): + * alloc.c (xmalloc): + * alloc.c (xcalloc): + * alloc.c (xmalloc_and_zero): + * alloc.c (xrealloc): + * alloc.c (deadbeef_memory): + * alloc.c (allocate_lisp_storage): + * alloc.c (alloc_lcrecord): + * alloc.c (size_vector): + * alloc.c (vector_hash): + * alloc.c (make_vector_internal): + * alloc.c (make_vector): + * alloc.c (make_bit_vector_internal): + * alloc.c (make_bit_vector): + * alloc.c (make_bit_vector_from_byte_vector): + * alloc.c (Fmake_marker): + * alloc.c (noseeum_make_marker): + * alloc.c (make_uninit_string): + * alloc.c (resize_string): + * alloc.c (set_string_char): + * alloc.c (Fmake_string): + * alloc.c (Fstring): + * alloc.c (make_string): + * alloc.c (build_string): + * alloc.c (build_translated_string): + * alloc.c (make_string_nocopy): + * alloc.c (make_lcrecord_list): + * alloc.c (tick_lcrecord_stats): + * alloc.c (garbage_collect_1): + * alloc.c (malloced_storage_size): + * alloc.c (fixed_type_block_overhead): + * blocktype.c (Blocktype_newf): + * blocktype.h: + * blocktype.h (Blocktype_declare): + * buffer.c: + * buffer.c (Fkill_buffer): + * buffer.c (compute_buffer_text_usage): + * buffer.c (struct): + * buffer.c (reinit_vars_of_buffer): + * buffer.c (directory_is_current_directory): + * buffer.h: + * buffer.h (struct buffer_text): + * buffer.h (struct buffer): + * buffer.h (VALID_CHARPTR_P): + * buffer.h (REAL_INC_CHARBYTEBPOS): + * buffer.h (INC_CHARBYTEBPOS): + * buffer.h (DEC_CHARPTR): + * buffer.h (VALIDATE_CHARPTR_FORWARD): + * buffer.h (charptr_n_addr): + * buffer.h (simple_set_charptr_emchar): + * buffer.h (charptr_emchar): + * buffer.h (set_charptr_emchar): + * buffer.h (charptr_copy_char): + * buffer.h (BI_BUF_BEG): + * buffer.h (BI_BUF_PTR_BYTE_POS): + * buffer.h (BUF_PTR_BYTE_POS): + * buffer.h (BI_BUF_BYTE_ADDRESS): + * buffer.h (BUF_BYTE_ADDRESS): + * buffer.h (BI_BUF_BYTE_ADDRESS_BEFORE): + * buffer.h (BUF_BYTE_ADDRESS_BEFORE): + * buffer.h (valid_membpos_p): + * buffer.h (bytebpos_to_membpos): + * buffer.h (membpos_to_bytebpos): + * buffer.h (membpos_to_charbpos): + * buffer.h (buffer_or_string_bytebpos_to_membpos): + * buffer.h (buffer_or_string_membpos_to_bytebpos): + * buffer.h (buffer_or_string_charbpos_to_bytebpos): + * buffer.h (VALID_BYTEBPOS_P): + * buffer.h (ASSERT_VALID_BYTEBPOS_UNSAFE): + * buffer.h (VALIDATE_BYTEBPOS_BACKWARD): + * buffer.h (VALIDATE_BYTEBPOS_FORWARD): + * buffer.h (INC_BYTEBPOS): + * buffer.h (DEC_BYTEBPOS): + * buffer.h (prev_bytebpos): + * buffer.h (next_bytebpos): + * buffer.h (BYTEBPOS_INVALID): + * buffer.h (real_charbpos_to_bytebpos): + * buffer.h (real_bytebpos_to_charbpos): + * buffer.h (charbpos_to_bytebpos): + * buffer.h (make_charbpos): + * buffer.h (BUF_FETCH_CHAR): + * buffer.h (BUF_CHARPTR_COPY_CHAR): + * buffer.h (union): + * buffer.h (DFC_LISP_STRING_USE_CONVERTED_DATA): + * buffer.h (BUF_CEILING_OF): + * buffer.h (BUF_FLOOR_OF): + * buffer.h (BUF_CEILING_OF_IGNORE_ACCESSIBLE): + * buffer.h (BUF_FLOOR_OF_IGNORE_ACCESSIBLE): + * buffer.h (BUFFER_ALLOC): + * buffer.h (intbyte_strcmp): + * buffer.h (intbyte_memcmp): + * bytecode.c (invalid_byte_code): + * bytecode.c (optimize_byte_code): + * bytecode.c (compiled_function_hash): + * bytecode.c (compiled_function_instructions): + * callint.c (check_mark): + * callint.c (callint_prompt): + * callint.c (PROMPT): + * callint.c (Fcall_interactively): + * callproc.c (Fold_call_process_internal): + * callproc.c (getenv_internal): + * callproc.c (Fgetenv): + * callproc.c (egetenv): + * callproc.c (init_callproc): + * casefiddle.c (casify_object): + * casefiddle.c (casify_region_internal): + * casefiddle.c (casify_word): + * chartab.c (char_table_entry_hash): + * chartab.c (char_table_hash): + * cmds.c (Fforward_char): + * cmds.c (Fforward_line): + * cmds.c (Fdelete_char): + * config.h.in: + * console-msw.c (mswindows_output_console_string): + * console-msw.c (Fmswindows_debugging_output): + * console-msw.c (DSTRING): + * console-msw.c (DSYMNAME): + * console-msw.c (mswindows_lisp_error): + * console-msw.h: + * console-x.c (split_up_display_spec): + * console-x.c (x_semi_canonicalize_console_connection): + * console.c (stuff_buffered_input): + * console.h (struct console_methods): + * data.c (weak_list_hash): + * database.c (berkdb_get): + * database.c (berkdb_map): + * device-msw.c (msprinter_default_printer): + * device-msw.c (hash_devmode): + * device-msw.c (Fmswindows_printer_list): + * device-x.c (validify_resource_component): + * device-x.c (Fx_get_resource_prefix): + * device.h (struct pixel_to_glyph_translation_cache): + * dialog-msw.c (push_intbyte_string_as_unicode): + * dialog-msw.c (handle_question_dialog_box): + * dired.c (Fdirectory_files): + * dired.c (file_name_completion): + * dired.c (struct user_name): + * dired.c (user_name_completion): + * dired.c (make_directory_hash_table): + * dired.c (Ffile_attributes): + * doc.c (string_join): + * doc.c (Fsnarf_documentation): + * doc.c (Fsubstitute_command_keys): + * doprnt.c (union printf_arg): + * doprnt.c (doprnt_1): + * doprnt.c (parse_off_posnum): + * doprnt.c (parse_doprnt_spec): + * doprnt.c (get_doprnt_args): + * doprnt.c (emacs_doprnt_1): + * doprnt.c (emacs_doprnt_2): + * doprnt.c (emacs_doprnt_c): + * doprnt.c (emacs_doprnt_va): + * doprnt.c (emacs_doprnt_lisp): + * doprnt.c (emacs_doprnt_lisp_2): + * doprnt.c (emacs_doprnt_string_c): + * doprnt.c (emacs_doprnt_string_va): + * doprnt.c (emacs_doprnt_string_lisp): + * doprnt.c (emacs_doprnt_string_lisp_2): + * dumper.c: + * dumper.c (struct): + * dumper.c (dump_add_opaque): + * dumper.c (pdump_align_stream): + * dumper.c (pdump_size_to_align): + * dumper.c (pdump_entry_list_elt): + * dumper.c (pdump_add_entry): + * dumper.c (pdump_get_indirect_count): + * dumper.c (pdump_register_sub): + * dumper.c (pdump_dump_data): + * dumper.c (pdump_reloc_one): + * dumper.c (pdump_allocate_offset): + * dumper.c (pdump_dump_root_struct_ptrs): + * dumper.c (pdump_dump_root_objects): + * dumper.c (pdump_load_finish): + * dumper.c (pdump_resource_get): + * dumper.c (pdump_file_get): + * dynarr.c (Dynarr_memory_usage): + * editfns.c (Fchar_to_string): + * editfns.c (buildmark): + * editfns.c (charbpos_clip_to_bounds): + * editfns.c (bytebpos_clip_to_bounds): + * editfns.c (Fgoto_char): + * editfns.c (save_excursion_save): + * editfns.c (beginning_of_line_p): + * editfns.c (Fchar_after): + * editfns.c (Fchar_before): + * editfns.c (Fformat_time_string): + * editfns.c (Fcurrent_time_string): + * editfns.c (Finsert_char): + * editfns.c (Fbuffer_substring): + * editfns.c (Fbuffer_substring_no_properties): + * editfns.c (Finsert_buffer_substring): + * editfns.c (Fcompare_buffer_substrings): + * editfns.c (Fsubst_char_in_region): + * editfns.c (Ftranslate_region): + * editfns.c (Fdelete_region): + * editfns.c (Fnarrow_to_region): + * editfns.c (save_restriction_restore): + * editfns.c (transpose_markers): + * editfns.c (Ftranspose_regions): + * eldap.c (Fldap_open): + * eldap.c (Fldap_add): + * eldap.c (Fldap_modify): + * elhash.c: + * elhash.c (struct Lisp_Hash_Table): + * elhash.c (HASHCODE): + * elhash.c (hash_table_size): + * elhash.c (lisp_string_hash): + * elhash.c (lisp_object_eql_hash): + * elhash.c (lisp_object_equal_hash): + * elhash.c (hash_table_hash): + * elhash.c (compute_hash_table_derived_values): + * elhash.c (make_standard_lisp_hash_table): + * elhash.c (make_general_lisp_hash_table): + * elhash.c (make_lisp_hash_table): + * elhash.c (decode_hash_table_size): + * elhash.c (resize_hash_table): + * elhash.c (pdump_reorganize_hash_table): + * elhash.c (enlarge_hash_table): + * elhash.c (find_hentry): + * elhash.c (remhash_1): + * elhash.c (internal_array_hash): + * elhash.c (internal_hash): + * elhash.h: + * emacs.c (split_string_by_emchar_1): + * emacs.c (decode_path): + * emacs.c (vars_of_emacs): + * emodules.c (emodules_load): + * emodules.c (emodules_doc_subr): + * emodules.c (emodules_doc_sym): + * eval.c (print_subr): + * eval.c (build_error_data): + * eval.c (signal_error): + * eval.c (maybe_signal_error): + * eval.c (signal_continuable_error): + * eval.c (maybe_signal_continuable_error): + * eval.c (signal_error_2): + * eval.c (maybe_signal_error_2): + * eval.c (signal_continuable_error_2): + * eval.c (maybe_signal_continuable_error_2): + * eval.c (signal_ferror): + * eval.c (maybe_signal_ferror): + * eval.c (signal_continuable_ferror): + * eval.c (maybe_signal_continuable_ferror): + * eval.c (signal_ferror_with_frob): + * eval.c (maybe_signal_ferror_with_frob): + * eval.c (signal_continuable_ferror_with_frob): + * eval.c (maybe_signal_continuable_ferror_with_frob): + * eval.c (syntax_error): + * eval.c (syntax_error_2): + * eval.c (maybe_syntax_error): + * eval.c (sferror): + * eval.c (sferror_2): + * eval.c (maybe_sferror): + * eval.c (invalid_argument): + * eval.c (invalid_argument_2): + * eval.c (maybe_invalid_argument): + * eval.c (invalid_constant): + * eval.c (invalid_constant_2): + * eval.c (maybe_invalid_constant): + * eval.c (invalid_operation): + * eval.c (invalid_operation_2): + * eval.c (maybe_invalid_operation): + * eval.c (invalid_change): + * eval.c (invalid_change_2): + * eval.c (maybe_invalid_change): + * eval.c (invalid_state): + * eval.c (invalid_state_2): + * eval.c (maybe_invalid_state): + * eval.c (wtaerror): + * eval.c (stack_overflow): + * eval.c (out_of_memory): + * eval.c (printing_unreadable_object): + * eval.c (caught_a_squirmer): + * eval.c (eval_in_buffer_trapping_errors): + * eval.c (run_hook_trapping_errors): + * eval.c (safe_run_hook_trapping_errors): + * eval.c (call0_trapping_errors): + * eval.c (call1_trapping_errors): + * eval.c (call2_trapping_errors): + * eval.c (warn_when_safe): + * event-Xt.c (x_event_to_emacs_event): + * event-Xt.c (describe_event_window): + * event-gtk.c (dragndrop_data_received): + * event-msw.c (ntpipe_slurp_reader): + * event-msw.c (ntpipe_shove_writer): + * event-msw.c (struct winsock_stream): + * event-msw.c (winsock_initiate_read): + * event-msw.c (winsock_reader): + * event-msw.c (winsock_writer): + * event-msw.c (emacs_mswindows_create_stream_pair): + * event-stream.c: + * event-stream.c (allocate_command_builder): + * event-stream.c (echo_key_event): + * event-stream.c (lookup_command_event): + * event-stream.c (dribble_out_event): + * event-unixoid.c (event_stream_unixoid_create_stream_pair): + * events.c (event_hash): + * events.c (format_event_object): + * events.c (event_pixel_translation): + * events.c (Fevent_point): + * events.c (Fevent_closest_point): + * events.h (struct command_builder): + * extents.c: + * extents.c (stack_of_extents): + * extents.c (membpos_to_startind): + * extents.c (bytebpos_to_startind): + * extents.c (buffer_or_string_bytebpos_to_startind): + * extents.c (buffer_or_string_bytebpos_to_endind): + * extents.c (gap_array_adjust_markers): + * extents.c (gap_array_move_gap): + * extents.c (extent_list_locate_from_pos): + * extents.c (extent_list_at): + * extents.c (soe_dump): + * extents.c (soe_move): + * extents.c (extent_endpoint_bytebpos): + * extents.c (extent_endpoint_charbpos): + * extents.c (extent_changed_for_redisplay): + * extents.c (extent_in_region_p): + * extents.c (map_extents_bytebpos): + * extents.c (map_extents): + * extents.c (adjust_extents): + * extents.c (adjust_extents_for_deletion): + * extents.c (extent_find_end_of_run): + * extents.c (extent_find_beginning_of_run): + * extents.c (extent_fragment_update): + * extents.c (extent_hash): + * extents.c (extent_endpoint_external): + * extents.c (Fextent_length): + * extents.c (Fnext_extent_change): + * extents.c (Fprevious_extent_change): + * extents.c (set_extent_endpoints_1): + * extents.c (set_extent_endpoints): + * extents.c (make_extent_internal): + * extents.c (copy_extent): + * extents.c (Fmake_extent): + * extents.c (Fset_extent_endpoints): + * extents.c (Fextent_in_region_p): + * extents.c (Fmap_extents): + * extents.c (struct slow_map_extent_children_arg): + * extents.c (slow_map_extent_children_function): + * extents.c (Fmap_extent_children): + * extents.c (struct extent_at_arg): + * extents.c (extent_at_bytebpos): + * extents.c (Fextent_at): + * extents.c (Fextents_at): + * extents.c (struct verify_extents_arg): + * extents.c (verify_extent_modification): + * extents.c (struct process_extents_for_insertion_arg): + * extents.c (process_extents_for_insertion_mapper): + * extents.c (process_extents_for_insertion): + * extents.c (struct process_extents_for_deletion_arg): + * extents.c (process_extents_for_deletion): + * extents.c (report_extent_modification_mapper): + * extents.c (report_extent_modification): + * extents.c (run_extent_copy_paste_internal): + * extents.c (run_extent_copy_function): + * extents.c (run_extent_paste_function): + * extents.c (update_extent): + * extents.c (insert_extent): + * extents.c (Finsert_extent): + * extents.c (struct add_string_extents_arg): + * extents.c (add_string_extents_mapper): + * extents.c (add_string_extents): + * extents.c (struct splice_in_string_extents_arg): + * extents.c (splice_in_string_extents_mapper): + * extents.c (splice_in_string_extents): + * extents.c (copy_string_extents_mapper): + * extents.c (copy_string_extents): + * extents.c (get_text_property_bytebpos): + * extents.c (get_text_property_1): + * extents.c (struct put_text_prop_arg): + * extents.c (put_text_prop_mapper): + * extents.c (put_text_prop_openness_mapper): + * extents.c (put_text_prop): + * extents.c (Fput_text_property): + * extents.c (Fadd_text_properties): + * extents.c (Fremove_text_properties): + * extents.h: + * extents.h (struct extent): + * faces.c (face_hash): + * file-coding.c: + * file-coding.c (detect_eol_type): + * file-coding.c (detect_coding_type): + * file-coding.c (determine_real_coding_system): + * file-coding.c (Fdetect_coding_region): + * file-coding.c (decoding_reader): + * file-coding.c (decoding_writer): + * file-coding.c (mule_decode): + * file-coding.c (Fdecode_coding_region): + * file-coding.c (encoding_reader): + * file-coding.c (encoding_writer): + * file-coding.c (mule_encode): + * file-coding.c (Fencode_coding_region): + * file-coding.c (detect_coding_sjis): + * file-coding.c (decode_coding_sjis): + * file-coding.c (encode_coding_sjis): + * file-coding.c (detect_coding_big5): + * file-coding.c (decode_coding_big5): + * file-coding.c (encode_coding_big5): + * file-coding.c (decode_ucs4): + * file-coding.c (detect_coding_ucs4): + * file-coding.c (decode_coding_ucs4): + * file-coding.c (encode_coding_ucs4): + * file-coding.c (detect_coding_utf8): + * file-coding.c (decode_coding_utf8): + * file-coding.c (encode_coding_utf8): + * file-coding.c (detect_coding_iso2022): + * file-coding.c (decode_coding_iso2022): + * file-coding.c (encode_coding_iso2022): + * file-coding.c (decode_coding_no_conversion): + * file-coding.c (encode_coding_no_conversion): + * file-coding.h (INTBYTE_FIRST_BYTE_P): + * fileio.c (normalize_filename): + * fileio.c (report_file_type_error): + * fileio.c (report_error_with_errno): + * fileio.c (report_file_error): + * fileio.c (read_allowing_quit): + * fileio.c (write_allowing_quit): + * fileio.c (Ffile_name_directory): + * fileio.c (Ffile_name_nondirectory): + * fileio.c (Fmake_temp_name): + * fileio.c (Fexpand_file_name): + * fileio.c (Ffile_truename): + * fileio.c (Fsubstitute_in_file_name): + * fileio.c (barf_or_query_if_file_exists): + * fileio.c (Ffile_name_absolute_p): + * fileio.c (Ffile_symlink_p): + * fileio.c (Fdo_auto_save): + * filelock.c (MAKE_LOCK_NAME): + * filelock.c (fill_in_lock_file_name): + * floatfns.c (float_hash): + * fns.c (print_bit_vector): + * fns.c (bit_vector_hash): + * fns.c (size_bit_vector): + * fns.c (Flength): + * fns.c (Fsafe_length): + * fns.c (Fstring_lessp): + * fns.c (copy_list): + * fns.c (concat): + * fns.c (Ffillarray): + * fns.c (bytecode_nconc2): + * fns.c (Fnconc): + * fns.c (mapcar1): + * fns.c (Fmapcar): + * fns.c (Fmapvector): + * fns.c (ADVANCE_INPUT): + * fns.c (base64_encode_1): + * fns.c (base64_decode_1): + * fns.c (XMALLOC_OR_ALLOCA): + * fns.c (Fbase64_encode_region): + * fns.c (Fbase64_encode_string): + * fns.c (Fbase64_decode_region): + * fns.c (Fbase64_decode_string): + * font-lock.c (struct context_cache): + * font-lock.c (font_lock_maybe_update_syntactic_caches): + * font-lock.c (beginning_of_defun): + * font-lock.c (end_of_defun): + * font-lock.c (setup_context_cache): + * font-lock.c (find_context): + * font-lock.c (Fsyntactically_sectionize): + * frame-gtk.c (gtk_set_frame_text_value): + * frame-gtk.c (gtk_set_title_from_intbyte): + * frame-gtk.c (gtk_set_icon_name_from_intbyte): + * frame-gtk.c (console_type_create_frame_gtk): + * frame-msw.c (mswindows_set_title_from_intbyte): + * frame-msw.c (console_type_create_frame_mswindows): + * frame-x.c (x_set_frame_text_value): + * frame-x.c (x_set_title_from_intbyte): + * frame-x.c (x_set_icon_name_from_intbyte): + * frame-x.c (x_set_frame_properties): + * frame-x.c (x_cde_transfer_callback): + * frame-x.c (console_type_create_frame_x): + * frame.c (Fmake_frame): + * frame.c (Fmouse_position): + * frame.c (generate_title_string): + * frame.c (update_frame_title): + * gif_io.c (GifStdRead): + * gif_io.c (GifStdWrite): + * gif_io.c (GifRead): + * gif_io.c (GifWrite): + * gifrlib.h: + * glyphs-eimage.c (jpeg_memory_src): + * glyphs-eimage.c (jpeg_instantiate): + * glyphs-eimage.c (gif_memory_storage): + * glyphs-eimage.c (gif_read_from_memory): + * glyphs-eimage.c (gif_instantiate): + * glyphs-eimage.c (struct png_memory_storage): + * glyphs-eimage.c (png_read_from_memory): + * glyphs-eimage.c (png_instantiate): + * glyphs-eimage.c (tiff_memory_storage): + * glyphs-eimage.c (tiff_memory_read): + * glyphs-eimage.c (tiff_instantiate): + * glyphs-msw.c (mswindows_xpm_instantiate): + * glyphs-msw.c (bmp_instantiate): + * glyphs-msw.c (mswindows_xface_instantiate): + * glyphs-msw.c (mswindows_image_instance_hash): + * glyphs-msw.c (mswindows_widget_property): + * glyphs-msw.c (mswindows_combo_box_property): + * glyphs-x.c (x_image_instance_hash): + * glyphs-x.c (write_lisp_string_to_temp_file): + * glyphs.c (image_instance_hash): + * glyphs.c (incompatible_image_types): + * glyphs.c (query_string_geometry): + * glyphs.c (query_string_font): + * glyphs.c (instantiator_eq_hash): + * glyphs.c (glyph_hash): + * glyphs.h (struct Lisp_Image_Instance): + * gpmevent.c (tty_get_foreign_selection): + * gui-x.c (menu_separator_style_and_to_external): + * gui-x.c (add_accel_and_to_external): + * gui-x.c (button_item_to_widget_value): + * gui-x.h: + * gui.c (separator_string_p): + * gui.c (gui_name_accelerator): + * gui.c (gui_item_hash): + * gui.h: + * gutter.c (gutter_extent_signal_changed_region_maybe): + * gutter.h: + * hash.c: + * hash.c (memory_hash): + * hash.c (string_hash): + * hash.c (hash_table_size): + * hash.c (gethash): + * hash.c (make_hash_table): + * hash.c (make_general_hash_table): + * hash.c (grow_hash_table): + * hash.c (puthash): + * hash.c (rehash): + * hash.c (remhash): + * hash.h: + * hash.h (struct hash_table): + * hpplay.c (player_error_internal): + * indent.c: + * indent.c (last_visible_position): + * indent.c (column_at_point): + * indent.c (string_column_at_point): + * indent.c (Findent_to): + * indent.c (bi_spaces_at_point): + * indent.c (Fcurrent_indentation): + * indent.c (Fmove_to_column): + * indent.c (vmotion_1): + * indent.c (vmotion): + * indent.c (vertical_motion_1): + * indent.c (vmotion_pixels): + * indent.c (Fvertical_motion_pixels): + * insdel.c: + * insdel.c (MAX_CHARBPOS_GAP_SIZE_3): + * insdel.c (bytecount_to_charcount): + * insdel.c (charcount_to_bytecount): + * insdel.c (charbpos_to_bytebpos_func): + * insdel.c (bytebpos_to_charbpos_func): + * insdel.c (buffer_mule_signal_inserted_region): + * insdel.c (buffer_mule_signal_deleted_region): + * insdel.c (charbpos_to_bytebpos): + * insdel.c (bytebpos_to_charbpos): + * insdel.c (get_buffer_pos_char): + * insdel.c (get_buffer_pos_byte): + * insdel.c (get_buffer_range_char): + * insdel.c (get_buffer_range_byte): + * insdel.c (get_string_range_char): + * insdel.c (get_buffer_or_string_pos_char): + * insdel.c (get_buffer_or_string_pos_byte): + * insdel.c (get_buffer_or_string_range_char): + * insdel.c (get_buffer_or_string_range_byte): + * insdel.c (buffer_or_string_accessible_begin_char): + * insdel.c (buffer_or_string_accessible_end_char): + * insdel.c (buffer_or_string_accessible_begin_byte): + * insdel.c (buffer_or_string_accessible_end_byte): + * insdel.c (buffer_or_string_absolute_begin_char): + * insdel.c (buffer_or_string_absolute_end_char): + * insdel.c (buffer_or_string_absolute_begin_byte): + * insdel.c (buffer_or_string_absolute_end_byte): + * insdel.c (JUST_SET_POINT): + * insdel.c (set_buffer_point): + * insdel.c (do_marker_adjustment): + * insdel.c (adjust_markers): + * insdel.c (adjust_markers_for_insert): + * insdel.c (gap_left): + * insdel.c (gap_right): + * insdel.c (move_gap): + * insdel.c (merge_gap_with_end_gap): + * insdel.c (make_gap): + * insdel.c (buffer_signal_changed_region): + * insdel.c (buffer_extent_signal_changed_region): + * insdel.c (cancel_multiple_change): + * insdel.c (begin_multiple_change): + * insdel.c (signal_before_change): + * insdel.c (signal_after_change): + * insdel.c (prepare_to_modify_buffer): + * insdel.c (fixup_internal_substring): + * insdel.c (buffer_insert_string_1): + * insdel.c (buffer_insert_raw_string_1): + * insdel.c (buffer_insert_lisp_string_1): + * insdel.c (buffer_insert_c_string_1): + * insdel.c (buffer_insert_emacs_char_1): + * insdel.c (buffer_insert_c_char_1): + * insdel.c (buffer_insert_from_buffer_1): + * insdel.c (buffer_delete_range): + * insdel.c (buffer_replace_char): + * insdel.c (make_string_from_buffer_1): + * insdel.c (make_string_from_buffer): + * insdel.c (make_string_from_buffer_no_extents): + * insdel.c (barf_if_buffer_read_only): + * insdel.c (find_charsets_in_intbyte_string): + * insdel.c (intbyte_string_displayed_columns): + * insdel.c (convert_intbyte_string_into_emchar_dynarr): + * insdel.c (convert_intbyte_string_into_emchar_string): + * insdel.c (convert_emchar_string_into_intbyte_dynarr): + * insdel.c (convert_emchar_string_into_malloced_string): + * insdel.c (reinit_vars_of_insdel): + * insdel.c (init_buffer_text): + * insdel.h: + * insdel.h (struct buffer_text_change_data): + * keymap.c (make_key_description): + * keymap.c (make_keymap): + * keymap.c (define_key_check_and_coerce_keysym): + * keymap.c (Fsingle_key_description): + * keymap.c (Ftext_char_description): + * keymap.c (vars_of_keymap): + * line-number.c (invalidate_line_number_cache): + * line-number.c (insert_invalidate_line_number_cache): + * line-number.c (delete_invalidate_line_number_cache): + * line-number.c (get_nearest_line_number): + * line-number.c (add_position_to_cache): + * line-number.c (buffer_line_number): + * line-number.h: + * line-number.h (buffer_line_number): + * lisp.h: + * lisp.h (DO_REALLOC): + * lisp.h (struct): + * lisp.h (struct Lisp_Buffer_Cons): + * lisp.h (struct Lisp_String): + * lisp.h (set_string_char): + * lisp.h (struct Lisp_Bit_Vector): + * lisp.h (bit_vector_bit): + * lisp.h (set_bit_vector_bit): + * lisp.h (struct Lisp_Marker): + * lisp.h (struct lcrecord_list): + * lisp.h (struct overhead_stats): + * lread.c: + * lread.c (readchar): + * lread.c (Fload_internal): + * lread.c (read_atom): + * lread.c (parse_integer): + * lread.c (isfloat_string): + * lrecord.h: + * lrecord.h (struct lrecord_implementation): + * lrecord.h (lrecord_description_type): + * lrecord.h (struct struct_description): + * lstream.c: + * lstream.c (aligned_sizeof_lstream): + * lstream.c (sizeof_lstream): + * lstream.c (Lstream_flush_out): + * lstream.c (Lstream_adding): + * lstream.c (Lstream_write_1): + * lstream.c (Lstream_write): + * lstream.c (Lstream_raw_read): + * lstream.c (Lstream_read_more): + * lstream.c (Lstream_read): + * lstream.c (Lstream_unread): + * lstream.c (Lstream_fputc): + * lstream.c (stdio_reader): + * lstream.c (stdio_writer): + * lstream.c (struct filedesc_stream): + * lstream.c (filedesc_reader): + * lstream.c (filedesc_writer): + * lstream.c (filedesc_stream_set_pty_flushing): + * lstream.c (lisp_string_reader): + * lstream.c (lisp_string_rewinder): + * lstream.c (struct fixed_buffer_stream): + * lstream.c (make_fixed_buffer_input_stream): + * lstream.c (make_fixed_buffer_output_stream): + * lstream.c (fixed_buffer_reader): + * lstream.c (fixed_buffer_writer): + * lstream.c (struct resizing_buffer_stream): + * lstream.c (resizing_buffer_writer): + * lstream.c (dynarr_writer): + * lstream.c (make_lisp_buffer_stream_1): + * lstream.c (make_lisp_buffer_input_stream): + * lstream.c (make_lisp_buffer_output_stream): + * lstream.c (lisp_buffer_reader): + * lstream.c (lisp_buffer_writer): + * lstream.c (lisp_buffer_stream_startpos): + * lstream.h: + * lstream.h (lstream_implementation): + * lstream.h (struct lstream): + * malloc.c: + * marker.c (marker_equal): + * marker.c (marker_hash): + * marker.c (set_marker_internal): + * marker.c (bi_marker_position): + * marker.c (marker_position): + * marker.c (set_bi_marker_position): + * marker.c (set_marker_position): + * md5.c (Fmd5): + * menubar-msw.c (mswindows_translate_menu_or_dialog_item): + * menubar-msw.c (displayable_menu_item): + * menubar-x.c (menu_item_descriptor_to_widget_value_1): + * menubar-x.c (menu_accelerator_junk_on_error): + * menubar.c (Fnormalize_menu_item_name): + * minibuf.c (scmp_1): + * minibuf.c (regexp_ignore_completion_p): + * minibuf.c (clear_echo_area_internal): + * minibuf.c (echo_area_append): + * minibuf.c (echo_area_message): + * minibuf.c (message_internal): + * minibuf.c (message_append_internal): + * minibuf.c (message_1): + * minibuf.c (message_append_1): + * mule-ccl.c (CCL_WRITE_CHAR): + * mule-ccl.c (CCL_WRITE_STRING): + * mule-charset.c (non_ascii_set_charptr_emchar): + * mule-charset.c (non_ascii_charptr_emchar): + * mule-charset.c (non_ascii_charptr_copy_char): + * mule-charset.c (Lstream_get_emchar_1): + * mule-charset.c (Lstream_fput_emchar): + * mule-charset.c (Lstream_funget_emchar): + * mule-charset.c (make_charset): + * mule-charset.c (lookup_composite_char): + * mule-charset.h: + * mule-charset.h (LEADING_BYTE_PREFIX_P): + * mule-charset.h (INTBYTE_FIRST_BYTE_P): + * mule-charset.h (INTBYTE_LEADING_BYTE_P): + * mule-charset.h (struct Lisp_Charset): + * mule-charset.h (CHARSET_LEADING_BYTE): + * mule-charset.h (CHARSET_BY_LEADING_BYTE): + * mule-charset.h (REP_BYTES_BY_FIRST_BYTE): + * mule-charset.h (CHAR_LEADING_BYTE): + * mule-wnnfns.c (Fwnn_dict_list): + * mule-wnnfns.c (Fwnn_fuzokugo_get): + * mule-wnnfns.c (m2w): + * objects-gtk.c (gtk_parse_nearest_color): + * objects-gtk.c (gtk_font_spec_matches_charset): + * objects-gtk.c (gtk_find_charset_font): + * objects-gtk.h: + * objects-msw.c (mswindows_font_spec_matches_charset): + * objects-tty.c (tty_initialize_font_instance): + * objects-tty.c (tty_font_spec_matches_charset): + * objects-tty.c (tty_find_charset_font): + * objects-x.c (x_font_instance_properties): + * objects-x.c (x_font_spec_matches_charset): + * objects-x.c (x_find_charset_font): + * objects.c (font_spec_matches_charset): + * objects.h: + * opaque.c (aligned_sizeof_opaque): + * opaque.c (sizeof_opaque): + * opaque.c (make_opaque): + * opaque.c (equal_opaque): + * opaque.h: + * opaque.h (Lisp_Opaque): + * print.c (std_handle_out_external): + * print.c (std_handle_out_va): + * print.c (write_string_to_stdio_stream): + * print.c (output_string): + * print.c (write_char_internal): + * print.c (write_string_1): + * print.c (write_c_string): + * print.c (Fwrite_char): + * print.c (float_to_string): + * print.c (print_string): + * print.c (print_internal): + * print.c (print_symbol): + * print.c (Falternate_debugging_output): + * print.c (Fexternal_debugging_output): + * process-nt.c (alloc_process_memory): + * process-nt.c (run_in_other_process): + * process-nt.c (nt_send_process): + * process-unix.c (unix_send_process): + * process-unix.c (unix_process_send_eof): + * process-unix.c (unix_kill_child_process): + * process-unix.c (unix_canonicalize_host_name): + * process-unix.c (unix_open_network_stream): + * process.c: + * process.c (read_process_output): + * process.c (send_process): + * process.c (Fprocess_send_region): + * process.c (status_notify): + * process.c (decode_signal): + * procimpl.h: + * redisplay-gtk.c (gtk_output_display_block): + * redisplay-output.c: + * redisplay-output.c (compare_runes): + * redisplay-output.c (ADJ_CHARBPOS): + * redisplay-output.c (redisplay_move_cursor): + * redisplay-output.c (redisplay_output_layout): + * redisplay-output.c (redisplay_update_line): + * redisplay-tty.c: + * redisplay-tty.c (tty_output_intbyte_string): + * redisplay-tty.c (tty_output_emchar_dynarr): + * redisplay-tty.c (substitute_in_dynamic_color_string): + * redisplay-tty.c (set_foreground_to): + * redisplay-tty.c (set_background_to): + * redisplay.c: + * redisplay.c (position_redisplay_data_type): + * redisplay.c (struct prop_block): + * redisplay.c (redisplay_text_width_string): + * redisplay.c (redisplay_frame_text_width_string): + * redisplay.c (generate_display_line): + * redisplay.c (add_hscroll_rune): + * redisplay.c (add_emchar_rune): + * redisplay.c (add_intbyte_string_runes): + * redisplay.c (add_blank_rune): + * redisplay.c (add_disp_table_entry_runes_1): + * redisplay.c (add_propagation_runes): + * redisplay.c (add_glyph_rune): + * redisplay.c (create_text_block): + * redisplay.c (create_overlay_glyph_block): + * redisplay.c (add_margin_blank): + * redisplay.c (generate_formatted_string_db): + * redisplay.c (generate_modeline): + * redisplay.c (add_string_to_fstring_db_runes): + * redisplay.c (generate_fstring_runes): + * redisplay.c (create_string_text_block): + * redisplay.c (generate_string_display_line): + * redisplay.c (generate_displayable_area): + * redisplay.c (regenerate_window): + * redisplay.c (REGEN_INC_FIND_START_END): + * redisplay.c (regenerate_window_extents_only_changed): + * redisplay.c (regenerate_window_incrementally): + * redisplay.c (regenerate_window_point_center): + * redisplay.c (point_visible): + * redisplay.c (line_at_center): + * redisplay.c (point_at_center): + * redisplay.c (redisplay_window): + * redisplay.c (call_redisplay_end_triggers): + * redisplay.c (window_line_number): + * redisplay.c (decode_mode_spec): + * redisplay.c (update_internal_cache_list): + * redisplay.c (line_start_cache_start): + * redisplay.c (line_start_cache_end): + * redisplay.c (point_in_line_start_cache): + * redisplay.c (point_would_be_visible): + * redisplay.c (start_end_of_last_line): + * redisplay.c (start_of_last_line): + * redisplay.c (end_of_last_line): + * redisplay.c (end_of_last_line_may_error): + * redisplay.c (start_with_line_at_pixpos): + * redisplay.c (start_with_point_on_display_line): + * redisplay.c (update_line_start_cache): + * redisplay.c (UPDATE_CACHE_RETURN): + * redisplay.c (pixel_to_glyph_translation): + * redisplay.c (init_redisplay): + * redisplay.h: + * redisplay.h (struct line_start_cache): + * redisplay.h (struct rune): + * redisplay.h (struct display_line): + * redisplay.h (struct extent_fragment): + * regex.c (struct): + * regex.c (PATFETCH_EXTENDED): + * regex.c (PATFETCH_RAW_EXTENDED): + * regex.c (regex_compile): + * regex.c (compile_extended_range): + * regex.c (re_compile_fastmap): + * regex.c (re_match_2_internal): + * regex.c (regerror): + * regex.h (Elemcount): + * scrollbar-gtk.h (struct gtk_scrollbar_data): + * scrollbar-msw.c (mswindows_handle_mousewheel_event): + * scrollbar-x.h (struct x_scrollbar_data): + * scrollbar.c (scrollbar_point): + * scrollbar.c (update_scrollbar_instance): + * scrollbar.c (scrollbar_reset_cursor): + * scrollbar.c (Fscrollbar_page_up): + * scrollbar.c (Fscrollbar_vertical_drag): + * search.c: + * search.c (fixup_search_regs_for_buffer): + * search.c (looking_at_1): + * search.c (fast_string_match): + * search.c (bi_scan_buffer): + * search.c (scan_buffer): + * search.c (bi_find_next_newline_no_quit): + * search.c (find_next_newline_no_quit): + * search.c (find_next_newline): + * search.c (bi_find_next_emchar_in_string): + * search.c (find_before_next_newline): + * search.c (skip_chars): + * search.c (search_command): + * search.c (trivial_regexp_p): + * search.c (search_buffer): + * search.c (simple_search): + * search.c (boyer_moore): + * search.c (set_search_regs): + * search.c (wordify): + * search.c (Freplace_match): + * search.c (Fmatch_data): + * search.c (Fregexp_quote): + * select-common.h (selection_data_to_lisp_data): + * select-common.h (lisp_data_to_selection_data): + * select-gtk.c (atom_to_symbol): + * select-gtk.c (emacs_gtk_selection_handle): + * select-x.c (hack_motif_clipboard_selection): + * select-x.c (x_reply_selection_request): + * select-x.c (x_handle_selection_request): + * select-x.c (copy_multiple_data): + * select-x.c (x_get_window_property): + * select-x.c (receive_incremental_selection): + * select-x.c (x_get_window_property_as_lisp_data): + * select-x.c (Fx_get_cutbuffer_internal): + * select-x.c (Fx_store_cutbuffer_internal): + * sheap.c (report_sheap_usage): + * sound.c (Fplay_sound): + * sound.h (sound_perror): + * sound.h (sound_warn): + * specifier.c (aligned_sizeof_specifier): + * specifier.c (sizeof_specifier): + * specifier.c (make_specifier_internal): + * symbols.c (intern): + * symbols.c (oblookup): + * symbols.c (hash_string): + * symbols.c (init_symbols_once_early): + * symbols.c (defsymbol_massage_name_1): + * symbols.c (defsymbol_nodump): + * symbols.c (defsymbol): + * symbols.c (defvar_magic): + * syntax.c: + * syntax.c (struct lisp_parse_state): + * syntax.c (find_defun_start): + * syntax.c (scan_words): + * syntax.c (Fforward_word): + * syntax.c (find_start_of_comment): + * syntax.c (find_end_of_comment): + * syntax.c (Fforward_comment): + * syntax.c (scan_lists): + * syntax.c (char_quoted): + * syntax.c (Fbackward_prefix_chars): + * syntax.c (scan_sexps_forward): + * syntax.c (Fparse_partial_sexp): + * syntax.h: + * syntax.h (struct syntax_cache): + * syntax.h (SYNTAX_CACHE_BYTE_TO_CHAR): + * syntax.h (SYNTAX_CACHE_OBJECT_BYTE_TO_CHAR): + * sysdep.c (get_eof_char): + * sysdep.c (init_system_name): + * sysdep.c (sys_readdir): + * sysdep.h: + * syswindows.h: + * syswindows.h (LOCAL_FILE_FORMAT_TO_TSTR): + * syswindows.h (LOCAL_TO_WIN32_FILE_FORMAT): + * syswindows.h (WIN32_TO_LOCAL_FILE_FORMAT): + * tests.c (Ftest_data_format_conversion): + * toolbar-gtk.c (gtk_output_toolbar_button): + * toolbar-x.c (x_output_toolbar_button): + * tooltalk.c (check_status): + * tooltalk.c (tt_message_arg_bval_vector): + * tparam.c: + * undo.c: + * undo.c (record_insert): + * undo.c (record_delete): + * undo.c (record_change): + * undo.c (record_property_change): + * undo.c (Fprimitive_undo): + * win32.c (tstr_to_local_file_format): + * window.c (Fpos_visible_in_window_p): + * window.c (Fwindow_end): + * window.c (unshow_buffer): + * window.c (Fdelete_other_windows): + * window.c (Fselect_window): + * window.c (window_scroll): + * window.c (Fcenter_to_window_line): + * window.c (Fmove_to_window_line): + * window.c (sizeof_window_config_for_n_windows): + * window.c (sizeof_window_config): + * window.c (Fcurrent_pixel_column): + * window.h (struct window): + + The great integral types renaming. + + The purpose of this is to rationalize the names used for various + integral types, so that they match their intended uses and follow + consist conventions, and eliminate types that were not semantically + different from each other. + + The conventions are: + + -- All integral types that measure quantities of anything are + signed. Some people disagree vociferously with this, but their + arguments are mostly theoretical, and are vastly outweighed by + the practical headaches of mixing signed and unsigned values, + and more importantly by the far increased likelihood of + inadvertent bugs: Because of the broken "viral" nature of + unsigned quantities in C (operations involving mixed + signed/unsigned are done unsigned, when exactly the opposite is + nearly always wanted), even a single error in declaring a + quantity unsigned that should be signed, or even the even more + subtle error of comparing signed and unsigned values and + forgetting the necessary cast, can be catastrophic, as + comparisons will yield wrong results. -Wsign-compare is turned + on specifically to catch this, but this tends to result in a + great number of warnings when mixing signed and unsigned, and + the casts are annoying. More has been written on this + elsewhere. + + -- All such quantity types just mentioned boil down to EMACS_INT, + which is 32 bits on 32-bit machines and 64 bits on 64-bit + machines. This is guaranteed to be the same size as Lisp + objects of type `int', and (as far as I can tell) of size_t + (unsigned!) and ssize_t. The only type below that is not an + EMACS_INT is Hashcode, which is an unsigned value of the same + size as EMACS_INT. + + -- Type names should be relatively short (no more than 10 + characters or so), with the first letter capitalized and no + underscores if they can at all be avoided. + + -- "count" == a zero-based measurement of some quantity. Includes + sizes, offsets, and indexes. + + -- "bpos" == a one-based measurement of a position in a buffer. + "Charbpos" and "Bytebpos" count text in the buffer, rather than + bytes in memory; thus Bytebpos does not directly correspond to + the memory representation. Use "Membpos" for this. + + -- "Char" refers to internal-format characters, not to the C type + "char", which is really a byte. + + -- For the actual name changes, see the script below. + + I ran the following script to do the conversion. (NOTE: This script + is idempotent. You can safely run it multiple times and it will + not screw up previous results -- in fact, it will do nothing if + nothing has changed. Thus, it can be run repeatedly as necessary + to handle patches coming in from old workspaces, or old branches.) + There are two tags, just before and just after the change: + `pre-integral-type-rename' and `post-integral-type-rename'. When + merging code from the main trunk into a branch, the best thing to + do is first merge up to `pre-integral-type-rename', then apply the + script and associated changes, then merge from + `post-integral-type-change' to the present. (Alternatively, just do + the merging in one operation; but you may then have a lot of + conflicts needing to be resolved by hand.) + + Script `fixtypes.sh' follows: + + +----------------------------------- cut ------------------------------------ +files="*.[ch] s/*.h m/*.h config.h.in ../configure.in Makefile.in.in ../lib-src/*.[ch] ../lwlib/*.[ch]" +gr Memory_Count Bytecount $files +gr Lstream_Data_Count Bytecount $files +gr Element_Count Elemcount $files +gr Hash_Code Hashcode $files +gr extcount bytecount $files +gr bufpos charbpos $files +gr bytind bytebpos $files +gr memind membpos $files +gr bufbyte intbyte $files +gr Extcount Bytecount $files +gr Bufpos Charbpos $files +gr Bytind Bytebpos $files +gr Memind Membpos $files +gr Bufbyte Intbyte $files +gr EXTCOUNT BYTECOUNT $files +gr BUFPOS CHARBPOS $files +gr BYTIND BYTEBPOS $files +gr MEMIND MEMBPOS $files +gr BUFBYTE INTBYTE $files +gr MEMORY_COUNT BYTECOUNT $files +gr LSTREAM_DATA_COUNT BYTECOUNT $files +gr ELEMENT_COUNT ELEMCOUNT $files +gr HASH_CODE HASHCODE $files +----------------------------------- cut ------------------------------------ + + + `fixtypes.sh' is a Bourne-shell script; it uses 'gr': + + +----------------------------------- cut ------------------------------------ +#!/bin/sh + +# Usage is like this: + +# gr FROM TO FILES ... + +# globally replace FROM with TO in FILES. FROM and TO are regular expressions. +# backup files are stored in the `backup' directory. +from="$1" +to="$2" +shift 2 +echo ${1+"$@"} | xargs global-replace "s/$from/$to/g" +----------------------------------- cut ------------------------------------ + + + `gr' in turn uses a Perl script to do its real work, + `global-replace', which follows: + + +----------------------------------- cut ------------------------------------ +: #-*- Perl -*- + +### global-modify --- modify the contents of a file by a Perl expression + +## Copyright (C) 1999 Martin Buchholz. +## Copyright (C) 2001 Ben Wing. + +## Authors: Martin Buchholz , Ben Wing +## Maintainer: Ben Wing +## Current Version: 1.0, May 5, 2001 + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with XEmacs; see the file COPYING. If not, write to the Free +# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +eval 'exec perl -w -S $0 ${1+"$@"}' + if 0; + +use strict; +use FileHandle; +use Carp; +use Getopt::Long; +use File::Basename; + +(my $myName = $0) =~ s@.*/@@; my $usage=" +Usage: $myName [--help] [--backup-dir=DIR] [--line-mode] [--hunk-mode] + PERLEXPR FILE ... + +Globally modify a file, either line by line or in one big hunk. + +Typical usage is like this: + +[with GNU print, GNU xargs: guaranteed to handle spaces, quotes, etc. + in file names] + +find . -name '*.[ch]' -print0 | xargs -0 $0 's/\bCONST\b/const/g'\n + +[with non-GNU print, xargs] + +find . -name '*.[ch]' -print | xargs $0 's/\bCONST\b/const/g'\n + + +The file is read in, either line by line (with --line-mode specified) +or in one big hunk (with --hunk-mode specified; it's the default), and +the Perl expression is then evalled with \$_ set to the line or hunk of +text, including the terminating newline if there is one. It should +destructively modify the value there, storing the changed result in \$_. + +Files in which any modifications are made are backed up to the directory +specified using --backup-dir, or to `backup' by default. To disable this, +use --backup-dir= with no argument. + +Hunk mode is the default because it is MUCH MUCH faster than line-by-line. +Use line-by-line only when it matters, e.g. you want to do a replacement +only once per line (the default without the `g' argument). Conversely, +when using hunk mode, *ALWAYS* use `g'; otherwise, you will only make one +replacement in the entire file! +"; + +my %options = (); +$Getopt::Long::ignorecase = 0; +&GetOptions ( + \%options, + 'help', 'backup-dir=s', 'line-mode', 'hunk-mode', +); + + +die $usage if $options{"help"} or @ARGV <= 1; +my $code = shift; + +die $usage if grep (-d || ! -w, @ARGV); + +sub SafeOpen { + open ((my $fh = new FileHandle), $_[0]); + confess "Can't open $_[0]: $!" if ! defined $fh; + return $fh; +} + +sub SafeClose { + close $_[0] or confess "Can't close $_[0]: $!"; +} + +sub FileContents { + my $fh = SafeOpen ("< $_[0]"); + my $olddollarslash = $/; + local $/ = undef; + my $contents = <$fh>; + $/ = $olddollarslash; + return $contents; +} + +sub WriteStringToFile { + my $fh = SafeOpen ("> $_[0]"); + binmode $fh; + print $fh $_[1] or confess "$_[0]: $!\n"; + SafeClose $fh; +} + +foreach my $file (@ARGV) { + my $changed_p = 0; + my $new_contents = ""; + if ($options{"line-mode"}) { + my $fh = SafeOpen $file; + while (<$fh>) { + my $save_line = $_; + eval $code; + $changed_p = 1 if $save_line ne $_; + $new_contents .= $_; + } + } else { + my $orig_contents = $_ = FileContents $file; + eval $code; + if ($_ ne $orig_contents) { + $changed_p = 1; + $new_contents = $_; + } + } + + if ($changed_p) { + my $backdir = $options{"backup-dir"}; + $backdir = "backup" if !defined ($backdir); + if ($backdir) { + my ($name, $path, $suffix) = fileparse ($file, ""); + my $backfulldir = $path . $backdir; + my $backfile = "$backfulldir/$name"; + mkdir $backfulldir, 0755 unless -d $backfulldir; + print "modifying $file (original saved in $backfile)\n"; + rename $file, $backfile; + } + WriteStringToFile ($file, $new_contents); + } +} +----------------------------------- cut ------------------------------------ + + + In addition to those programs, I needed to fix up a few other + things, particularly relating to the duplicate definitions of + types, now that some types merged with others. Specifically: + + 1. in lisp.h, removed duplicate declarations of Bytecount. The + changed code should now look like this: (In each code snippet + below, the first and last lines are the same as the original, as + are all lines outside of those lines. That allows you to locate + the section to be replaced, and replace the stuff in that + section, verifying that there isn't anything new added that + would need to be kept.) + +--------------------------------- snip ------------------------------------- +/* Counts of bytes or chars */ +typedef EMACS_INT Bytecount; +typedef EMACS_INT Charcount; + +/* Counts of elements */ +typedef EMACS_INT Elemcount; + +/* Hash codes */ +typedef unsigned long Hashcode; + +/* ------------------------ dynamic arrays ------------------- */ +--------------------------------- snip ------------------------------------- + + 2. in lstream.h, removed duplicate declaration of Bytecount. + Rewrote the comment about this type. The changed code should + now look like this: + + +--------------------------------- snip ------------------------------------- +#endif + +/* The have been some arguments over the what the type should be that + specifies a count of bytes in a data block to be written out or read in, + using Lstream_read(), Lstream_write(), and related functions. + Originally it was long, which worked fine; Martin "corrected" these to + size_t and ssize_t on the grounds that this is theoretically cleaner and + is in keeping with the C standards. Unfortunately, this practice is + horribly error-prone due to design flaws in the way that mixed + signed/unsigned arithmetic happens. In fact, by doing this change, + Martin introduced a subtle but fatal error that caused the operation of + sending large mail messages to the SMTP server under Windows to fail. + By putting all values back to be signed, avoiding any signed/unsigned + mixing, the bug immediately went away. The type then in use was + Lstream_Data_Count, so that it be reverted cleanly if a vote came to + that. Now it is Bytecount. + + Some earlier comments about why the type must be signed: This MUST BE + SIGNED, since it also is used in functions that return the number of + bytes actually read to or written from in an operation, and these + functions can return -1 to signal error. + + Note that the standard Unix read() and write() functions define the + count going in as a size_t, which is UNSIGNED, and the count going + out as an ssize_t, which is SIGNED. This is a horrible design + flaw. Not only is it highly likely to lead to logic errors when a + -1 gets interpreted as a large positive number, but operations are + bound to fail in all sorts of horrible ways when a number in the + upper-half of the size_t range is passed in -- this number is + unrepresentable as an ssize_t, so code that checks to see how many + bytes are actually written (which is mandatory if you are dealing + with certain types of devices) will get completely screwed up. + + --ben +*/ + +typedef enum lstream_buffering +--------------------------------- snip ------------------------------------- + + + 3. in dumper.c, there are four places, all inside of switch() + statements, where XD_BYTECOUNT appears twice as a case tag. In + each case, the two case blocks contain identical code, and you + should *REMOVE THE SECOND* and leave the first. + +2001-09-17 Ben Wing + + * fileio.c (normalize_filename): + * fileio.c (Fexpand_file_name): + Fix various C++ compile errors in Andy's recent code. + + * callint.c (Fcall_interactively): + * editfns.c (Ftemp_directory): + * editfns.c (Fuser_full_name): + * emacs.c (argmatch): + * lread.c (locate_file_map_suffixes): + * redisplay-x.c (x_ring_bell): + Fix sign-compare warnings. + + * scrollbar-msw.c: + * scrollbar-msw.c (mswindows_handle_scrollbar_event): + Fix crash under MS Windows. See comment around line 223 for + explanation. + +2001-09-08 Andy Piper + + * device-msw.c (mswindows_finish_init_device): remove dde + initialization. + * device-msw.c (mswindows_init_dde): factor out from + mswindows_finish_init_device() + * device-msw.c (init_mswindows_very_early): new function + initialize but don't enable dde. + * emacs.c (main_1): call init_mswindows_very_early. + * event-msw.c: + * event-msw.c (mswindows_dde_callback): only execute when we are + ready. + * symsinit.h: declare init_mswindows_very_early. + +2001-09-08 Andy Piper + + * fileio.c (normalize_filename): copied from nt.c + * (Ffile_name_directory): enable win32 paths under cygwin. + * (Ffile_name_nondirectory): ditto. + * (directory_file_name): ditto. + * (Fexpand_file_name): ditto. + * (Ffile_truename): ditto. + * (Fsubstitute_in_file_name): ditto. + * (Ffile_name_absolute_p): ditto. + * (Ffile_readable_p): ditto. + +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-09-07 Stephen J. Turnbull * XEmacs 21.5.3 "asparagus" is released. @@ -468,7 +2018,7 @@ the point of entry/exit); and (d) there's no reasonable possibility it will refer to a value greater than 2G, or if it could, other things in XEmacs would break. - + Put parens around all sizeof args in case we decide to macro-ize this. (I don't think it's necessary. Now that we've turned sign-compare warnings back on, we will get warnings wherever the @@ -567,7 +2117,7 @@ * sysdir.h: Do some hackery to avoid shadowing warnings. - * s\esix.h: + * s\esix.h: * m\tad68k.h: Comment out redefinition of select (we don't have our own version anyway, and we play preprocessor games with select in sysdir.h). @@ -577,17 +2127,6 @@ * console.c: Fix of compile error on darwin, as suggested by Toby Smith. -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-07-30 Adrian Aichner - - * event-msw.c: - * event-msw.c (assert): - 2001-07-28 Stephen J. Turnbull * XEmacs 21.5.2 "artichoke" is released. @@ -646,9 +2185,9 @@ * eval.c (Ffunction_min_args): * eval.c (Ffunction_max_args): Correct documentation. - + * elhash.c (Fremhash): Doc correction. - + --------------------------------------------------------------- LISP OBJECT CLEANUP: --------------------------------------------------------------- @@ -732,7 +2271,7 @@ builds on union, it doesn't matter.) Update the sample Lisp object definition in lrecord.h accordingly. - + * dumper.c (pdump_dump_root_objects): * dumper.c (pdump_load_finish): Fix places in dumper that referenced wrap_object to reference @@ -802,7 +2341,7 @@ * dialog-msw.c: Use internal_object_printer, since this object should not escape. - + --------------------------------------------------------------- FIXING A CRASH THAT I HIT ONCE (AND A RELATED BAD BEHAVIOR): --------------------------------------------------------------- @@ -819,7 +2358,7 @@ (2) catches need to be unwound one at a time when calling unwind-protect code, rather than all at once at the end; otherwise, incorrect behavior can result. (A comment shows exactly how.) - + * backtrace.h: Improve comment about FSF differences in the handler stack. @@ -836,7 +2375,7 @@ lurking bugs where such objects are freed too soon. The only safe way to fix these problems (and it fixes both problems at once) is to make both of these structures Lisp objects. - + * lrecord.h (lrecord_type): * emacs.c (main_1): * inline.c: @@ -905,14 +2444,14 @@ update_frame_window_mirrors(). It was extremely questionable before, and now totally impossible, since it will create Lisp objects during redisplay. - + * frame.c (mark_frame): Mark the scrollbar instances, which are now Lisp objects. Call mark_gutter() here, not in mark_redisplay(). - + * gutter.c: Update comments about correct marking. - + --------------------------------------------------------------- ISSUES BROUGHT UP BY MARTIN: --------------------------------------------------------------- @@ -944,7 +2483,7 @@ * signal.c (qxe_setitimer): Fix problem identified by Martin with Linux and g++ due to non-standard declaration of setitimer(). - + * systime.h: Update the docs for "qxe_" to point out why making the encapsulation explicit is always the right way to go. (setitimer() @@ -976,7 +2515,7 @@ ------ signal-code changes ------ - + * data.c (init_data_very_early): * device-tty.c (init_device_tty): * emacs.c (fatal_error_signal): @@ -1010,7 +2549,7 @@ * fileio.c: * sysdep.c (qxe_reliable_signal): Rename sys_do_signal to qxe_reliable_signal. - + * signal.c (set_timeout_signal): * process-unix.c (close_safely): * profile.c (Fstart_profiling): @@ -1024,7 +2563,7 @@ * nt.c (init_ntproc): Eliminate term_ntproc(), which is blank; used as a SIGABRT handler, which was wrong anyway. - + * nt.c: * win32.c: * win32.c (sigmask): @@ -1042,11 +2581,11 @@ ------ other changes ------ - + * s\mingw32.h: Fix problems with NOT_C_CODE being in the wrong place and excluding defines needed when building Makefile.in.in. - + * filelock.c: * mule-canna.c: * mule-canna.c (Fcanna_initialize): @@ -1100,7 +2639,7 @@ * s\windowsnt.h: * s\xenix.h: Rename 'GNU Emacs' to XEmacs in the copyright and comments. - + * nas.c (NAS_LITTLE_ENDIAN): * nas.c (XTOOLKIT): * nas.c (nas_play_sound_file): @@ -1117,7 +2656,7 @@ 2001-06-08 Ben Wing ------ gc-in-window-procedure fixes ------ - + * alloc.c: * alloc.c (struct post_gc_action): * alloc.c (register_post_gc_action): @@ -1146,12 +2685,12 @@ Add comment about the utter evilness of what's going down here. ------ cygwin setitimer fixes ------ - + * Makefile.in.in (sheap_objs): * Makefile.in.in (profile_objs): * Makefile.in.in (objs): Compile profile.c only when HAVE_SETITIMER. - + * nt.c (mswindows_sigset): * nt.c (mswindows_sighold): * nt.c (mswindows_sigrelse): @@ -1159,23 +2698,23 @@ * nt.c (mswindows_raise): * nt.c (close_file_data): Style fixes. - + * nt.c: Move setitimer() emulation to win32.c, because Cygwin needs it too. - + * profile.c: * profile.c (Fstart_profiling): * profile.c (Fstop_profiling): Make sure we don't compile if no setitimer(). Use qxe_setitimer() instead of just plain setitimer(). - + * signal.c: * signal.c (set_one_shot_timer): * signal.c (alarm): Define qxe_setitimer() as an encapsulation around setitimer() -- call setitimer() directly unless Cygwin or MS Win, in which case we use our simulated version in win32.c. - + * systime.h: * systime.h (struct itimerval): * systime.h (ITIMER_REAL): @@ -1195,7 +2734,7 @@ to directly invoke the signal handlers. ------ windows shell fixes ------ - + * callproc.c: * ntproc.c: Comments about how these two files must die. @@ -1205,7 +2744,7 @@ not just COMSPEC. (more correct and closer to FSF.) Don't force a value for SHELL into the environment. (Comments added to explain why not.) - + * nt.c (init_user_info): Don't shove a fabricated SHELL into the environment. See above. @@ -1214,8 +2753,8 @@ * glyphs-shared.c (read_bitmap_data): static. * glyphs-shared.c (read_bitmap_data_from_file): Style correction. - - + + 2001-06-06 Ben Wing @@ -1288,7 +2827,7 @@ * fileio.c (report_error_with_errno): * fileio.c (report_file_error): Use CBufbyte instead of char for error/warning functions. - + * linuxplay.c: * linuxplay.c (DONT_ENCAPSULATE): * miscplay.c: @@ -1305,13 +2844,13 @@ Put back #include accidentally removed. Make play_sound_data return an int, like all other such functions in *play.c. - + * sound.c: Fix up documentation of `play-sound'. - + * sysfile.h: Don't include sys/fcntl.h, as per Martin's advice. - + 2001-06-04 William M. Perry @@ -1394,9 +2933,9 @@ * event-msw.c (vars_of_event_mswindows): Fix yet more problems with C-g handling. Implement debug-mswindows-events. - + For 21.5: - + * event-stream.c: * event-stream.c (add_low_level_timeout): * event-stream.c (event_stream_generate_wakeup): @@ -1457,7 +2996,7 @@ properties of the char/unsigned char typedefs. Add SChar_Binary as an explicitly `signed' version of Char_Binary and put back the `signed' declarations in miscplay.c. - + * alloc.c (build_string): * alloc.c (build_ext_string): * alloc.c (build_translated_string): @@ -1541,7 +3080,7 @@ 2001-05-29 Mike Alexander * console-msw.h (FRAME_MSPRINTER_CHARHEIGHT): Unswap - FRAME_MSPRINTER_CHARWIDTH and FRAME_MSPRINTER_CHARHEIGHT + FRAME_MSPRINTER_CHARWIDTH and FRAME_MSPRINTER_CHARHEIGHT 2001-05-26 Ben Wing @@ -2716,11 +4255,11 @@ 2001-05-23 Ben Wing for 21.4: - + * device-msw.c (msprinter_init_device): signal an error rather than crash with an unavailable network printer (from Mike Alexander). - + * event-msw.c: * event-msw.c (struct winsock_stream): * event-msw.c (winsock_writer): @@ -2738,16 +4277,16 @@ simply treat these as files, always. optionally for 21.4 (doc fix): - + * lread.c (pas_de_holgazan_ici): * lread.c (load_force_doc_string_unwind): cambia de pas_de_lache_ici -- al minimo usa la palabra certa. - + for 21.5: - + * frame.c (restore_frame_list_to_its_unbesmirched_state): fix warnings. - + * emacs.c (make_arg_list_1): * nt.c (win32_get_long_filename): * nt.c (init_environment): @@ -2765,23 +4304,23 @@ * unexnt.c (unexec): * unexnt.c (get_bss_info_from_map_file): rename MAX_PATH to standard PATH_MAX. - + * process-nt.c: * realpath.c: cleanup headers. - + * process-unix.c (get_internet_address): * sysdep.c (init_system_name): * systime.h: * syswindows.h: kill BROKEN_CYGWIN and support for way old beta versions of cygwin. - + * sysfile.h: use _MAX_PATH (Windows) preferentially for PATH_MAX if defined. include io.h on Cygwin (we need get_osfhandle()). include sys/fcntl.h always, since we were including it in various header files anyway. - + * unexcw.c: * unexcw.c (DONT_ENCAPSULATE): * unexcw.c (CHECK_AOUT_POS): @@ -2794,7 +4333,7 @@ of PERROR. * buffer.c (common_init_complex_vars_of_buffer): comment change. - + * database.c: * debug.h (struct debug_classes): * device-tty.c: @@ -2867,13 +4406,13 @@ * event-msw.c (mswindows_find_frame): we might receive scrollbar events on windows without scrollbars (e.g. holding down and moving the wheel button). - + * dired.c (user_name_completion): win9x support. * eval.c: doc comment about gcpro'ing in record_unwind_protect. * frame-msw.c (msprinter_init_frame_3): typo. - + * frame.c: * frame.c (restore_frame_list_to_its_unbesmirched_state): * frame.c (Fmake_frame): @@ -2882,7 +4421,7 @@ * process-nt.c: * process-nt.c (vars_of_process_nt): remove unused mswindows-quote-process-args. rec for 21.4. - + * unexcw.c (PERROR): use do/while. 2001-05-03 Kirill 'Big K' Katsnelson @@ -2898,7 +4437,7 @@ * console.h (struct console_methods): Added flags member. (CONSOLE_IMPLEMENTATION_FLAGS): Defined. - (CONMETH_IMPL_FLAG): + (CONMETH_IMPL_FLAG): (CONSOLE_IMPL_FLAG): Macro to check implememntation flags. Defined XDEVIMPF_DONT_PREEMPT_REDISPLAY. @@ -3001,14 +4540,14 @@ 2001-05-11 Mike Alexander - * event-msw.c (mswindows_need_event_in_modal_loop): + * event-msw.c (mswindows_need_event_in_modal_loop): (mswindows_need_event): Fix indentation. 2001-05-12 Ben Wing * .cvsignore: add xemacs.opt, a VC-generated file. - + 2001-05-12 Ben Wing * event-msw.c (mswindows_dde_callback): @@ -3029,12 +4568,12 @@ * dired.c (user_name_completion): * dired.c (syms_of_dired): implement user-name-all-completions under Windows. - + * emacs.c: * emacs.c (syms_of_emacs): create new function force-debugging-signal (only when DEBUG_XEMACS) to breakpoint or abort to the debugger. - + * file-coding.c: * file-coding.c (syms_of_file_coding): * file-coding.h: @@ -3108,7 +4647,7 @@ implement printing the selection when it's selected. unrelated: - + * mule-charset.c (Fset_charset_ccl_program): * mule-charset.c (invalidate_charset_font_caches): force redisplay when set-charset-ccl-program called. @@ -3209,7 +4748,7 @@ * callint.c (Finteractive): Add lots of documentation -- exactly what the Lisp equivalents of all the interactive specs are. - + * console.h (struct console): change type of quit_char to Emchar. * event-msw.c (lstream_type_create_mswindows_selectable): spacing @@ -3320,7 +4859,7 @@ * editfns.c (Fwiden): * editfns.c (Fnarrow_to_region): remove bogus lines setting zmacs_region_stays to 0. - + * scrollbar-msw.c (mswindows_handle_mousewheel_event): remove debug lines. @@ -3341,7 +4880,7 @@ * cmdloop.c (call_command_loop): Fix braino in bit-rotting code. - + * event-stream.c: * event-stream.c (Fnext_event): * event-stream.c (is_scrollbar_event): @@ -3473,14 +5012,14 @@ Augment documentation of the most common motion commands to make note of the shifted-motion support. - + 2001-03-02 Ben Wing * nt.c (mswindows_fstat): * nt.c (mswindows_stat): * search.c (boyer_moore): Fix compile warnings under Windows. - + * sysdep.c (sys_readdir): Fix buggy filename-conversion code under Mule. @@ -3554,7 +5093,7 @@ Undid the last change, since it is more controversial than I thought. It should be back in at some point soon. - + 2001-02-25 Ben Wing * buffer.c: @@ -3627,7 +5166,7 @@ * md5.c (Fmd5): * process-nt.c (nt_send_process): * process-unix.c (unix_send_process): - + Correct Lstream lossage due to mixing of signed and unsigned quantities. All Lstream uses of size_t and ssize_t are now a single signed data type Lstream_data_count. This fixes problems @@ -3640,9 +5179,9 @@ 2001-02-21 Martin Buchholz - * lisp-union.h (XSETINT): + * lisp-union.h (XSETINT): (XSETCHAR): - (XSETOBJ): + (XSETOBJ): Reverse previous change of 2001-02-06. 2001-02-20 Matt Tucker @@ -3661,7 +5200,7 @@ 2001-02-18 Wim Dumon * insdel.c (prepare_to_modify_buffer): Also check for - supersession when clash-detection is enabled. + supersession when clash-detection is enabled. 2001-02-17 Matt Tucker @@ -3690,7 +5229,7 @@ 2001-02-17 Martin Buchholz - * alloc.c (Fgarbage_collect): + * alloc.c (Fgarbage_collect): * alloc.c (make_bit_vector_from_byte_vector): -Wsign-compare-correctness. @@ -3702,7 +5241,7 @@ 2001-02-15 Martin Buchholz - * mule-canna.c (canna-func-delete_previous): + * mule-canna.c (canna-func-delete_previous): Rename to canna-func-delete-previous. 2001-02-14 Martin Buchholz @@ -3753,7 +5292,7 @@ * font-lock.c. * regex.c. * search.c. - + 2001-02-09 Martin Buchholz * regex.c (Boolean): Renamed to `re_bool', to avoid conflict with @@ -3787,12 +5326,12 @@ * dumper.c (pdump_scan_by_alignment): Likewise. Don't iterate through unnecessary alignments. * dumper.c (pdump_file_get): No need to align result of malloc(). - * dumper.c (pdump_mallocadr): Remove. + * dumper.c (pdump_mallocadr): Remove. The result of malloc() is guaranteed to be maximally aligned. * dumper.c: s/elmt/elt/g; * dumper.c (pdump_object_table): Allocate dynamically, not statically. * dumper.c (pdump_alert_undump_object): Likewise. - * dumper.c (pdump_align_table): + * dumper.c (pdump_align_table): Don't support alignments > 64. Store ALIGNOF's, not shift counts, in table. @@ -4005,9 +5544,9 @@ 2001-01-25 Martin Buchholz Type fiddling for window_config.saved_windows_count - * window.c (struct window_config): + * window.c (struct window_config): Make saved_windows_count member unsigned. - * window.c (sizeof_window_config_for_n_windows): + * window.c (sizeof_window_config_for_n_windows): Make parameter unsigned. * window.c (mark_window_config): * window.c (window_config_equal): @@ -4029,7 +5568,7 @@ * alloc.c (sweep_bit_vectors_1): * fns.c (size_bit_vector): Update all callers of FLEXIBLE_ARRAY_STRUCT_SIZEOF to add new arg. - * window.c (sizeof_window_config_for_n_windows): + * window.c (sizeof_window_config_for_n_windows): Use FLEXIBLE_ARRAY_STRUCT_SIZEOF. 2001-01-24 Martin Buchholz @@ -4103,7 +5642,7 @@ Fix printf warnings: int format, long int arg. * regex.c (DECLARE_DESTINATION): Use DECLARE_NOTHING. (PUSH_FAILURE_POINT): Use correct printf formats. - (POP_FAILURE_POINT): Use correct printf formats. + (POP_FAILURE_POINT): Use correct printf formats. Use do {...} while (0) 2001-01-20 Martin Buchholz diff --text -u 'xemacs-21.5.3/src/abbrev.c' 'xemacs-21.5.4/src/abbrev.c' Index: ././src/abbrev.c --- ././src/abbrev.c Thu May 24 16:51:01 2001 +++ ././src/abbrev.c Thu Sep 20 15:28:48 2001 @@ -121,7 +121,7 @@ } /* Match abbreviation string against buffer text. */ { - Bufbyte *ptr = string_data (abbrev); + Intbyte *ptr = string_data (abbrev); Charcount idx; for (idx = 0; idx < abbrev_length; idx++) @@ -178,8 +178,8 @@ static Lisp_Symbol * abbrev_oblookup (struct buffer *buf, Lisp_Object obarray) { - Bufpos wordstart, wordend; - Bufbyte *word, *p; + Charbpos wordstart, wordend; + Intbyte *word, *p; Bytecount idx; Lisp_Object lookup; @@ -204,7 +204,7 @@ } else { - Bufpos point = BUF_PT (buf); + Charbpos point = BUF_PT (buf); wordstart = scan_words (buf, point, -1); if (!wordstart) @@ -227,7 +227,7 @@ if (wordend <= wordstart) return 0; - p = word = (Bufbyte *) alloca (MAX_EMCHAR_LEN * (wordend - wordstart)); + p = word = (Intbyte *) alloca (MAX_EMCHAR_LEN * (wordend - wordstart)); for (idx = wordstart; idx < wordend; idx++) { Emchar c = BUF_FETCH_CHAR (buf, idx); @@ -246,12 +246,12 @@ static int obarray_has_blank_p (Lisp_Object obarray) { - return !ZEROP (oblookup (obarray, (Bufbyte *)" ", 1)); + return !ZEROP (oblookup (obarray, (Intbyte *)" ", 1)); } /* Analyze case in the buffer substring, and report it. */ static void -abbrev_count_case (struct buffer *buf, Bufpos pos, Charcount length, +abbrev_count_case (struct buffer *buf, Charbpos pos, Charcount length, int *lccount, int *uccount) { *lccount = *uccount = 0; @@ -279,8 +279,8 @@ struct buffer *buf = current_buffer; int oldmodiff = BUF_MODIFF (buf); Lisp_Object pre_modiff_p; - Bufpos point; /* position of point */ - Bufpos abbrev_start; /* position of abbreviation beginning */ + Charbpos point; /* position of point */ + Charbpos abbrev_start; /* position of abbreviation beginning */ Lisp_Symbol *(*fun) (struct buffer *, Lisp_Object); @@ -382,7 +382,7 @@ else if (uccount) { /* Abbrev included some caps. Cap first initial of expansion */ - Bufpos pos = abbrev_start; + Charbpos pos = abbrev_start; /* Find the initial. */ while (pos < point && !WORD_SYNTAX_P (XCHAR_TABLE (buf->mirror_syntax_table), diff --text -u 'xemacs-21.5.3/src/alloc.c' 'xemacs-21.5.4/src/alloc.c' Index: ././src/alloc.c --- ././src/alloc.c Mon Aug 13 13:46:07 2001 +++ ././src/alloc.c Thu Dec 20 14:49:44 2001 @@ -243,7 +243,7 @@ #undef xmalloc void * -xmalloc (Memory_Count size) +xmalloc (Bytecount size) { void *val = malloc (size); @@ -253,7 +253,7 @@ #undef xcalloc static void * -xcalloc (Element_Count nelem, Memory_Count elsize) +xcalloc (Elemcount nelem, Bytecount elsize) { void *val = calloc (nelem, elsize); @@ -262,14 +262,14 @@ } void * -xmalloc_and_zero (Memory_Count size) +xmalloc_and_zero (Bytecount size) { return xcalloc (size, sizeof (char)); } #undef xrealloc void * -xrealloc (void *block, Memory_Count size) +xrealloc (void *block, Bytecount size) { block = realloc (block, size); @@ -307,10 +307,10 @@ #endif static void -deadbeef_memory (void *ptr, Memory_Count size) +deadbeef_memory (void *ptr, Bytecount size) { four_byte_t *ptr4 = (four_byte_t *) ptr; - Memory_Count beefs = size >> 2; + Bytecount beefs = size >> 2; /* In practice, size will always be a multiple of four. */ while (beefs--) @@ -345,7 +345,7 @@ static void * -allocate_lisp_storage (Memory_Count size) +allocate_lisp_storage (Bytecount size) { return xmalloc (size); } @@ -357,7 +357,7 @@ static struct lcrecord_header *all_lcrecords; void * -alloc_lcrecord (Memory_Count size, const struct lrecord_implementation *implementation) +alloc_lcrecord (Bytecount size, const struct lrecord_implementation *implementation) { struct lcrecord_header *lcheader; @@ -1052,7 +1052,7 @@ return (len > 0) ? ptr->contents[len - 1] : Qnil; } -static Memory_Count +static Bytecount size_vector (const void *lheader) { return FLEXIBLE_ARRAY_STRUCT_SIZEOF (Lisp_Vector, Lisp_Object, contents, @@ -1076,7 +1076,7 @@ return 1; } -static Hash_Code +static Hashcode vector_hash (Lisp_Object obj, int depth) { return HASH2 (XVECTOR_LENGTH (obj), @@ -1100,10 +1100,10 @@ /* #### should allocate `small' vectors from a frob-block */ static Lisp_Vector * -make_vector_internal (Element_Count sizei) +make_vector_internal (Elemcount sizei) { /* no vector_next */ - Memory_Count sizem = FLEXIBLE_ARRAY_STRUCT_SIZEOF (Lisp_Vector, Lisp_Object, + Bytecount sizem = FLEXIBLE_ARRAY_STRUCT_SIZEOF (Lisp_Vector, Lisp_Object, contents, sizei); Lisp_Vector *p = (Lisp_Vector *) alloc_lcrecord (sizem, &lrecord_vector); @@ -1112,7 +1112,7 @@ } Lisp_Object -make_vector (Element_Count length, Lisp_Object object) +make_vector (Elemcount length, Lisp_Object object) { Lisp_Vector *vecp = make_vector_internal (length); Lisp_Object *p = vector_data (vecp); @@ -1264,10 +1264,10 @@ /* #### should allocate `small' bit vectors from a frob-block */ static Lisp_Bit_Vector * -make_bit_vector_internal (Element_Count sizei) +make_bit_vector_internal (Elemcount sizei) { - Element_Count num_longs = BIT_VECTOR_LONG_STORAGE (sizei); - Memory_Count sizem = FLEXIBLE_ARRAY_STRUCT_SIZEOF (Lisp_Bit_Vector, + Elemcount num_longs = BIT_VECTOR_LONG_STORAGE (sizei); + Bytecount sizem = FLEXIBLE_ARRAY_STRUCT_SIZEOF (Lisp_Bit_Vector, unsigned long, bits, num_longs); Lisp_Bit_Vector *p = (Lisp_Bit_Vector *) allocate_lisp_storage (sizem); @@ -1285,10 +1285,10 @@ } Lisp_Object -make_bit_vector (Element_Count length, Lisp_Object bit) +make_bit_vector (Elemcount length, Lisp_Object bit) { Lisp_Bit_Vector *p = make_bit_vector_internal (length); - Element_Count num_longs = BIT_VECTOR_LONG_STORAGE (length); + Elemcount num_longs = BIT_VECTOR_LONG_STORAGE (length); CHECK_BIT (bit); @@ -1296,7 +1296,7 @@ memset (p->bits, 0, num_longs * sizeof (long)); else { - Element_Count bits_in_last = length & (LONGBITS_POWER_OF_2 - 1); + Elemcount bits_in_last = length & (LONGBITS_POWER_OF_2 - 1); memset (p->bits, ~0, num_longs * sizeof (long)); /* But we have to make sure that the unused bits in the last long are 0, so that equal/hash is easy. */ @@ -1312,9 +1312,9 @@ } Lisp_Object -make_bit_vector_from_byte_vector (unsigned char *bytevec, Element_Count length) +make_bit_vector_from_byte_vector (unsigned char *bytevec, Elemcount length) { - Element_Count i; + Elemcount i; Lisp_Bit_Vector *p = make_bit_vector_internal (length); for (i = 0; i < length; i++) @@ -1601,7 +1601,7 @@ ALLOCATE_FIXED_TYPE (marker, Lisp_Marker, p); set_lheader_implementation (&p->lheader, &lrecord_marker); p->buffer = 0; - p->memind = 0; + p->membpos = 0; marker_next (p) = 0; marker_prev (p) = 0; p->insertion_type = 0; @@ -1618,7 +1618,7 @@ NOSEEUM_ALLOCATE_FIXED_TYPE (marker, Lisp_Marker, p); set_lheader_implementation (&p->lheader, &lrecord_marker); p->buffer = 0; - p->memind = 0; + p->membpos = 0; marker_next (p) = 0; marker_prev (p) = 0; p->insertion_type = 0; @@ -1842,7 +1842,7 @@ set_lheader_implementation (&s->lheader, &lrecord_string); set_string_data (s, BIG_STRING_FULLSIZE_P (fullsize) - ? xnew_array (Bufbyte, length + 1) + ? xnew_array (Intbyte, length + 1) : allocate_string_chars_struct (s, fullsize)->chars); set_string_length (s, length); @@ -1872,7 +1872,7 @@ verify_string_chars_integrity (); #endif -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS if (pos >= 0) { assert (pos <= string_length (s)); @@ -1884,7 +1884,7 @@ if (delta < 0) assert ((-delta) <= string_length (s)); } -#endif /* ERROR_CHECK_BUFPOS */ +#endif /* ERROR_CHECK_CHARBPOS */ if (delta == 0) /* simplest case: no size change. */ @@ -1912,16 +1912,16 @@ if (delta < 0 && pos >= 0) memmove (string_data (s) + pos + delta, string_data (s) + pos, len); - set_string_data (s, (Bufbyte *) xrealloc (string_data (s), + set_string_data (s, (Intbyte *) xrealloc (string_data (s), string_length (s) + delta + 1)); if (delta > 0 && pos >= 0) memmove (string_data (s) + pos + delta, string_data (s) + pos, len); } else /* String has been demoted from BIG_STRING. */ { - Bufbyte *new_data = + Intbyte *new_data = allocate_string_chars_struct (s, newfullsize)->chars; - Bufbyte *old_data = string_data (s); + Intbyte *old_data = string_data (s); if (pos >= 0) { @@ -1944,7 +1944,7 @@ constraints). */ if (pos >= 0) { - Bufbyte *addroff = pos + string_data (s); + Intbyte *addroff = pos + string_data (s); memmove (addroff + delta, addroff, /* +1 due to zero-termination. */ @@ -1953,10 +1953,10 @@ } else { - Bufbyte *old_data = string_data (s); - Bufbyte *new_data = + Intbyte *old_data = string_data (s); + Intbyte *new_data = BIG_STRING_FULLSIZE_P (newfullsize) - ? xnew_array (Bufbyte, string_length (s) + delta + 1) + ? xnew_array (Intbyte, string_length (s) + delta + 1) : allocate_string_chars_struct (s, newfullsize)->chars; if (pos >= 0) @@ -2011,7 +2011,7 @@ void set_string_char (Lisp_String *s, Charcount i, Emchar c) { - Bufbyte newstr[MAX_EMCHAR_LEN]; + Intbyte newstr[MAX_EMCHAR_LEN]; Bytecount bytoff = charcount_to_bytecount (string_data (s), i); Bytecount oldlen = charcount_to_bytecount (string_data (s) + bytoff, 1); Bytecount newlen = set_charptr_emchar (newstr, c); @@ -2033,7 +2033,7 @@ CHECK_NATNUM (length); CHECK_CHAR_COERCE_INT (character); { - Bufbyte init_str[MAX_EMCHAR_LEN]; + Intbyte init_str[MAX_EMCHAR_LEN]; int len = set_charptr_emchar (init_str, XCHAR (character)); Lisp_Object val = make_uninit_string (len * XINT (length)); @@ -2043,11 +2043,11 @@ else { EMACS_INT i; - Bufbyte *ptr = XSTRING_DATA (val); + Intbyte *ptr = XSTRING_DATA (val); for (i = XINT (length); i; i--) { - Bufbyte *init_ptr = init_str; + Intbyte *init_ptr = init_str; switch (len) { case 4: *ptr++ = *init_ptr++; @@ -2066,8 +2066,8 @@ */ (int nargs, Lisp_Object *args)) { - Bufbyte *storage = alloca_array (Bufbyte, nargs * MAX_EMCHAR_LEN); - Bufbyte *p = storage; + Intbyte *storage = alloca_array (Intbyte, nargs * MAX_EMCHAR_LEN); + Intbyte *p = storage; for (; nargs; nargs--, args++) { @@ -2082,12 +2082,12 @@ /* Take some raw memory, which MUST already be in internal format, and package it up into a Lisp string. */ Lisp_Object -make_string (const Bufbyte *contents, Bytecount length) +make_string (const Intbyte *contents, Bytecount length) { Lisp_Object val; /* Make sure we find out about bad make_string's when they happen */ -#if defined (ERROR_CHECK_BUFPOS) && defined (MULE) +#if defined (ERROR_CHECK_CHARBPOS) && defined (MULE) bytecount_to_charcount (contents, length); /* Just for the assertions */ #endif @@ -2110,10 +2110,10 @@ } Lisp_Object -build_string (const CBufbyte *str) +build_string (const CIntbyte *str) { /* Some strlen's crash and burn if passed null. */ - return make_string ((const Bufbyte *) str, (str ? strlen(str) : 0)); + return make_string ((const Intbyte *) str, (str ? strlen(str) : 0)); } Lisp_Object @@ -2125,19 +2125,19 @@ } Lisp_Object -build_translated_string (const CBufbyte *str) +build_translated_string (const CIntbyte *str) { return build_string (GETTEXT (str)); } Lisp_Object -make_string_nocopy (const Bufbyte *contents, Bytecount length) +make_string_nocopy (const Intbyte *contents, Bytecount length) { Lisp_String *s; Lisp_Object val; /* Make sure we find out about bad make_string_nocopy's when they happen */ -#if defined (ERROR_CHECK_BUFPOS) && defined (MULE) +#if defined (ERROR_CHECK_CHARBPOS) && defined (MULE) bytecount_to_charcount (contents, length); /* Just for the assertions */ #endif @@ -2146,7 +2146,7 @@ set_lheader_implementation (&s->lheader, &lrecord_string); SET_C_READONLY_RECORD_HEADER (&s->lheader); s->plist = Qnil; - set_string_data (s, (Bufbyte *)contents); + set_string_data (s, (Intbyte *)contents); set_string_length (s, length); XSETSTRING (val, s); @@ -2227,7 +2227,7 @@ mark_lcrecord_list, internal_object_printer, 0, 0, 0, 0, struct lcrecord_list); Lisp_Object -make_lcrecord_list (Element_Count size, +make_lcrecord_list (Elemcount size, const struct lrecord_implementation *implementation) { struct lcrecord_list *p = alloc_lcrecord_type (struct lcrecord_list, @@ -2472,7 +2472,8 @@ int instances_freed; int bytes_freed; int instances_on_free_list; -} lcrecord_stats [countof (lrecord_implementations_table)]; +} lcrecord_stats [countof (lrecord_implementations_table) + + MODULE_DEFINABLE_TYPE_COUNT]; static void tick_lcrecord_stats (const struct lrecord_header *h, int free_p) @@ -2489,7 +2490,7 @@ const struct lrecord_implementation *implementation = LHEADER_IMPLEMENTATION (h); - Memory_Count sz = (implementation->size_in_bytes_method ? + Bytecount sz = (implementation->size_in_bytes_method ? implementation->size_in_bytes_method (h) : implementation->static_size); if (free_p) @@ -3378,7 +3379,7 @@ GETTEXT ((const char *) gc_default_message)); args[1] = build_string ("..."); whole_msg = Fconcat (2, args); - echo_area_message (f, (Bufbyte *) 0, whole_msg, 0, -1, + echo_area_message (f, (Intbyte *) 0, whole_msg, 0, -1, Qgarbage_collecting); } } @@ -3396,10 +3397,10 @@ { /* Static buffer in which we save a copy of the C stack at each GC. */ static char *stack_copy; - static Memory_Count stack_copy_size; + static Bytecount stack_copy_size; ptrdiff_t stack_diff = &stack_top_variable - stack_bottom; - Memory_Count stack_size = (stack_diff > 0 ? stack_diff : -stack_diff); + Bytecount stack_size = (stack_diff > 0 ? stack_diff : -stack_diff); if (stack_size < MAX_SAVE_STACK) { if (stack_copy_size < stack_size) @@ -3424,14 +3425,14 @@ { /* staticpro() */ Lisp_Object **p = Dynarr_begin (staticpros); - Element_Count count; + Elemcount count; for (count = Dynarr_length (staticpros); count; count--) mark_object (**p++); } { /* staticpro_nodump() */ Lisp_Object **p = Dynarr_begin (staticpros_nodump); - Element_Count count; + Elemcount count; for (count = Dynarr_length (staticpros_nodump); count; count--) mark_object (**p++); } @@ -3538,7 +3539,7 @@ gc_default_message)); args[1] = build_string ("... done"); whole_msg = Fconcat (2, args); - echo_area_message (selected_frame (), (Bufbyte *) 0, + echo_area_message (selected_frame (), (Intbyte *) 0, whole_msg, 0, -1, Qgarbage_collecting); } @@ -3764,14 +3765,14 @@ blocks are allocated in the minimum required size except that some minimum block size is imposed (e.g. 16 bytes). */ -Memory_Count -malloced_storage_size (void *ptr, Memory_Count claimed_size, +Bytecount +malloced_storage_size (void *ptr, Bytecount claimed_size, struct overhead_stats *stats) { - Memory_Count orig_claimed_size = claimed_size; + Bytecount orig_claimed_size = claimed_size; #ifdef GNU_MALLOC - if (claimed_size < (Memory_Count) (2 * sizeof (void *))) + if (claimed_size < (Bytecount) (2 * sizeof (void *))) claimed_size = 2 * sizeof (void *); # ifdef SUNOS_LOCALTIME_BUG if (claimed_size < 16) @@ -3796,7 +3797,7 @@ } /* We have to come up with some average about the amount of blocks used. */ - if ((Memory_Count) (rand () & 4095) < claimed_size) + if ((Bytecount) (rand () & 4095) < claimed_size) claimed_size += 3 * sizeof (void *); } else @@ -3847,12 +3848,12 @@ return claimed_size; } -Memory_Count -fixed_type_block_overhead (Memory_Count size) +Bytecount +fixed_type_block_overhead (Bytecount size) { - Memory_Count per_block = TYPE_ALLOC_SIZE (cons, unsigned char); - Memory_Count overhead = 0; - Memory_Count storage_size = malloced_storage_size (0, per_block, 0); + Bytecount per_block = TYPE_ALLOC_SIZE (cons, unsigned char); + Bytecount overhead = 0; + Bytecount storage_size = malloced_storage_size (0, per_block, 0); while (size >= per_block) { size -= per_block; diff --text -u 'xemacs-21.5.3/src/blocktype.c' 'xemacs-21.5.4/src/blocktype.c' Index: ././src/blocktype.c --- ././src/blocktype.c Mon Aug 13 13:46:09 2001 +++ ././src/blocktype.c Thu Sep 20 15:28:48 2001 @@ -77,10 +77,10 @@ }; void * -Blocktype_newf (Memory_Count elsize) +Blocktype_newf (Bytecount elsize) { Blocktype *b = xnew (Blocktype); - b->elsize = max (elsize, (Memory_Count) sizeof (void *)); + b->elsize = max (elsize, (Bytecount) sizeof (void *)); b->free = 0; return (void *) b; } diff --text -u 'xemacs-21.5.3/src/blocktype.h' 'xemacs-21.5.4/src/blocktype.h' Index: ././src/blocktype.h --- ././src/blocktype.h Mon Aug 13 13:46:09 2001 +++ ././src/blocktype.h Thu Sep 20 15:28:48 2001 @@ -31,10 +31,10 @@ #define Blocktype_declare(type) \ type *free; \ - Memory_Count elsize; \ + Bytecount elsize; \ type *tempel -void *Blocktype_newf (Memory_Count elsize); +void *Blocktype_newf (Bytecount elsize); void Blocktype_allocf (void *b); void Blocktype_free (void *bbb, void *el); diff --text -u 'xemacs-21.5.3/src/buffer.c' 'xemacs-21.5.4/src/buffer.c' Index: ././src/buffer.c --- ././src/buffer.c Mon Aug 13 13:46:09 2001 +++ ././src/buffer.c Thu Dec 20 14:49:45 2001 @@ -354,7 +354,7 @@ struct buffer * decode_buffer (Lisp_Object buffer, int allow_string) { - if (NILP (buffer)) + if (NILP (buffer) || (!POINTER_TYPE_P( XTYPE(buffer)))) return current_buffer; if (allow_string && STRINGP (buffer)) @@ -1134,7 +1134,7 @@ killp = call1 (Qyes_or_no_p, (emacs_doprnt_string_c - ((const Bufbyte *) GETTEXT ("Buffer %s modified; kill anyway? "), + ((const Intbyte *) GETTEXT ("Buffer %s modified; kill anyway? "), Qnil, -1, XSTRING_DATA (b->name)))); UNGCPRO; if (NILP (killp)) @@ -1299,7 +1299,7 @@ uninit_buffer_extents (b); if (b->base_buffer) { -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS assert (!NILP (memq_no_quit (buf, b->base_buffer->indirect_children))); #endif b->base_buffer->indirect_children = @@ -1518,7 +1518,7 @@ (buffer, start, end)) { struct buffer *b = decode_buffer (buffer, 0); - Bufpos s, e; + Charbpos s, e; if (NILP (start)) s = e = -1; @@ -1672,12 +1672,12 @@ int other; }; -static Memory_Count +static Bytecount compute_buffer_text_usage (struct buffer *b, struct overhead_stats *ovstats) { int was_requested = b->text->z - 1; - Memory_Count gap = b->text->gap_size + b->text->end_gap_size; - Memory_Count malloc_use = malloced_storage_size (b->text->beg, was_requested + gap, 0); + Bytecount gap = b->text->gap_size + b->text->end_gap_size; + Bytecount malloc_use = malloced_storage_size (b->text->beg, was_requested + gap, 0); ovstats->gap_overhead += gap; ovstats->was_requested += was_requested; @@ -1765,8 +1765,8 @@ typedef struct { - Dynarr_declare (Bufbyte_dynarr *); -} Bufbyte_dynarr_dynarr; + Dynarr_declare (Intbyte_dynarr *); +} Intbyte_dynarr_dynarr; typedef struct { @@ -1774,7 +1774,7 @@ } Extbyte_dynarr_dynarr; static Extbyte_dynarr_dynarr *conversion_out_dynarr_list; -static Bufbyte_dynarr_dynarr *conversion_in_dynarr_list; +static Intbyte_dynarr_dynarr *conversion_in_dynarr_list; static int dfc_convert_to_external_format_in_use; static int dfc_convert_to_internal_format_in_use; @@ -1836,7 +1836,7 @@ sink_type != DFC_TYPE_LISP_LSTREAM && coding_system_is_binary (coding_system)) { - const Bufbyte *ptr; + const Intbyte *ptr; Bytecount len; if (source_type == DFC_TYPE_LISP_STRING) @@ -1846,16 +1846,16 @@ } else { - ptr = (Bufbyte *) source->data.ptr; + ptr = (Intbyte *) source->data.ptr; len = source->data.len; } #ifdef MULE { - const Bufbyte *end; + const Intbyte *end; for (end = ptr + len; ptr < end;) { - Bufbyte c = + Intbyte c = (BYTE_ASCII_P (*ptr)) ? *ptr : (*ptr == LEADING_BYTE_CONTROL_1) ? (*(ptr+1) - 0x20) : (*ptr == LEADING_BYTE_LATIN_ISO8859_1) ? (*(ptr+1)) : @@ -1864,7 +1864,7 @@ Dynarr_add (conversion_out_dynarr, (Extbyte) c); INC_CHARPTR (ptr); } - bufpos_checking_assert (ptr == end); + charbpos_checking_assert (ptr == end); } #else Dynarr_add_many (conversion_out_dynarr, ptr, len); @@ -1913,7 +1913,7 @@ while (1) { - Lstream_Data_Count size_in_bytes; + Bytecount size_in_bytes; char tempbuf[1024]; /* some random amount */ size_in_bytes = Lstream_read (reader, tempbuf, sizeof (tempbuf)); @@ -1959,7 +1959,7 @@ dfc_conversion_data *sink) { int count = specpdl_depth (); - Bufbyte_dynarr *conversion_in_dynarr; + Intbyte_dynarr *conversion_in_dynarr; type_checking_assert ((source_type == DFC_TYPE_DATA || @@ -1972,7 +1972,7 @@ make_int (dfc_convert_to_internal_format_in_use)); if (Dynarr_length (conversion_in_dynarr_list) <= dfc_convert_to_internal_format_in_use) - Dynarr_add (conversion_in_dynarr_list, Dynarr_new (Bufbyte)); + Dynarr_add (conversion_in_dynarr_list, Dynarr_new (Intbyte)); conversion_in_dynarr = Dynarr_at (conversion_in_dynarr_list, dfc_convert_to_internal_format_in_use); dfc_convert_to_internal_format_in_use++; @@ -1987,13 +1987,13 @@ coding_system_is_binary (coding_system)) { #ifdef MULE - const Bufbyte *ptr = (const Bufbyte *) source->data.ptr; + const Intbyte *ptr = (const Intbyte *) source->data.ptr; Bytecount len = source->data.len; - const Bufbyte *end = ptr + len; + const Intbyte *end = ptr + len; for (; ptr < end; ptr++) { - Bufbyte c = *ptr; + Intbyte c = *ptr; if (BYTE_ASCII_P (c)) Dynarr_add (conversion_in_dynarr, c); @@ -2051,7 +2051,7 @@ while (1) { - Lstream_Data_Count size_in_bytes; + Bytecount size_in_bytes; char tempbuf[1024]; /* some random amount */ size_in_bytes = Lstream_read (reader, tempbuf, sizeof (tempbuf)); @@ -2161,8 +2161,8 @@ void reinit_vars_of_buffer (void) { - conversion_in_dynarr_list = Dynarr_new2 (Bufbyte_dynarr_dynarr, - Bufbyte_dynarr *); + conversion_in_dynarr_list = Dynarr_new2 (Intbyte_dynarr_dynarr, + Intbyte_dynarr *); conversion_out_dynarr_list = Dynarr_new2 (Extbyte_dynarr_dynarr, Extbyte_dynarr *); @@ -3038,7 +3038,7 @@ static int directory_is_current_directory (Extbyte *pwd) { - Bufbyte *pwd_internal; + Intbyte *pwd_internal; Bytecount pwd_internal_len; struct stat dotstat, pwdstat; diff --text -u 'xemacs-21.5.3/src/buffer.h' 'xemacs-21.5.4/src/buffer.h' Index: ././src/buffer.h --- ././src/buffer.h Fri Aug 24 17:52:09 2001 +++ ././src/buffer.h Thu Sep 20 15:28:49 2001 @@ -45,10 +45,10 @@ /* */ /************************************************************************/ -/* Note: we keep both Bytind and Bufpos versions of some of the +/* Note: we keep both Bytebpos and Charbpos versions of some of the important buffer positions because they are accessed so much. If we didn't do this, we would constantly be invalidating the - bufpos<->bytind cache under Mule. + charbpos<->bytebpos cache under Mule. Note that under non-Mule, both versions will always be the same so we don't really need to keep track of them. But it @@ -79,12 +79,12 @@ struct buffer_text { - Bufbyte *beg; /* Actual address of buffer contents. */ - Bytind gpt; /* Index of gap in buffer. */ - Bytind z; /* Index of end of buffer. */ - Bufpos bufz; /* Equivalent as a Bufpos. */ - Memory_Count gap_size;/* Size of buffer's gap */ - Memory_Count end_gap_size;/* Size of buffer's end gap */ + Intbyte *beg; /* Actual address of buffer contents. */ + Bytebpos gpt; /* Index of gap in buffer. */ + Bytebpos z; /* Index of end of buffer. */ + Charbpos bufz; /* Equivalent as a Charbpos. */ + Bytecount gap_size;/* Size of buffer's gap */ + Bytecount end_gap_size;/* Size of buffer's end gap */ long modiff; /* This counts buffer-modification events for this buffer. It is incremented for each such event, and never otherwise @@ -95,14 +95,14 @@ #ifdef MULE /* We keep track of a "known" region for very fast access. This information is text-only so it goes here. */ - Bufpos mule_bufmin, mule_bufmax; - Bytind mule_bytmin, mule_bytmax; + Charbpos mule_bufmin, mule_bufmax; + Bytebpos mule_bytmin, mule_bytmax; int mule_shifter, mule_three_p; /* And we also cache 16 positions for fairly fast access near those positions. */ - Bufpos mule_bufpos_cache[16]; - Bytind mule_bytind_cache[16]; + Charbpos mule_charbpos_cache[16]; + Bytebpos mule_bytebpos_cache[16]; #endif /* Similar to the above, we keep track of positions for which line @@ -127,12 +127,12 @@ In an indirect buffer, this is the own_text field of another buffer. */ struct buffer_text *text; - Bytind pt; /* Position of point in buffer. */ - Bufpos bufpt; /* Equivalent as a Bufpos. */ - Bytind begv; /* Index of beginning of accessible range. */ - Bufpos bufbegv; /* Equivalent as a Bufpos. */ - Bytind zv; /* Index of end of accessible range. */ - Bufpos bufzv; /* Equivalent as a Bufpos. */ + Bytebpos pt; /* Position of point in buffer. */ + Charbpos bufpt; /* Equivalent as a Charbpos. */ + Bytebpos begv; /* Index of beginning of accessible range. */ + Charbpos bufbegv; /* Equivalent as a Charbpos. */ + Bytebpos zv; /* Index of end of accessible range. */ + Charbpos bufzv; /* Equivalent as a Charbpos. */ int face_change; /* This is set when a change in how the text should be displayed (e.g., font, color) is made. */ @@ -394,12 +394,12 @@ /* ---------------------------------------------------------------------- */ #ifdef MULE -# define VALID_CHARPTR_P(ptr) BUFBYTE_FIRST_BYTE_P (* (unsigned char *) ptr) +# define VALID_CHARPTR_P(ptr) INTBYTE_FIRST_BYTE_P (* (unsigned char *) ptr) #else # define VALID_CHARPTR_P(ptr) 1 #endif -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS # define ASSERT_VALID_CHARPTR(ptr) assert (VALID_CHARPTR_P (ptr)) #else # define ASSERT_VALID_CHARPTR(ptr) @@ -415,38 +415,38 @@ #define REAL_INC_CHARPTR(ptr) \ ((void) ((ptr) += REP_BYTES_BY_FIRST_BYTE (* (unsigned char *) (ptr)))) -#define REAL_INC_CHARBYTIND(ptr, pos) \ +#define REAL_INC_CHARBYTEBPOS(ptr, pos) \ (pos += REP_BYTES_BY_FIRST_BYTE (* (unsigned char *) (ptr))) #define REAL_DEC_CHARPTR(ptr) do { \ (ptr)--; \ } while (!VALID_CHARPTR_P (ptr)) -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS #define INC_CHARPTR(ptr) do { \ ASSERT_VALID_CHARPTR (ptr); \ REAL_INC_CHARPTR (ptr); \ } while (0) -#define INC_CHARBYTIND(ptr, pos) do { \ +#define INC_CHARBYTEBPOS(ptr, pos) do { \ ASSERT_VALID_CHARPTR (ptr); \ - REAL_INC_CHARBYTIND (ptr, pos); \ + REAL_INC_CHARBYTEBPOS (ptr, pos); \ } while (0) #define DEC_CHARPTR(ptr) do { \ - const Bufbyte *dc_ptr1 = (ptr); \ - const Bufbyte *dc_ptr2 = dc_ptr1; \ + const Intbyte *dc_ptr1 = (ptr); \ + const Intbyte *dc_ptr2 = dc_ptr1; \ REAL_DEC_CHARPTR (dc_ptr2); \ assert (dc_ptr1 - dc_ptr2 == \ REP_BYTES_BY_FIRST_BYTE (*dc_ptr2)); \ - (ptr) = (Bufbyte *) dc_ptr2; \ + (ptr) = (Intbyte *) dc_ptr2; \ } while (0) -#else /* ! ERROR_CHECK_BUFPOS */ -#define INC_CHARBYTIND(ptr, pos) REAL_INC_CHARBYTIND (ptr, pos) +#else /* ! ERROR_CHECK_CHARBPOS */ +#define INC_CHARBYTEBPOS(ptr, pos) REAL_INC_CHARBYTEBPOS (ptr, pos) #define INC_CHARPTR(ptr) REAL_INC_CHARPTR (ptr) #define DEC_CHARPTR(ptr) REAL_DEC_CHARPTR (ptr) -#endif /* ! ERROR_CHECK_BUFPOS */ +#endif /* ! ERROR_CHECK_CHARBPOS */ #ifdef MULE @@ -458,7 +458,7 @@ the end of the string. */ #define VALIDATE_CHARPTR_FORWARD(ptr) do { \ - Bufbyte *vcf_ptr = (ptr); \ + Intbyte *vcf_ptr = (ptr); \ VALIDATE_CHARPTR_BACKWARD (vcf_ptr); \ if (vcf_ptr != (ptr)) \ { \ @@ -477,10 +477,10 @@ /* section of internally-formatted text */ /* -------------------------------------------------------------- */ -INLINE_HEADER const Bufbyte * -charptr_n_addr (const Bufbyte *ptr, Charcount offset); -INLINE_HEADER const Bufbyte * -charptr_n_addr (const Bufbyte *ptr, Charcount offset) +INLINE_HEADER const Intbyte * +charptr_n_addr (const Intbyte *ptr, Charcount offset); +INLINE_HEADER const Intbyte * +charptr_n_addr (const Intbyte *ptr, Charcount offset) { return ptr + charcount_to_bytecount (ptr, offset); } @@ -490,27 +490,27 @@ /* -------------------------------------------------------------------- */ #define simple_charptr_emchar(ptr) ((Emchar) (ptr)[0]) -#define simple_set_charptr_emchar(ptr, x) ((ptr)[0] = (Bufbyte) (x), 1) +#define simple_set_charptr_emchar(ptr, x) ((ptr)[0] = (Intbyte) (x), 1) #define simple_charptr_copy_char(ptr, ptr2) ((ptr2)[0] = *(ptr), 1) #ifdef MULE -Emchar non_ascii_charptr_emchar (const Bufbyte *ptr); -Bytecount non_ascii_set_charptr_emchar (Bufbyte *ptr, Emchar c); -Bytecount non_ascii_charptr_copy_char (const Bufbyte *src, Bufbyte *dst); +Emchar non_ascii_charptr_emchar (const Intbyte *ptr); +Bytecount non_ascii_set_charptr_emchar (Intbyte *ptr, Emchar c); +Bytecount non_ascii_charptr_copy_char (const Intbyte *src, Intbyte *dst); -INLINE_HEADER Emchar charptr_emchar (const Bufbyte *ptr); +INLINE_HEADER Emchar charptr_emchar (const Intbyte *ptr); INLINE_HEADER Emchar -charptr_emchar (const Bufbyte *ptr) +charptr_emchar (const Intbyte *ptr) { return BYTE_ASCII_P (*ptr) ? simple_charptr_emchar (ptr) : non_ascii_charptr_emchar (ptr); } -INLINE_HEADER Bytecount set_charptr_emchar (Bufbyte *ptr, Emchar x); +INLINE_HEADER Bytecount set_charptr_emchar (Intbyte *ptr, Emchar x); INLINE_HEADER Bytecount -set_charptr_emchar (Bufbyte *ptr, Emchar x) +set_charptr_emchar (Intbyte *ptr, Emchar x) { return !CHAR_MULTIBYTE_P (x) ? simple_set_charptr_emchar (ptr, x) : @@ -520,9 +520,9 @@ /* Copy the character pointed to by SRC into DST. Return the number of bytes copied. */ INLINE_HEADER Bytecount -charptr_copy_char (const Bufbyte *src, Bufbyte *dst); +charptr_copy_char (const Intbyte *src, Intbyte *dst); INLINE_HEADER Bytecount -charptr_copy_char (const Bufbyte *src, Bufbyte *dst) +charptr_copy_char (const Intbyte *src, Intbyte *dst) { return BYTE_ASCII_P (*src) ? simple_charptr_copy_char (src, dst) : @@ -600,8 +600,8 @@ the positions. */ /* Beginning of buffer. */ -#define BI_BUF_BEG(buf) ((Bytind) 1) -#define BUF_BEG(buf) ((Bufpos) 1) +#define BI_BUF_BEG(buf) ((Bytebpos) 1) +#define BUF_BEG(buf) ((Charbpos) 1) /* Beginning of accessible range of buffer. */ #define BI_BUF_BEGV(buf) ((buf)->begv + 0) @@ -624,9 +624,9 @@ /*----------------------------------------------------------------------*/ /* Convert the address of a byte in the buffer into a position. */ -INLINE_HEADER Bytind BI_BUF_PTR_BYTE_POS (struct buffer *buf, Bufbyte *ptr); -INLINE_HEADER Bytind -BI_BUF_PTR_BYTE_POS (struct buffer *buf, Bufbyte *ptr) +INLINE_HEADER Bytebpos BI_BUF_PTR_BYTE_POS (struct buffer *buf, Intbyte *ptr); +INLINE_HEADER Bytebpos +BI_BUF_PTR_BYTE_POS (struct buffer *buf, Intbyte *ptr) { return (ptr - buf->text->beg + 1 - ((ptr - buf->text->beg + 1) > buf->text->gpt @@ -634,12 +634,12 @@ } #define BUF_PTR_BYTE_POS(buf, ptr) \ - bytind_to_bufpos (buf, BI_BUF_PTR_BYTE_POS (buf, ptr)) + bytebpos_to_charbpos (buf, BI_BUF_PTR_BYTE_POS (buf, ptr)) /* Address of byte at position POS in buffer. */ -INLINE_HEADER Bufbyte * BI_BUF_BYTE_ADDRESS (struct buffer *buf, Bytind pos); -INLINE_HEADER Bufbyte * -BI_BUF_BYTE_ADDRESS (struct buffer *buf, Bytind pos) +INLINE_HEADER Intbyte * BI_BUF_BYTE_ADDRESS (struct buffer *buf, Bytebpos pos); +INLINE_HEADER Intbyte * +BI_BUF_BYTE_ADDRESS (struct buffer *buf, Bytebpos pos) { return (buf->text->beg + ((pos >= buf->text->gpt ? (pos + buf->text->gap_size) : pos) @@ -647,12 +647,12 @@ } #define BUF_BYTE_ADDRESS(buf, pos) \ - BI_BUF_BYTE_ADDRESS (buf, bufpos_to_bytind (buf, pos)) + BI_BUF_BYTE_ADDRESS (buf, charbpos_to_bytebpos (buf, pos)) /* Address of byte before position POS in buffer. */ -INLINE_HEADER Bufbyte * BI_BUF_BYTE_ADDRESS_BEFORE (struct buffer *buf, Bytind pos); -INLINE_HEADER Bufbyte * -BI_BUF_BYTE_ADDRESS_BEFORE (struct buffer *buf, Bytind pos) +INLINE_HEADER Intbyte * BI_BUF_BYTE_ADDRESS_BEFORE (struct buffer *buf, Bytebpos pos); +INLINE_HEADER Intbyte * +BI_BUF_BYTE_ADDRESS_BEFORE (struct buffer *buf, Bytebpos pos) { return (buf->text->beg + ((pos > buf->text->gpt ? (pos + buf->text->gap_size) : pos) @@ -660,79 +660,79 @@ } #define BUF_BYTE_ADDRESS_BEFORE(buf, pos) \ - BI_BUF_BYTE_ADDRESS_BEFORE (buf, bufpos_to_bytind (buf, pos)) + BI_BUF_BYTE_ADDRESS_BEFORE (buf, charbpos_to_bytebpos (buf, pos)) /*----------------------------------------------------------------------*/ /* Converting between byte indices and memory indices */ /*----------------------------------------------------------------------*/ -INLINE_HEADER int valid_memind_p (struct buffer *buf, Memind x); +INLINE_HEADER int valid_membpos_p (struct buffer *buf, Membpos x); INLINE_HEADER int -valid_memind_p (struct buffer *buf, Memind x) +valid_membpos_p (struct buffer *buf, Membpos x) { - return ((x >= 1 && x <= (Memind) buf->text->gpt) || - (x > (Memind) (buf->text->gpt + buf->text->gap_size) && - x <= (Memind) (buf->text->z + buf->text->gap_size))); + return ((x >= 1 && x <= (Membpos) buf->text->gpt) || + (x > (Membpos) (buf->text->gpt + buf->text->gap_size) && + x <= (Membpos) (buf->text->z + buf->text->gap_size))); } -INLINE_HEADER Memind bytind_to_memind (struct buffer *buf, Bytind x); -INLINE_HEADER Memind -bytind_to_memind (struct buffer *buf, Bytind x) +INLINE_HEADER Membpos bytebpos_to_membpos (struct buffer *buf, Bytebpos x); +INLINE_HEADER Membpos +bytebpos_to_membpos (struct buffer *buf, Bytebpos x) { - return (Memind) ((x > buf->text->gpt) ? (x + buf->text->gap_size) : x); + return (Membpos) ((x > buf->text->gpt) ? (x + buf->text->gap_size) : x); } -INLINE_HEADER Bytind memind_to_bytind (struct buffer *buf, Memind x); -INLINE_HEADER Bytind -memind_to_bytind (struct buffer *buf, Memind x) +INLINE_HEADER Bytebpos membpos_to_bytebpos (struct buffer *buf, Membpos x); +INLINE_HEADER Bytebpos +membpos_to_bytebpos (struct buffer *buf, Membpos x) { -#ifdef ERROR_CHECK_BUFPOS - assert (valid_memind_p (buf, x)); +#ifdef ERROR_CHECK_CHARBPOS + assert (valid_membpos_p (buf, x)); #endif - return (Bytind) ((x > (Memind) buf->text->gpt) ? + return (Bytebpos) ((x > (Membpos) buf->text->gpt) ? x - buf->text->gap_size : x); } -#define memind_to_bufpos(buf, x) \ - bytind_to_bufpos (buf, memind_to_bytind (buf, x)) -#define bufpos_to_memind(buf, x) \ - bytind_to_memind (buf, bufpos_to_bytind (buf, x)) +#define membpos_to_charbpos(buf, x) \ + bytebpos_to_charbpos (buf, membpos_to_bytebpos (buf, x)) +#define charbpos_to_membpos(buf, x) \ + bytebpos_to_membpos (buf, charbpos_to_bytebpos (buf, x)) /* These macros generalize many standard buffer-position functions to either a buffer or a string. */ -/* Converting between Meminds and Bytinds, for a buffer-or-string. +/* Converting between Membposs and Bytebposs, for a buffer-or-string. For strings, this is a no-op. For buffers, this resolves - to the standard memind<->bytind converters. */ + to the standard membpos<->bytebpos converters. */ -#define buffer_or_string_bytind_to_memind(obj, ind) \ - (BUFFERP (obj) ? bytind_to_memind (XBUFFER (obj), ind) : (Memind) ind) +#define buffer_or_string_bytebpos_to_membpos(obj, ind) \ + (BUFFERP (obj) ? bytebpos_to_membpos (XBUFFER (obj), ind) : (Membpos) ind) -#define buffer_or_string_memind_to_bytind(obj, ind) \ - (BUFFERP (obj) ? memind_to_bytind (XBUFFER (obj), ind) : (Bytind) ind) +#define buffer_or_string_membpos_to_bytebpos(obj, ind) \ + (BUFFERP (obj) ? membpos_to_bytebpos (XBUFFER (obj), ind) : (Bytebpos) ind) -/* Converting between Bufpos's and Bytinds, for a buffer-or-string. +/* Converting between Charbpos's and Bytebposs, for a buffer-or-string. For strings, this maps to the bytecount<->charcount converters. */ -#define buffer_or_string_bufpos_to_bytind(obj, pos) \ - (BUFFERP (obj) ? bufpos_to_bytind (XBUFFER (obj), pos) : \ - (Bytind) charcount_to_bytecount (XSTRING_DATA (obj), pos)) - -#define buffer_or_string_bytind_to_bufpos(obj, ind) \ - (BUFFERP (obj) ? bytind_to_bufpos (XBUFFER (obj), ind) : \ - (Bufpos) bytecount_to_charcount (XSTRING_DATA (obj), ind)) - -/* Similar for Bufpos's and Meminds. */ - -#define buffer_or_string_bufpos_to_memind(obj, pos) \ - (BUFFERP (obj) ? bufpos_to_memind (XBUFFER (obj), pos) : \ - (Memind) charcount_to_bytecount (XSTRING_DATA (obj), pos)) - -#define buffer_or_string_memind_to_bufpos(obj, ind) \ - (BUFFERP (obj) ? memind_to_bufpos (XBUFFER (obj), ind) : \ - (Bufpos) bytecount_to_charcount (XSTRING_DATA (obj), ind)) +#define buffer_or_string_charbpos_to_bytebpos(obj, pos) \ + (BUFFERP (obj) ? charbpos_to_bytebpos (XBUFFER (obj), pos) : \ + (Bytebpos) charcount_to_bytecount (XSTRING_DATA (obj), pos)) + +#define buffer_or_string_bytebpos_to_charbpos(obj, ind) \ + (BUFFERP (obj) ? bytebpos_to_charbpos (XBUFFER (obj), ind) : \ + (Charbpos) bytecount_to_charcount (XSTRING_DATA (obj), ind)) + +/* Similar for Charbpos's and Membposs. */ + +#define buffer_or_string_charbpos_to_membpos(obj, pos) \ + (BUFFERP (obj) ? charbpos_to_membpos (XBUFFER (obj), pos) : \ + (Membpos) charcount_to_bytecount (XSTRING_DATA (obj), pos)) + +#define buffer_or_string_membpos_to_charbpos(obj, ind) \ + (BUFFERP (obj) ? membpos_to_charbpos (XBUFFER (obj), ind) : \ + (Charbpos) bytecount_to_charcount (XSTRING_DATA (obj), ind)) /************************************************************************/ /* */ @@ -745,68 +745,68 @@ (A) Working with byte indices: ------------------------------ - VALID_BYTIND_P(buf, bi): + VALID_BYTEBPOS_P(buf, bi): Given a byte index, does it point to the beginning of a character? - ASSERT_VALID_BYTIND_UNSAFE(buf, bi): + ASSERT_VALID_BYTEBPOS_UNSAFE(buf, bi): If error-checking is enabled, assert that the given byte index is within range and points to the beginning of a character or to the end of the buffer. Otherwise, do nothing. - ASSERT_VALID_BYTIND_BACKWARD_UNSAFE(buf, bi): + ASSERT_VALID_BYTEBPOS_BACKWARD_UNSAFE(buf, bi): If error-checking is enabled, assert that the given byte index - is within range and satisfies ASSERT_VALID_BYTIND() and also + is within range and satisfies ASSERT_VALID_BYTEBPOS() and also does not refer to the beginning of the buffer. (i.e. movement backwards is OK.) Otherwise, do nothing. - ASSERT_VALID_BYTIND_FORWARD_UNSAFE(buf, bi): + ASSERT_VALID_BYTEBPOS_FORWARD_UNSAFE(buf, bi): If error-checking is enabled, assert that the given byte index - is within range and satisfies ASSERT_VALID_BYTIND() and also + is within range and satisfies ASSERT_VALID_BYTEBPOS() and also does not refer to the end of the buffer. (i.e. movement forwards is OK.) Otherwise, do nothing. - VALIDATE_BYTIND_BACKWARD(buf, bi): + VALIDATE_BYTEBPOS_BACKWARD(buf, bi): Make sure that the given byte index is pointing to the beginning of a character. If not, back up until this is the case. Note that there are not too many places where it is legitimate to do this sort of thing. It's an error if you're passed an "invalid" byte index. - VALIDATE_BYTIND_FORWARD(buf, bi): + VALIDATE_BYTEBPOS_FORWARD(buf, bi): Make sure that the given byte index is pointing to the beginning of a character. If not, move forward until this is the case. Note that there are not too many places where it is legitimate to do this sort of thing. It's an error if you're passed an "invalid" byte index. - INC_BYTIND(buf, bi): + INC_BYTEBPOS(buf, bi): Given a byte index (assumed to point at the beginning of a character), modify that value so it points to the beginning of the next character. - DEC_BYTIND(buf, bi): + DEC_BYTEBPOS(buf, bi): Given a byte index (assumed to point at the beginning of a character), modify that value so it points to the beginning of the previous character. Unlike for DEC_CHARPTR(), we can do all the assert()s because there are sentinels at the beginning of the gap and the end of the buffer. - BYTIND_INVALID: - A constant representing an invalid Bytind. Valid Bytinds + BYTEBPOS_INVALID: + A constant representing an invalid Bytebpos. Valid Bytebposs can never have this value. - (B) Converting between Bufpos's and Bytinds: + (B) Converting between Charbpos's and Bytebposs: -------------------------------------------- - bufpos_to_bytind(buf, bu): - Given a Bufpos, return the equivalent Bytind. + charbpos_to_bytebpos(buf, bu): + Given a Charbpos, return the equivalent Bytebpos. - bytind_to_bufpos(buf, bi): - Given a Bytind, return the equivalent Bufpos. + bytebpos_to_charbpos(buf, bi): + Given a Bytebpos, return the equivalent Charbpos. - make_bufpos(buf, bi): - Given a Bytind, return the equivalent Bufpos as a Lisp Object. + make_charbpos(buf, bi): + Given a Bytebpos, return the equivalent Charbpos as a Lisp Object. */ @@ -815,36 +815,36 @@ /*----------------------------------------------------------------------*/ #ifdef MULE -# define VALID_BYTIND_P(buf, x) \ - BUFBYTE_FIRST_BYTE_P (*BI_BUF_BYTE_ADDRESS (buf, x)) +# define VALID_BYTEBPOS_P(buf, x) \ + INTBYTE_FIRST_BYTE_P (*BI_BUF_BYTE_ADDRESS (buf, x)) #else -# define VALID_BYTIND_P(buf, x) 1 +# define VALID_BYTEBPOS_P(buf, x) 1 #endif -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS -# define ASSERT_VALID_BYTIND_UNSAFE(buf, x) do { \ +# define ASSERT_VALID_BYTEBPOS_UNSAFE(buf, x) do { \ assert (BUFFER_LIVE_P (buf)); \ assert ((x) >= BI_BUF_BEG (buf) && x <= BI_BUF_Z (buf)); \ - assert (VALID_BYTIND_P (buf, x)); \ + assert (VALID_BYTEBPOS_P (buf, x)); \ } while (0) -# define ASSERT_VALID_BYTIND_BACKWARD_UNSAFE(buf, x) do { \ +# define ASSERT_VALID_BYTEBPOS_BACKWARD_UNSAFE(buf, x) do { \ assert (BUFFER_LIVE_P (buf)); \ assert ((x) > BI_BUF_BEG (buf) && x <= BI_BUF_Z (buf)); \ - assert (VALID_BYTIND_P (buf, x)); \ + assert (VALID_BYTEBPOS_P (buf, x)); \ } while (0) -# define ASSERT_VALID_BYTIND_FORWARD_UNSAFE(buf, x) do { \ +# define ASSERT_VALID_BYTEBPOS_FORWARD_UNSAFE(buf, x) do { \ assert (BUFFER_LIVE_P (buf)); \ assert ((x) >= BI_BUF_BEG (buf) && x < BI_BUF_Z (buf)); \ - assert (VALID_BYTIND_P (buf, x)); \ + assert (VALID_BYTEBPOS_P (buf, x)); \ } while (0) -#else /* not ERROR_CHECK_BUFPOS */ -# define ASSERT_VALID_BYTIND_UNSAFE(buf, x) -# define ASSERT_VALID_BYTIND_BACKWARD_UNSAFE(buf, x) -# define ASSERT_VALID_BYTIND_FORWARD_UNSAFE(buf, x) +#else /* not ERROR_CHECK_CHARBPOS */ +# define ASSERT_VALID_BYTEBPOS_UNSAFE(buf, x) +# define ASSERT_VALID_BYTEBPOS_BACKWARD_UNSAFE(buf, x) +# define ASSERT_VALID_BYTEBPOS_FORWARD_UNSAFE(buf, x) -#endif /* not ERROR_CHECK_BUFPOS */ +#endif /* not ERROR_CHECK_CHARBPOS */ /* Note that, although the Mule version will work fine for non-Mule as well (it should reduce down to nothing), we provide a separate @@ -852,13 +852,13 @@ results with stupid compilers. */ #ifdef MULE -# define VALIDATE_BYTIND_BACKWARD(buf, x) do { \ - Bufbyte *VBB_ptr = BI_BUF_BYTE_ADDRESS (buf, x); \ - while (!BUFBYTE_FIRST_BYTE_P (*VBB_ptr)) \ +# define VALIDATE_BYTEBPOS_BACKWARD(buf, x) do { \ + Intbyte *VBB_ptr = BI_BUF_BYTE_ADDRESS (buf, x); \ + while (!INTBYTE_FIRST_BYTE_P (*VBB_ptr)) \ VBB_ptr--, (x)--; \ } while (0) #else -# define VALIDATE_BYTIND_BACKWARD(buf, x) +# define VALIDATE_BYTEBPOS_BACKWARD(buf, x) #endif /* Note that, although the Mule version will work fine for non-Mule @@ -867,60 +867,60 @@ results with stupid compilers. */ #ifdef MULE -# define VALIDATE_BYTIND_FORWARD(buf, x) do { \ - Bufbyte *VBF_ptr = BI_BUF_BYTE_ADDRESS (buf, x); \ - while (!BUFBYTE_FIRST_BYTE_P (*VBF_ptr)) \ +# define VALIDATE_BYTEBPOS_FORWARD(buf, x) do { \ + Intbyte *VBF_ptr = BI_BUF_BYTE_ADDRESS (buf, x); \ + while (!INTBYTE_FIRST_BYTE_P (*VBF_ptr)) \ VBF_ptr++, (x)++; \ } while (0) #else -# define VALIDATE_BYTIND_FORWARD(buf, x) +# define VALIDATE_BYTEBPOS_FORWARD(buf, x) #endif -/* Note that in the simplest case (no MULE, no ERROR_CHECK_BUFPOS), +/* Note that in the simplest case (no MULE, no ERROR_CHECK_CHARBPOS), this crap reduces down to simply (x)++. */ -#define INC_BYTIND(buf, x) do \ +#define INC_BYTEBPOS(buf, x) do \ { \ - ASSERT_VALID_BYTIND_FORWARD_UNSAFE (buf, x); \ + ASSERT_VALID_BYTEBPOS_FORWARD_UNSAFE (buf, x); \ /* Note that we do the increment first to \ make sure that the pointer in \ - VALIDATE_BYTIND_FORWARD() ends up on \ + VALIDATE_BYTEBPOS_FORWARD() ends up on \ the correct side of the gap */ \ (x)++; \ - VALIDATE_BYTIND_FORWARD (buf, x); \ + VALIDATE_BYTEBPOS_FORWARD (buf, x); \ } while (0) -/* Note that in the simplest case (no MULE, no ERROR_CHECK_BUFPOS), +/* Note that in the simplest case (no MULE, no ERROR_CHECK_CHARBPOS), this crap reduces down to simply (x)--. */ -#define DEC_BYTIND(buf, x) do \ +#define DEC_BYTEBPOS(buf, x) do \ { \ - ASSERT_VALID_BYTIND_BACKWARD_UNSAFE (buf, x); \ + ASSERT_VALID_BYTEBPOS_BACKWARD_UNSAFE (buf, x); \ /* Note that we do the decrement first to \ make sure that the pointer in \ - VALIDATE_BYTIND_BACKWARD() ends up on \ + VALIDATE_BYTEBPOS_BACKWARD() ends up on \ the correct side of the gap */ \ (x)--; \ - VALIDATE_BYTIND_BACKWARD (buf, x); \ + VALIDATE_BYTEBPOS_BACKWARD (buf, x); \ } while (0) -INLINE_HEADER Bytind prev_bytind (struct buffer *buf, Bytind x); -INLINE_HEADER Bytind -prev_bytind (struct buffer *buf, Bytind x) +INLINE_HEADER Bytebpos prev_bytebpos (struct buffer *buf, Bytebpos x); +INLINE_HEADER Bytebpos +prev_bytebpos (struct buffer *buf, Bytebpos x) { - DEC_BYTIND (buf, x); + DEC_BYTEBPOS (buf, x); return x; } -INLINE_HEADER Bytind next_bytind (struct buffer *buf, Bytind x); -INLINE_HEADER Bytind -next_bytind (struct buffer *buf, Bytind x) +INLINE_HEADER Bytebpos next_bytebpos (struct buffer *buf, Bytebpos x); +INLINE_HEADER Bytebpos +next_bytebpos (struct buffer *buf, Bytebpos x) { - INC_BYTIND (buf, x); + INC_BYTEBPOS (buf, x); return x; } -#define BYTIND_INVALID ((Bytind) -1) +#define BYTEBPOS_INVALID ((Bytebpos) -1) /*----------------------------------------------------------------------*/ /* Converting between buffer positions and byte indices */ @@ -928,13 +928,13 @@ #ifdef MULE -Bytind bufpos_to_bytind_func (struct buffer *buf, Bufpos x); -Bufpos bytind_to_bufpos_func (struct buffer *buf, Bytind x); +Bytebpos charbpos_to_bytebpos_func (struct buffer *buf, Charbpos x); +Charbpos bytebpos_to_charbpos_func (struct buffer *buf, Bytebpos x); /* The basic algorithm we use is to keep track of a known region of characters in each buffer, all of which are of the same width. We - keep track of the boundaries of the region in both Bufpos and - Bytind coordinates and also keep track of the char width, which + keep track of the boundaries of the region in both Charbpos and + Bytebpos coordinates and also keep track of the char width, which is 1 - 4 bytes. If the position we're translating is not in the known region, then we invoke a function to update the known region to surround the position in question. This assumes @@ -947,7 +947,7 @@ shortcuts to catch all-ASCII buffers. (Note that this will thrash with bad locality of reference.) A smarter method would be to keep some sort of pseudo-extent layer over the buffer; - maybe keep track of the bufpos/bytind correspondence at the + maybe keep track of the charbpos/bytebpos correspondence at the beginning of each line, which would allow us to do a binary search over the pseudo-extents to narrow things down to the correct line, at which point you could use a linear movement @@ -975,21 +975,21 @@ extern short three_to_one_table[]; -INLINE_HEADER int real_bufpos_to_bytind (struct buffer *buf, Bufpos x); +INLINE_HEADER int real_charbpos_to_bytebpos (struct buffer *buf, Charbpos x); INLINE_HEADER int -real_bufpos_to_bytind (struct buffer *buf, Bufpos x) +real_charbpos_to_bytebpos (struct buffer *buf, Charbpos x) { if (x >= buf->text->mule_bufmin && x <= buf->text->mule_bufmax) return (buf->text->mule_bytmin + ((x - buf->text->mule_bufmin) << buf->text->mule_shifter) + (buf->text->mule_three_p ? (x - buf->text->mule_bufmin) : 0)); else - return bufpos_to_bytind_func (buf, x); + return charbpos_to_bytebpos_func (buf, x); } -INLINE_HEADER int real_bytind_to_bufpos (struct buffer *buf, Bytind x); +INLINE_HEADER int real_bytebpos_to_charbpos (struct buffer *buf, Bytebpos x); INLINE_HEADER int -real_bytind_to_bufpos (struct buffer *buf, Bytind x) +real_bytebpos_to_charbpos (struct buffer *buf, Bytebpos x) { if (x >= buf->text->mule_bytmin && x <= buf->text->mule_bytmax) return (buf->text->mule_bufmin + @@ -997,29 +997,29 @@ ? three_to_one_table[x - buf->text->mule_bytmin] : (x - buf->text->mule_bytmin) >> buf->text->mule_shifter))); else - return bytind_to_bufpos_func (buf, x); + return bytebpos_to_charbpos_func (buf, x); } #else /* not MULE */ -# define real_bufpos_to_bytind(buf, x) ((Bytind) x) -# define real_bytind_to_bufpos(buf, x) ((Bufpos) x) +# define real_charbpos_to_bytebpos(buf, x) ((Bytebpos) x) +# define real_bytebpos_to_charbpos(buf, x) ((Charbpos) x) #endif /* not MULE */ -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS -Bytind bufpos_to_bytind (struct buffer *buf, Bufpos x); -Bufpos bytind_to_bufpos (struct buffer *buf, Bytind x); +Bytebpos charbpos_to_bytebpos (struct buffer *buf, Charbpos x); +Charbpos bytebpos_to_charbpos (struct buffer *buf, Bytebpos x); -#else /* not ERROR_CHECK_BUFPOS */ +#else /* not ERROR_CHECK_CHARBPOS */ -#define bufpos_to_bytind real_bufpos_to_bytind -#define bytind_to_bufpos real_bytind_to_bufpos +#define charbpos_to_bytebpos real_charbpos_to_bytebpos +#define bytebpos_to_charbpos real_bytebpos_to_charbpos -#endif /* not ERROR_CHECK_BUFPOS */ +#endif /* not ERROR_CHECK_CHARBPOS */ -#define make_bufpos(buf, ind) make_int (bytind_to_bufpos (buf, ind)) +#define make_charbpos(buf, ind) make_int (bytebpos_to_charbpos (buf, ind)) /*----------------------------------------------------------------------*/ /* Converting between buffer bytes and Emacs characters */ @@ -1029,7 +1029,7 @@ #define BI_BUF_FETCH_CHAR(buf, pos) \ charptr_emchar (BI_BUF_BYTE_ADDRESS (buf, pos)) #define BUF_FETCH_CHAR(buf, pos) \ - BI_BUF_FETCH_CHAR (buf, bufpos_to_bytind (buf, pos)) + BI_BUF_FETCH_CHAR (buf, charbpos_to_bytebpos (buf, pos)) /* The character at position POS in buffer, as a string. This is equivalent to set_charptr_emchar (str, BUF_FETCH_CHAR (buf, pos)) @@ -1038,7 +1038,7 @@ # define BI_BUF_CHARPTR_COPY_CHAR(buf, pos, str) \ charptr_copy_char (BI_BUF_BYTE_ADDRESS (buf, pos), str) #define BUF_CHARPTR_COPY_CHAR(buf, pos, str) \ - BI_BUF_CHARPTR_COPY_CHAR (buf, bufpos_to_bytind (buf, pos), str) + BI_BUF_CHARPTR_COPY_CHAR (buf, charbpos_to_bytebpos (buf, pos), str) /************************************************************************/ @@ -1169,7 +1169,7 @@ typedef union { - struct { const void *ptr; Memory_Count len; } data; + struct { const void *ptr; Bytecount len; } data; Lisp_Object lisp_object; } dfc_conversion_data; @@ -1293,7 +1293,7 @@ ((dfc_aliasing_voidpp) &(sink))->p = dfc_sink_ret; \ } while (0) #define DFC_LISP_STRING_USE_CONVERTED_DATA(sink) \ - sink = make_string ((Bufbyte *) dfc_sink.data.ptr, dfc_sink.data.len) + sink = make_string ((Intbyte *) dfc_sink.data.ptr, dfc_sink.data.len) #define DFC_LISP_OPAQUE_USE_CONVERTED_DATA(sink) \ sink = make_opaque (dfc_sink.data.ptr, dfc_sink.data.len) #define DFC_LISP_LSTREAM_USE_CONVERTED_DATA(sink) /* data already used */ @@ -1393,15 +1393,15 @@ /* Set point. */ /* Since BEGV and ZV are almost never set, it's reasonable to enforce - the restriction that the Bufpos and Bytind values must both be + the restriction that the Charbpos and Bytebpos values must both be specified. However, point is set in lots and lots of places. So we provide the ability to specify both (for efficiency) or just one. */ #define BOTH_BUF_SET_PT(buf, val, bival) set_buffer_point (buf, val, bival) #define BI_BUF_SET_PT(buf, bival) \ - BOTH_BUF_SET_PT (buf, bytind_to_bufpos (buf, bival), bival) + BOTH_BUF_SET_PT (buf, bytebpos_to_charbpos (buf, bival), bival) #define BUF_SET_PT(buf, value) \ - BOTH_BUF_SET_PT (buf, value, bufpos_to_bytind (buf, value)) + BOTH_BUF_SET_PT (buf, value, charbpos_to_bytebpos (buf, value)) #if 0 /* FSFmacs */ @@ -1483,7 +1483,7 @@ ((n) < (b)->text->gpt && (b)->text->gpt < BI_BUF_ZV (b) ? \ (b)->text->gpt : BI_BUF_ZV (b)) #define BUF_CEILING_OF(b, n) \ - bytind_to_bufpos (b, BI_BUF_CEILING_OF (b, bufpos_to_bytind (b, n))) + bytebpos_to_charbpos (b, BI_BUF_CEILING_OF (b, charbpos_to_bytebpos (b, n))) /* Return the minimum index in the buffer it is safe to scan backwards past N to. All characters between FLOOR_OF(N) and N are located @@ -1493,21 +1493,21 @@ (BI_BUF_BEGV (b) < (b)->text->gpt && (b)->text->gpt < (n) ? \ (b)->text->gpt : BI_BUF_BEGV (b)) #define BUF_FLOOR_OF(b, n) \ - bytind_to_bufpos (b, BI_BUF_FLOOR_OF (b, bufpos_to_bytind (b, n))) + bytebpos_to_charbpos (b, BI_BUF_FLOOR_OF (b, charbpos_to_bytebpos (b, n))) #define BI_BUF_CEILING_OF_IGNORE_ACCESSIBLE(b, n) \ ((n) < (b)->text->gpt && (b)->text->gpt < BI_BUF_Z (b) ? \ (b)->text->gpt : BI_BUF_Z (b)) #define BUF_CEILING_OF_IGNORE_ACCESSIBLE(b, n) \ - bytind_to_bufpos \ - (b, BI_BUF_CEILING_OF_IGNORE_ACCESSIBLE (b, bufpos_to_bytind (b, n))) + bytebpos_to_charbpos \ + (b, BI_BUF_CEILING_OF_IGNORE_ACCESSIBLE (b, charbpos_to_bytebpos (b, n))) #define BI_BUF_FLOOR_OF_IGNORE_ACCESSIBLE(b, n) \ (BI_BUF_BEG (b) < (b)->text->gpt && (b)->text->gpt < (n) ? \ (b)->text->gpt : BI_BUF_BEG (b)) #define BUF_FLOOR_OF_IGNORE_ACCESSIBLE(b, n) \ - bytind_to_bufpos \ - (b, BI_BUF_FLOOR_OF_IGNORE_ACCESSIBLE (b, bufpos_to_bytind (b, n))) + bytebpos_to_charbpos \ + (b, BI_BUF_FLOOR_OF_IGNORE_ACCESSIBLE (b, charbpos_to_bytebpos (b, n))) extern struct buffer *current_buffer; @@ -1566,18 +1566,18 @@ void r_alloc_free (unsigned char **); #define BUFFER_ALLOC(data, size) \ - ((Bufbyte *) r_alloc ((unsigned char **) &data, (size) * sizeof(Bufbyte))) + ((Intbyte *) r_alloc ((unsigned char **) &data, (size) * sizeof(Intbyte))) #define BUFFER_REALLOC(data, size) \ - ((Bufbyte *) r_re_alloc ((unsigned char **) &data, (size) * sizeof(Bufbyte))) + ((Intbyte *) r_re_alloc ((unsigned char **) &data, (size) * sizeof(Intbyte))) #define BUFFER_FREE(data) r_alloc_free ((unsigned char **) &(data)) #define R_ALLOC_DECLARE(var,data) r_alloc_declare (&(var), data) #else /* !REL_ALLOC */ #define BUFFER_ALLOC(data,size)\ - (data = xnew_array (Bufbyte, size)) + (data = xnew_array (Intbyte, size)) #define BUFFER_REALLOC(data,size)\ - ((Bufbyte *) xrealloc (data, (size) * sizeof(Bufbyte))) + ((Intbyte *) xrealloc (data, (size) * sizeof(Intbyte))) /* Avoid excess parentheses, or syntax errors may rear their heads. */ #define BUFFER_FREE(data) xfree (data) #define R_ALLOC_DECLARE(var,data) @@ -1590,27 +1590,27 @@ /* from editfns.c */ void widen_buffer (struct buffer *b, int no_clip); -int beginning_of_line_p (struct buffer *b, Bufpos pt); +int beginning_of_line_p (struct buffer *b, Charbpos pt); /* from insdel.c */ -void set_buffer_point (struct buffer *buf, Bufpos pos, Bytind bipos); -void find_charsets_in_bufbyte_string (unsigned char *charsets, - const Bufbyte *str, +void set_buffer_point (struct buffer *buf, Charbpos pos, Bytebpos bipos); +void find_charsets_in_intbyte_string (unsigned char *charsets, + const Intbyte *str, Bytecount len); void find_charsets_in_emchar_string (unsigned char *charsets, const Emchar *str, Charcount len); -int bufbyte_string_displayed_columns (const Bufbyte *str, Bytecount len); +int intbyte_string_displayed_columns (const Intbyte *str, Bytecount len); int emchar_string_displayed_columns (const Emchar *str, Charcount len); -void convert_bufbyte_string_into_emchar_dynarr (const Bufbyte *str, +void convert_intbyte_string_into_emchar_dynarr (const Intbyte *str, Bytecount len, Emchar_dynarr *dyn); -Charcount convert_bufbyte_string_into_emchar_string (const Bufbyte *str, +Charcount convert_intbyte_string_into_emchar_string (const Intbyte *str, Bytecount len, Emchar *arr); -void convert_emchar_string_into_bufbyte_dynarr (Emchar *arr, int nels, - Bufbyte_dynarr *dyn); -Bufbyte *convert_emchar_string_into_malloced_string (Emchar *arr, int nels, +void convert_emchar_string_into_intbyte_dynarr (Emchar *arr, int nels, + Intbyte_dynarr *dyn); +Intbyte *convert_emchar_string_into_malloced_string (Emchar *arr, int nels, Bytecount *len_out); /* from marker.c */ void init_buffer_markers (struct buffer *b); @@ -1629,15 +1629,15 @@ #define GB_NEGATIVE_FROM_END (1 << 5) #define GB_HISTORICAL_STRING_BEHAVIOR (GB_NEGATIVE_FROM_END | GB_ALLOW_NIL) -Bufpos get_buffer_pos_char (struct buffer *b, Lisp_Object pos, +Charbpos get_buffer_pos_char (struct buffer *b, Lisp_Object pos, unsigned int flags); -Bytind get_buffer_pos_byte (struct buffer *b, Lisp_Object pos, +Bytebpos get_buffer_pos_byte (struct buffer *b, Lisp_Object pos, unsigned int flags); void get_buffer_range_char (struct buffer *b, Lisp_Object from, Lisp_Object to, - Bufpos *from_out, Bufpos *to_out, + Charbpos *from_out, Charbpos *to_out, unsigned int flags); void get_buffer_range_byte (struct buffer *b, Lisp_Object from, Lisp_Object to, - Bytind *from_out, Bytind *to_out, + Bytebpos *from_out, Bytebpos *to_out, unsigned int flags); Charcount get_string_pos_char (Lisp_Object string, Lisp_Object pos, unsigned int flags); @@ -1649,24 +1649,24 @@ void get_string_range_byte (Lisp_Object string, Lisp_Object from, Lisp_Object to, Bytecount *from_out, Bytecount *to_out, unsigned int flags); -Bufpos get_buffer_or_string_pos_char (Lisp_Object object, Lisp_Object pos, +Charbpos get_buffer_or_string_pos_char (Lisp_Object object, Lisp_Object pos, unsigned int flags); -Bytind get_buffer_or_string_pos_byte (Lisp_Object object, Lisp_Object pos, +Bytebpos get_buffer_or_string_pos_byte (Lisp_Object object, Lisp_Object pos, unsigned int flags); void get_buffer_or_string_range_char (Lisp_Object object, Lisp_Object from, - Lisp_Object to, Bufpos *from_out, - Bufpos *to_out, unsigned int flags); + Lisp_Object to, Charbpos *from_out, + Charbpos *to_out, unsigned int flags); void get_buffer_or_string_range_byte (Lisp_Object object, Lisp_Object from, - Lisp_Object to, Bytind *from_out, - Bytind *to_out, unsigned int flags); -Bufpos buffer_or_string_accessible_begin_char (Lisp_Object object); -Bufpos buffer_or_string_accessible_end_char (Lisp_Object object); -Bytind buffer_or_string_accessible_begin_byte (Lisp_Object object); -Bytind buffer_or_string_accessible_end_byte (Lisp_Object object); -Bufpos buffer_or_string_absolute_begin_char (Lisp_Object object); -Bufpos buffer_or_string_absolute_end_char (Lisp_Object object); -Bytind buffer_or_string_absolute_begin_byte (Lisp_Object object); -Bytind buffer_or_string_absolute_end_byte (Lisp_Object object); + Lisp_Object to, Bytebpos *from_out, + Bytebpos *to_out, unsigned int flags); +Charbpos buffer_or_string_accessible_begin_char (Lisp_Object object); +Charbpos buffer_or_string_accessible_end_char (Lisp_Object object); +Bytebpos buffer_or_string_accessible_begin_byte (Lisp_Object object); +Bytebpos buffer_or_string_accessible_end_byte (Lisp_Object object); +Charbpos buffer_or_string_absolute_begin_char (Lisp_Object object); +Charbpos buffer_or_string_absolute_end_char (Lisp_Object object); +Bytebpos buffer_or_string_absolute_begin_byte (Lisp_Object object); +Bytebpos buffer_or_string_absolute_end_byte (Lisp_Object object); void record_buffer (Lisp_Object buf); Lisp_Object get_buffer (Lisp_Object name, int error_if_deleted_or_does_not_exist); @@ -1771,22 +1771,22 @@ /************************************************************************/ /* Because the representation of internally formatted data is subject to change, It's bad style to do something like strcmp (XSTRING_DATA (s), "foo") - Instead, use the portable: bufbyte_strcmp (XSTRING_DATA (s), "foo") - or bufbyte_memcmp (XSTRING_DATA (s), "foo", 3) */ + Instead, use the portable: intbyte_strcmp (XSTRING_DATA (s), "foo") + or intbyte_memcmp (XSTRING_DATA (s), "foo", 3) */ /* Like strcmp, except first arg points at internally formatted data, while the second points at a string of only ASCII chars. */ INLINE_HEADER int -bufbyte_strcmp (const Bufbyte *bp, const char *ascii_string); +intbyte_strcmp (const Intbyte *bp, const char *ascii_string); INLINE_HEADER int -bufbyte_strcmp (const Bufbyte *bp, const char *ascii_string) +intbyte_strcmp (const Intbyte *bp, const char *ascii_string) { #ifdef MULE while (1) { int diff; type_checking_assert (BYTE_ASCII_P (*ascii_string)); - if ((diff = charptr_emchar (bp) - *(Bufbyte *) ascii_string) != 0) + if ((diff = charptr_emchar (bp) - *(Intbyte *) ascii_string) != 0) return diff; if (*ascii_string == '\0') return 0; @@ -1802,14 +1802,14 @@ /* Like memcmp, except first arg points at internally formatted data, while the second points at a string of only ASCII chars. */ INLINE_HEADER int -bufbyte_memcmp (const Bufbyte *bp, const char *ascii_string, Memory_Count len); +intbyte_memcmp (const Intbyte *bp, const char *ascii_string, Bytecount len); INLINE_HEADER int -bufbyte_memcmp (const Bufbyte *bp, const char *ascii_string, Memory_Count len) +intbyte_memcmp (const Intbyte *bp, const char *ascii_string, Bytecount len) { #ifdef MULE while (len--) { - int diff = charptr_emchar (bp) - *(Bufbyte *) ascii_string; + int diff = charptr_emchar (bp) - *(Intbyte *) ascii_string; type_checking_assert (BYTE_ASCII_P (*ascii_string)); if (diff != 0) return diff; diff --text -u 'xemacs-21.5.3/src/bytecode.c' 'xemacs-21.5.4/src/bytecode.c' Index: ././src/bytecode.c --- ././src/bytecode.c Mon Aug 13 13:46:09 2001 +++ ././src/bytecode.c Thu Sep 20 15:28:49 2001 @@ -1480,7 +1480,7 @@ DOESNT_RETURN -invalid_byte_code (const CBufbyte *reason, Lisp_Object frob) +invalid_byte_code (const CIntbyte *reason, Lisp_Object frob) { signal_error (Qinvalid_byte_code, reason, frob); } @@ -1600,7 +1600,7 @@ int * const varbind_count) { Bytecount instructions_length = XSTRING_LENGTH (instructions); - Element_Count comfy_size = (Element_Count) (2 * instructions_length); + Elemcount comfy_size = (Elemcount) (2 * instructions_length); int * const icounts = alloca_array (int, comfy_size); int * icounts_ptr = icounts; @@ -1616,8 +1616,8 @@ Opbyte *program_ptr = program; - const Bufbyte *ptr = XSTRING_DATA (instructions); - const Bufbyte * const end = ptr + instructions_length; + const Intbyte *ptr = XSTRING_DATA (instructions); + const Intbyte * const end = ptr + instructions_length; *varbind_count = 0; @@ -1996,7 +1996,7 @@ f2->doc_and_interactive, depth + 1)); } -static Hash_Code +static Hashcode compiled_function_hash (Lisp_Object obj, int depth) { Lisp_Compiled_Function *f = XCOMPILED_FUNCTION (obj); @@ -2054,9 +2054,9 @@ /* Invert action performed by optimize_byte_code() */ Lisp_Opaque *opaque = XOPAQUE (f->instructions); - Bufbyte * const buffer = - alloca_array (Bufbyte, OPAQUE_SIZE (opaque) * MAX_EMCHAR_LEN); - Bufbyte *bp = buffer; + Intbyte * const buffer = + alloca_array (Intbyte, OPAQUE_SIZE (opaque) * MAX_EMCHAR_LEN); + Intbyte *bp = buffer; const Opbyte * const program = (const Opbyte *) OPAQUE_DATA (opaque); const Opbyte *program_ptr = program; diff --text -u 'xemacs-21.5.3/src/callint.c' 'xemacs-21.5.4/src/callint.c' Index: ././src/callint.c --- ././src/callint.c Thu May 24 16:51:02 2001 +++ ././src/callint.c Thu Sep 20 15:28:49 2001 @@ -248,7 +248,7 @@ return expr; } -static Bufpos +static Charbpos check_mark (void) { Lisp_Object tem; @@ -264,7 +264,7 @@ } static Lisp_Object -callint_prompt (const Bufbyte *prompt_start, Bytecount prompt_length, +callint_prompt (const Intbyte *prompt_start, Bytecount prompt_length, const Lisp_Object *args, int nargs) { Lisp_Object s = make_string (prompt_start, prompt_length); @@ -641,7 +641,7 @@ int prompt_length; prompt_length = ((prompt_limit) ? (prompt_limit - prompt_start) - : strlen (prompt_start)); + : (int) strlen (prompt_start)); if (prompt_limit && prompt_limit[1] == 0) { prompt_limit = 0; /* "sfoo:\n" -- strip tailing return */ @@ -651,7 +651,7 @@ prompts with "Set key C-x C-f to command: "instead of printing event objects in there. */ -#define PROMPT() callint_prompt ((const Bufbyte *) prompt_start, prompt_length, visargs, argnum) +#define PROMPT() callint_prompt ((const Intbyte *) prompt_start, prompt_length, visargs, argnum) switch (prompt_data[prompt_index]) { case 'a': /* Symbol defined as a function */ @@ -857,7 +857,7 @@ } case 'r': /* Region, point and mark as 2 args. */ { - Bufpos tem = check_mark (); + Charbpos tem = check_mark (); args[argnum] = (BUF_PT (current_buffer) < tem ? Fcopy_marker (current_buffer->point_marker, Qt) : current_buffer->mark); diff --text -u 'xemacs-21.5.3/src/callproc.c' 'xemacs-21.5.4/src/callproc.c' Index: ././src/callproc.c --- ././src/callproc.c Mon Aug 13 13:46:10 2001 +++ ././src/callproc.c Thu Sep 20 15:28:49 2001 @@ -478,7 +478,7 @@ nread = 0; while (nread < bufsize - 1024) { - Lstream_Data_Count this_read + Bytecount this_read = Lstream_read (XLSTREAM (instream), bufptr + nread, bufsize - nread); @@ -515,7 +515,7 @@ total_read += nread; if (!NILP (buffer)) - buffer_insert_raw_string (XBUFFER (buffer), (Bufbyte *) bufptr, + buffer_insert_raw_string (XBUFFER (buffer), (Intbyte *) bufptr, nread); /* Make the buffer bigger as we continue to read more data, @@ -795,9 +795,9 @@ } static int -getenv_internal (const Bufbyte *var, +getenv_internal (const Intbyte *var, Bytecount varlen, - Bufbyte **value, + Intbyte **value, Bytecount *valuelen) { Lisp_Object scan; @@ -833,7 +833,7 @@ */ (var, interactivep)) { - Bufbyte *value; + Intbyte *value; Bytecount valuelen; Lisp_Object v = Qnil; struct gcpro gcpro1; @@ -861,10 +861,10 @@ egetenv (const char *var) { /* This cannot GC -- 7-28-00 ben */ - Bufbyte *value; + Intbyte *value; Bytecount valuelen; - if (getenv_internal ((const Bufbyte *) var, strlen (var), &value, &valuelen)) + if (getenv_internal ((const Intbyte *) var, strlen (var), &value, &valuelen)) return (char *) value; else return 0; @@ -916,7 +916,7 @@ if (!egetenv ("SHELL")) { - CBufbyte *faux_var = alloca_array (CBufbyte, 7 + strlen (shell)); + CIntbyte *faux_var = alloca_array (CIntbyte, 7 + strlen (shell)); sprintf (faux_var, "SHELL=%s", shell); Vprocess_environment = Fcons (build_string (faux_var), Vprocess_environment); diff --text -u 'xemacs-21.5.3/src/casefiddle.c' 'xemacs-21.5.4/src/casefiddle.c' Index: ././src/casefiddle.c --- ././src/casefiddle.c Fri Apr 13 03:23:27 2001 +++ ././src/casefiddle.c Thu Sep 20 15:28:50 2001 @@ -49,10 +49,10 @@ if (STRINGP (string_or_char)) { Lisp_Char_Table *syntax_table = XCHAR_TABLE (buf->mirror_syntax_table); - Bufbyte *storage = - alloca_array (Bufbyte, XSTRING_LENGTH (string_or_char) * MAX_EMCHAR_LEN); - Bufbyte *newp = storage; - Bufbyte *oldp = XSTRING_DATA (string_or_char); + Intbyte *storage = + alloca_array (Intbyte, XSTRING_LENGTH (string_or_char) * MAX_EMCHAR_LEN); + Intbyte *newp = storage; + Intbyte *oldp = XSTRING_DATA (string_or_char); int wordp = 0, wordp_prev; while (*oldp) @@ -154,7 +154,7 @@ Lisp_Object end, struct buffer *buf) { /* This function can GC */ - Bufpos pos, s, e; + Charbpos pos, s, e; Lisp_Char_Table *syntax_table = XCHAR_TABLE (buf->mirror_syntax_table); int mccount; int wordp = 0, wordp_prev; @@ -273,7 +273,7 @@ static Lisp_Object casify_word (enum case_action flag, Lisp_Object arg, Lisp_Object buffer) { - Bufpos farend; + Charbpos farend; struct buffer *buf = decode_buffer (buffer, 1); CHECK_INT (arg); diff --text -u 'xemacs-21.5.3/src/chartab.c' 'xemacs-21.5.4/src/chartab.c' Index: ././src/chartab.c --- ././src/chartab.c Mon Aug 13 13:46:10 2001 +++ ././src/chartab.c Thu Sep 20 15:28:50 2001 @@ -121,7 +121,7 @@ return 1; } -static Hash_Code +static Hashcode char_table_entry_hash (Lisp_Object obj, int depth) { Lisp_Char_Table_Entry *cte = XCHAR_TABLE_ENTRY (obj); @@ -413,11 +413,11 @@ return 1; } -static Hash_Code +static Hashcode char_table_hash (Lisp_Object obj, int depth) { Lisp_Char_Table *ct = XCHAR_TABLE (obj); - Hash_Code hashval = internal_array_hash (ct->ascii, NUM_ASCII_CHARS, + Hashcode hashval = internal_array_hash (ct->ascii, NUM_ASCII_CHARS, depth); #ifdef MULE hashval = HASH2 (hashval, diff --text -u 'xemacs-21.5.3/src/cmds.c' 'xemacs-21.5.4/src/cmds.c' Index: ././src/cmds.c --- ././src/cmds.c Thu May 24 16:51:03 2001 +++ ././src/cmds.c Thu Sep 20 15:28:50 2001 @@ -75,7 +75,7 @@ hooks, etcetera), that's not a good approach. So we validate the proposed position, then set point. */ { - Bufpos new_point = BUF_PT (buf) + n; + Charbpos new_point = BUF_PT (buf) + n; if (new_point < BUF_BEGV (buf)) { @@ -136,8 +136,8 @@ (count, buffer)) { struct buffer *buf = decode_buffer (buffer, 1); - Bufpos pos2 = BUF_PT (buf); - Bufpos pos; + Charbpos pos2 = BUF_PT (buf); + Charbpos pos; EMACS_INT n, shortage, negp; if (NILP (count)) @@ -258,7 +258,7 @@ (count, killp)) { /* This function can GC */ - Bufpos pos; + Charbpos pos; struct buffer *buf = current_buffer; EMACS_INT n; diff --text -u 'xemacs-21.5.3/src/config.h.in' 'xemacs-21.5.4/src/config.h.in' Index: ././src/config.h.in --- ././src/config.h.in Mon Jun 11 13:44:52 2001 +++ ././src/config.h.in Sat Jan 5 16:33:23 2002 @@ -356,6 +356,9 @@ #undef NLIST_STRUCT +/* Do IPv6 hostname canonicalization before IPv4 in getaddrinfo()? */ +#undef IPV6_CANONICALIZE + /* Compile in support for SOCKS? */ #undef HAVE_SOCKS @@ -450,11 +453,11 @@ #endif /* Make sure valid buffer positions are passed to BUF_* macros. */ -#undef ERROR_CHECK_BUFPOS -#ifdef ERROR_CHECK_BUFPOS -#define bufpos_checking_assert(assertion) assert (assertion) +#undef ERROR_CHECK_CHARBPOS +#ifdef ERROR_CHECK_CHARBPOS +#define charbpos_checking_assert(assertion) assert (assertion) #else -#define bufpos_checking_assert(assertion) +#define charbpos_checking_assert(assertion) #endif /* Attempt to catch bugs related to garbage collection (e.g. not GCPRO'ing). */ diff --text -u 'xemacs-21.5.3/src/console-gtk.h' 'xemacs-21.5.4/src/console-gtk.h' Index: ././src/console-gtk.h --- ././src/console-gtk.h Fri Apr 13 03:23:29 2001 +++ ././src/console-gtk.h Mon Dec 24 05:28:20 2001 @@ -222,14 +222,10 @@ int start_pixpos, int width, face_index findex, int cursor, int cursor_start, int cursor_width, int cursor_height); -void gtk_output_gdk_pixmap (struct frame *f, struct Lisp_Image_Instance *p, - int x, int y, int clip_x, int clip_y, - int clip_width, int clip_height, int width, - int height, int pixmap_offset, - GdkColor *fg, GdkColor *bg, - GdkGC *override_gc); void gtk_output_shadows (struct frame *f, int x, int y, int width, int height, int shadow_thickness); +GdkGC *gtk_get_gc (struct device *d, Lisp_Object font, Lisp_Object fg, Lisp_Object bg, + Lisp_Object bg_pmap, Lisp_Object lwidth); int gtk_initialize_frame_menubar (struct frame *f); void gtk_init_modifier_mapping (struct device *d); diff --text -u 'xemacs-21.5.3/src/console-msw.c' 'xemacs-21.5.4/src/console-msw.c' Index: ././src/console-msw.c --- ././src/console-msw.c Thu May 31 21:45:35 2001 +++ ././src/console-msw.c Thu Sep 20 15:28:50 2001 @@ -218,7 +218,7 @@ int mswindows_message_outputted; int -mswindows_output_console_string (CONST Extbyte *str, Extcount len) +mswindows_output_console_string (CONST Extbyte *str, Bytecount len) { DWORD num_written; @@ -252,7 +252,7 @@ } else { - Bufbyte str[MAX_EMCHAR_LEN + 1]; + Intbyte str[MAX_EMCHAR_LEN + 1]; Bytecount len; CHECK_CHAR_COERCE_INT (char_or_string); @@ -309,8 +309,8 @@ return (CONSP (obj) && CONSP (XCDR (obj))) ? XCONS (XCDR (obj)) : 0; } -Bufbyte *DSTRING (Lisp_Object obj); -Bufbyte * +Intbyte *DSTRING (Lisp_Object obj); +Intbyte * DSTRING (Lisp_Object obj) { return STRINGP (obj) ? XSTRING_DATA (obj) : NULL; @@ -330,8 +330,8 @@ return SYMBOLP (obj) ? XSYMBOL (obj) : NULL; } -Bufbyte *DSYMNAME (Lisp_Object obj); -Bufbyte * +Intbyte *DSYMNAME (Lisp_Object obj); +Intbyte * DSYMNAME (Lisp_Object obj) { return SYMBOLP (obj) ? string_data (XSYMBOL (obj)->name) : NULL; @@ -561,7 +561,7 @@ { LPTSTR lpMsgBuf; Lisp_Object result; - Bufbyte *inres; + Intbyte *inres; Bytecount len; FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER @@ -578,7 +578,7 @@ TO_INTERNAL_FORMAT (C_STRING, lpMsgBuf, ALLOCA, (inres, len), Qmswindows_tstr); /* Messages tend to end with a period and newline */ - if (len >= 3 && !bufbyte_strcmp (inres + len - 3, ".\r\n")) + if (len >= 3 && !intbyte_strcmp (inres + len - 3, ".\r\n")) len -= 3; result = make_string (inres, len); diff --text -u 'xemacs-21.5.3/src/console-msw.h' 'xemacs-21.5.4/src/console-msw.h' Index: ././src/console-msw.h --- ././src/console-msw.h Mon Jun 18 16:10:11 2001 +++ ././src/console-msw.h Thu Sep 20 15:28:50 2001 @@ -351,12 +351,12 @@ HWND mswindows_get_console_hwnd (void); void mswindows_hide_console (void); void mswindows_show_console (void); -int mswindows_output_console_string (CONST Extbyte *str, Extcount len); +int mswindows_output_console_string (CONST Extbyte *str, Bytecount len); Lisp_Object mswindows_enumerate_fonts (HDC hdc); int mswindows_char_is_accelerator (struct frame *f, Emchar ch); -Bytecount mswindows_translate_menu_or_dialog_item (Bufbyte *item, Bytecount len, +Bytecount mswindows_translate_menu_or_dialog_item (Intbyte *item, Bytecount len, Bytecount maxlen, Emchar *accel, Lisp_Object error_name); diff --text -u 'xemacs-21.5.3/src/console-x.c' 'xemacs-21.5.4/src/console-x.c' Index: ././src/console-x.c --- ././src/console-x.c Mon Aug 13 13:46:10 2001 +++ ././src/console-x.c Thu Sep 20 15:28:50 2001 @@ -48,9 +48,9 @@ split_up_display_spec (Lisp_Object display, int *hostname_length, int *display_length, int *screen_length) { - Bufbyte *beg = XSTRING_DATA (display); - Bufbyte *end = beg + XSTRING_LENGTH (display); - Bufbyte *p = end; + Intbyte *beg = XSTRING_DATA (display); + Intbyte *end = beg + XSTRING_LENGTH (display); + Intbyte *p = end; while (p > beg) { @@ -198,8 +198,8 @@ else { /* connection =~ s/^unix:/localhost:/; */ - const Bufbyte *p = XSTRING_DATA (connection); - const Bufbyte *end = XSTRING_DATA (connection) + XSTRING_LENGTH (connection); + const Intbyte *p = XSTRING_DATA (connection); + const Intbyte *end = XSTRING_DATA (connection) + XSTRING_LENGTH (connection); int i; for (i = 0; i < (int) sizeof ("unix:") - 1; i++) diff --text -u 'xemacs-21.5.3/src/console.c' 'xemacs-21.5.4/src/console.c' Index: ././src/console.c --- ././src/console.c Sun Aug 5 06:22:50 2001 +++ ././src/console.c Thu Sep 20 15:28:50 2001 @@ -905,7 +905,7 @@ if (STRINGP (stuffstring)) { - Extcount count; + Bytecount count; Extbyte *p; TO_EXTERNAL_FORMAT (LISP_STRING, stuffstring, diff --text -u 'xemacs-21.5.3/src/console.h' 'xemacs-21.5.4/src/console.h' Index: ././src/console.h --- ././src/console.h Mon Aug 13 13:46:10 2001 +++ ././src/console.h Thu Sep 20 15:28:51 2001 @@ -161,8 +161,8 @@ int (*frame_visible_p_method) (struct frame *f); int (*frame_totally_visible_p_method) (struct frame *f); int (*frame_iconified_p_method) (struct frame *f); - void (*set_title_from_bufbyte_method) (struct frame *f, Bufbyte *title); - void (*set_icon_name_from_bufbyte_method) (struct frame *f, Bufbyte *title); + void (*set_title_from_intbyte_method) (struct frame *f, Intbyte *title); + void (*set_icon_name_from_intbyte_method) (struct frame *f, Intbyte *title); void (*set_frame_pointer_method) (struct frame *f); void (*set_frame_icon_method) (struct frame *f); void (*popup_menu_method) (Lisp_Object menu, Lisp_Object event); @@ -219,7 +219,7 @@ int (*color_instance_equal_method) (Lisp_Color_Instance *, Lisp_Color_Instance *, int depth); - Hash_Code (*color_instance_hash_method) (Lisp_Color_Instance *, + Hashcode (*color_instance_hash_method) (Lisp_Color_Instance *, int depth); Lisp_Object (*color_instance_rgb_components_method) (Lisp_Color_Instance *); int (*valid_color_name_p_method) (struct device *, Lisp_Object color); @@ -244,7 +244,7 @@ Lisp_Object charset); int (*font_spec_matches_charset_method) (struct device *d, Lisp_Object charset, - const Bufbyte *nonreloc, + const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length); @@ -264,7 +264,7 @@ int (*image_instance_equal_method) (Lisp_Image_Instance *, Lisp_Image_Instance *, int depth); - Hash_Code (*image_instance_hash_method) (Lisp_Image_Instance *, + Hashcode (*image_instance_hash_method) (Lisp_Image_Instance *, int depth); void (*init_image_instance_from_eimage_method) (Lisp_Image_Instance *ii, int width, int height, diff --text -u 'xemacs-21.5.3/src/data.c' 'xemacs-21.5.4/src/data.c' Index: ././src/data.c --- ././src/data.c Mon Aug 13 13:46:10 2001 +++ ././src/data.c Thu Sep 20 15:28:51 2001 @@ -1611,12 +1611,12 @@ internal_equal (w1->list, w2->list, depth + 1)); } -static Hash_Code +static Hashcode weak_list_hash (Lisp_Object obj, int depth) { struct weak_list *w = XWEAK_LIST (obj); - return HASH2 ((Hash_Code) w->type, + return HASH2 ((Hashcode) w->type, internal_hash (w->list, depth + 1)); } diff --text -u 'xemacs-21.5.3/src/database.c' 'xemacs-21.5.4/src/database.c' Index: ././src/database.c --- ././src/database.c Mon Jun 18 16:10:13 2001 +++ ././src/database.c Thu Sep 20 15:28:51 2001 @@ -406,7 +406,7 @@ if (!status) /* #### Not mule-ized! will crash! */ - return make_string ((Bufbyte *) valdatum.data, valdatum.size); + return make_string ((Intbyte *) valdatum.data, valdatum.size); #if DB_VERSION_MAJOR == 1 db->dberrno = (status == 1) ? -1 : errno; @@ -494,8 +494,8 @@ status = dbp->seq (dbp, &keydatum, &valdatum, R_NEXT)) { /* #### Needs mule-izing */ - key = make_string ((Bufbyte *) keydatum.data, keydatum.size); - val = make_string ((Bufbyte *) valdatum.data, valdatum.size); + key = make_string ((Intbyte *) keydatum.data, keydatum.size); + val = make_string ((Intbyte *) valdatum.data, valdatum.size); call2 (func, key, val); } #else @@ -512,8 +512,8 @@ status = dbcp->c_get (dbcp, &keydatum, &valdatum, DB_NEXT)) { /* #### Needs mule-izing */ - key = make_string ((Bufbyte *) keydatum.data, keydatum.size); - val = make_string ((Bufbyte *) valdatum.data, valdatum.size); + key = make_string ((Intbyte *) keydatum.data, keydatum.size); + val = make_string ((Intbyte *) valdatum.data, valdatum.size); call2 (func, key, val); } dbcp->c_close (dbcp); diff --text -u 'xemacs-21.5.3/src/device-msw.c' 'xemacs-21.5.4/src/device-msw.c' Index: ././src/device-msw.c --- ././src/device-msw.c Mon Aug 13 13:46:11 2001 +++ ././src/device-msw.c Thu Sep 20 15:28:51 2001 @@ -50,6 +50,7 @@ /* win32 DDE management library globals */ #ifdef HAVE_DRAGNDROP DWORD mswindows_dde_mlid; +int mswindows_dde_enable; HSZ mswindows_dde_service; HSZ mswindows_dde_topic_system; HSZ mswindows_dde_item_open; @@ -179,17 +180,18 @@ #endif } +#ifdef HAVE_DRAGNDROP static void -mswindows_finish_init_device (struct device *d, Lisp_Object props) +mswindows_init_dde () { /* Initialize DDE management library and our related globals. We execute a * dde Open("file") by simulating a drop, so this depends on dnd support. */ -#ifdef HAVE_DRAGNDROP # if !(defined(CYGWIN) || defined(MINGW)) CoInitialize (NULL); # endif mswindows_dde_mlid = 0; + mswindows_dde_enable = 0; DdeInitialize (&mswindows_dde_mlid, (PFNCALLBACK)mswindows_dde_callback, APPCMD_FILTERINITS|CBF_FAIL_SELFCONNECTIONS|CBF_FAIL_ADVISES| CBF_FAIL_POKES|CBF_FAIL_REQUESTS|CBF_SKIP_ALLNOTIFICATIONS, @@ -202,6 +204,27 @@ mswindows_dde_item_open = DdeCreateStringHandle (mswindows_dde_mlid, TEXT(MSWINDOWS_DDE_ITEM_OPEN), 0); DdeNameService (mswindows_dde_mlid, mswindows_dde_service, 0L, DNS_REGISTER); +} +#endif + +void +init_mswindows_very_early() +{ +#ifdef HAVE_DRAGNDROP + /* Initializing dde when the device is created is too late - the + client will give up waiting. Instead we initialize here and tell + the client we're too busy until the rest of initialization has + happened. */ + mswindows_init_dde(); +#endif +} + +static void +mswindows_finish_init_device (struct device *d, Lisp_Object props) +{ +#ifdef HAVE_DRAGNDROP + /* Tell pending clients we are ready. */ + mswindows_dde_enable = 1; #endif } @@ -404,7 +427,7 @@ msprinter_default_printer (void) { Extbyte name[666]; - Bufbyte *nameint; + Intbyte *nameint; if (GetProfileString (XETEXT ("windows"), XETEXT ("device"), NULL, name, sizeof (name) / XETCHAR_SIZE) <= 0) @@ -1089,7 +1112,7 @@ return stricmp (dm1->printer_name, dm2->printer_name) == 0; } -static Hash_Code +static Hashcode hash_devmode (Lisp_Object obj, int depth) { Lisp_Devmode *dm = XDEVMODE (obj); @@ -1201,7 +1224,7 @@ { int have_nt, ok; BYTE *data_buf, dummy_byte; - Memory_Count enum_entry_size; + Bytecount enum_entry_size; DWORD enum_flags, enum_level, bytes_needed, num_printers; struct gcpro gcpro1, gcpro2; Lisp_Object result = Qnil, def_printer = Qnil; diff --text -u 'xemacs-21.5.3/src/device-x.c' 'xemacs-21.5.4/src/device-x.c' Index: ././src/device-x.c --- ././src/device-x.c Mon Aug 13 13:46:11 2001 +++ ././src/device-x.c Thu Sep 20 15:28:51 2001 @@ -309,7 +309,7 @@ /* #### not just char * here; may be fixed in my Mule ws */ static void -validify_resource_component (char *str, Memory_Count len) +validify_resource_component (char *str, Bytecount len) { for (; len; len--, str++) if (!valid_resource_char_p[(unsigned char) (*str)]) @@ -1562,9 +1562,9 @@ if (!display) return Qnil; - return Fcons (make_string ((Bufbyte *) Dynarr_atp (name_char_dynarr, 0), + return Fcons (make_string ((Intbyte *) Dynarr_atp (name_char_dynarr, 0), Dynarr_length (name_char_dynarr)), - make_string ((Bufbyte *) Dynarr_atp (class_char_dynarr, 0), + make_string ((Intbyte *) Dynarr_atp (class_char_dynarr, 0), Dynarr_length (class_char_dynarr))); } diff --text -u 'xemacs-21.5.3/src/device.h' 'xemacs-21.5.4/src/device.h' Index: ././src/device.h --- ././src/device.h Mon Jun 18 16:10:13 2001 +++ ././src/device.h Thu Sep 20 15:28:52 2001 @@ -39,8 +39,8 @@ int low_x_coord, high_x_coord, col, obj_x; int low_y_coord, high_y_coord, row, obj_y; struct window *w; - Bufpos bufpos; - Bufpos closest; + Charbpos charbpos; + Charbpos closest; Charcount modeline_closest; Lisp_Object obj1, obj2; int retval; diff --text -u 'xemacs-21.5.3/src/dialog-msw.c' 'xemacs-21.5.4/src/dialog-msw.c' Index: ././src/dialog-msw.c --- ././src/dialog-msw.c Mon Aug 13 13:46:12 2001 +++ ././src/dialog-msw.c Thu Dec 20 14:49:45 2001 @@ -253,7 +253,7 @@ /* Helper function which converts the supplied string STRING into Unicode and pushes it at the end of DYNARR */ static void -push_bufbyte_string_as_unicode (unsigned_char_dynarr* dynarr, Bufbyte *string, +push_intbyte_string_as_unicode (unsigned_char_dynarr* dynarr, Intbyte *string, Bytecount len) { Extbyte *mbcs_string; @@ -285,6 +285,13 @@ return arg; } +/* Unwind protection decrements dialog count */ +static Lisp_Object +dialog_popped_down (Lisp_Object arg) +{ + popup_up_p--; +} + #define ALIGN_TEMPLATE \ { \ @@ -332,14 +339,133 @@ { FRERR_BUFFERLENGTHZERO, "FRERR_BUFFERLENGTHZERO" }, }; +struct param_data { + char* fname; + char* unknown_fname; + int validate; +}; + +static int +CALLBACK handle_directory_proc (HWND hwnd, UINT msg, + LPARAM lParam, LPARAM lpData) +{ + TCHAR szDir[MAX_PATH]; + struct param_data* pd = (struct param_data*)lpData; + + switch(msg) { + case BFFM_INITIALIZED: + // WParam is TRUE since you are passing a path. + // It would be FALSE if you were passing a pidl. + SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)pd->fname); + break; + + case BFFM_SELCHANGED: + // Set the status window to the currently selected path. + if (SHGetPathFromIDList((LPITEMIDLIST) lParam, szDir)) { + SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)szDir); + } + break; + + case BFFM_VALIDATEFAILED: + if (pd->validate) + return TRUE; + else + pd->unknown_fname = xstrdup((char*)lParam); + break; + + default: + break; + } + return 0; +} + +static Lisp_Object +handle_directory_dialog_box (struct frame *f, Lisp_Object keys) +{ + Lisp_Object ret = Qnil; + BROWSEINFO bi; + LPITEMIDLIST pidl; + LPMALLOC pMalloc; + struct param_data pd; + + xzero(pd); + xzero(bi); + + bi.lParam = (LPARAM)&pd; + bi.hwndOwner = FRAME_MSWINDOWS_HANDLE (f); + bi.pszDisplayName = 0; + bi.pidlRoot = 0; + bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT | BIF_EDITBOX; + bi.lpfn = handle_directory_proc; + + LOCAL_FILE_FORMAT_TO_TSTR (Fexpand_file_name (build_string (""), Qnil), + (char*)pd.fname); + + { + EXTERNAL_PROPERTY_LIST_LOOP_3 (key, value, keys) + { + if (EQ (key, Q_title)) + { + CHECK_STRING (value); + LISP_STRING_TO_EXTERNAL (value, bi.lpszTitle, Qmswindows_tstr); + } + else if (EQ (key, Q_initial_directory)) + LOCAL_FILE_FORMAT_TO_TSTR (Fexpand_file_name (value, Qnil), + pd.fname); + else if (EQ (key, Q_initial_filename)) + ; /* do nothing */ + else if (EQ (key, Q_file_must_exist)) + { + if (!NILP (value)) { + pd.validate = TRUE; + bi.ulFlags |= BIF_VALIDATE; + } + else + bi.ulFlags &= ~BIF_VALIDATE; + } + else + invalid_constant ("Unrecognized directory-dialog keyword", key); + } + } + + if (SHGetMalloc(&pMalloc) == NOERROR) + { + pidl = SHBrowseForFolder(&bi); + if (pidl) { + TCHAR* szDir = alloca (MAX_PATH); + + if (SHGetPathFromIDList(pidl, szDir)) { + ret = tstr_to_local_file_format (szDir); + } + + 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_error (Qdialog_box_error, + "Unable to create folder browser", + make_int (0)); + return ret; +} + static Lisp_Object handle_file_dialog_box (struct frame *f, Lisp_Object keys) { OPENFILENAME ofn; + char fnbuf[8000]; xzero (ofn); ofn.lStructSize = sizeof (ofn); + ofn.Flags = OFN_EXPLORER; ofn.hwndOwner = FRAME_MSWINDOWS_HANDLE (f); ofn.lpstrFile = fnbuf; ofn.nMaxFile = sizeof (fnbuf) / XETCHAR_SIZE; @@ -474,7 +600,7 @@ /* Determine the final width layout */ { - Bufbyte *p = XSTRING_DATA (question); + Intbyte *p = XSTRING_DATA (question); Charcount string_max = 0, this_length = 0; while (1) { @@ -504,7 +630,7 @@ /* Now calculate the height for the text control */ { - Bufbyte *p = XSTRING_DATA (question); + Intbyte *p = XSTRING_DATA (question); Charcount break_at = text_width / X_DLU_PER_CHAR; Charcount char_pos = 0; int num_lines = 1; @@ -612,7 +738,7 @@ { Lisp_Object ctext = pgui_item->name; Emchar accel_unused; - Bufbyte *trans = (Bufbyte *) alloca (2 * XSTRING_LENGTH (ctext) + 3); + Intbyte *trans = (Intbyte *) alloca (2 * XSTRING_LENGTH (ctext) + 3); Bytecount translen; memcpy (trans, XSTRING_DATA (ctext), XSTRING_LENGTH (ctext) + 1); @@ -622,7 +748,7 @@ 2 * XSTRING_LENGTH (ctext) + 3, &accel_unused, ctext); - push_bufbyte_string_as_unicode (template_, trans, translen); + push_intbyte_string_as_unicode (template_, trans, translen); } /* Specify 0 length creation data. */ @@ -674,14 +800,21 @@ 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 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_error (Qunimplemented, "Dialog box type", type); return Qnil; diff --text -u 'xemacs-21.5.3/src/dired.c' 'xemacs-21.5.4/src/dired.c' Index: ././src/dired.c --- ././src/dired.c Mon Aug 13 13:46:12 2001 +++ ././src/dired.c Thu Dec 20 14:49:45 2001 @@ -166,7 +166,7 @@ { Lisp_Object name = - make_string ((Bufbyte *)dp->d_name, len); + make_string ((Intbyte *)dp->d_name, len); if (!NILP (full)) name = concat2 (directory, name); @@ -356,13 +356,13 @@ Charcount cclen; int directoryp; int ignored_extension_p = 0; - Bufbyte *d_name; + Intbyte *d_name; dp = readdir (d); if (!dp) break; - /* Cast to Bufbyte* is OK, as readdir() Mule-encapsulates. */ - d_name = (Bufbyte *) dp->d_name; + /* Cast to Intbyte* is OK, as readdir() Mule-encapsulates. */ + d_name = (Intbyte *) dp->d_name; len = NAMLEN (dp); cclen = bytecount_to_charcount (d_name, len); @@ -450,8 +450,8 @@ else { Charcount compare = min (bestmatchsize, cclen); - Bufbyte *p1 = XSTRING_DATA (bestmatch); - Bufbyte *p2 = d_name; + Intbyte *p1 = XSTRING_DATA (bestmatch); + Intbyte *p2 = d_name; Charcount matchsize = scmp (p1, p2, compare); if (matchsize < 0) @@ -562,7 +562,7 @@ struct user_name { - Bufbyte *ptr; + Intbyte *ptr; Bytecount len; }; @@ -729,7 +729,7 @@ for (i = 0; i < user_cache.length; i++) { - Bufbyte *u_name = user_cache.user_names[i].ptr; + Intbyte *u_name = user_cache.user_names[i].ptr; Bytecount len = user_cache.user_names[i].len; /* scmp() works in chars, not bytes, so we have to compute this: */ Charcount cclen = bytecount_to_charcount (u_name, len); @@ -763,8 +763,8 @@ else { Charcount compare = min (bestmatchsize, cclen); - Bufbyte *p1 = XSTRING_DATA (bestmatch); - Bufbyte *p2 = u_name; + Intbyte *p1 = XSTRING_DATA (bestmatch); + Intbyte *p2 = u_name; Charcount matchsize = scmp_1 (p1, p2, compare, 0); if (matchsize < 0) @@ -801,8 +801,8 @@ { Bytecount len = NAMLEN (dp); if (DIRENTRY_NONEMPTY (dp)) - /* Cast to Bufbyte* is OK, as readdir() Mule-encapsulates. */ - Fputhash (make_string ((Bufbyte *) dp->d_name, len), Qt, hash); + /* Cast to Intbyte* is OK, as readdir() Mule-encapsulates. */ + Fputhash (make_string ((Intbyte *) dp->d_name, len), Qt, hash); } closedir (d); return hash; @@ -811,6 +811,9 @@ return Qnil; } +#if 0 +/* ... never used ... should use list2 directly anyway ... */ +/* NOTE: This function can never return a negative value. */ Lisp_Object wasteful_word_to_lisp (unsigned int item) { @@ -820,6 +823,7 @@ XCDR (cons) = Fcons (XCDR (cons), Qnil); return cons; } +#endif DEFUN ("file-attributes", Ffile_attributes, 1, 1, 0, /* Return a list of attributes of file FILENAME. @@ -906,16 +910,16 @@ values[1] = make_int (s.st_nlink); values[2] = make_int (s.st_uid); values[3] = make_int (s.st_gid); - values[4] = wasteful_word_to_lisp (s.st_atime); - values[5] = wasteful_word_to_lisp (s.st_mtime); - values[6] = wasteful_word_to_lisp (s.st_ctime); + values[4] = make_time (s.st_atime); + values[5] = make_time (s.st_mtime); + values[6] = make_time (s.st_ctime); values[7] = make_int ((EMACS_INT) s.st_size); /* If the size is out of range, give back -1. */ /* #### Fix when Emacs gets bignums! */ if (XINT (values[7]) != s.st_size) values[7] = make_int (-1); filemodestring (&s, modes); - values[8] = make_string ((Bufbyte *) modes, 10); + values[8] = make_string ((Intbyte *) modes, 10); #if defined (BSD4_2) || defined (BSD4_3) /* file gid will be dir gid */ { struct stat sdir; diff --text -u 'xemacs-21.5.3/src/doc.c' 'xemacs-21.5.4/src/doc.c' Index: ././src/doc.c --- ././src/doc.c Mon Aug 13 13:46:13 2001 +++ ././src/doc.c Thu Sep 20 15:28:52 2001 @@ -148,7 +148,7 @@ #define string_join(dest, s1, s2) \ memcpy ((void *) dest, (void *) XSTRING_DATA (s1), XSTRING_LENGTH (s1)); \ - memcpy ((void *) ((Bufbyte *) dest + XSTRING_LENGTH (s1)), \ + memcpy ((void *) ((Intbyte *) dest + XSTRING_LENGTH (s1)), \ (void *) XSTRING_DATA (s2), XSTRING_LENGTH (s2)); \ dest[XSTRING_LENGTH (s1) + XSTRING_LENGTH (s2)] = '\0' @@ -466,7 +466,7 @@ if (p != end) { end = strchr (p, '\n'); - sym = oblookup (Vobarray, (Bufbyte *) p + 2, end - p - 2); + sym = oblookup (Vobarray, (Intbyte *) p + 2, end - p - 2); if (SYMBOLP (sym)) { Lisp_Object offset = make_int (pos + end + 1 - buf); @@ -748,18 +748,18 @@ (string)) { /* This function can GC */ - Bufbyte *buf; + Intbyte *buf; int changed = 0; - REGISTER Bufbyte *strdata; - REGISTER Bufbyte *bufp; + REGISTER Intbyte *strdata; + REGISTER Intbyte *bufp; Bytecount strlength; Bytecount idx; Bytecount bsize; - Bufbyte *new; + Intbyte *new; Lisp_Object tem = Qnil; Lisp_Object keymap = Qnil; Lisp_Object name = Qnil; - Bufbyte *start; + Intbyte *start; Bytecount length; struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; @@ -794,14 +794,14 @@ strlength = XSTRING_LENGTH (string); bsize = 1 + strlength; - buf = (Bufbyte *) xmalloc (bsize); + buf = (Intbyte *) xmalloc (bsize); bufp = buf; /* Have to reset strdata every time GC might be called */ strdata = XSTRING_DATA (string); for (idx = 0; idx < strlength; ) { - Bufbyte *strp = strdata + idx; + Intbyte *strp = strdata + idx; if (strp[0] != '\\') { @@ -866,7 +866,7 @@ if (NILP (tem)) /* but not on any keys */ { - new = (Bufbyte *) xrealloc (buf, bsize += 4); + new = (Intbyte *) xrealloc (buf, bsize += 4); bufp += new - buf; buf = new; memcpy (bufp, "M-x ", 4); @@ -940,7 +940,7 @@ length = XSTRING_LENGTH (tem); subst: bsize += length; - new = (Bufbyte *) xrealloc (buf, bsize); + new = (Intbyte *) xrealloc (buf, bsize); bufp += new - buf; buf = new; memcpy (bufp, start, length); diff --text -u 'xemacs-21.5.3/src/doprnt.c' 'xemacs-21.5.4/src/doprnt.c' Index: ././src/doprnt.c --- ././src/doprnt.c Mon Aug 13 13:46:13 2001 +++ ././src/doprnt.c Thu Sep 20 15:28:52 2001 @@ -68,7 +68,7 @@ long l; unsigned long ul; double d; - Bufbyte *bp; + Intbyte *bp; }; /* We maintain a list of all the % specs in the specification, @@ -98,7 +98,7 @@ Note that MINLEN and MAXLEN are Charcounts but LEN is a Bytecount. */ static void -doprnt_1 (Lisp_Object stream, const Bufbyte *string, Bytecount len, +doprnt_1 (Lisp_Object stream, const Intbyte *string, Bytecount len, Charcount minlen, Charcount maxlen, int minus_flag, int zero_flag) { Lstream *lstr = XLSTREAM (stream); @@ -120,11 +120,11 @@ Lstream_putc (lstr, zero_flag ? '0' : ' '); } -static const Bufbyte * -parse_off_posnum (const Bufbyte *start, const Bufbyte *end, int *returned_num) +static const Intbyte * +parse_off_posnum (const Intbyte *start, const Intbyte *end, int *returned_num) { - Bufbyte arg_convert[100]; - REGISTER Bufbyte *arg_ptr = arg_convert; + Intbyte arg_convert[100]; + REGISTER Intbyte *arg_ptr = arg_convert; *returned_num = -1; while (start != end && isdigit (*start)) @@ -158,23 +158,23 @@ } while (0) static printf_spec_dynarr * -parse_doprnt_spec (const Bufbyte *format, Bytecount format_length) +parse_doprnt_spec (const Intbyte *format, Bytecount format_length) { - const Bufbyte *fmt = format; - const Bufbyte *fmt_end = format + format_length; + const Intbyte *fmt = format; + const Intbyte *fmt_end = format + format_length; printf_spec_dynarr *specs = Dynarr_new (printf_spec); int prev_argnum = 0; while (1) { struct printf_spec spec; - const Bufbyte *text_end; - Bufbyte ch; + const Intbyte *text_end; + Intbyte ch; xzero (spec); if (fmt == fmt_end) return specs; - text_end = (Bufbyte *) memchr (fmt, '%', fmt_end - fmt); + text_end = (Intbyte *) memchr (fmt, '%', fmt_end - fmt); if (!text_end) text_end = fmt_end; spec.text_before = fmt - format; @@ -196,7 +196,7 @@ /* Is there a field number specifier? */ { - const Bufbyte *ptr; + const Intbyte *ptr; int fieldspec; ptr = parse_off_posnum (fmt, fmt_end, &fieldspec); @@ -382,7 +382,7 @@ else if (strchr (double_converters, ch)) arg.d = va_arg (vargs, double); else if (strchr (string_converters, ch)) - arg.bp = va_arg (vargs, Bufbyte *); + arg.bp = va_arg (vargs, Intbyte *); else abort (); Dynarr_add (args, arg); @@ -401,7 +401,7 @@ to the arguments. */ static Bytecount -emacs_doprnt_1 (Lisp_Object stream, const Bufbyte *format_nonreloc, +emacs_doprnt_1 (Lisp_Object stream, const Intbyte *format_nonreloc, Lisp_Object format_reloc, Bytecount format_length, int nargs, /* #### Gag me, gag me, gag me */ @@ -455,7 +455,7 @@ if (ch == '%') { - doprnt_1 (stream, (Bufbyte *) &ch, 1, 0, -1, 0, 0); + doprnt_1 (stream, (Intbyte *) &ch, 1, 0, -1, 0, 0); continue; } @@ -497,7 +497,7 @@ else if (ch == 'S' || ch == 's') { - Bufbyte *string; + Intbyte *string; Bytecount string_len; if (!largs) @@ -511,7 +511,7 @@ empty string? -dkindred@cs.cmu.edu 8/1997 */ if (!string) - string = (Bufbyte *) "(null)"; + string = (Intbyte *) "(null)"; string_len = strlen ((char *) string); } else @@ -580,7 +580,7 @@ { Emchar a; Bytecount charlen; - Bufbyte charbuf[MAX_EMCHAR_LEN]; + Intbyte charbuf[MAX_EMCHAR_LEN]; a = (Emchar) arg.l; @@ -644,7 +644,7 @@ sprintf (text_to_print, constructed_spec, arg.l); } - doprnt_1 (stream, (Bufbyte *) text_to_print, + doprnt_1 (stream, (Intbyte *) text_to_print, strlen (text_to_print), 0, -1, 0, 0); } } @@ -660,7 +660,7 @@ /* You really don't want to know why this is necessary... */ static Bytecount -emacs_doprnt_2 (Lisp_Object stream, const Bufbyte *format_nonreloc, +emacs_doprnt_2 (Lisp_Object stream, const Intbyte *format_nonreloc, Lisp_Object format_reloc, Bytecount format_length, int nargs, const Lisp_Object *largs, ...) { @@ -695,7 +695,7 @@ parameter, because this function can cause GC. */ Bytecount -emacs_doprnt_c (Lisp_Object stream, const Bufbyte *format_nonreloc, +emacs_doprnt_c (Lisp_Object stream, const Intbyte *format_nonreloc, Lisp_Object format_reloc, Bytecount format_length, ...) { @@ -712,7 +712,7 @@ /* Like emacs_doprnt_c but the args come in va_list format. */ Bytecount -emacs_doprnt_va (Lisp_Object stream, const Bufbyte *format_nonreloc, +emacs_doprnt_va (Lisp_Object stream, const Intbyte *format_nonreloc, Lisp_Object format_reloc, Bytecount format_length, va_list vargs) { @@ -726,7 +726,7 @@ See `format' for a description of this behavior. */ Bytecount -emacs_doprnt_lisp (Lisp_Object stream, const Bufbyte *format_nonreloc, +emacs_doprnt_lisp (Lisp_Object stream, const Intbyte *format_nonreloc, Lisp_Object format_reloc, Bytecount format_length, int nargs, const Lisp_Object *largs) { @@ -737,7 +737,7 @@ /* Like the previous function but takes a variable number of arguments. */ Bytecount -emacs_doprnt_lisp_2 (Lisp_Object stream, const Bufbyte *format_nonreloc, +emacs_doprnt_lisp_2 (Lisp_Object stream, const Intbyte *format_nonreloc, Lisp_Object format_reloc, Bytecount format_length, int nargs, ...) { @@ -759,7 +759,7 @@ to a stream. */ Lisp_Object -emacs_doprnt_string_c (const Bufbyte *format_nonreloc, +emacs_doprnt_string_c (const Intbyte *format_nonreloc, Lisp_Object format_reloc, Bytecount format_length, ...) { @@ -782,7 +782,7 @@ } Lisp_Object -emacs_doprnt_string_va (const Bufbyte *format_nonreloc, +emacs_doprnt_string_va (const Intbyte *format_nonreloc, Lisp_Object format_reloc, Bytecount format_length, va_list vargs) { @@ -805,7 +805,7 @@ } Lisp_Object -emacs_doprnt_string_lisp (const Bufbyte *format_nonreloc, +emacs_doprnt_string_lisp (const Intbyte *format_nonreloc, Lisp_Object format_reloc, Bytecount format_length, int nargs, const Lisp_Object *largs) { @@ -825,7 +825,7 @@ } Lisp_Object -emacs_doprnt_string_lisp_2 (const Bufbyte *format_nonreloc, +emacs_doprnt_string_lisp_2 (const Intbyte *format_nonreloc, Lisp_Object format_reloc, Bytecount format_length, int nargs, ...) { diff --text -u 'xemacs-21.5.3/src/dumper.c' 'xemacs-21.5.4/src/dumper.c' Index: ././src/dumper.c --- ././src/dumper.c Mon Aug 13 13:46:13 2001 +++ ././src/dumper.c Thu Sep 20 15:28:52 2001 @@ -45,7 +45,7 @@ typedef struct { const void *varaddress; - Memory_Count size; + Bytecount size; } pdump_opaque; typedef struct @@ -84,7 +84,7 @@ /* Mark SIZE bytes at non-heap address VARADDRESS for dumping as is, without any bit-twiddling. */ void -dump_add_opaque (const void *varaddress, Memory_Count size) +dump_add_opaque (const void *varaddress, Bytecount size) { pdump_opaque info; info.varaddress = varaddress; @@ -129,7 +129,7 @@ inline static void -pdump_align_stream (FILE *stream, Memory_Count alignment) +pdump_align_stream (FILE *stream, Bytecount alignment) { long offset = ftell (stream); long adjustment = ALIGN_SIZE (offset, alignment) - offset; @@ -215,7 +215,7 @@ char *pdump_start; char *pdump_end; -static Memory_Count pdump_length; +static Bytecount pdump_length; #ifdef WIN32_NATIVE /* Handle for the dump file */ @@ -235,7 +235,7 @@ }; static inline int -pdump_size_to_align (Memory_Count size) +pdump_size_to_align (Bytecount size) { return pdump_align_table[size % countof (pdump_align_table)]; } @@ -244,7 +244,7 @@ { struct pdump_entry_list_elt *next; const void *obj; - Memory_Count size; + Bytecount size; int count; EMACS_INT save_offset; } pdump_entry_list_elt; @@ -276,7 +276,7 @@ static int *pdump_alert_undump_object; static unsigned long cur_offset; -static Memory_Count max_size; +static Bytecount max_size; static int pdump_fd; static void *pdump_buf; static FILE *pdump_out; @@ -313,7 +313,7 @@ } static void -pdump_add_entry (pdump_entry_list *list, const void *obj, Memory_Count size, +pdump_add_entry (pdump_entry_list *list, const void *obj, Bytecount size, int count) { pdump_entry_list_elt *e; @@ -423,14 +423,14 @@ irdata = ((char *)idata) + idesc[line].offset; switch (idesc[line].type) { - case XD_MEMORY_COUNT: - count = *(Memory_Count *)irdata; + case XD_BYTECOUNT: + count = *(Bytecount *)irdata; break; - case XD_ELEMENT_COUNT: - count = *(Element_Count *)irdata; + case XD_ELEMCOUNT: + count = *(Elemcount *)irdata; break; - case XD_HASH_CODE: - count = *(Hash_Code *)irdata; + case XD_HASHCODE: + count = *(Hashcode *)irdata; break; case XD_INT: count = *(int *)irdata; @@ -438,9 +438,6 @@ case XD_LONG: count = *(long *)irdata; break; - case XD_BYTECOUNT: - count = *(Bytecount *)irdata; - break; default: stderr_out ("Unsupported count type : %d (line = %d, code=%ld)\n", idesc[line].type, line, (long)code); @@ -471,12 +468,11 @@ pos = 0; desc = ((const Lisp_Specifier *)data)->methods->extra_description; goto restart; - case XD_MEMORY_COUNT: - case XD_ELEMENT_COUNT: - case XD_HASH_CODE: + case XD_BYTECOUNT: + case XD_ELEMCOUNT: + case XD_HASHCODE: case XD_INT: case XD_LONG: - case XD_BYTECOUNT: case XD_INT_RESET: case XD_LO_LINK: break; @@ -634,7 +630,7 @@ pdump_dump_data (pdump_entry_list_elt *elt, const struct lrecord_description *desc) { - Memory_Count size = elt->size; + Bytecount size = elt->size; int count = elt->count; if (desc) { @@ -653,12 +649,11 @@ case XD_SPECIFIER_END: desc = ((const Lisp_Specifier *)(elt->obj))->methods->extra_description; goto restart; - case XD_MEMORY_COUNT: - case XD_ELEMENT_COUNT: - case XD_HASH_CODE: + case XD_BYTECOUNT: + case XD_ELEMCOUNT: + case XD_HASHCODE: case XD_INT: case XD_LONG: - case XD_BYTECOUNT: break; case XD_INT_RESET: { @@ -751,12 +746,11 @@ pos = 0; desc = ((const Lisp_Specifier *)data)->methods->extra_description; goto restart; - case XD_MEMORY_COUNT: - case XD_ELEMENT_COUNT: - case XD_HASH_CODE: + case XD_BYTECOUNT: + case XD_ELEMCOUNT: + case XD_HASHCODE: case XD_INT: case XD_LONG: - case XD_BYTECOUNT: case XD_INT_RESET: break; case XD_OPAQUE_DATA_PTR: @@ -816,7 +810,7 @@ pdump_allocate_offset (pdump_entry_list_elt *elt, const struct lrecord_description *desc) { - Memory_Count size = elt->count * elt->size; + Bytecount size = elt->count * elt->size; elt->save_offset = cur_offset; if (size>max_size) max_size = size; @@ -857,7 +851,7 @@ pdump_dump_root_struct_ptrs (void) { int i; - Element_Count count = Dynarr_length (pdump_root_struct_ptrs); + Elemcount count = Dynarr_length (pdump_root_struct_ptrs); pdump_static_pointer *data = alloca_array (pdump_static_pointer, count); for (i = 0; i < count; i++) { @@ -933,11 +927,11 @@ static void pdump_dump_root_objects (void) { - Element_Count count = (Dynarr_length (pdump_root_objects) + + Elemcount count = (Dynarr_length (pdump_root_objects) + Dynarr_length (pdump_weak_object_chains)); - Element_Count i; + Elemcount i; - PDUMP_WRITE_ALIGNED (Element_Count, count); + PDUMP_WRITE_ALIGNED (Elemcount, count); PDUMP_ALIGN_OUTPUT (pdump_static_Lisp_Object); for (i = 0; i < Dynarr_length (pdump_root_objects); i++) @@ -1155,7 +1149,7 @@ } /* Put the pdump_root_objects variables in place */ - i = PDUMP_READ_ALIGNED (p, Element_Count); + i = PDUMP_READ_ALIGNED (p, Elemcount); p = (char *) ALIGN_PTR (p, ALIGNOF (pdump_static_Lisp_Object)); while (i--) { @@ -1271,7 +1265,7 @@ pdump_free = pdump_resource_free; pdump_length = SizeofResource (NULL, hRes); - if (pdump_length <= (Memory_Count) sizeof (pdump_header)) + if (pdump_length <= (Bytecount) sizeof (pdump_header)) { pdump_start = 0; return 0; @@ -1304,7 +1298,7 @@ return 0; pdump_length = lseek (fd, 0, SEEK_END); - if (pdump_length < (Memory_Count) sizeof (pdump_header)) + if (pdump_length < (Bytecount) sizeof (pdump_header)) { close (fd); return 0; diff --text -u 'xemacs-21.5.3/src/dynarr.c' 'xemacs-21.5.4/src/dynarr.c' Index: ././src/dynarr.c --- ././src/dynarr.c Mon Aug 13 13:46:14 2001 +++ ././src/dynarr.c Thu Sep 20 15:28:52 2001 @@ -214,10 +214,10 @@ what was requested of it is returned in MALLOC_OVERHEAD in STATS. See the comment above the definition of this structure. */ -Memory_Count +Bytecount Dynarr_memory_usage (void *d, struct overhead_stats *stats) { - Memory_Count total = 0; + Bytecount total = 0; Dynarr *dy = (Dynarr *) d; /* We have to be a bit tricky here because not all of the @@ -226,7 +226,7 @@ if (dy->base) { - Memory_Count malloc_used = malloced_storage_size (dy->base, + Bytecount malloc_used = malloced_storage_size (dy->base, dy->elsize * dy->max, 0); /* #### This may or may not be correct. Some Dynarrs would prefer that we use dy->cur instead of dy->largest here. */ diff --text -u 'xemacs-21.5.3/src/editfns.c' 'xemacs-21.5.4/src/editfns.c' Index: ././src/editfns.c --- ././src/editfns.c Mon Aug 13 13:46:14 2001 +++ ././src/editfns.c Thu Dec 20 14:49:45 2001 @@ -105,7 +105,7 @@ (character)) { Bytecount len; - Bufbyte str[MAX_EMCHAR_LEN]; + Intbyte str[MAX_EMCHAR_LEN]; if (EVENTP (character)) { @@ -142,7 +142,7 @@ static Lisp_Object -buildmark (Bufpos val, Lisp_Object buffer) +buildmark (Charbpos val, Lisp_Object buffer) { Lisp_Object mark = Fmake_marker (); Fset_marker (mark, make_int (val), buffer); @@ -180,16 +180,16 @@ /* The following two functions end up being identical but it's cleaner to declare them separately. */ -Bufpos -bufpos_clip_to_bounds (Bufpos lower, Bufpos num, Bufpos upper) +Charbpos +charbpos_clip_to_bounds (Charbpos lower, Charbpos num, Charbpos upper) { return (num < lower ? lower : num > upper ? upper : num); } -Bytind -bytind_clip_to_bounds (Bytind lower, Bytind num, Bytind upper) +Bytebpos +bytebpos_clip_to_bounds (Bytebpos lower, Bytebpos num, Bytebpos upper) { return (num < lower ? lower : num > upper ? upper : @@ -216,7 +216,7 @@ (position, buffer)) { struct buffer *b = decode_buffer (buffer, 1); - Bufpos n = get_buffer_pos_char (b, position, GB_COERCE_RANGE); + Charbpos n = get_buffer_pos_char (b, position, GB_COERCE_RANGE); BUF_SET_PT (b, n); atomic_extent_goto_char_p = 1; return make_int (n); @@ -332,7 +332,7 @@ /* #### Huh? --hniksic */ /*if (preparing_for_armageddon) return Qnil;*/ -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS assert (XINT (Fpoint (Qnil)) == XINT (Fmarker_position (Fpoint_marker (Qt, Qnil)))); #endif @@ -534,7 +534,7 @@ } int -beginning_of_line_p (struct buffer *b, Bufpos pt) +beginning_of_line_p (struct buffer *b, Charbpos pt) { return pt <= BUF_BEGV (b) || BUF_FETCH_CHAR (b, pt - 1) == '\n'; } @@ -572,7 +572,7 @@ (pos, buffer)) { struct buffer *b = decode_buffer (buffer, 1); - Bufpos n = (NILP (pos) ? BUF_PT (b) : + Charbpos n = (NILP (pos) ? BUF_PT (b) : get_buffer_pos_char (b, pos, GB_NO_ERROR_IF_BAD)); if (n < 0 || n == BUF_ZV (b)) @@ -590,7 +590,7 @@ (pos, buffer)) { struct buffer *b = decode_buffer (buffer, 1); - Bufpos n = (NILP (pos) ? BUF_PT (b) : + Charbpos n = (NILP (pos) ? BUF_PT (b) : get_buffer_pos_char (b, pos, GB_NO_ERROR_IF_BAD)); n--; @@ -636,7 +636,8 @@ { mkdir(path, 0700); /* ignore retval -- checked next anyway. */ } - if (lstat(path, &st) == 0 && st.st_uid == myuid && S_ISDIR(st.st_mode)) + if (lstat(path, &st) == 0 && st.st_uid == (uid_t) myuid && + S_ISDIR(st.st_mode)) { tmpdir = path; } @@ -824,7 +825,7 @@ #endif tem = ((!NILP (user) && !pw) ? Qnil - : make_ext_string ((Extbyte *) p, (q ? q - p : strlen (p)), + : make_ext_string ((Extbyte *) p, (q ? q - p : (int) strlen (p)), Qnative)); #ifdef AMPERSAND_FULL_NAME @@ -1105,7 +1106,7 @@ (format_string, time_)) { time_t value; - Memory_Count size; + Bytecount size; CHECK_STRING (format_string); @@ -1175,6 +1176,15 @@ 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) +{ + return list2 (make_int (time < 0 ? time / 0x10000 : time >> 16), + make_int (time & 0xFFFF)); +} + DEFUN ("encode-time", Fencode_time, 6, MANY, 0, /* Convert SECOND, MINUTE, HOUR, DAY, MONTH, YEAR and ZONE to internal time. This is the reverse operation of `decode-time', which see. @@ -1248,7 +1258,7 @@ if (the_time == (time_t) -1) invalid_argument ("Specified time is not representable", Qunbound); - return wasteful_word_to_lisp (the_time); + return make_time (the_time); } DEFUN ("current-time-string", Fcurrent_time_string, 0, 1, 0, /* @@ -1269,7 +1279,7 @@ time_t value; char *the_ctime; EMACS_INT len; /* this is what make_ext_string() accepts; #### - should it be an Extcount? */ + should it be an Bytecount? */ if (! lisp_to_time (specified_time, &value)) value = -1; @@ -1590,12 +1600,12 @@ (character, count, ignored, buffer)) { /* This function can GC */ - REGISTER Bufbyte *string; + REGISTER Intbyte *string; REGISTER int slen; REGISTER int i, j; REGISTER Bytecount n; REGISTER Bytecount charlen; - Bufbyte str[MAX_EMCHAR_LEN]; + Intbyte str[MAX_EMCHAR_LEN]; struct buffer *b = decode_buffer (buffer, 1); int cou; @@ -1613,7 +1623,7 @@ if (n <= 0) return Qnil; slen = min (n, 768); - string = alloca_array (Bufbyte, slen); + string = alloca_array (Intbyte, slen); /* Write as many copies of the character into the temp string as will fit. */ for (i = 0; i + charlen <= slen; i += charlen) for (j = 0; j < charlen; j++) @@ -1654,7 +1664,7 @@ (start, end, buffer)) { /* This function can GC */ - Bufpos begv, zv; + Charbpos begv, zv; struct buffer *b = decode_buffer (buffer, 1); get_buffer_range_char (b, start, end, &begv, &zv, GB_ALLOW_NIL); @@ -1671,7 +1681,7 @@ (start, end, buffer)) { /* This function can GC */ - Bufpos begv, zv; + Charbpos begv, zv; struct buffer *b = decode_buffer (buffer, 1); get_buffer_range_char (b, start, end, &begv, &zv, GB_ALLOW_NIL); @@ -1687,7 +1697,7 @@ (buffer, start, end)) { /* This function can GC */ - Bufpos b, e; + Charbpos b, e; struct buffer *bp; bp = XBUFFER (get_buffer (buffer, 1)); @@ -1711,7 +1721,7 @@ */ (buffer1, start1, end1, buffer2, start2, end2)) { - Bufpos begp1, endp1, begp2, endp2; + Charbpos begp1, endp1, begp2, endp2; REGISTER Charcount len1, len2, length, i; struct buffer *bp1, *bp2; Lisp_Object trt = ((!NILP (current_buffer->case_fold_search)) ? @@ -1782,7 +1792,7 @@ (start, end, fromchar, tochar, noundo)) { /* This function can GC */ - Bufpos pos, stop; + Charbpos pos, stop; Emchar fromc, toc; int mc_count; struct buffer *buf = current_buffer; @@ -1860,7 +1870,7 @@ (start, end, table)) { /* This function can GC */ - Bufpos pos, stop; /* Limits of the region. */ + Charbpos pos, stop; /* Limits of the region. */ int cnt = 0; /* Number of changes made. */ int mc_count; struct buffer *buf = current_buffer; @@ -1878,7 +1888,7 @@ if (size * (stop - pos) > 65536) { Emchar *etable = alloca_array (Emchar, size); - convert_bufbyte_string_into_emchar_string + convert_intbyte_string_into_emchar_string (string_data (stable), string_length (stable), etable); for (; pos < stop && (oc = BUF_FETCH_CHAR (buf, pos), 1); pos++) { @@ -1996,7 +2006,7 @@ (start, end, buffer)) { /* This function can GC */ - Bufpos bp_start, bp_end; + Charbpos bp_start, bp_end; struct buffer *buf = decode_buffer (buffer, 1); get_buffer_range_char (buf, start, end, &bp_start, &bp_end, 0); @@ -2053,14 +2063,14 @@ */ (start, end, buffer)) { - Bufpos bp_start, bp_end; + Charbpos bp_start, bp_end; struct buffer *buf = decode_buffer (buffer, 1); - Bytind bi_start, bi_end; + Bytebpos bi_start, bi_end; get_buffer_range_char (buf, start, end, &bp_start, &bp_end, GB_ALLOW_PAST_ACCESSIBLE); - bi_start = bufpos_to_bytind (buf, bp_start); - bi_end = bufpos_to_bytind (buf, bp_end); + bi_start = charbpos_to_bytebpos (buf, bp_start); + bi_end = charbpos_to_bytebpos (buf, bp_end); SET_BOTH_BUF_BEGV (buf, bp_start, bi_start); SET_BOTH_BUF_ZV (buf, bp_end, bi_end); @@ -2118,14 +2128,14 @@ } { - Bufpos start, end; - Bytind bi_start, bi_end; + Charbpos start, end; + Bytebpos bi_start, bi_end; start = BUF_BEG (buf) + newhead; end = BUF_Z (buf) - newtail; - bi_start = bufpos_to_bytind (buf, start); - bi_end = bufpos_to_bytind (buf, end); + bi_start = charbpos_to_bytebpos (buf, start); + bi_end = charbpos_to_bytebpos (buf, end); if (BUF_BEGV (buf) != start) { @@ -2144,7 +2154,7 @@ /* If point is outside the new visible range, move it inside. */ BUF_SET_PT (buf, - bufpos_clip_to_bounds (BUF_BEGV (buf), + charbpos_clip_to_bounds (BUF_BEGV (buf), BUF_PT (buf), BUF_ZV (buf))); @@ -2306,7 +2316,7 @@ It's the caller's job to see that (start1 <= end1 <= start2 <= end2). */ void -transpose_markers (Bufpos start1, Bufpos end1, Bufpos start2, Bufpos end2) +transpose_markers (Charbpos start1, Charbpos end1, Charbpos start2, Charbpos end2) { Charcount amt1, amt2, diff; Lisp_Object marker; @@ -2342,7 +2352,7 @@ for (marker = BUF_MARKERS (buf); !NILP (marker); marker = XMARKER (marker)->chain) { - Bufpos mpos = marker_position (marker); + Charbpos mpos = marker_position (marker); if (mpos >= start1 && mpos < end2) { if (mpos < end1) @@ -2371,7 +2381,7 @@ */ (start1, end1, start2, end2, leave_markers)) { - Bufpos startr1, endr1, startr2, endr2; + Charbpos startr1, endr1, startr2, endr2; Charcount len1, len2; Lisp_Object string1, string2; struct buffer *buf = current_buffer; diff --text -u 'xemacs-21.5.3/src/eldap.c' 'xemacs-21.5.4/src/eldap.c' Index: ././src/eldap.c --- ././src/eldap.c Mon Aug 13 13:46:15 2001 +++ ././src/eldap.c Thu Sep 20 15:28:53 2001 @@ -330,7 +330,7 @@ err = ldap_bind_s (ld, ldap_binddn, ldap_passwd, ldap_auth); if (err != LDAP_SUCCESS) { - Bufbyte *interrmess; + Intbyte *interrmess; EXTERNAL_TO_C_STRING (ldap_err2string (err), interrmess, Qnative); signal_error (Qprocess_error, "Failed binding to the server", build_string (interrmess)); @@ -601,7 +601,7 @@ struct berval *bervals; int rc; int i, j; - Element_Count len; + Elemcount len; Lisp_Object current = Qnil; Lisp_Object values = Qnil; @@ -622,7 +622,7 @@ invalid_operation ("Cannot add void entry", entry); /* Build the ldap_mods array */ - len = (Element_Count) XINT (Flength (entry)); + len = (Elemcount) XINT (Flength (entry)); ldap_mods = alloca_array (LDAPMod, len); ldap_mods_ptrs = alloca_array (LDAPMod *, 1 + len); i = 0; @@ -637,7 +637,7 @@ values = XCDR (current); if (CONSP (values)) { - len = (Element_Count) XINT (Flength (values)); + len = (Elemcount) XINT (Flength (values)); bervals = alloca_array (struct berval, len); ldap_mods[i].mod_vals.modv_bvals = alloca_array (struct berval *, 1 + len); @@ -695,7 +695,7 @@ struct berval *bervals; int i, j, rc; Lisp_Object mod_op; - Element_Count len; + Elemcount len; Lisp_Object current = Qnil; Lisp_Object values = Qnil; @@ -714,7 +714,7 @@ return Qnil; /* Build the ldap_mods array */ - len = (Element_Count) XINT (Flength (mods)); + len = (Elemcount) XINT (Flength (mods)); ldap_mods = alloca_array (LDAPMod, len); ldap_mods_ptrs = alloca_array (LDAPMod *, 1 + len); i = 0; @@ -740,7 +740,7 @@ CHECK_STRING (XCAR (current)); LISP_STRING_TO_EXTERNAL (XCAR (current), ldap_mods[i].mod_type, Qnative); values = XCDR (current); - len = (Element_Count) XINT (Flength (values)); + len = (Elemcount) XINT (Flength (values)); bervals = alloca_array (struct berval, len); ldap_mods[i].mod_vals.modv_bvals = alloca_array (struct berval *, 1 + len); diff --text -u 'xemacs-21.5.3/src/elhash.c' 'xemacs-21.5.4/src/elhash.c' Index: ././src/elhash.c --- ././src/elhash.c Mon Aug 13 13:46:15 2001 +++ ././src/elhash.c Thu Sep 20 15:28:53 2001 @@ -82,12 +82,12 @@ struct Lisp_Hash_Table { struct lcrecord_header header; - Element_Count size; - Element_Count count; - Element_Count rehash_count; + Elemcount size; + Elemcount count; + Elemcount rehash_count; double rehash_size; double rehash_threshold; - Element_Count golden_ratio; + Elemcount golden_ratio; hash_table_hash_function_t hash_function; hash_table_test_function_t test_function; hentry *hentries; @@ -105,7 +105,7 @@ #define HASH_TABLE_DEFAULT_REHASH_SIZE 1.3 #define HASH_TABLE_MIN_SIZE 10 -#define HASH_CODE(key, ht) \ +#define HASHCODE(key, ht) \ ((((ht)->hash_function ? (ht)->hash_function (key) : LISP_HASH (key)) \ * (ht)->golden_ratio) \ % (ht)->size) @@ -143,13 +143,13 @@ #endif /* Return a suitable size for a hash table, with at least SIZE slots. */ -static Element_Count -hash_table_size (Element_Count requested_size) +static Elemcount +hash_table_size (Elemcount requested_size) { /* Return some prime near, but greater than or equal to, SIZE. Decades from the time of writing, someone will have a system large enough that the list below will be too short... */ - static const Element_Count primes [] = + static const Elemcount primes [] = { 19, 29, 41, 59, 79, 107, 149, 197, 263, 347, 457, 599, 787, 1031, 1361, 1777, 2333, 3037, 3967, 5167, 6719, 8737, 11369, 14783, @@ -188,7 +188,7 @@ return !strcmp ((char *) XSTRING_DATA (str1), (char *) XSTRING_DATA (str2)); } -static Hash_Code +static Hashcode lisp_string_hash (Lisp_Object obj) { return hash_string (XSTRING_DATA (str), XSTRING_LENGTH (str)); @@ -202,7 +202,7 @@ return EQ (obj1, obj2) || (FLOATP (obj1) && internal_equal (obj1, obj2, 0)); } -static Hash_Code +static Hashcode lisp_object_eql_hash (Lisp_Object obj) { return FLOATP (obj) ? internal_hash (obj, 0) : LISP_HASH (obj); @@ -214,7 +214,7 @@ return internal_equal (obj1, obj2, 0); } -static Hash_Code +static Hashcode lisp_object_equal_hash (Lisp_Object obj) { return internal_hash (obj, 0); @@ -283,7 +283,7 @@ /* This is not a great hash function, but it _is_ correct and fast. Examining all entries is too expensive, and examining a random subset does not yield a correct hash function. */ -static Hash_Code +static Hashcode hash_table_hash (Lisp_Object hash_table, int depth) { return XHASH_TABLE (hash_table)->count; @@ -434,7 +434,7 @@ }; const struct lrecord_description hash_table_description[] = { - { XD_ELEMENT_COUNT, offsetof (Lisp_Hash_Table, size) }, + { XD_ELEMCOUNT, offsetof (Lisp_Hash_Table, size) }, { XD_STRUCT_PTR, offsetof (Lisp_Hash_Table, hentries), XD_INDIRECT(0, 1), &hentry_description }, { XD_LO_LINK, offsetof (Lisp_Hash_Table, next_weak) }, { XD_END } @@ -465,15 +465,15 @@ static void compute_hash_table_derived_values (Lisp_Hash_Table *ht) { - ht->rehash_count = (Element_Count) + ht->rehash_count = (Elemcount) ((double) ht->size * ht->rehash_threshold); - ht->golden_ratio = (Element_Count) + ht->golden_ratio = (Elemcount) ((double) ht->size * (.6180339887 / (double) sizeof (Lisp_Object))); } Lisp_Object make_standard_lisp_hash_table (enum hash_table_test test, - Element_Count size, + Elemcount size, double rehash_size, double rehash_threshold, enum hash_table_weakness weakness) @@ -510,7 +510,7 @@ Lisp_Object make_general_lisp_hash_table (hash_table_hash_function_t hash_function, hash_table_test_function_t test_function, - Element_Count size, + Elemcount size, double rehash_size, double rehash_threshold, enum hash_table_weakness weakness) @@ -531,7 +531,7 @@ if (size < HASH_TABLE_MIN_SIZE) size = HASH_TABLE_MIN_SIZE; - ht->size = hash_table_size ((Element_Count) (((double) size / ht->rehash_threshold) + ht->size = hash_table_size ((Elemcount) (((double) size / ht->rehash_threshold) + 1.0)); ht->count = 0; @@ -551,7 +551,7 @@ } Lisp_Object -make_lisp_hash_table (Element_Count size, +make_lisp_hash_table (Elemcount size, enum hash_table_weakness weakness, enum hash_table_test test) { @@ -581,7 +581,7 @@ return 0; } -static Element_Count +static Elemcount decode_hash_table_size (Lisp_Object obj) { return NILP (obj) ? HASH_TABLE_DEFAULT_SIZE : XINT (obj); @@ -956,10 +956,10 @@ } static void -resize_hash_table (Lisp_Hash_Table *ht, Element_Count new_size) +resize_hash_table (Lisp_Hash_Table *ht, Elemcount new_size) { hentry *old_entries, *new_entries, *sentinel, *e; - Element_Count old_size; + Elemcount old_size; old_size = ht->size; ht->size = new_size; @@ -974,7 +974,7 @@ for (e = old_entries, sentinel = e + old_size; e < sentinel; e++) if (!HENTRY_CLEAR_P (e)) { - hentry *probe = new_entries + HASH_CODE (e->key, ht); + hentry *probe = new_entries + HASHCODE (e->key, ht); LINEAR_PROBING_LOOP (probe, new_entries, new_size) ; *probe = *e; @@ -985,7 +985,7 @@ /* After a hash table has been saved to disk and later restored by the portable dumper, it contains the same objects, but their addresses - and thus their HASH_CODEs have changed. */ + and thus their HASHCODEs have changed. */ void pdump_reorganize_hash_table (Lisp_Object hash_table) { @@ -996,7 +996,7 @@ for (e = ht->hentries, sentinel = e + ht->size; e < sentinel; e++) if (!HENTRY_CLEAR_P (e)) { - hentry *probe = new_entries + HASH_CODE (e->key, ht); + hentry *probe = new_entries + HASHCODE (e->key, ht); LINEAR_PROBING_LOOP (probe, new_entries, ht->size) ; *probe = *e; @@ -1010,8 +1010,8 @@ static void enlarge_hash_table (Lisp_Hash_Table *ht) { - Element_Count new_size = - hash_table_size ((Element_Count) ((double) ht->size * ht->rehash_size)); + Elemcount new_size = + hash_table_size ((Elemcount) ((double) ht->size * ht->rehash_size)); resize_hash_table (ht, new_size); } @@ -1020,7 +1020,7 @@ { hash_table_test_function_t test_function = ht->test_function; hentry *entries = ht->hentries; - hentry *probe = entries + HASH_CODE (key, ht); + hentry *probe = entries + HASHCODE (key, ht); LINEAR_PROBING_LOOP (probe, entries, ht->size) if (KEYS_EQUAL_P (probe->key, key, test_function)) @@ -1067,7 +1067,7 @@ static void remhash_1 (Lisp_Hash_Table *ht, hentry *entries, hentry *probe) { - Element_Count size = ht->size; + Elemcount size = ht->size; CLEAR_HENTRY (probe); probe++; ht->count--; @@ -1075,7 +1075,7 @@ LINEAR_PROBING_LOOP (probe, entries, size) { Lisp_Object key = probe->key; - hentry *probe2 = entries + HASH_CODE (key, ht); + hentry *probe2 = entries + HASHCODE (key, ht); LINEAR_PROBING_LOOP (probe2, entries, size) if (EQ (probe2->key, key)) /* hentry at probe doesn't need to move. */ @@ -1550,11 +1550,11 @@ /* Return a hash value for an array of Lisp_Objects of size SIZE. */ -Hash_Code +Hashcode internal_array_hash (Lisp_Object *arr, int size, int depth) { int i; - Hash_Code hash = 0; + Hashcode hash = 0; depth++; if (size <= 5) @@ -1585,7 +1585,7 @@ we could still take 5^5 time (a big big number) to compute a hash, but practically this won't ever happen. */ -Hash_Code +Hashcode internal_hash (Lisp_Object obj, int depth) { if (depth > 5) @@ -1629,7 +1629,7 @@ (object)) { /* This function is pretty 32bit-centric. */ - Hash_Code hash = internal_hash (object, 0); + Hashcode hash = internal_hash (object, 0); return Fcons (hash >> 16, hash & 0xffff); } #endif diff --text -u 'xemacs-21.5.3/src/elhash.h' 'xemacs-21.5.4/src/elhash.h' Index: ././src/elhash.h --- ././src/elhash.h Mon Aug 13 13:46:16 2001 +++ ././src/elhash.h Thu Sep 20 15:28:53 2001 @@ -68,19 +68,19 @@ void* extra_arg); Lisp_Object make_standard_lisp_hash_table (enum hash_table_test test, - Element_Count size, + Elemcount size, double rehash_size, double rehash_threshold, enum hash_table_weakness weakness); Lisp_Object make_general_lisp_hash_table (hash_table_hash_function_t hash_function, hash_table_test_function_t test_function, - Element_Count size, + Elemcount size, double rehash_size, double rehash_threshold, enum hash_table_weakness weakness); -Lisp_Object make_lisp_hash_table (Element_Count size, +Lisp_Object make_lisp_hash_table (Elemcount size, enum hash_table_weakness weakness, enum hash_table_test test); diff --text -u 'xemacs-21.5.3/src/emacs.c' 'xemacs-21.5.4/src/emacs.c' Index: ././src/emacs.c --- ././src/emacs.c Mon Aug 13 13:46:16 2001 +++ ././src/emacs.c Thu Sep 20 15:28:53 2001 @@ -796,7 +796,7 @@ return 1; } arglen = (valptr != NULL && (p = strchr (arg, '=')) != NULL - ? p - arg : strlen (arg)); + ? p - arg : (int) strlen (arg)); if (lstr == 0 || arglen < minlen || strncmp (arg, lstr, arglen) != 0) return 0; else if (valptr == NULL) @@ -1147,6 +1147,11 @@ so we can be fairly accurate. */ init_intl_very_early (); /* set up the locale and domain for gettext and such. */ +#ifdef HAVE_MS_WINDOWS + init_mswindows_very_early (); /* Some things - like dde need to be + initialized early so that the + client doesn't give up waiting. */ +#endif /* Now initialize the Lisp engine and the like. Done only during dumping. No dependence on anything that may be in the user's @@ -3130,15 +3135,15 @@ /* Split STRING into a list of substrings. The substrings are the parts of original STRING separated by SEPCHAR. */ static Lisp_Object -split_string_by_emchar_1 (const Bufbyte *string, Bytecount size, +split_string_by_emchar_1 (const Intbyte *string, Bytecount size, Emchar sepchar) { Lisp_Object result = Qnil; - const Bufbyte *end = string + size; + const Intbyte *end = string + size; while (1) { - const Bufbyte *p = string; + const Intbyte *p = string; while (p < end) { if (charptr_emchar (p) == sepchar) @@ -3164,7 +3169,7 @@ decode_path (const char *path) { Bytecount newlen; - Bufbyte *newpath; + Intbyte *newpath; if (!path) return Qnil; @@ -3579,7 +3584,7 @@ typecheck - check types strictly, aborting in case of error; malloc - check operation of malloc; gc - check garbage collection; -bufpos - check buffer positions. +charbpos - check buffer positions. quick-build - user has requested the "quick-build" configure option. */ ); @@ -3600,8 +3605,8 @@ Vinternal_error_checking = Fcons (intern ("gc"), Vinternal_error_checking); #endif -#ifdef ERROR_CHECK_BUFPOS - Vinternal_error_checking = Fcons (intern ("bufpos"), +#ifdef ERROR_CHECK_CHARBPOS + Vinternal_error_checking = Fcons (intern ("charbpos"), Vinternal_error_checking); #endif #ifdef QUICK_BUILD @@ -3654,7 +3659,7 @@ */ ); { char c = SEPCHAR; - Vpath_separator = make_string ((Bufbyte *)&c, 1); + Vpath_separator = make_string ((Intbyte *)&c, 1); } } diff --text -u 'xemacs-21.5.3/src/emodules.c' 'xemacs-21.5.4/src/emodules.c' Index: ././src/emodules.c --- ././src/emodules.c Wed Jun 6 21:34:45 2001 +++ ././src/emodules.c Thu Sep 20 15:28:54 2001 @@ -351,7 +351,7 @@ dlhandle = dll_open (soname); if (dlhandle == (dll_handle)0) { - CBufbyte *dllerrint; + CIntbyte *dllerrint; EXTERNAL_TO_C_STRING (dll_error (dlhandle), dllerrint, Qnative); signal_error (Qdll_error, "Opening dynamic module", @@ -492,7 +492,7 @@ emodules_doc_subr(const char *symname, const char *doc) { Bytecount len = strlen (symname); - Lisp_Object sym = oblookup (Vobarray, (const Bufbyte *)symname, len); + Lisp_Object sym = oblookup (Vobarray, (const Intbyte *)symname, len); Lisp_Subr *subr; if (SYMBOLP(sym)) @@ -512,7 +512,7 @@ emodules_doc_sym (const char *symname, const char *doc) { Bytecount len = strlen (symname); - Lisp_Object sym = oblookup (Vobarray, (const Bufbyte *)symname, len); + Lisp_Object sym = oblookup (Vobarray, (const Intbyte *)symname, len); Lisp_Object docstr; struct gcpro gcpro1; diff --text -u 'xemacs-21.5.3/src/eval.c' 'xemacs-21.5.4/src/eval.c' Index: ././src/eval.c --- ././src/eval.c Mon Aug 13 13:46:17 2001 +++ ././src/eval.c Thu Sep 20 15:28:54 2001 @@ -284,10 +284,10 @@ print_subr (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag) { Lisp_Subr *subr = XSUBR (obj); - const CBufbyte *header = + const CIntbyte *header = (subr->max_args == UNEVALLED) ? "#prompt ? " (interactive)>" : ">"; + const CIntbyte *name = subr_name (subr); + const CIntbyte *trailer = subr->prompt ? " (interactive)>" : ">"; if (print_readably) printing_unreadable_object ("%s%s%s", header, name, trailer); @@ -2317,7 +2317,7 @@ to signal_error_1(). */ Lisp_Object -build_error_data (const CBufbyte *reason, Lisp_Object frob) +build_error_data (const CIntbyte *reason, Lisp_Object frob) { if (EQ (frob, Qunbound)) frob = Qnil; @@ -2332,13 +2332,13 @@ } DOESNT_RETURN -signal_error (Lisp_Object type, const CBufbyte *reason, Lisp_Object frob) +signal_error (Lisp_Object type, const CIntbyte *reason, Lisp_Object frob) { signal_error_1 (type, build_error_data (reason, frob)); } void -maybe_signal_error (Lisp_Object type, const CBufbyte *reason, +maybe_signal_error (Lisp_Object type, const CIntbyte *reason, Lisp_Object frob, Lisp_Object class, Error_Behavior errb) { @@ -2349,14 +2349,14 @@ } Lisp_Object -signal_continuable_error (Lisp_Object type, const CBufbyte *reason, +signal_continuable_error (Lisp_Object type, const CIntbyte *reason, Lisp_Object frob) { return Fsignal (type, build_error_data (reason, frob)); } Lisp_Object -maybe_signal_continuable_error (Lisp_Object type, const CBufbyte *reason, +maybe_signal_continuable_error (Lisp_Object type, const CIntbyte *reason, Lisp_Object frob, Lisp_Object class, Error_Behavior errb) { @@ -2378,7 +2378,7 @@ but these are more convenient in this particular case.) */ DOESNT_RETURN -signal_error_2 (Lisp_Object type, const CBufbyte *reason, +signal_error_2 (Lisp_Object type, const CIntbyte *reason, Lisp_Object frob0, Lisp_Object frob1) { signal_error_1 (type, list3 (build_translated_string (reason), frob0, @@ -2386,7 +2386,7 @@ } void -maybe_signal_error_2 (Lisp_Object type, const CBufbyte *reason, +maybe_signal_error_2 (Lisp_Object type, const CIntbyte *reason, Lisp_Object frob0, Lisp_Object frob1, Lisp_Object class, Error_Behavior errb) { @@ -2398,7 +2398,7 @@ } Lisp_Object -signal_continuable_error_2 (Lisp_Object type, const CBufbyte *reason, +signal_continuable_error_2 (Lisp_Object type, const CIntbyte *reason, Lisp_Object frob0, Lisp_Object frob1) { return Fsignal (type, list3 (build_translated_string (reason), frob0, @@ -2406,7 +2406,7 @@ } Lisp_Object -maybe_signal_continuable_error_2 (Lisp_Object type, const CBufbyte *reason, +maybe_signal_continuable_error_2 (Lisp_Object type, const CIntbyte *reason, Lisp_Object frob0, Lisp_Object frob1, Lisp_Object class, Error_Behavior errb) { @@ -2426,13 +2426,13 @@ is a single string, created using the arguments. */ DOESNT_RETURN -signal_ferror (Lisp_Object type, const CBufbyte *fmt, ...) +signal_ferror (Lisp_Object type, const CIntbyte *fmt, ...) { Lisp_Object obj; va_list args; va_start (args, fmt); - obj = emacs_doprnt_string_va ((const Bufbyte *) GETTEXT (fmt), Qnil, -1, + obj = emacs_doprnt_string_va ((const Intbyte *) GETTEXT (fmt), Qnil, -1, args); va_end (args); @@ -2442,7 +2442,7 @@ void maybe_signal_ferror (Lisp_Object type, Lisp_Object class, Error_Behavior errb, - const CBufbyte *fmt, ...) + const CIntbyte *fmt, ...) { Lisp_Object obj; va_list args; @@ -2452,7 +2452,7 @@ return; va_start (args, fmt); - obj = emacs_doprnt_string_va ((const Bufbyte *) GETTEXT (fmt), Qnil, -1, + obj = emacs_doprnt_string_va ((const Intbyte *) GETTEXT (fmt), Qnil, -1, args); va_end (args); @@ -2461,13 +2461,13 @@ } Lisp_Object -signal_continuable_ferror (Lisp_Object type, const CBufbyte *fmt, ...) +signal_continuable_ferror (Lisp_Object type, const CIntbyte *fmt, ...) { Lisp_Object obj; va_list args; va_start (args, fmt); - obj = emacs_doprnt_string_va ((const Bufbyte *) GETTEXT (fmt), Qnil, -1, + obj = emacs_doprnt_string_va ((const Intbyte *) GETTEXT (fmt), Qnil, -1, args); va_end (args); @@ -2477,7 +2477,7 @@ Lisp_Object maybe_signal_continuable_ferror (Lisp_Object type, Lisp_Object class, - Error_Behavior errb, const CBufbyte *fmt, ...) + Error_Behavior errb, const CIntbyte *fmt, ...) { Lisp_Object obj; va_list args; @@ -2487,7 +2487,7 @@ return Qnil; va_start (args, fmt); - obj = emacs_doprnt_string_va ((const Bufbyte *) GETTEXT (fmt), Qnil, -1, + obj = emacs_doprnt_string_va ((const Intbyte *) GETTEXT (fmt), Qnil, -1, args); va_end (args); @@ -2511,14 +2511,14 @@ */ DOESNT_RETURN -signal_ferror_with_frob (Lisp_Object type, Lisp_Object frob, const CBufbyte *fmt, +signal_ferror_with_frob (Lisp_Object type, Lisp_Object frob, const CIntbyte *fmt, ...) { Lisp_Object obj; va_list args; va_start (args, fmt); - obj = emacs_doprnt_string_va ((const Bufbyte *) GETTEXT (fmt), Qnil, -1, + obj = emacs_doprnt_string_va ((const Intbyte *) GETTEXT (fmt), Qnil, -1, args); va_end (args); @@ -2529,7 +2529,7 @@ void maybe_signal_ferror_with_frob (Lisp_Object type, Lisp_Object frob, Lisp_Object class, Error_Behavior errb, - const CBufbyte *fmt, ...) + const CIntbyte *fmt, ...) { Lisp_Object obj; va_list args; @@ -2539,7 +2539,7 @@ return; va_start (args, fmt); - obj = emacs_doprnt_string_va ((const Bufbyte *) GETTEXT (fmt), Qnil, -1, + obj = emacs_doprnt_string_va ((const Intbyte *) GETTEXT (fmt), Qnil, -1, args); va_end (args); @@ -2550,13 +2550,13 @@ Lisp_Object signal_continuable_ferror_with_frob (Lisp_Object type, Lisp_Object frob, - const CBufbyte *fmt, ...) + const CIntbyte *fmt, ...) { Lisp_Object obj; va_list args; va_start (args, fmt); - obj = emacs_doprnt_string_va ((const Bufbyte *) GETTEXT (fmt), Qnil, -1, + obj = emacs_doprnt_string_va ((const Intbyte *) GETTEXT (fmt), Qnil, -1, args); va_end (args); @@ -2568,7 +2568,7 @@ maybe_signal_continuable_ferror_with_frob (Lisp_Object type, Lisp_Object frob, Lisp_Object class, Error_Behavior errb, - const CBufbyte *fmt, ...) + const CIntbyte *fmt, ...) { Lisp_Object obj; va_list args; @@ -2578,7 +2578,7 @@ return Qnil; va_start (args, fmt); - obj = emacs_doprnt_string_va ((const Bufbyte *) GETTEXT (fmt), Qnil, -1, + obj = emacs_doprnt_string_va ((const Intbyte *) GETTEXT (fmt), Qnil, -1, args); va_end (args); @@ -2650,167 +2650,167 @@ } DOESNT_RETURN -syntax_error (const CBufbyte *reason, Lisp_Object frob) +syntax_error (const CIntbyte *reason, Lisp_Object frob) { signal_error (Qsyntax_error, reason, frob); } DOESNT_RETURN -syntax_error_2 (const CBufbyte *reason, Lisp_Object frob1, Lisp_Object frob2) +syntax_error_2 (const CIntbyte *reason, Lisp_Object frob1, Lisp_Object frob2) { signal_error_2 (Qsyntax_error, reason, frob1, frob2); } void -maybe_syntax_error (const CBufbyte *reason, Lisp_Object frob, +maybe_syntax_error (const CIntbyte *reason, Lisp_Object frob, Lisp_Object class, Error_Behavior errb) { maybe_signal_error (Qsyntax_error, reason, frob, class, errb); } DOESNT_RETURN -sferror (const CBufbyte *reason, Lisp_Object frob) +sferror (const CIntbyte *reason, Lisp_Object frob) { signal_error (Qstructure_formation_error, reason, frob); } DOESNT_RETURN -sferror_2 (const CBufbyte *reason, Lisp_Object frob1, Lisp_Object frob2) +sferror_2 (const CIntbyte *reason, Lisp_Object frob1, Lisp_Object frob2) { signal_error_2 (Qstructure_formation_error, reason, frob1, frob2); } void -maybe_sferror (const CBufbyte *reason, Lisp_Object frob, +maybe_sferror (const CIntbyte *reason, Lisp_Object frob, Lisp_Object class, Error_Behavior errb) { maybe_signal_error (Qstructure_formation_error, reason, frob, class, errb); } DOESNT_RETURN -invalid_argument (const CBufbyte *reason, Lisp_Object frob) +invalid_argument (const CIntbyte *reason, Lisp_Object frob) { signal_error (Qinvalid_argument, reason, frob); } DOESNT_RETURN -invalid_argument_2 (const CBufbyte *reason, Lisp_Object frob1, +invalid_argument_2 (const CIntbyte *reason, Lisp_Object frob1, Lisp_Object frob2) { signal_error_2 (Qinvalid_argument, reason, frob1, frob2); } void -maybe_invalid_argument (const CBufbyte *reason, Lisp_Object frob, +maybe_invalid_argument (const CIntbyte *reason, Lisp_Object frob, Lisp_Object class, Error_Behavior errb) { maybe_signal_error (Qinvalid_argument, reason, frob, class, errb); } DOESNT_RETURN -invalid_constant (const CBufbyte *reason, Lisp_Object frob) +invalid_constant (const CIntbyte *reason, Lisp_Object frob) { signal_error (Qinvalid_constant, reason, frob); } DOESNT_RETURN -invalid_constant_2 (const CBufbyte *reason, Lisp_Object frob1, +invalid_constant_2 (const CIntbyte *reason, Lisp_Object frob1, Lisp_Object frob2) { signal_error_2 (Qinvalid_constant, reason, frob1, frob2); } void -maybe_invalid_constant (const CBufbyte *reason, Lisp_Object frob, +maybe_invalid_constant (const CIntbyte *reason, Lisp_Object frob, Lisp_Object class, Error_Behavior errb) { maybe_signal_error (Qinvalid_constant, reason, frob, class, errb); } DOESNT_RETURN -invalid_operation (const CBufbyte *reason, Lisp_Object frob) +invalid_operation (const CIntbyte *reason, Lisp_Object frob) { signal_error (Qinvalid_operation, reason, frob); } DOESNT_RETURN -invalid_operation_2 (const CBufbyte *reason, Lisp_Object frob1, +invalid_operation_2 (const CIntbyte *reason, Lisp_Object frob1, Lisp_Object frob2) { signal_error_2 (Qinvalid_operation, reason, frob1, frob2); } void -maybe_invalid_operation (const CBufbyte *reason, Lisp_Object frob, +maybe_invalid_operation (const CIntbyte *reason, Lisp_Object frob, Lisp_Object class, Error_Behavior errb) { maybe_signal_error (Qinvalid_operation, reason, frob, class, errb); } DOESNT_RETURN -invalid_change (const CBufbyte *reason, Lisp_Object frob) +invalid_change (const CIntbyte *reason, Lisp_Object frob) { signal_error (Qinvalid_change, reason, frob); } DOESNT_RETURN -invalid_change_2 (const CBufbyte *reason, Lisp_Object frob1, Lisp_Object frob2) +invalid_change_2 (const CIntbyte *reason, Lisp_Object frob1, Lisp_Object frob2) { signal_error_2 (Qinvalid_change, reason, frob1, frob2); } void -maybe_invalid_change (const CBufbyte *reason, Lisp_Object frob, +maybe_invalid_change (const CIntbyte *reason, Lisp_Object frob, Lisp_Object class, Error_Behavior errb) { maybe_signal_error (Qinvalid_change, reason, frob, class, errb); } DOESNT_RETURN -invalid_state (const CBufbyte *reason, Lisp_Object frob) +invalid_state (const CIntbyte *reason, Lisp_Object frob) { signal_error (Qinvalid_state, reason, frob); } DOESNT_RETURN -invalid_state_2 (const CBufbyte *reason, Lisp_Object frob1, Lisp_Object frob2) +invalid_state_2 (const CIntbyte *reason, Lisp_Object frob1, Lisp_Object frob2) { signal_error_2 (Qinvalid_state, reason, frob1, frob2); } void -maybe_invalid_state (const CBufbyte *reason, Lisp_Object frob, +maybe_invalid_state (const CIntbyte *reason, Lisp_Object frob, Lisp_Object class, Error_Behavior errb) { maybe_signal_error (Qinvalid_state, reason, frob, class, errb); } DOESNT_RETURN -wtaerror (const CBufbyte *reason, Lisp_Object frob) +wtaerror (const CIntbyte *reason, Lisp_Object frob) { signal_error (Qwrong_type_argument, reason, frob); } DOESNT_RETURN -stack_overflow (const CBufbyte *reason, Lisp_Object frob) +stack_overflow (const CIntbyte *reason, Lisp_Object frob) { signal_error (Qstack_overflow, reason, frob); } DOESNT_RETURN -out_of_memory (const CBufbyte *reason, Lisp_Object frob) +out_of_memory (const CIntbyte *reason, Lisp_Object frob) { signal_error (Qout_of_memory, reason, frob); } DOESNT_RETURN -printing_unreadable_object (const CBufbyte *fmt, ...) +printing_unreadable_object (const CIntbyte *fmt, ...) { Lisp_Object obj; va_list args; va_start (args, fmt); - obj = emacs_doprnt_string_va ((const Bufbyte *) GETTEXT (fmt), Qnil, -1, + obj = emacs_doprnt_string_va ((const Intbyte *) GETTEXT (fmt), Qnil, -1, args); va_end (args); @@ -4435,7 +4435,7 @@ if (!NILP (arg)) { - CBufbyte *str = (CBufbyte *) get_opaque_ptr (arg); + CIntbyte *str = (CIntbyte *) get_opaque_ptr (arg); args[0] = build_string (str); } else @@ -4446,7 +4446,7 @@ args[1] = errordata; warn_when_safe_lispobj (Qerror, Qwarning, - emacs_doprnt_string_lisp ((const Bufbyte *) "%s: %s", + emacs_doprnt_string_lisp ((const Intbyte *) "%s: %s", Qnil, -1, 2, args)); } return Qunbound; @@ -4489,7 +4489,7 @@ } Lisp_Object -eval_in_buffer_trapping_errors (const CBufbyte *warning_string, +eval_in_buffer_trapping_errors (const CIntbyte *warning_string, struct buffer *buf, Lisp_Object form) { int speccount = specpdl_depth(); @@ -4529,7 +4529,7 @@ } Lisp_Object -run_hook_trapping_errors (const CBufbyte *warning_string, +run_hook_trapping_errors (const CIntbyte *warning_string, Lisp_Object hook_symbol) { int speccount; @@ -4563,7 +4563,7 @@ if an error occurs. */ Lisp_Object -safe_run_hook_trapping_errors (const CBufbyte *warning_string, +safe_run_hook_trapping_errors (const CIntbyte *warning_string, Lisp_Object hook_symbol, int allow_quit) { @@ -4609,7 +4609,7 @@ } Lisp_Object -call0_trapping_errors (const CBufbyte *warning_string, Lisp_Object function) +call0_trapping_errors (const CIntbyte *warning_string, Lisp_Object function) { int speccount; Lisp_Object tem; @@ -4656,7 +4656,7 @@ } Lisp_Object -call1_trapping_errors (const CBufbyte *warning_string, Lisp_Object function, +call1_trapping_errors (const CIntbyte *warning_string, Lisp_Object function, Lisp_Object object) { int speccount = specpdl_depth(); @@ -4693,7 +4693,7 @@ } Lisp_Object -call2_trapping_errors (const CBufbyte *warning_string, Lisp_Object function, +call2_trapping_errors (const CIntbyte *warning_string, Lisp_Object function, Lisp_Object object1, Lisp_Object object2) { int speccount = specpdl_depth(); @@ -5250,13 +5250,13 @@ automatically be called when it is safe to do so. */ void -warn_when_safe (Lisp_Object class, Lisp_Object level, const CBufbyte *fmt, ...) +warn_when_safe (Lisp_Object class, Lisp_Object level, const CIntbyte *fmt, ...) { Lisp_Object obj; va_list args; va_start (args, fmt); - obj = emacs_doprnt_string_va ((const Bufbyte *) GETTEXT (fmt), + obj = emacs_doprnt_string_va ((const Intbyte *) GETTEXT (fmt), Qnil, -1, args); va_end (args); diff --text -u 'xemacs-21.5.3/src/event-Xt.c' 'xemacs-21.5.4/src/event-Xt.c' Index: ././src/event-Xt.c --- ././src/event-Xt.c Mon Aug 13 13:46:18 2001 +++ ././src/event-Xt.c Thu Sep 20 15:28:54 2001 @@ -1399,7 +1399,7 @@ { len = strlen ((char*)data); hurl = dnd_url_hexify_string ((char *)data, "file:"); - l_item = make_string ((Bufbyte *)hurl, strlen (hurl)); + l_item = make_string ((Intbyte *)hurl, strlen (hurl)); l_dndlist = Fcons (l_item, l_dndlist); data += len + 1; xfree (hurl); @@ -1409,8 +1409,8 @@ break; case DndText: l_type = Qdragdrop_MIME; - l_dndlist = list1 ( list3 ( list1 ( make_string ((Bufbyte *)"text/plain", 10) ), - make_string ((Bufbyte *)"8bit", 4), + l_dndlist = list1 ( list3 ( list1 ( make_string ((Intbyte *)"text/plain", 10) ), + make_string ((Intbyte *)"8bit", 4), make_ext_string ((Extbyte *)data, strlen((char *)data), Qctext) ) ); @@ -1435,7 +1435,7 @@ { char *hurl = dnd_url_hexify_string ((char *) data, "file:"); - l_dndlist = list1 ( make_string ((Bufbyte *)hurl, + l_dndlist = list1 ( make_string ((Intbyte *)hurl, strlen (hurl)) ); l_type = Qdragdrop_URL; @@ -1451,8 +1451,8 @@ l_type = Qdragdrop_URL; break; default: /* Unknown, RawData and any other type */ - l_dndlist = list1 ( list3 ( list1 ( make_string ((Bufbyte *)"application/octet-stream", 24) ), - make_string ((Bufbyte *)"8bit", 4), + l_dndlist = list1 ( list3 ( list1 ( make_string ((Intbyte *)"application/octet-stream", 24) ), + make_string ((Intbyte *)"8bit", 4), make_ext_string ((Extbyte *)data, size, Qbinary) ) ); @@ -2448,7 +2448,7 @@ { char *buf = alloca_array (char, XSTRING_LENGTH (f->name) + 4); sprintf (buf, " \"%s\"", XSTRING_DATA (f->name)); - write_string_to_stdio_stream (stderr, 0, (Bufbyte *) buf, 0, + write_string_to_stdio_stream (stderr, 0, (Intbyte *) buf, 0, strlen (buf), Qterminal, 1); } stderr_out ("\n"); diff --text -u 'xemacs-21.5.3/src/event-gtk.c' 'xemacs-21.5.4/src/event-gtk.c' Index: ././src/event-gtk.c --- ././src/event-gtk.c Thu May 31 11:00:31 2001 +++ ././src/event-gtk.c Thu Sep 20 15:28:55 2001 @@ -976,7 +976,7 @@ /* Random filename */ char *hurl = dnd_url_hexify_string (data->data, "file:"); - l_dndlist = list1 (make_string ((Bufbyte *)hurl, strlen (hurl))); + l_dndlist = list1 (make_string ((Intbyte *)hurl, strlen (hurl))); l_type = Qdragdrop_URL; xfree (hurl); diff --text -u 'xemacs-21.5.3/src/event-msw.c' 'xemacs-21.5.4/src/event-msw.c' Index: ././src/event-msw.c --- ././src/event-msw.c Mon Aug 13 13:46:18 2001 +++ ././src/event-msw.c Thu Dec 20 14:49:46 2001 @@ -183,7 +183,7 @@ 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. */ @@ -229,6 +229,7 @@ CloseHandle (s->hev_thread); CloseHandle (s->hev_caller); CloseHandle (s->hev_unsleep); + CloseHandle (s->hpipe); s->inuse_p = 0; } } @@ -367,9 +368,9 @@ return s->thread_data->hev_caller; } -static Lstream_Data_Count +static Bytecount ntpipe_slurp_reader (Lstream *stream, unsigned char *data, - Lstream_Data_Count size) + Bytecount size) { /* This function must be called from the main thread only */ struct ntpipe_slurp_stream_shared_data* s = @@ -582,9 +583,9 @@ } #endif -static Lstream_Data_Count +static Bytecount ntpipe_shove_writer (Lstream *stream, const unsigned char *data, - Lstream_Data_Count size) + Bytecount size) { struct ntpipe_shove_stream* s = NTPIPE_SHOVE_STREAM_DATA(stream); @@ -668,7 +669,7 @@ OVERLAPPED ov; /* Overlapped I/O structure */ void *buffer; /* Buffer. */ DWORD bufsize; /* Number of bytes last read */ - DWORD bufpos; /* Position in buffer for next fetch */ + DWORD charbpos; /* Position in buffer for next fetch */ unsigned int error_p :1; /* I/O Error seen */ unsigned int eof_p :1; /* EOF Error seen */ unsigned int pending_p :1; /* There is a pending I/O operation */ @@ -684,7 +685,7 @@ winsock_initiate_read (struct winsock_stream *str) { ResetEvent (str->ov.hEvent); - str->bufpos = 0; + str->charbpos = 0; if (!ReadFile ((HANDLE)str->s, str->buffer, WINSOCK_READ_BUFFER_SIZE, &str->bufsize, &str->ov)) @@ -700,8 +701,8 @@ str->eof_p = 1; } -static Lstream_Data_Count -winsock_reader (Lstream *stream, unsigned char *data, Lstream_Data_Count size) +static Bytecount +winsock_reader (Lstream *stream, unsigned char *data, Bytecount size) { struct winsock_stream *str = WINSOCK_STREAM_DATA (stream); @@ -735,20 +736,20 @@ return -1; /* Return as much of buffer as we have */ - size = min (size, (Lstream_Data_Count) (str->bufsize - str->bufpos)); - memcpy (data, (void*)((BYTE*)str->buffer + str->bufpos), size); - str->bufpos += size; + size = min (size, (Bytecount) (str->bufsize - str->charbpos)); + memcpy (data, (void*)((BYTE*)str->buffer + str->charbpos), size); + str->charbpos += size; /* Read more if buffer is exhausted */ - if (str->bufsize == str->bufpos) + if (str->bufsize == str->charbpos) winsock_initiate_read (str); return size; } -static Lstream_Data_Count +static Bytecount winsock_writer (Lstream *stream, const unsigned char *data, - Lstream_Data_Count size) + Bytecount size) { struct winsock_stream *str = WINSOCK_STREAM_DATA (stream); @@ -1607,6 +1608,8 @@ * depends on dnd support. */ #ifdef HAVE_DRAGNDROP +extern int mswindows_dde_enable; + HDDEDATA CALLBACK mswindows_dde_callback (UINT uType, UINT uFmt, HCONV hconv, HSZ hszTopic, HSZ hszItem, HDDEDATA hdata, @@ -1633,6 +1636,9 @@ return (HDDEDATA)NULL; case XTYP_EXECUTE: + if (!mswindows_dde_enable) + return (HDDEDATA) DDE_FBUSY; + if (!DdeCmpStringHandles (hszTopic, mswindows_dde_topic_system)) { DWORD len = DdeGetData (hdata, NULL, 0, 0); @@ -1640,7 +1646,7 @@ char *end; char *filename; struct gcpro gcpro1, gcpro2; - Lisp_Object l_dndlist = Qnil; + Lisp_Object l_dndlist = Qnil; Lisp_Object emacs_event = Fmake_event (Qnil, Qnil); Lisp_Object frmcons, devcons, concons; Lisp_Event *event = XEVENT (emacs_event); @@ -2624,7 +2630,11 @@ } 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 @@ -2689,6 +2699,10 @@ { if (!msframe->sizing && !FRAME_VISIBLE_P (frame)) 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 (); @@ -2811,19 +2825,14 @@ { 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); - mswindows_pump_outstanding_events (); /* Can GC */ - UNGCPRO; - } + /* We are not in a modal loop so no pumping is necessary. */ + break; else goto defproc; - break; } #endif @@ -3595,7 +3604,7 @@ /* FLAGS is process->pty_flag for UNIX_PROCESSES */ if ((flags & STREAM_PTY_FLUSHING) && fdo >= 0) { - Bufbyte eof_char = get_eof_char (fdo); + Intbyte eof_char = get_eof_char (fdo); int pty_max_bytes = get_pty_max_bytes (fdo); filedesc_stream_set_pty_flushing (XLSTREAM(*outstream), pty_max_bytes, eof_char); } diff --text -u 'xemacs-21.5.3/src/event-stream.c' 'xemacs-21.5.4/src/event-stream.c' Index: ././src/event-stream.c --- ././src/event-stream.c Thu May 31 21:45:36 2001 +++ ././src/event-stream.c Thu Dec 20 14:49:46 2001 @@ -181,7 +181,7 @@ Lisp_Object Vthis_command_properties; /* The value of point when the last command was executed. */ -Bufpos last_point_position; +Charbpos last_point_position; /* The frame that was current when the last command was started. */ Lisp_Object Vlast_selected_frame; @@ -366,7 +366,7 @@ builder->console = console; reset_command_builder_event_chain (builder); builder->echo_buf_length = 300; /* #### Kludge */ - builder->echo_buf = xnew_array (Bufbyte, builder->echo_buf_length); + builder->echo_buf = xnew_array (Intbyte, builder->echo_buf_length); builder->echo_buf[0] = 0; builder->echo_buf_index = -1; builder->echo_buf_index = -1; @@ -620,7 +620,7 @@ /* This function can GC */ char buf[255]; Bytecount buf_index = command_builder->echo_buf_index; - Bufbyte *e; + Intbyte *e; Bytecount len; if (buf_index < 0) @@ -3706,7 +3706,7 @@ if (len + buf_index + 1 <= command_builder->echo_buf_length) { - Bufbyte *echo = command_builder->echo_buf + buf_index; + Intbyte *echo = command_builder->echo_buf + buf_index; memcpy (echo, XSTRING_DATA (prompt), len); echo[len] = 0; } @@ -4290,6 +4290,7 @@ struct gcpro gcpro1; GCPRO1 (event); + record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); if (!NILP (prompt)) CHECK_STRING (prompt); /* else prompt = Fkeymap_prompt (current_buffer->keymap); may GC */ @@ -4388,7 +4389,7 @@ if (CHARP (XEVENT (event)->event.key.keysym)) { Emchar ch = XCHAR (keysym); - Bufbyte str[MAX_EMCHAR_LEN]; + Intbyte str[MAX_EMCHAR_LEN]; Bytecount len = set_charptr_emchar (str, ch); Lstream_write (XLSTREAM (Vdribble_file), str, len); } diff --text -u 'xemacs-21.5.3/src/event-unixoid.c' 'xemacs-21.5.4/src/event-unixoid.c' Index: ././src/event-unixoid.c --- ././src/event-unixoid.c Mon May 14 13:52:02 2001 +++ ././src/event-unixoid.c Thu Sep 20 15:28:56 2001 @@ -292,7 +292,7 @@ /* FLAGS is process->pty_flag for UNIX_PROCESSES */ if ((flags & STREAM_PTY_FLUSHING) && outfd >= 0) { - Bufbyte eof_char = get_eof_char (outfd); + Intbyte eof_char = get_eof_char (outfd); int pty_max_bytes = get_pty_max_bytes (outfd); filedesc_stream_set_pty_flushing (XLSTREAM(*outstream), pty_max_bytes, eof_char); } diff --text -u 'xemacs-21.5.3/src/events.c' 'xemacs-21.5.4/src/events.c' Index: ././src/events.c --- ././src/events.c Mon Aug 13 13:46:20 2001 +++ ././src/events.c Thu Sep 20 15:28:56 2001 @@ -300,11 +300,11 @@ } } -static Hash_Code +static Hashcode event_hash (Lisp_Object obj, int depth) { Lisp_Event *e = XEVENT (obj); - Hash_Code hash; + Hashcode hash; hash = HASH2 (e->event_type, LISP_HASH (e->channel)); switch (e->event_type) @@ -338,7 +338,7 @@ case magic_eval_event: return HASH3 (hash, - (Hash_Code) e->event.magic_eval.internal_function, + (Hashcode) e->event.magic_eval.internal_function, internal_hash (e->event.magic_eval.object, depth + 1)); case magic_event: @@ -1329,7 +1329,7 @@ if (CHARP (key)) { - buf += set_charptr_emchar ((Bufbyte *) buf, XCHAR (key)); + buf += set_charptr_emchar ((Intbyte *) buf, XCHAR (key)); *buf = 0; } else if (SYMBOLP (key)) @@ -1797,7 +1797,7 @@ static int event_pixel_translation (Lisp_Object event, int *char_x, int *char_y, int *obj_x, int *obj_y, - struct window **w, Bufpos *bufp, Bufpos *closest, + struct window **w, Charbpos *bufp, Charbpos *closest, Charcount *modeline_closest, Lisp_Object *obj1, Lisp_Object *obj2) { @@ -1808,7 +1808,7 @@ int ret_x, ret_y, ret_obj_x, ret_obj_y; struct window *ret_w; - Bufpos ret_bufp, ret_closest; + Charbpos ret_bufp, ret_closest; Charcount ret_modeline_closest; Lisp_Object ret_obj1, ret_obj2; @@ -1988,7 +1988,7 @@ */ (event)) { - Bufpos bufp; + Charbpos bufp; struct window *w; event_pixel_translation (event, 0, 0, 0, 0, &w, &bufp, 0, 0, 0, 0); @@ -2010,7 +2010,7 @@ */ (event)) { - Bufpos bufp; + Charbpos bufp; event_pixel_translation (event, 0, 0, 0, 0, 0, 0, &bufp, 0, 0, 0); diff --text -u 'xemacs-21.5.3/src/events.h' 'xemacs-21.5.4/src/events.h' Index: ././src/events.h --- ././src/events.h Mon Jun 18 16:10:18 2001 +++ ././src/events.h Thu Sep 20 15:28:56 2001 @@ -734,7 +734,7 @@ Lisp_Object first_mungeable_event; } munge_me[2]; - Bufbyte *echo_buf; + Intbyte *echo_buf; Bytecount echo_buf_length; /* size of echo_buf */ Bytecount echo_buf_index; /* index into echo_buf * -1 before doing echoing for new cmd */ diff --text -u 'xemacs-21.5.3/src/extents.c' 'xemacs-21.5.4/src/extents.c' Index: ././src/extents.c --- ././src/extents.c Mon Aug 13 13:46:21 2001 +++ ././src/extents.c Thu Sep 20 15:28:57 2001 @@ -265,7 +265,7 @@ /* Convert a "memory position" (i.e. taking the gap into account) into the address of the element at (i.e. after) that position. "Memory - positions" are only used internally and are of type Memind. + positions" are only used internally and are of type Membpos. "Array positions" are used externally and are of type int. */ #define GAP_ARRAY_MEMEL_ADDR(ga, memel) ((ga)->array + (ga)->elsize*(memel)) @@ -358,7 +358,7 @@ typedef struct stack_of_extents { Extent_List *extents; - Memind pos; /* Position of stack of extents. EXTENTS is the list of + Membpos pos; /* Position of stack of extents. EXTENTS is the list of all extents that overlap this position. This position can be -1 if the stack of extents is invalid (this happens when a buffer is first created or a string's @@ -372,29 +372,29 @@ typedef int Endpoint_Index; -#define memind_to_startind(x, start_open) \ +#define membpos_to_startind(x, start_open) \ ((Endpoint_Index) (((x) << 1) + !!(start_open))) -#define memind_to_endind(x, end_open) \ +#define membpos_to_endind(x, end_open) \ ((Endpoint_Index) (((x) << 1) - !!(end_open))) /* Combination macros */ -#define bytind_to_startind(buf, x, start_open) \ - memind_to_startind (bytind_to_memind (buf, x), start_open) -#define bytind_to_endind(buf, x, end_open) \ - memind_to_endind (bytind_to_memind (buf, x), end_open) +#define bytebpos_to_startind(buf, x, start_open) \ + membpos_to_startind (bytebpos_to_membpos (buf, x), start_open) +#define bytebpos_to_endind(buf, x, end_open) \ + membpos_to_endind (bytebpos_to_membpos (buf, x), end_open) /* ------------------------------- */ /* buffer-or-string primitives */ /* ------------------------------- */ -/* Similar for Bytinds and start/end indices. */ +/* Similar for Bytebposs and start/end indices. */ -#define buffer_or_string_bytind_to_startind(obj, ind, start_open) \ - memind_to_startind (buffer_or_string_bytind_to_memind (obj, ind), \ +#define buffer_or_string_bytebpos_to_startind(obj, ind, start_open) \ + membpos_to_startind (buffer_or_string_bytebpos_to_membpos (obj, ind), \ start_open) -#define buffer_or_string_bytind_to_endind(obj, ind, end_open) \ - memind_to_endind (buffer_or_string_bytind_to_memind (obj, ind), \ +#define buffer_or_string_bytebpos_to_endind(obj, ind, end_open) \ + membpos_to_endind (buffer_or_string_bytebpos_to_membpos (obj, ind), \ end_open) /* ------------------------------- */ @@ -487,8 +487,8 @@ adjust_markers() in insdel.c. */ static void -gap_array_adjust_markers (Gap_Array *ga, Memind from, - Memind to, int amount) +gap_array_adjust_markers (Gap_Array *ga, Membpos from, + Membpos to, int amount) { Gap_Array_Marker *m; @@ -511,7 +511,7 @@ memmove (GAP_ARRAY_MEMEL_ADDR (ga, pos + gapsize), GAP_ARRAY_MEMEL_ADDR (ga, pos), (gap - pos)*ga->elsize); - gap_array_adjust_markers (ga, (Memind) pos, (Memind) gap, + gap_array_adjust_markers (ga, (Membpos) pos, (Membpos) gap, gapsize); } else if (pos > gap) @@ -519,8 +519,8 @@ memmove (GAP_ARRAY_MEMEL_ADDR (ga, gap), GAP_ARRAY_MEMEL_ADDR (ga, gap + gapsize), (pos - gap)*ga->elsize); - gap_array_adjust_markers (ga, (Memind) (gap + gapsize), - (Memind) (pos + gapsize), - gapsize); + gap_array_adjust_markers (ga, (Membpos) (gap + gapsize), + (Membpos) (pos + gapsize), - gapsize); } ga->gap = pos; } @@ -775,7 +775,7 @@ position at the beginning or end of the extent list is returned. */ static int -extent_list_locate_from_pos (Extent_List *el, Memind pos, int endp) +extent_list_locate_from_pos (Extent_List *el, Membpos pos, int endp) { struct extent fake_extent; /* @@ -799,7 +799,7 @@ /* Return the extent at POS. */ static EXTENT -extent_list_at (Extent_List *el, Memind pos, int endp) +extent_list_at (Extent_List *el, Membpos pos, int endp) { Gap_Array *ga = endp ? el->end : el->start; @@ -1298,9 +1298,9 @@ return; } sel = soe->extents; - printf ("SOE pos is %d (memind %d)\n", + printf ("SOE pos is %d (membpos %d)\n", soe->pos < 0 ? soe->pos : - buffer_or_string_memind_to_bytind (obj, soe->pos), + buffer_or_string_membpos_to_bytebpos (obj, soe->pos), soe->pos); for (endp = 0; endp < 2; endp++) { @@ -1375,7 +1375,7 @@ /* Move OBJ's stack of extents to lie over the specified position. */ static void -soe_move (Lisp_Object obj, Memind pos) +soe_move (Lisp_Object obj, Membpos pos) { Stack_Of_Extents *soe = buffer_or_string_stack_of_extents_force (obj); Extent_List *sel = soe->extents; @@ -1389,10 +1389,10 @@ #endif #ifdef SOE_DEBUG - printf ("Moving SOE from %d (memind %d) to %d (memind %d)\n", + printf ("Moving SOE from %d (membpos %d) to %d (membpos %d)\n", soe->pos < 0 ? soe->pos : - buffer_or_string_memind_to_bytind (obj, soe->pos), soe->pos, - buffer_or_string_memind_to_bytind (obj, pos), pos); + buffer_or_string_membpos_to_bytebpos (obj, soe->pos), soe->pos, + buffer_or_string_membpos_to_bytebpos (obj, pos), pos); #endif if (soe->pos < pos) { @@ -1533,29 +1533,29 @@ /* Return the start (endp == 0) or end (endp == 1) of an extent as a byte index. If you want the value as a memory index, use extent_endpoint(). If you want the value as a buffer position, - use extent_endpoint_bufpos(). */ + use extent_endpoint_charbpos(). */ -static Bytind -extent_endpoint_bytind (EXTENT extent, int endp) +static Bytebpos +extent_endpoint_bytebpos (EXTENT extent, int endp) { assert (EXTENT_LIVE_P (extent)); assert (!extent_detached_p (extent)); { - Memind i = endp ? extent_end (extent) : extent_start (extent); + Membpos i = endp ? extent_end (extent) : extent_start (extent); Lisp_Object obj = extent_object (extent); - return buffer_or_string_memind_to_bytind (obj, i); + return buffer_or_string_membpos_to_bytebpos (obj, i); } } -static Bufpos -extent_endpoint_bufpos (EXTENT extent, int endp) +static Charbpos +extent_endpoint_charbpos (EXTENT extent, int endp) { assert (EXTENT_LIVE_P (extent)); assert (!extent_detached_p (extent)); { - Memind i = endp ? extent_end (extent) : extent_start (extent); + Membpos i = endp ? extent_end (extent) : extent_start (extent); Lisp_Object obj = extent_object (extent); - return buffer_or_string_memind_to_bufpos (obj, i); + return buffer_or_string_membpos_to_charbpos (obj, i); } } @@ -1619,8 +1619,8 @@ if (!in_modeline_generation) MARK_EXTENTS_CHANGED; gutter_extent_signal_changed_region_maybe (object, - extent_endpoint_bufpos (extent, 0), - extent_endpoint_bufpos (extent, 1)); + extent_endpoint_charbpos (extent, 0), + extent_endpoint_charbpos (extent, 1)); } else if (BUFFERP (object)) { @@ -1631,8 +1631,8 @@ if (invisibility_change) MARK_CLIP_CHANGED; buffer_extent_signal_changed_region (b, - extent_endpoint_bufpos (extent, 0), - extent_endpoint_bufpos (extent, 1)); + extent_endpoint_charbpos (extent, 0), + extent_endpoint_charbpos (extent, 1)); } } @@ -1827,7 +1827,7 @@ already been performed (see Fextent_in_region_p ()). */ static int -extent_in_region_p (EXTENT extent, Bytind from, Bytind to, +extent_in_region_p (EXTENT extent, Bytebpos from, Bytebpos to, unsigned int flags) { Lisp_Object obj = extent_object (extent); @@ -1863,11 +1863,11 @@ default: abort(); return 0; } - start = buffer_or_string_bytind_to_startind (obj, from, + start = buffer_or_string_bytebpos_to_startind (obj, from, flags & ME_START_OPEN); - end = buffer_or_string_bytind_to_endind (obj, to, ! (flags & ME_END_CLOSED)); - exs = memind_to_startind (extent_start (extent), start_open); - exe = memind_to_endind (extent_end (extent), end_open); + end = buffer_or_string_bytebpos_to_endind (obj, to, ! (flags & ME_END_CLOSED)); + exs = membpos_to_startind (extent_start (extent), start_open); + exe = membpos_to_endind (extent_end (extent), end_open); /* It's easy to determine whether an extent lies *outside* the region -- just determine whether it's completely before @@ -1947,10 +1947,10 @@ static void -map_extents_bytind (Bytind from, Bytind to, map_extents_fun fn, void *arg, +map_extents_bytebpos (Bytebpos from, Bytebpos to, map_extents_fun fn, void *arg, Lisp_Object obj, EXTENT after, unsigned int flags) { - Memind st, en; /* range we're mapping over */ + Membpos st, en; /* range we're mapping over */ EXTENT range = 0; /* extent for this, if ME_MIGHT_MODIFY_TEXT */ Extent_List *el = 0; /* extent list we're iterating over */ Extent_List_Marker *posm = 0; /* marker for extent list, @@ -1978,8 +1978,8 @@ return; el = 0; - st = buffer_or_string_bytind_to_memind (obj, from); - en = buffer_or_string_bytind_to_memind (obj, to); + st = buffer_or_string_bytebpos_to_membpos (obj, from); + en = buffer_or_string_bytebpos_to_membpos (obj, to); if (flags & ME_MIGHT_MODIFY_TEXT) { @@ -2248,9 +2248,9 @@ obj2 = extent_object (e); if (extent_in_region_p (e, - buffer_or_string_memind_to_bytind (obj2, + buffer_or_string_membpos_to_bytebpos (obj2, st), - buffer_or_string_memind_to_bytind (obj2, + buffer_or_string_membpos_to_bytebpos (obj2, en), flags)) { @@ -2280,11 +2280,11 @@ } void -map_extents (Bufpos from, Bufpos to, map_extents_fun fn, +map_extents (Charbpos from, Charbpos to, map_extents_fun fn, void *arg, Lisp_Object obj, EXTENT after, unsigned int flags) { - map_extents_bytind (buffer_or_string_bufpos_to_bytind (obj, from), - buffer_or_string_bufpos_to_bytind (obj, to), fn, arg, + map_extents_bytebpos (buffer_or_string_charbpos_to_bytebpos (obj, from), + buffer_or_string_charbpos_to_bytebpos (obj, to), fn, arg, obj, after, flags); } @@ -2309,7 +2309,7 @@ so for safety we make it just look at the extent lists directly. */ void -adjust_extents (Lisp_Object obj, Memind from, Memind to, int amount) +adjust_extents (Lisp_Object obj, Membpos from, Membpos to, int amount) { int endp; int pos; @@ -2385,15 +2385,15 @@ */ void -adjust_extents_for_deletion (Lisp_Object object, Bytind from, - Bytind to, int gapsize, int numdel, +adjust_extents_for_deletion (Lisp_Object object, Bytebpos from, + Bytebpos to, int gapsize, int numdel, int movegapsize) { struct adjust_extents_for_deletion_arg closure; int i; - Memind adjust_to = (Memind) (to + gapsize); + Membpos adjust_to = (Membpos) (to + gapsize); Bytecount amount = - numdel - movegapsize; - Memind oldsoe = 0, newsoe = 0; + Membpos oldsoe = 0, newsoe = 0; Stack_Of_Extents *soe = buffer_or_string_stack_of_extents (object); #ifdef ERROR_CHECK_EXTENTS @@ -2406,7 +2406,7 @@ to muck with. If we do the mapping and adjusting together, things can get all screwed up. */ - map_extents_bytind (from, to, adjust_extents_for_deletion_mapper, + map_extents_bytebpos (from, to, adjust_extents_for_deletion_mapper, (void *) &closure, object, 0, /* extent endpoints move like markers regardless of their open/closeness. */ @@ -2432,8 +2432,8 @@ for (i = 0; i < Dynarr_length (closure.list); i++) { EXTENT extent = Dynarr_at (closure.list, i); - Memind new_start = extent_start (extent); - Memind new_end = extent_end (extent); + Membpos new_start = extent_start (extent); + Membpos new_end = extent_end (extent); /* do_marker_adjustment() will not adjust values that should not be adjusted. We're passing the same funky arguments to @@ -2513,15 +2513,15 @@ the first run that begins after POS, or returns POS if there are no such runs. */ -static Bytind -extent_find_end_of_run (Lisp_Object obj, Bytind pos, int outside_accessible) +static Bytebpos +extent_find_end_of_run (Lisp_Object obj, Bytebpos pos, int outside_accessible) { Extent_List *sel; Extent_List *bel = buffer_or_string_extent_list (obj); - Bytind pos1, pos2; + Bytebpos pos1, pos2; int elind1, elind2; - Memind mempos = buffer_or_string_bytind_to_memind (obj, pos); - Bytind limit = outside_accessible ? + Membpos mempos = buffer_or_string_bytebpos_to_membpos (obj, pos); + Bytebpos limit = outside_accessible ? buffer_or_string_absolute_end_byte (obj) : buffer_or_string_accessible_end_byte (obj); @@ -2534,7 +2534,7 @@ /* Find the first start position after POS. */ elind1 = extent_list_locate_from_pos (bel, mempos+1, 0); if (elind1 < extent_list_num_els (bel)) - pos1 = buffer_or_string_memind_to_bytind + pos1 = buffer_or_string_membpos_to_bytebpos (obj, extent_start (extent_list_at (bel, elind1, 0))); else pos1 = limit; @@ -2544,7 +2544,7 @@ equal to POS1, so we just have to look in the SOE. */ elind2 = extent_list_locate_from_pos (sel, mempos+1, 1); if (elind2 < extent_list_num_els (sel)) - pos2 = buffer_or_string_memind_to_bytind + pos2 = buffer_or_string_membpos_to_bytebpos (obj, extent_end (extent_list_at (sel, elind2, 1))); else pos2 = limit; @@ -2552,16 +2552,16 @@ return min (min (pos1, pos2), limit); } -static Bytind -extent_find_beginning_of_run (Lisp_Object obj, Bytind pos, +static Bytebpos +extent_find_beginning_of_run (Lisp_Object obj, Bytebpos pos, int outside_accessible) { Extent_List *sel; Extent_List *bel = buffer_or_string_extent_list (obj); - Bytind pos1, pos2; + Bytebpos pos1, pos2; int elind1, elind2; - Memind mempos = buffer_or_string_bytind_to_memind (obj, pos); - Bytind limit = outside_accessible ? + Membpos mempos = buffer_or_string_bytebpos_to_membpos (obj, pos); + Bytebpos limit = outside_accessible ? buffer_or_string_absolute_begin_byte (obj) : buffer_or_string_accessible_begin_byte (obj); @@ -2574,7 +2574,7 @@ /* Find the first end position before POS. */ elind1 = extent_list_locate_from_pos (bel, mempos, 1); if (elind1 > 0) - pos1 = buffer_or_string_memind_to_bytind + pos1 = buffer_or_string_membpos_to_bytebpos (obj, extent_end (extent_list_at (bel, elind1 - 1, 1))); else pos1 = limit; @@ -2584,7 +2584,7 @@ equal to POS1, so we just have to look in the SOE. */ elind2 = extent_list_locate_from_pos (sel, mempos, 0); if (elind2 > 0) - pos2 = buffer_or_string_memind_to_bytind + pos2 = buffer_or_string_membpos_to_bytebpos (obj, extent_start (extent_list_at (sel, elind2 - 1, 0))); else pos2 = limit; @@ -2753,14 +2753,14 @@ face_index extent_fragment_update (struct window *w, struct extent_fragment *ef, - Bytind pos) + Bytebpos pos) { int i; Extent_List *sel = buffer_or_string_stack_of_extents_force (ef->object)->extents; EXTENT lhe = 0; struct extent dummy_lhe_extent; - Memind mempos = buffer_or_string_bytind_to_memind (ef->object, pos); + Membpos mempos = buffer_or_string_bytebpos_to_membpos (ef->object, pos); #ifdef ERROR_CHECK_EXTENTS assert (pos >= buffer_or_string_accessible_begin_byte (ef->object) @@ -3104,7 +3104,7 @@ depth)); } -static Hash_Code +static Hashcode extent_hash (Lisp_Object obj, int depth) { struct extent *e = XEXTENT (obj); @@ -3262,7 +3262,7 @@ if (extent_detached_p (extent)) return Qnil; else - return make_int (extent_endpoint_bufpos (extent, endp)); + return make_int (extent_endpoint_charbpos (extent, endp)); } DEFUN ("extentp", Fextentp, 1, 1, 0, /* @@ -3319,8 +3319,8 @@ (extent)) { EXTENT e = decode_extent (extent, DE_MUST_BE_ATTACHED); - return make_int (extent_endpoint_bufpos (e, 1) - - extent_endpoint_bufpos (e, 0)); + return make_int (extent_endpoint_charbpos (e, 1) + - extent_endpoint_charbpos (e, 0)); } DEFUN ("next-extent", Fnext_extent, 1, 1, 0, /* @@ -3431,11 +3431,11 @@ (pos, object)) { Lisp_Object obj = decode_buffer_or_string (object); - Bytind bpos; + Bytebpos bpos; bpos = get_buffer_or_string_pos_byte (obj, pos, GB_ALLOW_PAST_ACCESSIBLE); bpos = extent_find_end_of_run (obj, bpos, 1); - return make_int (buffer_or_string_bytind_to_bufpos (obj, bpos)); + return make_int (buffer_or_string_bytebpos_to_charbpos (obj, bpos)); } DEFUN ("previous-extent-change", Fprevious_extent_change, 1, 2, 0, /* @@ -3447,11 +3447,11 @@ (pos, object)) { Lisp_Object obj = decode_buffer_or_string (object); - Bytind bpos; + Bytebpos bpos; bpos = get_buffer_or_string_pos_byte (obj, pos, GB_ALLOW_PAST_ACCESSIBLE); bpos = extent_find_beginning_of_run (obj, bpos, 1); - return make_int (buffer_or_string_bytind_to_bufpos (obj, bpos)); + return make_int (buffer_or_string_bytebpos_to_charbpos (obj, bpos)); } @@ -3575,7 +3575,7 @@ */ static void -set_extent_endpoints_1 (EXTENT extent, Memind start, Memind end) +set_extent_endpoints_1 (EXTENT extent, Membpos start, Membpos end) { #ifdef ERROR_CHECK_EXTENTS Lisp_Object obj = extent_object (extent); @@ -3583,8 +3583,8 @@ assert (start <= end); if (BUFFERP (obj)) { - assert (valid_memind_p (XBUFFER (obj), start)); - assert (valid_memind_p (XBUFFER (obj), end)); + assert (valid_membpos_p (XBUFFER (obj), start)); + assert (valid_membpos_p (XBUFFER (obj), end)); } #endif @@ -3615,9 +3615,9 @@ OBJECT. (If OBJECT is nil, do not change the extent's object.) */ void -set_extent_endpoints (EXTENT extent, Bytind s, Bytind e, Lisp_Object object) +set_extent_endpoints (EXTENT extent, Bytebpos s, Bytebpos e, Lisp_Object object) { - Memind start, end; + Membpos start, end; if (NILP (object)) { @@ -3631,9 +3631,9 @@ } start = s < 0 ? extent_start (extent) : - buffer_or_string_bytind_to_memind (object, s); + buffer_or_string_bytebpos_to_membpos (object, s); end = e < 0 ? extent_end (extent) : - buffer_or_string_bytind_to_memind (object, e); + buffer_or_string_bytebpos_to_membpos (object, e); set_extent_endpoints_1 (extent, start, end); } @@ -3649,7 +3649,7 @@ } static EXTENT -make_extent_internal (Lisp_Object object, Bytind from, Bytind to) +make_extent_internal (Lisp_Object object, Bytebpos from, Bytebpos to) { EXTENT extent; @@ -3659,7 +3659,7 @@ } static EXTENT -copy_extent (EXTENT original, Bytind from, Bytind to, Lisp_Object object) +copy_extent (EXTENT original, Bytebpos from, Bytebpos to, Lisp_Object object) { EXTENT e; @@ -3741,7 +3741,7 @@ } else { - Bytind start, end; + Bytebpos start, end; get_buffer_or_string_range_byte (obj, from, to, &start, &end, GB_ALLOW_PAST_ACCESSIBLE); @@ -3824,7 +3824,7 @@ (extent, start, end, buffer_or_string)) { EXTENT ext; - Bytind s, e; + Bytebpos s, e; ext = decode_extent (extent, 0); @@ -3916,7 +3916,7 @@ */ (extent, from, to, flags)) { - Bytind start, end; + Bytebpos start, end; EXTENT ext = decode_extent (extent, DE_MUST_BE_ATTACHED); Lisp_Object obj = extent_object (ext); @@ -4040,7 +4040,7 @@ /* This function can GC */ struct slow_map_extents_arg closure; unsigned int me_flags; - Bytind start, end; + Bytebpos start, end; struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; EXTENT after = 0; @@ -4075,7 +4075,7 @@ closure.property = property; closure.value = value; - map_extents_bytind (start, end, slow_map_extents_function, + map_extents_bytebpos (start, end, slow_map_extents_function, (void *) &closure, object, after, /* You never know what the user might do ... */ me_flags | ME_MIGHT_CALL_ELISP); @@ -4100,9 +4100,9 @@ Lisp_Object result; Lisp_Object property; Lisp_Object value; - Bytind start_min; - Bytind prev_start; - Bytind prev_end; + Bytebpos start_min; + Bytebpos prev_start; + Bytebpos prev_end; }; static int @@ -4112,8 +4112,8 @@ struct slow_map_extent_children_arg *closure = (struct slow_map_extent_children_arg *) arg; Lisp_Object extent_obj; - Bytind start = extent_endpoint_bytind (extent, 0); - Bytind end = extent_endpoint_bytind (extent, 1); + Bytebpos start = extent_endpoint_bytebpos (extent, 0); + Bytebpos end = extent_endpoint_bytebpos (extent, 1); /* Make sure the extent starts inside the region of interest, rather than just overlaps it. */ @@ -4156,8 +4156,8 @@ buffer positions here. */ closure->start_min = -1; /* no need for this any more */ - closure->prev_start = extent_endpoint_bytind (extent, 0); - closure->prev_end = extent_endpoint_bytind (extent, 1); + closure->prev_start = extent_endpoint_bytebpos (extent, 0); + closure->prev_end = extent_endpoint_bytebpos (extent, 1); return !NILP (closure->result); } @@ -4181,7 +4181,7 @@ /* This function can GC */ struct slow_map_extent_children_arg closure; unsigned int me_flags; - Bytind start, end; + Bytebpos start, end; struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; EXTENT after = 0; @@ -4218,7 +4218,7 @@ closure.start_min = start; closure.prev_start = -1; closure.prev_end = -1; - map_extents_bytind (start, end, slow_map_extent_children_function, + map_extents_bytebpos (start, end, slow_map_extent_children_function, (void *) &closure, object, after, /* You never know what the user might do ... */ me_flags | ME_MIGHT_CALL_ELISP); @@ -4241,8 +4241,8 @@ struct extent_at_arg { Lisp_Object best_match; /* or list of extents */ - Memind best_start; - Memind best_end; + Membpos best_start; + Membpos best_end; Lisp_Object prop; EXTENT before; int all_extents; @@ -4325,7 +4325,7 @@ } static Lisp_Object -extent_at_bytind (Bytind position, Lisp_Object object, Lisp_Object property, +extent_at_bytebpos (Bytebpos position, Lisp_Object object, Lisp_Object property, EXTENT before, enum extent_at_flag at_flag, int all_extents) { struct extent_at_arg closure; @@ -4353,7 +4353,7 @@ closure.all_extents = all_extents; GCPRO1 (closure.best_match); - map_extents_bytind (at_flag == EXTENT_AT_BEFORE ? position - 1 : position, + map_extents_bytebpos (at_flag == EXTENT_AT_BEFORE ? position - 1 : position, at_flag == EXTENT_AT_AFTER ? position + 1 : position, extent_at_mapper, (void *) &closure, object, 0, ME_START_OPEN | ME_ALL_EXTENTS_CLOSED); @@ -4394,7 +4394,7 @@ */ (pos, object, property, before, at_flag)) { - Bytind position; + Bytebpos position; EXTENT before_extent; enum extent_at_flag fl; @@ -4408,7 +4408,7 @@ invalid_argument ("extent not in specified buffer or string", object); fl = decode_extent_at_flag (at_flag); - return extent_at_bytind (position, object, property, before_extent, fl, 0); + return extent_at_bytebpos (position, object, property, before_extent, fl, 0); } DEFUN ("extents-at", Fextents_at, 1, 5, 0, /* @@ -4444,7 +4444,7 @@ */ (pos, object, property, before, at_flag)) { - Bytind position; + Bytebpos position; EXTENT before_extent; enum extent_at_flag fl; @@ -4458,7 +4458,7 @@ invalid_argument ("extent not in specified buffer or string", object); fl = decode_extent_at_flag (at_flag); - return extent_at_bytind (position, object, property, before_extent, fl, 1); + return extent_at_bytebpos (position, object, property, before_extent, fl, 1); } /* ------------------------------- */ @@ -4473,8 +4473,8 @@ struct verify_extents_arg { Lisp_Object object; - Memind start; - Memind end; + Membpos start; + Membpos end; Lisp_Object iro; /* value of inhibit-read-only */ }; @@ -4514,7 +4514,7 @@ efficiency */ void -verify_extent_modification (Lisp_Object object, Bytind from, Bytind to, +verify_extent_modification (Lisp_Object object, Bytebpos from, Bytebpos to, Lisp_Object inhibit_read_only_value) { int closed; @@ -4529,11 +4529,11 @@ As far as I know, this doesn't currently occur in XEmacs. --ben */ closed = (from==to); closure.object = object; - closure.start = buffer_or_string_bytind_to_memind (object, from); - closure.end = buffer_or_string_bytind_to_memind (object, to); + closure.start = buffer_or_string_bytebpos_to_membpos (object, from); + closure.end = buffer_or_string_bytebpos_to_membpos (object, to); closure.iro = inhibit_read_only_value; - map_extents_bytind (from, to, verify_extent_mapper, (void *) &closure, + map_extents_bytebpos (from, to, verify_extent_mapper, (void *) &closure, object, 0, closed ? ME_END_CLOSED : ME_START_OPEN); } @@ -4543,7 +4543,7 @@ struct process_extents_for_insertion_arg { - Bytind opoint; + Bytebpos opoint; int length; Lisp_Object object; }; @@ -4558,7 +4558,7 @@ { struct process_extents_for_insertion_arg *closure = (struct process_extents_for_insertion_arg *) arg; - Memind indice = buffer_or_string_bytind_to_memind (closure->object, + Membpos indice = buffer_or_string_bytebpos_to_membpos (closure->object, closure->opoint); /* When this function is called, one end of the newly-inserted text should @@ -4594,8 +4594,8 @@ it. */ { - Memind new_start = extent_start (extent); - Memind new_end = extent_end (extent); + Membpos new_start = extent_start (extent); + Membpos new_end = extent_end (extent); if (indice == extent_start (extent) && extent_start_open_p (extent) /* zero-length () extents are exempt; see comment above. */ @@ -4612,7 +4612,7 @@ } void -process_extents_for_insertion (Lisp_Object object, Bytind opoint, +process_extents_for_insertion (Lisp_Object object, Bytebpos opoint, Bytecount length) { struct process_extents_for_insertion_arg closure; @@ -4621,7 +4621,7 @@ closure.length = length; closure.object = object; - map_extents_bytind (opoint, opoint + length, + map_extents_bytebpos (opoint, opoint + length, process_extents_for_insertion_mapper, (void *) &closure, object, 0, ME_END_CLOSED | ME_MIGHT_MODIFY_EXTENTS | @@ -4634,7 +4634,7 @@ struct process_extents_for_deletion_arg { - Memind start, end; + Membpos start, end; int destroy_included_extents; }; @@ -4672,16 +4672,16 @@ be a function process_extents_for_destruction(), #if 0'd out, that did the equivalent). */ void -process_extents_for_deletion (Lisp_Object object, Bytind from, - Bytind to, int destroy_them) +process_extents_for_deletion (Lisp_Object object, Bytebpos from, + Bytebpos to, int destroy_them) { struct process_extents_for_deletion_arg closure; - closure.start = buffer_or_string_bytind_to_memind (object, from); - closure.end = buffer_or_string_bytind_to_memind (object, to); + closure.start = buffer_or_string_bytebpos_to_membpos (object, from); + closure.end = buffer_or_string_bytebpos_to_membpos (object, to); closure.destroy_included_extents = destroy_them; - map_extents_bytind (from, to, process_extents_for_deletion_mapper, + map_extents_bytebpos (from, to, process_extents_for_deletion_mapper, (void *) &closure, object, 0, ME_END_CLOSED | ME_MIGHT_MODIFY_EXTENTS); } @@ -4691,7 +4691,7 @@ /* ------------------------------- */ struct report_extent_modification_closure { Lisp_Object buffer; - Bufpos start, end; + Charbpos start, end; int afterp; int speccount; }; @@ -4727,7 +4727,7 @@ One confusing thing here is that our caller never actually calls unbind_to (closure.speccount, Qnil). This is because - map_extents_bytind() unbinds before, and with a smaller + map_extents_bytebpos() unbinds before, and with a smaller speccount. The additional unbind_to() in report_extent_modification() would cause XEmacs to abort. */ if (closure->speccount == -1) @@ -4764,7 +4764,7 @@ } void -report_extent_modification (Lisp_Object buffer, Bufpos start, Bufpos end, +report_extent_modification (Lisp_Object buffer, Charbpos start, Charbpos end, int afterp) { struct report_extent_modification_closure closure; @@ -5670,7 +5670,7 @@ /* copy/paste hooks */ static int -run_extent_copy_paste_internal (EXTENT e, Bufpos from, Bufpos to, +run_extent_copy_paste_internal (EXTENT e, Charbpos from, Charbpos to, Lisp_Object object, Lisp_Object prop) { @@ -5697,29 +5697,29 @@ } static int -run_extent_copy_function (EXTENT e, Bytind from, Bytind to) +run_extent_copy_function (EXTENT e, Bytebpos from, Bytebpos to) { Lisp_Object object = extent_object (e); /* This function can GC */ return run_extent_copy_paste_internal - (e, buffer_or_string_bytind_to_bufpos (object, from), - buffer_or_string_bytind_to_bufpos (object, to), object, + (e, buffer_or_string_bytebpos_to_charbpos (object, from), + buffer_or_string_bytebpos_to_charbpos (object, to), object, Qcopy_function); } static int -run_extent_paste_function (EXTENT e, Bytind from, Bytind to, +run_extent_paste_function (EXTENT e, Bytebpos from, Bytebpos to, Lisp_Object object) { /* This function can GC */ return run_extent_copy_paste_internal - (e, buffer_or_string_bytind_to_bufpos (object, from), - buffer_or_string_bytind_to_bufpos (object, to), object, + (e, buffer_or_string_bytebpos_to_charbpos (object, from), + buffer_or_string_bytebpos_to_charbpos (object, to), object, Qpaste_function); } static void -update_extent (EXTENT extent, Bytind from, Bytind to) +update_extent (EXTENT extent, Bytebpos from, Bytebpos to) { set_extent_endpoints (extent, from, to, Qnil); } @@ -5729,7 +5729,7 @@ This code does not handle the case of undo. */ static Lisp_Object -insert_extent (EXTENT extent, Bytind new_start, Bytind new_end, +insert_extent (EXTENT extent, Bytebpos new_start, Bytebpos new_end, Lisp_Object object, int run_hooks) { /* This function can GC */ @@ -5749,8 +5749,8 @@ } else { - Bytind exstart = extent_endpoint_bytind (extent, 0); - Bytind exend = extent_endpoint_bytind (extent, 1); + Bytebpos exstart = extent_endpoint_bytebpos (extent, 0); + Bytebpos exend = extent_endpoint_bytebpos (extent, 1); if (exend < new_start || exstart > new_end) goto copy_it; @@ -5793,7 +5793,7 @@ { EXTENT ext = decode_extent (extent, 0); Lisp_Object copy; - Bytind s, e; + Bytebpos s, e; buffer_or_string = decode_buffer_or_string (buffer_or_string); get_buffer_or_string_range_byte (buffer_or_string, start, end, &s, &e, @@ -5813,7 +5813,7 @@ struct add_string_extents_arg { - Bytind from; + Bytebpos from; Bytecount length; Lisp_Object string; }; @@ -5824,8 +5824,8 @@ /* This function can GC */ struct add_string_extents_arg *closure = (struct add_string_extents_arg *) arg; - Bytecount start = extent_endpoint_bytind (extent, 0) - closure->from; - Bytecount end = extent_endpoint_bytind (extent, 1) - closure->from; + Bytecount start = extent_endpoint_bytebpos (extent, 0) - closure->from; + Bytecount end = extent_endpoint_bytebpos (extent, 1) - closure->from; if (extent_duplicable_p (extent)) { @@ -5848,7 +5848,7 @@ /* Add the extents in buffer BUF from OPOINT to OPOINT+LENGTH to the string STRING. */ void -add_string_extents (Lisp_Object string, struct buffer *buf, Bytind opoint, +add_string_extents (Lisp_Object string, struct buffer *buf, Bytebpos opoint, Bytecount length) { /* This function can GC */ @@ -5861,7 +5861,7 @@ closure.string = string; buffer = make_buffer (buf); GCPRO2 (buffer, string); - map_extents_bytind (opoint, opoint + length, add_string_extents_mapper, + map_extents_bytebpos (opoint, opoint + length, add_string_extents_mapper, (void *) &closure, buffer, 0, /* ignore extents that just abut the region */ ME_END_CLOSED | ME_ALL_EXTENTS_OPEN | @@ -5875,7 +5875,7 @@ { Bytecount pos; Bytecount length; - Bytind opoint; + Bytebpos opoint; Lisp_Object buffer; }; @@ -5890,11 +5890,11 @@ NEW_START and NEW_END are the prospective buffer positions of the extent that is going into the buffer. */ - Bytind base_start = closure->opoint; - Bytind base_end = base_start + closure->length; - Bytind new_start = (base_start + extent_endpoint_bytind (extent, 0) - + Bytebpos base_start = closure->opoint; + Bytebpos base_end = base_start + closure->length; + Bytebpos new_start = (base_start + extent_endpoint_bytebpos (extent, 0) - closure->pos); - Bytind new_end = (base_start + extent_endpoint_bytind (extent, 1) - + Bytebpos new_end = (base_start + extent_endpoint_bytebpos (extent, 1) - closure->pos); if (new_start < base_start) @@ -5922,7 +5922,7 @@ void splice_in_string_extents (Lisp_Object string, struct buffer *buf, - Bytind opoint, Bytecount length, Bytecount pos) + Bytebpos opoint, Bytecount length, Bytecount pos) { struct splice_in_string_extents_arg closure; struct gcpro gcpro1, gcpro2; @@ -5934,7 +5934,7 @@ closure.length = length; closure.buffer = buffer; GCPRO2 (buffer, string); - map_extents_bytind (pos, pos + length, + map_extents_bytebpos (pos, pos + length, splice_in_string_extents_mapper, (void *) &closure, string, 0, /* ignore extents that just abut the region */ @@ -5966,8 +5966,8 @@ (struct copy_string_extents_arg *) arg; Bytecount old_start, old_end, new_start, new_end; - old_start = extent_endpoint_bytind (extent, 0); - old_end = extent_endpoint_bytind (extent, 1); + old_start = extent_endpoint_bytebpos (extent, 0); + old_end = extent_endpoint_bytebpos (extent, 1); old_start = max (closure->old_pos, old_start); old_end = min (closure->old_pos + closure->length, old_end); @@ -6000,7 +6000,7 @@ closure.new_string = new_string; closure.length = length; GCPRO2 (new_string, old_string); - map_extents_bytind (old_pos, old_pos + length, + map_extents_bytebpos (old_pos, old_pos + length, copy_string_extents_mapper, (void *) &closure, old_string, 0, /* ignore extents that just abut the region */ @@ -6030,7 +6030,7 @@ Lisp_Object Qtext_prop_extent_paste_function; static Lisp_Object -get_text_property_bytind (Bytind position, Lisp_Object prop, +get_text_property_bytebpos (Bytebpos position, Lisp_Object prop, Lisp_Object object, enum extent_at_flag fl, int text_props_only) { @@ -6039,13 +6039,13 @@ /* text_props_only specifies whether we only consider text-property extents (those with the 'text-prop property set) or all extents. */ if (!text_props_only) - extent = extent_at_bytind (position, object, prop, 0, fl, 0); + extent = extent_at_bytebpos (position, object, prop, 0, fl, 0); else { EXTENT prior = 0; while (1) { - extent = extent_at_bytind (position, object, Qtext_prop, prior, + extent = extent_at_bytebpos (position, object, Qtext_prop, prior, fl, 0); if (NILP (extent)) return Qnil; @@ -6066,7 +6066,7 @@ get_text_property_1 (Lisp_Object pos, Lisp_Object prop, Lisp_Object object, Lisp_Object at_flag, int text_props_only) { - Bytind position; + Bytebpos position; int invert = 0; object = decode_buffer_or_string (object); @@ -6090,7 +6090,7 @@ { Lisp_Object val = - get_text_property_bytind (position, prop, object, + get_text_property_bytebpos (position, prop, object, decode_extent_at_flag (at_flag), text_props_only); if (invert) @@ -6156,7 +6156,7 @@ struct put_text_prop_arg { Lisp_Object prop, value; /* The property and value we are storing */ - Bytind start, end; /* The region into which we are storing it */ + Bytebpos start, end; /* The region into which we are storing it */ Lisp_Object object; Lisp_Object the_extent; /* Our chosen extent; this is used for communication between subsequent passes. */ @@ -6170,9 +6170,9 @@ Lisp_Object object = closure->object; Lisp_Object value = closure->value; - Bytind e_start, e_end; - Bytind start = closure->start; - Bytind end = closure->end; + Bytebpos e_start, e_end; + Bytebpos start = closure->start; + Bytebpos end = closure->end; Lisp_Object extent, e_val; int is_eq; @@ -6186,8 +6186,8 @@ /* It's not for this property; do nothing. */ return 0; - e_start = extent_endpoint_bytind (e, 0); - e_end = extent_endpoint_bytind (e, 1); + e_start = extent_endpoint_bytebpos (e, 0); + e_end = extent_endpoint_bytebpos (e, 1); e_val = Fextent_property (extent, closure->prop, Qnil); is_eq = EQ (value, e_val); @@ -6201,17 +6201,17 @@ */ if (e_start != start || e_end != end) { - Bytind new_start = min (e_start, start); - Bytind new_end = max (e_end, end); + Bytebpos new_start = min (e_start, start); + Bytebpos new_end = max (e_end, end); set_extent_endpoints (e, new_start, new_end, Qnil); /* If we changed the endpoint, then we need to set its openness. */ set_extent_openness (e, new_start != e_start - ? !NILP (get_text_property_bytind + ? !NILP (get_text_property_bytebpos (start, Qstart_open, object, EXTENT_AT_AFTER, 1)) : -1, new_end != e_end - ? NILP (get_text_property_bytind + ? NILP (get_text_property_bytebpos (end - 1, Qend_closed, object, EXTENT_AT_AFTER, 1)) : -1); @@ -6253,8 +6253,8 @@ the-extent to cover it, resulting in the minimum number of extents in the buffer. */ - Bytind the_start = extent_endpoint_bytind (te, 0); - Bytind the_end = extent_endpoint_bytind (te, 1); + Bytebpos the_start = extent_endpoint_bytebpos (te, 0); + Bytebpos the_end = extent_endpoint_bytebpos (te, 1); if (e_start != the_start && /* note AND not OR -- hmm, why is this the case? I think it's because the assumption that the text-property @@ -6264,8 +6264,8 @@ falsely marked. Is this bad? */ e_end != the_end) { - Bytind new_start = min (e_start, the_start); - Bytind new_end = max (e_end, the_end); + Bytebpos new_start = min (e_start, the_start); + Bytebpos new_end = max (e_end, the_end); set_extent_endpoints (te, new_start, new_end, Qnil); /* If we changed the endpoint, then we need to set its openness. We are setting the endpoint to be the same as @@ -6288,7 +6288,7 @@ if (e_end != start) { set_extent_endpoints (e, e_start, start, Qnil); - set_extent_openness (e, -1, NILP (get_text_property_bytind + set_extent_openness (e, -1, NILP (get_text_property_bytebpos (start - 1, Qend_closed, object, EXTENT_AT_AFTER, 1))); closure->changed_p = 1; @@ -6302,7 +6302,7 @@ if (e_start != end) { set_extent_endpoints (e, end, e_end, Qnil); - set_extent_openness (e, !NILP (get_text_property_bytind + set_extent_openness (e, !NILP (get_text_property_bytebpos (end, Qstart_open, object, EXTENT_AT_AFTER, 1)), -1); closure->changed_p = 1; @@ -6313,11 +6313,11 @@ /* Otherwise, `extent' straddles the region. We need to split it. */ set_extent_endpoints (e, e_start, start, Qnil); - set_extent_openness (e, -1, NILP (get_text_property_bytind + set_extent_openness (e, -1, NILP (get_text_property_bytebpos (start - 1, Qend_closed, object, EXTENT_AT_AFTER, 1))); set_extent_openness (copy_extent (e, end, e_end, extent_object (e)), - !NILP (get_text_property_bytind + !NILP (get_text_property_bytebpos (end, Qstart_open, object, EXTENT_AT_AFTER, 1)), -1); closure->changed_p = 1; @@ -6330,13 +6330,13 @@ put_text_prop_openness_mapper (EXTENT e, void *arg) { struct put_text_prop_arg *closure = (struct put_text_prop_arg *) arg; - Bytind e_start, e_end; - Bytind start = closure->start; - Bytind end = closure->end; + Bytebpos e_start, e_end; + Bytebpos start = closure->start; + Bytebpos end = closure->end; Lisp_Object extent; XSETEXTENT (extent, e); - e_start = extent_endpoint_bytind (e, 0); - e_end = extent_endpoint_bytind (e, 1); + e_start = extent_endpoint_bytebpos (e, 0); + e_end = extent_endpoint_bytebpos (e, 1); if (NILP (Fextent_property (extent, Qtext_prop, Qnil))) { @@ -6355,7 +6355,7 @@ } static int -put_text_prop (Bytind start, Bytind end, Lisp_Object object, +put_text_prop (Bytebpos start, Bytebpos end, Lisp_Object object, Lisp_Object prop, Lisp_Object value, int duplicable_p) { @@ -6388,7 +6388,7 @@ closure.changed_p = 0; closure.the_extent = Qnil; - map_extents_bytind (start, end, + map_extents_bytebpos (start, end, put_text_prop_mapper, (void *) &closure, object, 0, /* get all extents that abut the region */ @@ -6397,7 +6397,7 @@ fucked with the extent plist. */ /* #### dmoore - I think this should include ME_MIGHT_MOVE_SOE, since the callback function - might recurse back into map_extents_bytind. */ + might recurse back into map_extents_bytebpos. */ ME_MIGHT_THROW | ME_MIGHT_MODIFY_EXTENTS); @@ -6419,17 +6419,17 @@ Qtext_prop_extent_paste_function); } set_extent_openness (XEXTENT (extent), - !NILP (get_text_property_bytind + !NILP (get_text_property_bytebpos (start, Qstart_open, object, EXTENT_AT_AFTER, 1)), - NILP (get_text_property_bytind + NILP (get_text_property_bytebpos (end - 1, Qend_closed, object, EXTENT_AT_AFTER, 1))); } if (EQ (prop, Qstart_open) || EQ (prop, Qend_closed)) { - map_extents_bytind (start, end, + map_extents_bytebpos (start, end, put_text_prop_openness_mapper, (void *) &closure, object, 0, /* get all extents that abut the region */ @@ -6450,7 +6450,7 @@ (start, end, prop, value, object)) { /* This function can GC */ - Bytind s, e; + Bytebpos s, e; object = decode_buffer_or_string (object); get_buffer_or_string_range_byte (object, start, end, &s, &e, 0); @@ -6470,7 +6470,7 @@ (start, end, prop, value, object)) { /* This function can GC */ - Bytind s, e; + Bytebpos s, e; object = decode_buffer_or_string (object); get_buffer_or_string_range_byte (object, start, end, &s, &e, 0); @@ -6489,7 +6489,7 @@ { /* This function can GC */ int changed = 0; - Bytind s, e; + Bytebpos s, e; object = decode_buffer_or_string (object); get_buffer_or_string_range_byte (object, start, end, &s, &e, 0); @@ -6517,7 +6517,7 @@ { /* This function can GC */ int changed = 0; - Bytind s, e; + Bytebpos s, e; object = decode_buffer_or_string (object); get_buffer_or_string_range_byte (object, start, end, &s, &e, 0); @@ -6542,7 +6542,7 @@ { /* This function can GC */ int changed = 0; - Bytind s, e; + Bytebpos s, e; object = decode_buffer_or_string (object); get_buffer_or_string_range_byte (object, start, end, &s, &e, 0); @@ -6619,8 +6619,8 @@ */ (pos, prop, object, limit)) { - Bufpos bpos; - Bufpos blim; + Charbpos bpos; + Charbpos blim; Lisp_Object extent, value; int limit_was_nil; @@ -6686,8 +6686,8 @@ */ (pos, prop, object, limit)) { - Bufpos bpos; - Bufpos blim; + Charbpos bpos; + Charbpos blim; Lisp_Object extent, value; int limit_was_nil; diff --text -u 'xemacs-21.5.3/src/extents.h' 'xemacs-21.5.4/src/extents.h' Index: ././src/extents.h --- ././src/extents.h Mon Aug 13 13:46:21 2001 +++ ././src/extents.h Thu Sep 20 15:28:57 2001 @@ -44,8 +44,8 @@ { struct lrecord_header lheader; - Memind start; - Memind end; + Membpos start; + Membpos end; Lisp_Object object; /* A buffer, string, Qnil (extent detached from no buffer), Qt (destroyed extent) */ @@ -351,8 +351,8 @@ struct frame *frm); face_index extent_fragment_update (struct window *w, struct extent_fragment *ef, - /* Note this is in Bytinds */ - Bytind pos); + /* Note this is in Bytebposs */ + Bytebpos pos); void extent_fragment_delete (struct extent_fragment *ef); @@ -378,32 +378,32 @@ void init_buffer_extents (struct buffer *b); void uninit_buffer_extents (struct buffer *b); typedef int (*map_extents_fun) (EXTENT extent, void *arg); -void map_extents (Bufpos from, Bufpos to, map_extents_fun fn, +void map_extents (Charbpos from, Charbpos to, map_extents_fun fn, void *arg, Lisp_Object obj, EXTENT after, unsigned int flags); -/* Note the following five functions are NOT in Bufpos's */ -void adjust_extents (Lisp_Object object, Memind from, - Memind to, int amount); -void adjust_extents_for_deletion (Lisp_Object object, Bytind from, - Bytind to, int gapsize, +/* Note the following five functions are NOT in Charbpos's */ +void adjust_extents (Lisp_Object object, Membpos from, + Membpos to, int amount); +void adjust_extents_for_deletion (Lisp_Object object, Bytebpos from, + Bytebpos to, int gapsize, int numdel, int movegapsize); -void verify_extent_modification (Lisp_Object object, Bytind from, - Bytind to, +void verify_extent_modification (Lisp_Object object, Bytebpos from, + Bytebpos to, Lisp_Object inhibit_read_only_value); void process_extents_for_insertion (Lisp_Object object, - Bytind opoint, Bytecount length); -void process_extents_for_deletion (Lisp_Object object, Bytind from, - Bytind to, int destroy_them); -void report_extent_modification (Lisp_Object, Bufpos, Bufpos, int); + Bytebpos opoint, Bytecount length); +void process_extents_for_deletion (Lisp_Object object, Bytebpos from, + Bytebpos to, int destroy_them); +void report_extent_modification (Lisp_Object, Charbpos, Charbpos, int); void set_extent_glyph (EXTENT extent, Lisp_Object glyph, int endp, glyph_layout layout); void add_string_extents (Lisp_Object string, struct buffer *buf, - Bytind opoint, Bytecount length); + Bytebpos opoint, Bytecount length); void splice_in_string_extents (Lisp_Object string, struct buffer *buf, - Bytind opoint, Bytecount length, + Bytebpos opoint, Bytecount length, Bytecount pos); void copy_string_extents (Lisp_Object new_string, Lisp_Object old_string, @@ -411,7 +411,7 @@ Bytecount length); void detach_all_extents (Lisp_Object object); -void set_extent_endpoints (EXTENT extent, Bytind s, Bytind e, +void set_extent_endpoints (EXTENT extent, Bytebpos s, Bytebpos e, Lisp_Object object); #ifdef ERROR_CHECK_EXTENTS diff --text -u 'xemacs-21.5.3/src/faces.c' 'xemacs-21.5.4/src/faces.c' Index: ././src/faces.c --- ././src/faces.c Mon Aug 13 13:46:22 2001 +++ ././src/faces.c Thu Sep 20 15:28:57 2001 @@ -150,7 +150,7 @@ ! plists_differ (f1->plist, f2->plist, 0, 0, depth + 1)); } -static Hash_Code +static Hashcode face_hash (Lisp_Object obj, int depth) { Lisp_Face *f = XFACE (obj); diff --text -u 'xemacs-21.5.3/src/file-coding.c' 'xemacs-21.5.4/src/file-coding.c' Index: ././src/file-coding.c --- ././src/file-coding.c Mon Aug 13 13:46:22 2001 +++ ././src/file-coding.c Thu Sep 20 15:28:57 2001 @@ -174,47 +174,47 @@ #ifdef MULE struct detection_state; static int detect_coding_sjis (struct detection_state *st, - const Extbyte *src, Lstream_Data_Count n); + const Extbyte *src, Bytecount n); static void decode_coding_sjis (Lstream *decoding, const Extbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n); -static void encode_coding_sjis (Lstream *encoding, const Bufbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n); + unsigned_char_dynarr *dst, Bytecount n); +static void encode_coding_sjis (Lstream *encoding, const Intbyte *src, + unsigned_char_dynarr *dst, Bytecount n); static int detect_coding_big5 (struct detection_state *st, - const Extbyte *src, Lstream_Data_Count n); + const Extbyte *src, Bytecount n); static void decode_coding_big5 (Lstream *decoding, const Extbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n); -static void encode_coding_big5 (Lstream *encoding, const Bufbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n); + unsigned_char_dynarr *dst, Bytecount n); +static void encode_coding_big5 (Lstream *encoding, const Intbyte *src, + unsigned_char_dynarr *dst, Bytecount n); static int detect_coding_ucs4 (struct detection_state *st, - const Extbyte *src, Lstream_Data_Count n); + const Extbyte *src, Bytecount n); static void decode_coding_ucs4 (Lstream *decoding, const Extbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n); -static void encode_coding_ucs4 (Lstream *encoding, const Bufbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n); + unsigned_char_dynarr *dst, Bytecount n); +static void encode_coding_ucs4 (Lstream *encoding, const Intbyte *src, + unsigned_char_dynarr *dst, Bytecount n); static int detect_coding_utf8 (struct detection_state *st, - const Extbyte *src, Lstream_Data_Count n); + const Extbyte *src, Bytecount n); static void decode_coding_utf8 (Lstream *decoding, const Extbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n); -static void encode_coding_utf8 (Lstream *encoding, const Bufbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n); + unsigned_char_dynarr *dst, Bytecount n); +static void encode_coding_utf8 (Lstream *encoding, const Intbyte *src, + unsigned_char_dynarr *dst, Bytecount n); static int postprocess_iso2022_mask (int mask); static void reset_iso2022 (Lisp_Object coding_system, struct iso2022_decoder *iso); static int detect_coding_iso2022 (struct detection_state *st, - const Extbyte *src, Lstream_Data_Count n); + const Extbyte *src, Bytecount n); static void decode_coding_iso2022 (Lstream *decoding, const Extbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n); -static void encode_coding_iso2022 (Lstream *encoding, const Bufbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n); + unsigned_char_dynarr *dst, Bytecount n); +static void encode_coding_iso2022 (Lstream *encoding, const Intbyte *src, + unsigned_char_dynarr *dst, Bytecount n); #endif /* MULE */ static void decode_coding_no_conversion (Lstream *decoding, const Extbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n); -static void encode_coding_no_conversion (Lstream *encoding, const Bufbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n); + unsigned_char_dynarr *dst, Bytecount n); +static void encode_coding_no_conversion (Lstream *encoding, const Intbyte *src, + unsigned_char_dynarr *dst, Bytecount n); static void mule_decode (Lstream *decoding, const Extbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n); -static void mule_encode (Lstream *encoding, const Bufbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n); + unsigned_char_dynarr *dst, Bytecount n); +static void mule_encode (Lstream *encoding, const Intbyte *src, + unsigned_char_dynarr *dst, Bytecount n); typedef struct codesys_prop codesys_prop; struct codesys_prop @@ -1617,7 +1617,7 @@ static eol_type_t detect_eol_type (struct detection_state *st, const Extbyte *src, - Lstream_Data_Count n) + Bytecount n) { while (n--) { @@ -1660,7 +1660,7 @@ static int detect_coding_type (struct detection_state *st, const Extbyte *src, - Lstream_Data_Count n, int just_do_eol) + Bytecount n, int just_do_eol) { if (st->eol_type == EOL_AUTODETECT) st->eol_type = detect_eol_type (st, src, n); @@ -1791,7 +1791,7 @@ Extbyte buf[4096]; Lisp_Object coding_system = Qnil; Extbyte *p; - Lstream_Data_Count nread = Lstream_read (stream, buf, sizeof (buf)); + Bytecount nread = Lstream_read (stream, buf, sizeof (buf)); Extbyte *scan_end; /* Look for initial "-*-"; mode line prefix */ @@ -1907,7 +1907,7 @@ { Lisp_Object val = Qnil; struct buffer *buf = decode_buffer (buffer, 0); - Bufpos b, e; + Charbpos b, e; Lisp_Object instream, lb_instream; Lstream *istr, *lb_istr; struct detection_state decst; @@ -1925,7 +1925,7 @@ while (1) { Extbyte random_buffer[4096]; - Lstream_Data_Count nread = Lstream_read (istr, random_buffer, sizeof (random_buffer)); + Bytecount nread = Lstream_read (istr, random_buffer, sizeof (random_buffer)); if (!nread) break; @@ -2092,10 +2092,10 @@ struct detection_state decst; }; -static Lstream_Data_Count decoding_reader (Lstream *stream, - unsigned char *data, Lstream_Data_Count size); -static Lstream_Data_Count decoding_writer (Lstream *stream, - const unsigned char *data, Lstream_Data_Count size); +static Bytecount decoding_reader (Lstream *stream, + unsigned char *data, Bytecount size); +static Bytecount decoding_writer (Lstream *stream, + const unsigned char *data, Bytecount size); static int decoding_rewinder (Lstream *stream); static int decoding_seekable_p (Lstream *stream); static int decoding_flusher (Lstream *stream); @@ -2127,12 +2127,12 @@ /* Read SIZE bytes of data and store it into DATA. We are a decoding stream so we read data from the other end, decode it, and store it into DATA. */ -static Lstream_Data_Count -decoding_reader (Lstream *stream, unsigned char *data, Lstream_Data_Count size) +static Bytecount +decoding_reader (Lstream *stream, unsigned char *data, Bytecount size) { struct decoding_stream *str = DECODING_STREAM_DATA (stream); unsigned char *orig_data = data; - Lstream_Data_Count read_size; + Bytecount read_size; int error_occurred = 0; /* We need to interface to mule_decode(), which expects to take some @@ -2148,7 +2148,7 @@ most SIZE bytes, and delete the data from the runoff. */ if (Dynarr_length (str->runoff) > 0) { - Lstream_Data_Count chunk = min (size, (Lstream_Data_Count) Dynarr_length (str->runoff)); + Bytecount chunk = min (size, (Bytecount) Dynarr_length (str->runoff)); memcpy (data, Dynarr_atp (str->runoff, 0), chunk); Dynarr_delete_many (str->runoff, 0, chunk); data += chunk; @@ -2189,11 +2189,11 @@ return data - orig_data; } -static Lstream_Data_Count -decoding_writer (Lstream *stream, const unsigned char *data, Lstream_Data_Count size) +static Bytecount +decoding_writer (Lstream *stream, const unsigned char *data, Bytecount size) { struct decoding_stream *str = DECODING_STREAM_DATA (stream); - Lstream_Data_Count retval; + Bytecount retval; /* Decode all our data into the runoff, and then attempt to write it all out to the other end. Remove whatever chunk we succeeded @@ -2351,7 +2351,7 @@ static void mule_decode (Lstream *decoding, const Extbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n) + unsigned_char_dynarr *dst, Bytecount n) { struct decoding_stream *str = DECODING_STREAM_DATA (decoding); @@ -2439,7 +2439,7 @@ */ (start, end, coding_system, buffer)) { - Bufpos b, e; + Charbpos b, e; struct buffer *buf = decode_buffer (buffer, 0); Lisp_Object instream, lb_outstream, de_outstream, outstream; Lstream *istr, *ostr; @@ -2471,9 +2471,9 @@ while (1) { char tempbuf[1024]; /* some random amount */ - Bufpos newpos, even_newer_pos; - Bufpos oldpos = lisp_buffer_stream_startpos (istr); - Lstream_Data_Count size_in_bytes = Lstream_read (istr, tempbuf, sizeof (tempbuf)); + Charbpos newpos, even_newer_pos; + Charbpos oldpos = lisp_buffer_stream_startpos (istr); + Bytecount size_in_bytes = Lstream_read (istr, tempbuf, sizeof (tempbuf)); if (!size_in_bytes) break; @@ -2558,9 +2558,9 @@ #endif /* MULE */ }; -static Lstream_Data_Count encoding_reader (Lstream *stream, unsigned char *data, Lstream_Data_Count size); -static Lstream_Data_Count encoding_writer (Lstream *stream, const unsigned char *data, - Lstream_Data_Count size); +static Bytecount encoding_reader (Lstream *stream, unsigned char *data, Bytecount size); +static Bytecount encoding_writer (Lstream *stream, const unsigned char *data, + Bytecount size); static int encoding_rewinder (Lstream *stream); static int encoding_seekable_p (Lstream *stream); static int encoding_flusher (Lstream *stream); @@ -2592,12 +2592,12 @@ /* Read SIZE bytes of data and store it into DATA. We are a encoding stream so we read data from the other end, encode it, and store it into DATA. */ -static Lstream_Data_Count -encoding_reader (Lstream *stream, unsigned char *data, Lstream_Data_Count size) +static Bytecount +encoding_reader (Lstream *stream, unsigned char *data, Bytecount size) { struct encoding_stream *str = ENCODING_STREAM_DATA (stream); unsigned char *orig_data = data; - Lstream_Data_Count read_size; + Bytecount read_size; int error_occurred = 0; /* We need to interface to mule_encode(), which expects to take some @@ -2654,11 +2654,11 @@ return data - orig_data; } -static Lstream_Data_Count -encoding_writer (Lstream *stream, const unsigned char *data, Lstream_Data_Count size) +static Bytecount +encoding_writer (Lstream *stream, const unsigned char *data, Bytecount size) { struct encoding_stream *str = ENCODING_STREAM_DATA (stream); - Lstream_Data_Count retval; + Bytecount retval; /* Encode all our data into the runoff, and then attempt to write it all out to the other end. Remove whatever chunk we succeeded @@ -2797,8 +2797,8 @@ Store the encoded data into DST. */ static void -mule_encode (Lstream *encoding, const Bufbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n) +mule_encode (Lstream *encoding, const Intbyte *src, + unsigned_char_dynarr *dst, Bytecount n) { struct encoding_stream *str = ENCODING_STREAM_DATA (encoding); @@ -2852,7 +2852,7 @@ */ (start, end, coding_system, buffer)) { - Bufpos b, e; + Charbpos b, e; struct buffer *buf = decode_buffer (buffer, 0); Lisp_Object instream, lb_outstream, de_outstream, outstream; Lstream *istr, *ostr; @@ -2882,9 +2882,9 @@ while (1) { char tempbuf[1024]; /* some random amount */ - Bufpos newpos, even_newer_pos; - Bufpos oldpos = lisp_buffer_stream_startpos (istr); - Lstream_Data_Count size_in_bytes = Lstream_read (istr, tempbuf, sizeof (tempbuf)); + Charbpos newpos, even_newer_pos; + Charbpos oldpos = lisp_buffer_stream_startpos (istr); + Bytecount size_in_bytes = Lstream_read (istr, tempbuf, sizeof (tempbuf)); if (!size_in_bytes) break; @@ -2947,7 +2947,7 @@ ((c) >= 0xA1 && (c) <= 0xDF) static int -detect_coding_sjis (struct detection_state *st, const Extbyte *src, Lstream_Data_Count n) +detect_coding_sjis (struct detection_state *st, const Extbyte *src, Bytecount n) { while (n--) { @@ -2970,7 +2970,7 @@ static void decode_coding_sjis (Lstream *decoding, const Extbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n) + unsigned_char_dynarr *dst, Bytecount n) { struct decoding_stream *str = DECODING_STREAM_DATA (decoding); unsigned int flags = str->flags; @@ -3025,8 +3025,8 @@ /* Convert internally-formatted data to Shift-JIS. */ static void -encode_coding_sjis (Lstream *encoding, const Bufbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n) +encode_coding_sjis (Lstream *encoding, const Intbyte *src, + unsigned_char_dynarr *dst, Bytecount n) { struct encoding_stream *str = ENCODING_STREAM_DATA (encoding); unsigned int flags = str->flags; @@ -3035,7 +3035,7 @@ while (n--) { - Bufbyte c = *src++; + Intbyte c = *src++; if (c == '\n') { if (eol_type != EOL_LF && eol_type != EOL_AUTODETECT) @@ -3049,7 +3049,7 @@ Dynarr_add (dst, c); ch = 0; } - else if (BUFBYTE_LEADING_BYTE_P (c)) + else if (INTBYTE_LEADING_BYTE_P (c)) ch = (c == LEADING_BYTE_KATAKANA_JISX0201 || c == LEADING_BYTE_JAPANESE_JISX0208_1978 || c == LEADING_BYTE_JAPANESE_JISX0208) ? c : 0; @@ -3228,7 +3228,7 @@ } while (0) static int -detect_coding_big5 (struct detection_state *st, const Extbyte *src, Lstream_Data_Count n) +detect_coding_big5 (struct detection_state *st, const Extbyte *src, Bytecount n) { while (n--) { @@ -3252,7 +3252,7 @@ static void decode_coding_big5 (Lstream *decoding, const Extbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n) + unsigned_char_dynarr *dst, Bytecount n) { struct decoding_stream *str = DECODING_STREAM_DATA (decoding); unsigned int flags = str->flags; @@ -3300,8 +3300,8 @@ /* Convert internally-formatted data to Big5. */ static void -encode_coding_big5 (Lstream *encoding, const Bufbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n) +encode_coding_big5 (Lstream *encoding, const Intbyte *src, + unsigned_char_dynarr *dst, Bytecount n) { unsigned char c; struct encoding_stream *str = ENCODING_STREAM_DATA (encoding); @@ -3324,7 +3324,7 @@ /* ASCII. */ Dynarr_add (dst, c); } - else if (BUFBYTE_LEADING_BYTE_P (c)) + else if (INTBYTE_LEADING_BYTE_P (c)) { if (c == LEADING_BYTE_CHINESE_BIG5_1 || c == LEADING_BYTE_CHINESE_BIG5_2) @@ -3505,7 +3505,7 @@ if (! NILP (chr)) { - Bufbyte work[MAX_EMCHAR_LEN]; + Intbyte work[MAX_EMCHAR_LEN]; int len; ch = XCHAR (chr); @@ -3567,7 +3567,7 @@ } static int -detect_coding_ucs4 (struct detection_state *st, const Extbyte *src, Lstream_Data_Count n) +detect_coding_ucs4 (struct detection_state *st, const Extbyte *src, Bytecount n) { while (n--) { @@ -3592,7 +3592,7 @@ static void decode_coding_ucs4 (Lstream *decoding, const Extbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n) + unsigned_char_dynarr *dst, Bytecount n) { struct decoding_stream *str = DECODING_STREAM_DATA (decoding); unsigned int flags = str->flags; @@ -3627,8 +3627,8 @@ } static void -encode_coding_ucs4 (Lstream *encoding, const Bufbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n) +encode_coding_ucs4 (Lstream *encoding, const Intbyte *src, + unsigned_char_dynarr *dst, Bytecount n) { struct encoding_stream *str = ENCODING_STREAM_DATA (encoding); unsigned int flags = str->flags; @@ -3639,7 +3639,7 @@ #ifdef ENABLE_COMPOSITE_CHARS /* flags for handling composite chars. We do a little switcharoo on the source while we're outputting the composite char. */ - Lstream_Data_Count saved_n = 0; + Bytecount saved_n = 0; const unsigned char *saved_src = NULL; int in_composite = 0; @@ -3656,7 +3656,7 @@ encode_ucs4 (Vcharset_ascii, c, 0, dst); char_boundary = 1; } - else if (BUFBYTE_LEADING_BYTE_P (c) || BUFBYTE_LEADING_BYTE_P (ch)) + else if (INTBYTE_LEADING_BYTE_P (c) || INTBYTE_LEADING_BYTE_P (ch)) { /* Processing Leading Byte */ ch = 0; charset = CHARSET_BY_LEADING_BYTE (c); @@ -3766,7 +3766,7 @@ /************************************************************************/ static int -detect_coding_utf8 (struct detection_state *st, const Extbyte *src, Lstream_Data_Count n) +detect_coding_utf8 (struct detection_state *st, const Extbyte *src, Bytecount n) { while (n--) { @@ -3801,7 +3801,7 @@ static void decode_coding_utf8 (Lstream *decoding, const Extbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n) + unsigned_char_dynarr *dst, Bytecount n) { struct decoding_stream *str = DECODING_STREAM_DATA (decoding); unsigned int flags = str->flags; @@ -3914,8 +3914,8 @@ } static void -encode_coding_utf8 (Lstream *encoding, const Bufbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n) +encode_coding_utf8 (Lstream *encoding, const Intbyte *src, + unsigned_char_dynarr *dst, Bytecount n) { struct encoding_stream *str = ENCODING_STREAM_DATA (encoding); unsigned int flags = str->flags; @@ -3927,7 +3927,7 @@ #ifdef ENABLE_COMPOSITE_CHARS /* flags for handling composite chars. We do a little switcharoo on the source while we're outputting the composite char. */ - Lstream_Data_Count saved_n = 0; + Bytecount saved_n = 0; const unsigned char *saved_src = NULL; int in_composite = 0; @@ -3952,7 +3952,7 @@ encode_utf8 (Vcharset_ascii, c, 0, dst); char_boundary = 1; } - else if (BUFBYTE_LEADING_BYTE_P (c) || BUFBYTE_LEADING_BYTE_P (ch)) + else if (INTBYTE_LEADING_BYTE_P (c) || INTBYTE_LEADING_BYTE_P (ch)) { /* Processing Leading Byte */ ch = 0; charset = CHARSET_BY_LEADING_BYTE (c); @@ -4674,7 +4674,7 @@ } static int -detect_coding_iso2022 (struct detection_state *st, const Extbyte *src, Lstream_Data_Count n) +detect_coding_iso2022 (struct detection_state *st, const Extbyte *src, Bytecount n) { int mask; @@ -4865,7 +4865,7 @@ static void decode_coding_iso2022 (Lstream *decoding, const Extbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n) + unsigned_char_dynarr *dst, Bytecount n) { struct decoding_stream *str = DECODING_STREAM_DATA (decoding); unsigned int flags = str->flags; @@ -4905,7 +4905,7 @@ break; case ISO_ESC_END_COMPOSITE: { - Bufbyte comstr[MAX_EMCHAR_LEN]; + Intbyte comstr[MAX_EMCHAR_LEN]; Bytecount len; Emchar emch = lookup_composite_char (Dynarr_atp (dst, 0), Dynarr_length (dst)); @@ -5190,8 +5190,8 @@ /* Convert internally-formatted data to ISO2022 format. */ static void -encode_coding_iso2022 (Lstream *encoding, const Bufbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n) +encode_coding_iso2022 (Lstream *encoding, const Intbyte *src, + unsigned_char_dynarr *dst, Bytecount n) { unsigned char charmask, c; unsigned char char_boundary; @@ -5207,7 +5207,7 @@ #ifdef ENABLE_COMPOSITE_CHARS /* flags for handling composite chars. We do a little switcharoo on the source while we're outputting the composite char. */ - Lstream_Data_Count saved_n = 0; + Bytecount saved_n = 0; const unsigned char *saved_src = NULL; int in_composite = 0; #endif /* ENABLE_COMPOSITE_CHARS */ @@ -5270,7 +5270,7 @@ char_boundary = 1; } - else if (BUFBYTE_LEADING_BYTE_P (c) || BUFBYTE_LEADING_BYTE_P (ch)) + else if (INTBYTE_LEADING_BYTE_P (c) || INTBYTE_LEADING_BYTE_P (ch)) { /* Processing Leading Byte */ ch = 0; charset = CHARSET_BY_LEADING_BYTE (c); @@ -5500,7 +5500,7 @@ interpreted as being in any particular decoding. */ static void decode_coding_no_conversion (Lstream *decoding, const Extbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n) + unsigned_char_dynarr *dst, Bytecount n) { struct decoding_stream *str = DECODING_STREAM_DATA (decoding); unsigned int flags = str->flags; @@ -5523,8 +5523,8 @@ } static void -encode_coding_no_conversion (Lstream *encoding, const Bufbyte *src, - unsigned_char_dynarr *dst, Lstream_Data_Count n) +encode_coding_no_conversion (Lstream *encoding, const Intbyte *src, + unsigned_char_dynarr *dst, Bytecount n) { unsigned char c; struct encoding_stream *str = ENCODING_STREAM_DATA (encoding); @@ -5548,7 +5548,7 @@ assert (ch == 0); Dynarr_add (dst, c); } - else if (BUFBYTE_LEADING_BYTE_P (c)) + else if (INTBYTE_LEADING_BYTE_P (c)) { assert (ch == 0); if (c == LEADING_BYTE_LATIN_ISO8859_1 || diff --text -u 'xemacs-21.5.3/src/file-coding.h' 'xemacs-21.5.4/src/file-coding.h' Index: ././src/file-coding.h --- ././src/file-coding.h Mon Jun 18 16:10:19 2001 +++ ././src/file-coding.h Thu Sep 20 15:28:58 2001 @@ -535,8 +535,8 @@ #define LEADING_BYTE_CONTROL_1 0x8F /* represent normal 80-9F */ #define LEADING_BYTE_LATIN_ISO8859_1 0x81 /* Right half of ISO 8859-1 */ #define BYTE_C1_P(c) ((unsigned int) ((unsigned int) (c) - 0x80) < 0x20) -#define BUFBYTE_FIRST_BYTE_P(c) ((c) < 0xA0) -#define BUFBYTE_LEADING_BYTE_P(c) BYTE_C1_P (c) +#define INTBYTE_FIRST_BYTE_P(c) ((c) < 0xA0) +#define INTBYTE_LEADING_BYTE_P(c) BYTE_C1_P (c) #endif /* not MULE */ #endif /* INCLUDED_file_coding_h_ */ diff --text -u 'xemacs-21.5.3/src/fileio.c' 'xemacs-21.5.4/src/fileio.c' Index: ././src/fileio.c --- ././src/fileio.c Mon Aug 13 13:46:22 2001 +++ ././src/fileio.c Thu Dec 20 14:49:46 2001 @@ -53,14 +53,43 @@ #endif /* HPUX_PRE_8_0 */ #endif /* HPUX */ +#if defined(WIN32_NATIVE) || defined(CYGWIN) +#define WIN32_FILENAMES #ifdef WIN32_NATIVE #include "nt.h" +#endif /* WIN32_NATIVE */ #define IS_DRIVE(x) isalpha (x) /* Need to lower-case the drive letter, or else expanded filenames will sometimes compare inequal, because `expand-file-name' doesn't always down-case the drive letter. */ #define DRIVE_LETTER(x) tolower (x) -#endif /* WIN32_NATIVE */ +#ifndef CORRECT_DIR_SEPS +#define CORRECT_DIR_SEPS(s) \ + normalize_filename(s, DIRECTORY_SEP) +/* Default implementation that coerces a file to use path_sep. */ +static void +normalize_filename (Intbyte *fp, Intbyte path_sep) +{ + /* Always lower-case drive letters a-z, even if the filesystem + preserves case in filenames. + This is so filenames can be compared by string comparison + functions that are case-sensitive. Even case-preserving filesystems + do not distinguish case in drive letters. */ + if (fp[1] == ':' && *fp >= 'A' && *fp <= 'Z') + { + *fp += 'a' - 'A'; + fp += 2; + } + + while (*fp) + { + if (*fp == '/' || *fp == '\\') + *fp = path_sep; + fp++; + } +} +#endif /* CORRECT_DIR_SEPS */ +#endif /* WIN32_NATIVE || CYGWIN */ int lisp_to_time (Lisp_Object, time_t *); Lisp_Object time_to_lisp (time_t); @@ -132,7 +161,7 @@ DOESNT_RETURN report_file_type_error (Lisp_Object errtype, Lisp_Object oserrmess, - const CBufbyte *string, Lisp_Object data) + const CIntbyte *string, Lisp_Object data) { struct gcpro gcpro1; Lisp_Object errdata = build_error_data (NULL, data); @@ -146,7 +175,7 @@ DOESNT_RETURN report_error_with_errno (Lisp_Object errtype, - const CBufbyte *string, Lisp_Object data) + const CIntbyte *string, Lisp_Object data) { report_file_type_error (errtype, lisp_strerror (errno), string, data); } @@ -154,7 +183,7 @@ /* signal a file error when errno contains a meaningful value. */ DOESNT_RETURN -report_file_error (const CBufbyte *string, Lisp_Object data) +report_file_error (const CIntbyte *string, Lisp_Object data) { report_error_with_errno (Qfile_error, string, data); } @@ -208,15 +237,15 @@ (#### Actually, longjmp()ing out of the signal handler may not be as losing as I thought. See qxe_reliable_signal() in sysdep.c.) */ -Memory_Count -read_allowing_quit (int fildes, void *buf, Memory_Count size) +Bytecount +read_allowing_quit (int fildes, void *buf, Bytecount size) { QUIT; return sys_read_1 (fildes, buf, size, 1); } -Memory_Count -write_allowing_quit (int fildes, const void *buf, Memory_Count size) +Bytecount +write_allowing_quit (int fildes, const void *buf, Bytecount size) { QUIT; return sys_write_1 (fildes, buf, size, 1); @@ -340,8 +369,8 @@ (filename)) { /* This function can GC. GC checked 2000-07-28 ben */ - Bufbyte *beg; - Bufbyte *p; + Intbyte *beg; + Intbyte *p; Lisp_Object handler; CHECK_STRING (filename); @@ -359,7 +388,7 @@ p = beg + XSTRING_LENGTH (filename); while (p != beg && !IS_ANY_SEP (p[-1]) -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES /* only recognize drive specifier at beginning */ && !(p[-1] == ':' && p == beg + 2) #endif @@ -373,7 +402,7 @@ if (p == beg + 2 && beg[1] == ':') { /* MAXPATHLEN+1 is guaranteed to be enough space for getdefdir. */ - Bufbyte *res = (Bufbyte*) alloca (MAXPATHLEN + 1); + Intbyte *res = (Intbyte*) alloca (MAXPATHLEN + 1); if (_getdcwd (toupper (*beg) - 'A' + 1, (char *)res, MAXPATHLEN)) { char *c=((char *) res) + strlen ((char *) res); @@ -399,7 +428,7 @@ (filename)) { /* This function can GC. GC checked 2000-07-28 ben */ - Bufbyte *beg, *p, *end; + Intbyte *beg, *p, *end; Lisp_Object handler; CHECK_STRING (filename); @@ -414,7 +443,7 @@ end = p = beg + XSTRING_LENGTH (filename); while (p != beg && !IS_ANY_SEP (p[-1]) -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES /* only recognize drive specifier at beginning */ && !(p[-1] == ':' && p == beg + 2) #endif @@ -518,9 +547,9 @@ strcpy (dst, src); if (slen > 1 && IS_DIRECTORY_SEP (dst[slen - 1]) -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES && !IS_ANY_SEP (dst[slen - 2]) -#endif /* WIN32_NATIVE */ +#endif /* WIN32_FILENAMES */ ) dst[slen - 1] = 0; return 1; @@ -591,7 +620,7 @@ Lisp_Object val; Bytecount len; - Bufbyte *p, *data; + Intbyte *p, *data; CHECK_STRING (prefix); @@ -682,17 +711,18 @@ (name, default_directory)) { /* This function can GC. GC-checked 2000-11-18 */ - Bufbyte *nm; + Intbyte *nm; - Bufbyte *newdir, *p, *o; + Intbyte *newdir, *p, *o; int tlen; - Bufbyte *target; -#ifdef WIN32_NATIVE + Intbyte *target; +#ifdef WIN32_FILENAMES int drive = 0; int collapse_newdir = 1; -#else +#endif +#ifndef WIN32_NATIVE struct passwd *pw; -#endif /* WIN32_NATIVE */ +#endif /* WIN32_FILENAMES */ int length; Lisp_Object handler = Qnil; #ifdef CYGWIN @@ -742,14 +772,13 @@ /* Save time in some common cases - as long as default_directory is not relative, it can be canonicalized with name below (if it is needed at all) without requiring it to be expanded now. */ -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES /* Detect Windows file names with drive specifiers. */ && ! (IS_DRIVE (o[0]) && (IS_DEVICE_SEP (o[1]) && IS_DIRECTORY_SEP (o[2]))) /* Detect Windows file names in UNC format. */ && ! (IS_DIRECTORY_SEP (o[0]) && IS_DIRECTORY_SEP (o[1])) - -#else /* not WIN32_NATIVE */ - +#endif /* not WIN32_FILENAMES */ +#ifndef WIN32_NATIVE /* Detect Unix absolute file names (/... alone is not absolute on Windows). */ && ! (IS_DIRECTORY_SEP (o[0])) @@ -766,17 +795,19 @@ into name should be safe during all of this, though. */ nm = XSTRING_DATA (name); -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES /* We will force directory separators to be either all \ or /, so make a local copy to modify, even if there ends up being no change. */ - nm = strcpy ((char *)alloca (strlen ((char *)nm) + 1), (char *)nm); + nm = (Intbyte *) strcpy ((char *) alloca (strlen ((char *) nm) + 1), + (char *) nm); /* Find and remove drive specifier if present; this makes nm absolute even if the rest of the name appears to be relative. */ { - Bufbyte *colon = (Bufbyte *) strrchr ((char *)nm, ':'); + Intbyte *colon = (Intbyte *) strrchr ((char *)nm, ':'); if (colon) + { /* Only recognize colon as part of drive specifier if there is a single alphabetic character preceding the colon (and if the character before the drive letter, if present, is a directory @@ -797,6 +828,7 @@ if (colon[0] == ':') goto look_again; } + } } /* If we see "c://somedir", we want to strip the first slash after the @@ -804,7 +836,7 @@ "//somedir". */ if (drive && IS_DIRECTORY_SEP (nm[0]) && IS_DIRECTORY_SEP (nm[1])) nm++; -#endif /* WIN32_NATIVE */ +#endif /* WIN32_FILENAMES */ /* If nm is absolute, look for /./ or /../ sequences; if none are found, we can probably return right away. We will avoid allocating @@ -842,25 +874,30 @@ } if (!lose) { -#ifdef WIN32_NATIVE - /* Make sure directories are all separated with / or \ as - desired, but avoid allocation of a new string when not - required. */ - CORRECT_DIR_SEPS (nm); - if (IS_DIRECTORY_SEP (nm[1])) +#ifdef WIN32_FILENAMES + if (drive || IS_DIRECTORY_SEP (nm[1])) { - if (strcmp (nm, XSTRING_DATA (name)) != 0) - name = build_string (nm); - } - /* drive must be set, so this is okay */ - else if (strcmp (nm - 2, XSTRING_DATA (name)) != 0) - { - name = make_string (nm - 2, p - nm + 2); - XSTRING_DATA (name)[0] = DRIVE_LETTER (drive); - XSTRING_DATA (name)[1] = ':'; + /* Make sure directories are all separated with / or \ as + desired, but avoid allocation of a new string when not + required. */ + CORRECT_DIR_SEPS (nm); + if (IS_DIRECTORY_SEP (nm[1])) + { + if (strcmp ((char *) nm, (char *) XSTRING_DATA (name)) != 0) + name = build_string ((CIntbyte *) nm); + } + /* drive must be set, so this is okay */ + else if (strcmp ((char *) nm - 2, + (char *) XSTRING_DATA (name)) != 0) + { + name = make_string (nm - 2, p - nm + 2); + XSTRING_DATA (name)[0] = DRIVE_LETTER (drive); + XSTRING_DATA (name)[1] = ':'; + } + RETURN_UNGCPRO (name); } - RETURN_UNGCPRO (name); -#else /* not WIN32_NATIVE */ +#endif /* not WIN32_FILENAMES */ +#ifndef WIN32_NATIVE if (nm == XSTRING_DATA (name)) RETURN_UNGCPRO (name); RETURN_UNGCPRO (build_string ((char *) nm)); @@ -894,14 +931,14 @@ Extbyte *newdir_external = get_home_directory (); if (newdir_external == NULL) - newdir = (Bufbyte *) ""; + newdir = (Intbyte *) ""; else TO_INTERNAL_FORMAT (C_STRING, newdir_external, C_STRING_ALLOCA, (* ((char **) &newdir)), Qfile_name); nm++; -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES collapse_newdir = 0; #endif } @@ -909,7 +946,7 @@ { for (p = nm; *p && (!IS_DIRECTORY_SEP (*p)); p++) DO_NOTHING; - o = (Bufbyte *) alloca (p - nm + 1); + o = (Intbyte *) alloca (p - nm + 1); memcpy (o, (char *) nm, p - nm); o [p - nm] = 0; @@ -924,7 +961,7 @@ /* Does the user login name match the ~name? */ if (strcmp (user, (char *) o + 1) == 0) { - newdir = (Bufbyte *) get_home_directory(); + newdir = (Intbyte *) get_home_directory(); nm = p; } } @@ -938,7 +975,7 @@ speed_up_interrupts (); if (pw) { - newdir = (Bufbyte *) pw -> pw_dir; + newdir = (Intbyte *) pw -> pw_dir; nm = p; } #ifdef CYGWIN @@ -951,29 +988,31 @@ } } -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES /* On DOS and Windows, nm is absolute if a drive name was specified; use the drive's current directory as the prefix if needed. */ if (!newdir && drive) { +#ifdef WIN32_NATIVE /* Get default directory if needed to make nm absolute. */ if (!IS_DIRECTORY_SEP (nm[0])) { - newdir = alloca (MAXPATHLEN + 1); + newdir = (Intbyte *) alloca (MAXPATHLEN + 1); if (!_getdcwd (toupper (drive) - 'A' + 1, newdir, MAXPATHLEN)) newdir = NULL; } +#endif /* WIN32_NATIVE */ if (!newdir) { /* Either nm starts with /, or drive isn't mounted. */ - newdir = alloca (4); + newdir = (Intbyte *) alloca (4); newdir[0] = DRIVE_LETTER (drive); newdir[1] = ':'; newdir[2] = '/'; newdir[3] = 0; } } -#endif /* WIN32_NATIVE */ +#endif /* WIN32_FILENAMES */ /* Finally, if no prefix has been specified and nm is not absolute, then it must be expanded relative to default_directory. */ @@ -982,7 +1021,8 @@ #ifndef WIN32_NATIVE /* /... alone is not absolute on DOS and Windows. */ && !IS_DIRECTORY_SEP (nm[0]) -#else +#endif +#ifdef WIN32_FILENAMES && !(IS_DIRECTORY_SEP (nm[0]) && IS_DIRECTORY_SEP (nm[1])) #endif && !newdir) @@ -990,7 +1030,7 @@ newdir = XSTRING_DATA (default_directory); } -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES if (newdir) { /* First ensure newdir is an absolute name. */ @@ -1002,6 +1042,10 @@ && ! (IS_DIRECTORY_SEP (newdir[0]) && IS_DIRECTORY_SEP (newdir[1])) /* Detect drive spec by itself */ && ! (IS_DEVICE_SEP (newdir[1]) && newdir[2] == 0) + /* Detect unix format. */ +#ifndef WIN32_NATIVE + && ! (IS_DIRECTORY_SEP (newdir[0])) +#endif ) { /* Effectively, let newdir be (expand-file-name newdir cwd). @@ -1017,19 +1061,22 @@ } if (!IS_DIRECTORY_SEP (nm[0])) { - char * tmp = alloca (strlen (newdir) + strlen (nm) + 2); - file_name_as_directory (tmp, newdir); - strcat (tmp, nm); + Intbyte *tmp = (Intbyte *) alloca (strlen ((char *) newdir) + + strlen ((char *) nm) + 2); + file_name_as_directory ((char *) tmp, (char *) newdir); + strcat ((char *) tmp, (char *) nm); nm = tmp; } - newdir = alloca (MAXPATHLEN + 1); + newdir = (Intbyte *) alloca (MAXPATHLEN + 1); if (drive) { +#ifdef WIN32_NATIVE if (!_getdcwd (toupper (drive) - 'A' + 1, newdir, MAXPATHLEN)) - newdir = "/"; +#endif + newdir = (Intbyte *) "/"; } else - getwd (newdir); + getcwd ((char *) newdir, MAXPATHLEN); } /* Strip off drive name from prefix, if present. */ @@ -1041,11 +1088,18 @@ /* Keep only a prefix from newdir if nm starts with slash (/ /server/share for UNC, nothing otherwise). */ - if (IS_DIRECTORY_SEP (nm[0]) && collapse_newdir) + if (IS_DIRECTORY_SEP (nm[0]) +#ifndef WIN32_NATIVE + && IS_DIRECTORY_SEP (nm[1]) +#endif + && collapse_newdir) { if (IS_DIRECTORY_SEP (newdir[0]) && IS_DIRECTORY_SEP (newdir[1])) { - newdir = strcpy (alloca (strlen (newdir) + 1), newdir); + newdir = + (Intbyte *) + strcpy ((char *) alloca (strlen ((char *) newdir) + 1), + (char *) newdir); p = newdir + 2; while (*p && !IS_DIRECTORY_SEP (*p)) p++; p++; @@ -1053,10 +1107,10 @@ *p = 0; } else - newdir = ""; + newdir = (Intbyte *) ""; } } -#endif /* WIN32_NATIVE */ +#endif /* WIN32_FILENAMES */ if (newdir) { @@ -1064,12 +1118,12 @@ just // (an incomplete UNC name). */ length = strlen ((char *) newdir); if (length > 1 && IS_DIRECTORY_SEP (newdir[length - 1]) -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES && !(length == 2 && IS_DIRECTORY_SEP (newdir[0])) #endif ) { - Bufbyte *temp = (Bufbyte *) alloca (length); + Intbyte *temp = (Intbyte *) alloca (length); memcpy (temp, newdir, length - 1); temp[length - 1] = 0; newdir = temp; @@ -1081,14 +1135,14 @@ /* Now concatenate the directory and name to new space in the stack frame */ tlen += strlen ((char *) nm) + 1; -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES /* Add reserved space for drive name. (The Microsoft x86 compiler produces incorrect code if the following two lines are combined.) */ - target = (Bufbyte *) alloca (tlen + 2); + target = (Intbyte *) alloca (tlen + 2); target += 2; -#else /* not WIN32_NATIVE */ - target = (Bufbyte *) alloca (tlen); -#endif /* not WIN32_NATIVE */ +#else /* not WIN32_FILENAMES */ + target = (Intbyte *) alloca (tlen); +#endif /* not WIN32_FILENAMES */ *target = 0; if (newdir) @@ -1137,7 +1191,7 @@ ++o; p += 3; } -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES /* if drive is set, we're not dealing with an UNC, so multiple dir-seps are redundant (and reportedly cause trouble under win95) */ @@ -1150,7 +1204,7 @@ } } -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES /* At last, set drive name, except for network file name. */ if (drive) { @@ -1158,12 +1212,14 @@ target[0] = DRIVE_LETTER (drive); target[1] = ':'; } +#ifdef WIN32_NATIVE else { assert (IS_DIRECTORY_SEP (target[0]) && IS_DIRECTORY_SEP (target[1])); } +#endif CORRECT_DIR_SEPS (target); -#endif /* WIN32_NATIVE */ +#endif /* WIN32_FILENAMES */ RETURN_UNGCPRO (make_string (target, o - target)); } @@ -1204,7 +1260,7 @@ char resolved_path[MAXPATHLEN]; Extbyte *path; Extbyte *p; - Extcount elen; + Bytecount elen; TO_EXTERNAL_FORMAT (LISP_STRING, expanded_name, ALLOCA, (path, elen), @@ -1240,7 +1296,7 @@ { Extbyte *pos; -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES if (IS_DRIVE (p[0]) && IS_DEVICE_SEP (p[1]) && IS_DIRECTORY_SEP (p[2])) /* don't test c: on windows */ @@ -1334,13 +1390,13 @@ (filename)) { /* This function can GC. GC checked 2000-07-28 ben. */ - Bufbyte *nm; + Intbyte *nm; - Bufbyte *s, *p, *o, *x, *endp; - Bufbyte *target = 0; + Intbyte *s, *p, *o, *x, *endp; + Intbyte *target = 0; int total = 0; int substituted = 0; - Bufbyte *xnm; + Intbyte *xnm; Lisp_Object handler; CHECK_STRING (filename); @@ -1360,12 +1416,12 @@ for (p = nm; p != endp; p++) { if ((p[0] == '~' -#if defined (WIN32_NATIVE) || defined (CYGWIN) +#if defined (WIN32_FILENAMES) /* // at start of file name is meaningful in WindowsNT systems */ || (IS_DIRECTORY_SEP (p[0]) && p - 1 != nm) -#else /* not (WIN32_NATIVE || CYGWIN) */ +#else /* not (WIN32_FILENAMES) */ || IS_DIRECTORY_SEP (p[0]) -#endif /* not (WIN32_NATIVE || CYGWIN) */ +#endif /* not (WIN32_FILENAMES) */ ) && p != nm && (IS_DIRECTORY_SEP (p[-1]))) @@ -1373,7 +1429,7 @@ nm = p; substituted = 1; } -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES /* see comment in expand-file-name about drive specifiers */ else if (IS_DRIVE (p[0]) && p[1] == ':' && p > nm && IS_DIRECTORY_SEP (p[-1])) @@ -1381,7 +1437,7 @@ nm = p; substituted = 1; } -#endif /* WIN32_NATIVE */ +#endif /* WIN32_FILENAMES */ } /* See if any variables are substituted into the string @@ -1418,7 +1474,7 @@ } /* Copy out the variable name */ - target = (Bufbyte *) alloca (s - o + 1); + target = (Intbyte *) alloca (s - o + 1); strncpy ((char *) target, (char *) o, s - o); target[s - o] = 0; #ifdef WIN32_NATIVE @@ -1426,7 +1482,7 @@ #endif /* WIN32_NATIVE */ /* Get variable value */ - o = (Bufbyte *) egetenv ((char *) target); + o = (Intbyte *) egetenv ((char *) target); if (!o) goto badvar; total += strlen ((char *) o); substituted = 1; @@ -1437,7 +1493,7 @@ /* If substitution required, recopy the filename and do it */ /* Make space in stack frame for the new copy */ - xnm = (Bufbyte *) alloca (XSTRING_LENGTH (filename) + total + 1); + xnm = (Intbyte *) alloca (XSTRING_LENGTH (filename) + total + 1); x = xnm; /* Copy the rest of the name through, replacing $ constructs with values */ @@ -1469,7 +1525,7 @@ } /* Copy out the variable name */ - target = (Bufbyte *) alloca (s - o + 1); + target = (Intbyte *) alloca (s - o + 1); strncpy ((char *) target, (char *) o, s - o); target[s - o] = 0; #ifdef WIN32_NATIVE @@ -1477,7 +1533,7 @@ #endif /* WIN32_NATIVE */ /* Get variable value */ - o = (Bufbyte *) egetenv ((char *) target); + o = (Intbyte *) egetenv ((char *) target); if (!o) goto badvar; @@ -1491,16 +1547,16 @@ for (p = xnm; p != x; p++) if ((p[0] == '~' -#if defined (WIN32_NATIVE) +#if defined (WIN32_FILENAMES) || (IS_DIRECTORY_SEP (p[0]) && p - 1 != xnm) -#else /* not WIN32_NATIVE */ +#else /* not WIN32_FILENAMES */ || IS_DIRECTORY_SEP (p[0]) -#endif /* not WIN32_NATIVE */ +#endif /* not WIN32_FILENAMES */ ) /* don't do p[-1] if that would go off the beginning --jwz */ && p != nm && p > xnm && IS_DIRECTORY_SEP (p[-1])) xnm = p; -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES else if (IS_DRIVE (p[0]) && p[1] == ':' && p > nm && IS_DIRECTORY_SEP (p[-1])) xnm = p; @@ -1571,7 +1627,7 @@ struct gcpro gcpro1; prompt = emacs_doprnt_string_c - ((const Bufbyte *) GETTEXT ("File %s already exists; %s anyway? "), + ((const Intbyte *) GETTEXT ("File %s already exists; %s anyway? "), Qnil, -1, XSTRING_DATA (absname), GETTEXT (querystring)); @@ -2092,12 +2148,12 @@ (filename)) { /* This function does not GC */ - Bufbyte *ptr; + Intbyte *ptr; CHECK_STRING (filename); ptr = XSTRING_DATA (filename); return (IS_DIRECTORY_SEP (*ptr) || *ptr == '~' -#ifdef WIN32_NATIVE +#ifdef WIN32_FILENAMES || (IS_DRIVE (*ptr) && ptr[1] == ':' && IS_DIRECTORY_SEP (ptr[2])) #endif ) ? Qt : Qnil; @@ -2215,14 +2271,14 @@ if (!NILP (handler)) RETURN_UNGCPRO (call2 (handler, Qfile_readable_p, abspath)); -#if defined(WIN32_NATIVE) || defined(CYGWIN) +#if defined(WIN32_FILENAMES) /* Under MS-DOS and Windows, open does not work for directories. */ UNGCPRO; if (access ((char *) XSTRING_DATA (abspath), 0) == 0) return Qt; else return Qnil; -#else /* not WIN32_NATIVE */ +#else /* not WIN32_FILENAMES */ { int desc = interruptible_open ((char *) XSTRING_DATA (abspath), O_RDONLY | OPEN_BINARY, 0); UNGCPRO; @@ -2231,7 +2287,7 @@ close (desc); return Qt; } -#endif /* not WIN32_NATIVE */ +#endif /* not WIN32_FILENAMES */ } /* Having this before file-symlink-p mysteriously caused it to be forgotten @@ -2317,7 +2373,7 @@ xfree (buf); return Qnil; } - val = make_string ((Bufbyte *) buf, valsize); + val = make_string ((Intbyte *) buf, valsize); xfree (buf); return val; #else /* not S_IFLNK */ @@ -2619,7 +2675,7 @@ struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; Lisp_Object handler = Qnil, val; int total; - Bufbyte read_buf[READ_BUF_SIZE]; + Intbyte read_buf[READ_BUF_SIZE]; int mc_count; struct buffer *buf = current_buffer; Lisp_Object curbuf; @@ -2758,8 +2814,8 @@ if (!NILP (replace)) { char buffer[1 << 14]; - Bufpos same_at_start = BUF_BEGV (buf); - Bufpos same_at_end = BUF_ZV (buf); + Charbpos same_at_start = BUF_BEGV (buf); + Charbpos same_at_end = BUF_ZV (buf); int overlap; /* Count how many chars at the start of the file @@ -2767,19 +2823,19 @@ while (1) { int nread; - Bufpos bufpos; + Charbpos charbpos; nread = read_allowing_quit (fd, buffer, sizeof (buffer)); if (nread < 0) report_file_error ("Reading", filename); else if (nread == 0) break; - bufpos = 0; - while (bufpos < nread && same_at_start < BUF_ZV (buf) - && BUF_FETCH_CHAR (buf, same_at_start) == buffer[bufpos]) - same_at_start++, bufpos++; + charbpos = 0; + while (charbpos < nread && same_at_start < BUF_ZV (buf) + && BUF_FETCH_CHAR (buf, same_at_start) == buffer[charbpos]) + same_at_start++, charbpos++; /* If we found a discrepancy, stop the scan. Otherwise loop around and scan the next bufferful. */ - if (bufpos != nread) + if (charbpos != nread) break; } /* If the file matches the buffer completely, @@ -2798,7 +2854,7 @@ while (1) { int total_read, nread; - Bufpos bufpos, curpos, trial; + Charbpos charbpos, curpos, trial; /* At what file position are we now scanning? */ curpos = st.st_size - (BUF_ZV (buf) - same_at_end); @@ -2806,7 +2862,7 @@ if (curpos == 0) break; /* How much can we scan in the next step? */ - trial = min (curpos, (Bufpos) sizeof (buffer)); + trial = min (curpos, (Charbpos) sizeof (buffer)); if (lseek (fd, curpos - trial, 0) < 0) report_file_error ("Setting file position", filename); @@ -2821,16 +2877,16 @@ } /* Scan this bufferful from the end, comparing with the Emacs buffer. */ - bufpos = total_read; + charbpos = total_read; /* Compare with same_at_start to avoid counting some buffer text as matching both at the file's beginning and at the end. */ - while (bufpos > 0 && same_at_end > same_at_start + while (charbpos > 0 && same_at_end > same_at_start && BUF_FETCH_CHAR (buf, same_at_end - 1) == - buffer[bufpos - 1]) - same_at_end--, bufpos--; + buffer[charbpos - 1]) + same_at_end--, charbpos--; /* If we found a discrepancy, stop the scan. Otherwise loop around and scan the preceding bufferful. */ - if (bufpos != 0) + if (charbpos != 0) break; /* If display current starts at beginning of line, keep it that way. */ @@ -2883,7 +2939,7 @@ } { - Bufpos cur_point = BUF_PT (buf); + Charbpos cur_point = BUF_PT (buf); struct gcpro ngcpro1; Lisp_Object stream = make_filedesc_input_stream (fd, 0, total, LSTR_ALLOW_QUIT); @@ -2904,7 +2960,7 @@ occurs inside of the filedesc stream. */ while (1) { - Lstream_Data_Count this_len; + Bytecount this_len; Charcount cc_inserted; QUIT; @@ -3072,7 +3128,7 @@ Lisp_Object visit_file = Qnil; Lisp_Object annotations = Qnil; struct buffer *given_buffer; - Bufpos start1, end1; + Charbpos start1, end1; struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; struct gcpro ngcpro1, ngcpro2; Lisp_Object curbuf; @@ -3733,8 +3789,8 @@ return /* !!#### need to deal with this 'escape-quoted everywhere */ Fwrite_region_internal (Qnil, Qnil, a, Qnil, Qlambda, Qnil, -#ifdef MULE - Qescape_quoted +#ifdef FILE_CODING + current_buffer->buffer_file_coding_system #else Qnil #endif @@ -3942,7 +3998,7 @@ if (listdesc >= 0) { const Extbyte *auto_save_file_name_ext; - Extcount auto_save_file_name_ext_len; + Bytecount auto_save_file_name_ext_len; TO_EXTERNAL_FORMAT (LISP_STRING, b->auto_save_file_name, ALLOCA, (auto_save_file_name_ext, @@ -3951,7 +4007,7 @@ if (!NILP (b->filename)) { const Extbyte *filename_ext; - Extcount filename_ext_len; + Bytecount filename_ext_len; TO_EXTERNAL_FORMAT (LISP_STRING, b->filename, ALLOCA, (filename_ext, diff --text -u 'xemacs-21.5.3/src/filelock.c' 'xemacs-21.5.4/src/filelock.c' Index: ././src/filelock.c --- ././src/filelock.c Mon Aug 13 13:46:23 2001 +++ ././src/filelock.c Thu Sep 20 15:28:59 2001 @@ -95,13 +95,13 @@ that of FN plus two more for the leading `.#' plus one for the null. */ #define MAKE_LOCK_NAME(lock, file) \ (lock = (char *) alloca (XSTRING_LENGTH (file) + 2 + 1), \ - fill_in_lock_file_name ((Bufbyte *) (lock), (file))) + fill_in_lock_file_name ((Intbyte *) (lock), (file))) static void -fill_in_lock_file_name (Bufbyte *lockfile, Lisp_Object fn) +fill_in_lock_file_name (Intbyte *lockfile, Lisp_Object fn) { - Bufbyte *file_name = XSTRING_DATA (fn); - Bufbyte *p; + Intbyte *file_name = XSTRING_DATA (fn); + Intbyte *p; Bytecount dirlen; for (p = file_name + XSTRING_LENGTH (fn) - 1; diff --text -u 'xemacs-21.5.3/src/floatfns.c' 'xemacs-21.5.4/src/floatfns.c' Index: ././src/floatfns.c --- ././src/floatfns.c Mon Aug 13 13:46:23 2001 +++ ././src/floatfns.c Thu Sep 20 15:28:59 2001 @@ -175,7 +175,7 @@ return (extract_float (obj1) == extract_float (obj2)); } -static Hash_Code +static Hashcode float_hash (Lisp_Object obj, int depth) { /* mod the value down to 32-bit range */ diff --text -u 'xemacs-21.5.3/src/fns.c' 'xemacs-21.5.4/src/fns.c' Index: ././src/fns.c --- ././src/fns.c Mon Aug 13 13:46:23 2001 +++ ././src/fns.c Thu Sep 20 15:28:59 2001 @@ -69,10 +69,10 @@ static void print_bit_vector (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag) { - Element_Count i; + Elemcount i; Lisp_Bit_Vector *v = XBIT_VECTOR (obj); - Element_Count len = bit_vector_length (v); - Element_Count last = len; + Elemcount len = bit_vector_length (v); + Elemcount last = len; if (INTP (Vprint_length)) last = min (len, XINT (Vprint_length)); @@ -101,7 +101,7 @@ sizeof (long))); } -static Hash_Code +static Hashcode bit_vector_hash (Lisp_Object obj, int depth) { Lisp_Bit_Vector *v = XBIT_VECTOR (obj); @@ -111,7 +111,7 @@ sizeof (long))); } -static Memory_Count +static Bytecount size_bit_vector (const void *lheader) { Lisp_Bit_Vector *v = (Lisp_Bit_Vector *) lheader; @@ -223,7 +223,7 @@ return make_int (XSTRING_CHAR_LENGTH (sequence)); else if (CONSP (sequence)) { - Element_Count len; + Elemcount len; GET_EXTERNAL_LIST_LENGTH (sequence, len); return make_int (len); } @@ -250,7 +250,7 @@ (list)) { Lisp_Object hare, tortoise; - Element_Count len; + Elemcount len; for (hare = tortoise = list, len = 0; CONSP (hare) && (! EQ (hare, tortoise) || len == 0); @@ -371,8 +371,8 @@ } #else /* not I18N2, or MULE */ { - Bufbyte *ptr1 = string_data (p1); - Bufbyte *ptr2 = string_data (p2); + Intbyte *ptr1 = string_data (p1); + Intbyte *ptr2 = string_data (p2); /* #### It is not really necessary to do this: We could compare byte-by-byte and still get a reasonable comparison, since this @@ -530,7 +530,7 @@ Lisp_Object list_copy = Fcons (XCAR (list), XCDR (list)); Lisp_Object last = list_copy; Lisp_Object hare, tortoise; - Element_Count len; + Elemcount len; for (tortoise = hare = XCDR (list), len = 1; CONSP (hare); @@ -603,8 +603,8 @@ Lisp_Object last_tail; Lisp_Object prev; struct merge_string_extents_struct *args_mse = 0; - Bufbyte *string_result = 0; - Bufbyte *string_result_ptr = 0; + Intbyte *string_result = 0; + Intbyte *string_result_ptr = 0; struct gcpro gcpro1; /* The modus operandi in Emacs is "caller gc-protects args". @@ -709,7 +709,7 @@ realloc()ing in order to make the char fit properly. O(N^2) yuckage. */ val = Qnil; - string_result = (Bufbyte *) alloca (total_length * MAX_EMCHAR_LEN); + string_result = (Intbyte *) alloca (total_length * MAX_EMCHAR_LEN); string_result_ptr = string_result; break; default: @@ -732,8 +732,8 @@ Charcount thisleni = 0; Charcount thisindex = 0; Lisp_Object seq = args[argnum]; - Bufbyte *string_source_ptr = 0; - Bufbyte *string_prev_result_ptr = string_result_ptr; + Intbyte *string_source_ptr = 0; + Intbyte *string_prev_result_ptr = string_result_ptr; if (!CONSP (seq)) { @@ -2728,9 +2728,9 @@ Bytecount old_bytecount = string_length (s); Bytecount new_bytecount; Bytecount item_bytecount; - Bufbyte item_buf[MAX_EMCHAR_LEN]; - Bufbyte *p; - Bufbyte *end; + Intbyte item_buf[MAX_EMCHAR_LEN]; + Intbyte *p; + Intbyte *end; CHECK_CHAR_COERCE_INT (item); CHECK_LISP_WRITEABLE (array); @@ -2751,7 +2751,7 @@ else if (VECTORP (array)) { Lisp_Object *p = XVECTOR_DATA (array); - Element_Count len = XVECTOR_LENGTH (array); + Elemcount len = XVECTOR_LENGTH (array); CHECK_LISP_WRITEABLE (array); while (len--) *p++ = item; @@ -2759,7 +2759,7 @@ else if (BIT_VECTORP (array)) { Lisp_Bit_Vector *v = XBIT_VECTOR (array); - Element_Count len = bit_vector_length (v); + Elemcount len = bit_vector_length (v); int bit; CHECK_BIT (item); bit = XINT (item); @@ -2798,7 +2798,7 @@ { /* (setcdr (last args[0]) args[1]) */ Lisp_Object tortoise, hare; - Element_Count count; + Elemcount count; for (hare = tortoise = args[0], count = 0; CONSP (XCDR (hare)); @@ -2867,7 +2867,7 @@ if (CONSP (next) || argnum == nargs -1) { /* (setcdr (last val) next) */ - Element_Count count; + Elemcount count; for (count = 0; CONSP (XCDR (last_cons)); @@ -2916,7 +2916,7 @@ If VALS is a null pointer, do not accumulate the results. */ static void -mapcar1 (Element_Count leni, Lisp_Object *vals, +mapcar1 (Elemcount leni, Lisp_Object *vals, Lisp_Object function, Lisp_Object sequence) { Lisp_Object result; @@ -2950,7 +2950,7 @@ if (vals) { Lisp_Object *val = vals; - Element_Count i; + Elemcount i; LIST_LOOP_2 (elt, sequence) *val++ = elt; @@ -2985,7 +2985,7 @@ else if (VECTORP (sequence)) { Lisp_Object *objs = XVECTOR_DATA (sequence); - Element_Count i; + Elemcount i; for (i = 0; i < leni; i++) { args[1] = *objs++; @@ -2997,8 +2997,8 @@ { /* The string data of `sequence' might be relocated during GC. */ Bytecount slen = XSTRING_LENGTH (sequence); - Bufbyte *p = alloca_array (Bufbyte, slen); - Bufbyte *end = p + slen; + Intbyte *p = alloca_array (Intbyte, slen); + Intbyte *end = p + slen; memcpy (p, XSTRING_DATA (sequence), slen); @@ -3013,7 +3013,7 @@ else if (BIT_VECTORP (sequence)) { Lisp_Bit_Vector *v = XBIT_VECTOR (sequence); - Element_Count i; + Elemcount i; for (i = 0; i < leni; i++) { args[1] = make_int (bit_vector_bit (v, i)); @@ -3063,7 +3063,7 @@ */ (function, sequence)) { - Element_Count len = XINT (Flength (sequence)); + Elemcount len = XINT (Flength (sequence)); Lisp_Object *args = alloca_array (Lisp_Object, len); mapcar1 (len, args, function, sequence); @@ -3078,7 +3078,7 @@ */ (function, sequence)) { - Element_Count len = XINT (Flength (sequence)); + Elemcount len = XINT (Flength (sequence)); Lisp_Object result = make_vector (len, Qnil); struct gcpro gcpro1; @@ -3432,19 +3432,19 @@ ((ec > 255) ? \ (base64_conversion_error ("Non-ascii character in base64 input", \ make_char (ec)), 0) \ - : (c = (Bufbyte)ec), 1)) + : (c = (Intbyte)ec), 1)) -static Bytind -base64_encode_1 (Lstream *istream, Bufbyte *to, int line_break) +static Bytebpos +base64_encode_1 (Lstream *istream, Intbyte *to, int line_break) { EMACS_INT counter = 0; - Bufbyte *e = to; + Intbyte *e = to; Emchar ec; unsigned int value; while (1) { - Bufbyte c; + Intbyte c; if (!ADVANCE_INPUT (c, istream)) break; @@ -3509,11 +3509,11 @@ ++ccnt; \ } while (0) -static Bytind -base64_decode_1 (Lstream *istream, Bufbyte *to, Charcount *ccptr) +static Bytebpos +base64_decode_1 (Lstream *istream, Intbyte *to, Charcount *ccptr) { Charcount ccnt = 0; - Bufbyte *e = to; + Intbyte *e = to; EMACS_INT streampos = 0; while (1) @@ -3599,7 +3599,7 @@ ways these functions can blow up, and we don't want to have memory leaks in those cases. */ #define XMALLOC_OR_ALLOCA(ptr, len, type) do { \ - Element_Count XOA_len = (len); \ + Elemcount XOA_len = (len); \ if (XOA_len > MAX_ALLOCA) \ { \ ptr = xnew_array (type, XOA_len); \ @@ -3623,11 +3623,11 @@ */ (start, end, no_line_break)) { - Bufbyte *encoded; - Bytind encoded_length; + Intbyte *encoded; + Bytebpos encoded_length; Charcount allength, length; struct buffer *buf = current_buffer; - Bufpos begv, zv, old_pt = BUF_PT (buf); + Charbpos begv, zv, old_pt = BUF_PT (buf); Lisp_Object input; int speccount = specpdl_depth(); @@ -3644,7 +3644,7 @@ input = make_lisp_buffer_input_stream (buf, begv, zv, 0); /* We needn't multiply allength with MAX_EMCHAR_LEN because all the base64 characters will be single-byte. */ - XMALLOC_OR_ALLOCA (encoded, allength, Bufbyte); + XMALLOC_OR_ALLOCA (encoded, allength, Intbyte); encoded_length = base64_encode_1 (XLSTREAM (input), encoded, NILP (no_line_break)); if (encoded_length > allength) @@ -3674,8 +3674,8 @@ (string, no_line_break)) { Charcount allength, length; - Bytind encoded_length; - Bufbyte *encoded; + Bytebpos encoded_length; + Intbyte *encoded; Lisp_Object input, result; int speccount = specpdl_depth(); @@ -3686,7 +3686,7 @@ allength += allength / MIME_LINE_LENGTH + 1 + 6; input = make_lisp_string_input_stream (string, 0, -1); - XMALLOC_OR_ALLOCA (encoded, allength, Bufbyte); + XMALLOC_OR_ALLOCA (encoded, allength, Intbyte); encoded_length = base64_encode_1 (XLSTREAM (input), encoded, NILP (no_line_break)); if (encoded_length > allength) @@ -3706,9 +3706,9 @@ (start, end)) { struct buffer *buf = current_buffer; - Bufpos begv, zv, old_pt = BUF_PT (buf); - Bufbyte *decoded; - Bytind decoded_length; + Charbpos begv, zv, old_pt = BUF_PT (buf); + Intbyte *decoded; + Bytebpos decoded_length; Charcount length, cc_decoded_length; Lisp_Object input; int speccount = specpdl_depth(); @@ -3720,7 +3720,7 @@ input = make_lisp_buffer_input_stream (buf, begv, zv, 0); /* We need to allocate enough room for decoding the text. */ - XMALLOC_OR_ALLOCA (decoded, length * MAX_EMCHAR_LEN, Bufbyte); + XMALLOC_OR_ALLOCA (decoded, length * MAX_EMCHAR_LEN, Intbyte); decoded_length = base64_decode_1 (XLSTREAM (input), decoded, &cc_decoded_length); if (decoded_length > length * MAX_EMCHAR_LEN) abort (); @@ -3748,8 +3748,8 @@ */ (string)) { - Bufbyte *decoded; - Bytind decoded_length; + Intbyte *decoded; + Bytebpos decoded_length; Charcount length, cc_decoded_length; Lisp_Object input, result; int speccount = specpdl_depth(); @@ -3758,7 +3758,7 @@ length = XSTRING_CHAR_LENGTH (string); /* We need to allocate enough room for decoding the text. */ - XMALLOC_OR_ALLOCA (decoded, length * MAX_EMCHAR_LEN, Bufbyte); + XMALLOC_OR_ALLOCA (decoded, length * MAX_EMCHAR_LEN, Intbyte); input = make_lisp_string_input_stream (string, 0, -1); decoded_length = base64_decode_1 (XLSTREAM (input), decoded, diff --text -u 'xemacs-21.5.3/src/font-lock.c' 'xemacs-21.5.4/src/font-lock.c' Index: ././src/font-lock.c --- ././src/font-lock.c Mon Aug 13 13:46:24 2001 +++ ././src/font-lock.c Thu Sep 20 15:28:59 2001 @@ -81,9 +81,9 @@ struct context_cache { - Bufpos start_point; /* beginning of defun */ - Bufpos cur_point; /* cache location */ - Bufpos end_point; /* end of defun */ + Charbpos start_point; /* beginning of defun */ + Charbpos cur_point; /* cache location */ + Charbpos end_point; /* end of defun */ struct buffer *buffer; /* does this need to be staticpro'd? */ enum syntactic_context context; /* single-char-syntax state */ enum block_comment_context ccontext; /* block-comment state */ @@ -145,8 +145,8 @@ void -font_lock_maybe_update_syntactic_caches (struct buffer *buf, Bufpos start, - Bufpos orig_end, Bufpos new_end) +font_lock_maybe_update_syntactic_caches (struct buffer *buf, Charbpos start, + Charbpos orig_end, Charbpos new_end) { /* Note: either both context_cache and bol_context_cache are valid and point to the same buffer, or both are invalid. If we have to @@ -238,11 +238,11 @@ } } -static Bufpos -beginning_of_defun (struct buffer *buf, Bufpos pt) +static Charbpos +beginning_of_defun (struct buffer *buf, Charbpos pt) { /* This function can GC */ - Bufpos opt = BUF_PT (buf); + Charbpos opt = BUF_PT (buf); if (pt == BUF_BEGV (buf)) return pt; BUF_SET_PT (buf, pt); @@ -256,8 +256,8 @@ return pt; } -static Bufpos -end_of_defun (struct buffer *buf, Bufpos pt) +static Charbpos +end_of_defun (struct buffer *buf, Charbpos pt) { Lisp_Object retval = scan_lists (buf, pt, 1, 0, 0, 1); if (NILP (retval)) @@ -270,7 +270,7 @@ in buffer BUF at point PT. */ static void -setup_context_cache (struct buffer *buf, Bufpos pt) +setup_context_cache (struct buffer *buf, Charbpos pt) { int recomputed_start_point = 0; /* This function can GC */ @@ -361,7 +361,7 @@ } { /* OK, we're past the end of the top-level form. */ - Bufpos maxpt = max (context_cache.end_point, context_cache.cur_point); + Charbpos maxpt = max (context_cache.end_point, context_cache.cur_point); #if 0 int shortage; #endif @@ -421,7 +421,7 @@ /* Set up context_cache for position PT in BUF. */ static void -find_context (struct buffer *buf, Bufpos pt) +find_context (struct buffer *buf, Charbpos pt) { /* This function can GC */ #ifndef emacs @@ -430,7 +430,7 @@ #endif Emchar prev_c, c; int prev_syncode, syncode; - Bufpos target = pt; + Charbpos target = pt; setup_context_cache (buf, pt); pt = context_cache.cur_point; @@ -746,7 +746,7 @@ (function, start, end, buffer)) { /* This function can GC */ - Bufpos s, pt, e; + Charbpos s, pt, e; int edepth; enum syntactic_context this_context; Lisp_Object extent = Qnil; @@ -761,7 +761,7 @@ GCPRO1 (extent); while (pt < e) { - Bufpos estart, eend; + Charbpos estart, eend; /* skip over "blank" areas, and bug out at end-of-buffer. */ while (context_cache.context == context_none) { diff --text -u 'xemacs-21.5.3/src/frame-gtk.c' 'xemacs-21.5.4/src/frame-gtk.c' Index: ././src/frame-gtk.c --- ././src/frame-gtk.c Thu May 24 16:51:15 2001 +++ ././src/frame-gtk.c Thu Sep 20 15:28:59 2001 @@ -275,7 +275,7 @@ individual properties. */ static void -gtk_set_frame_text_value (struct frame *f, Bufbyte *value, +gtk_set_frame_text_value (struct frame *f, Intbyte *value, void (*func) (gpointer, gchar *), gpointer arg) { @@ -286,7 +286,7 @@ #ifdef MULE { - Bufbyte *ptr; + Intbyte *ptr; /* Optimize for common ASCII case */ for (ptr = value; *ptr; ptr++) @@ -304,7 +304,7 @@ } static void -gtk_set_title_from_bufbyte (struct frame *f, Bufbyte *name) +gtk_set_title_from_intbyte (struct frame *f, Intbyte *name) { if (GTK_IS_WINDOW (FRAME_GTK_SHELL_WIDGET (f))) gtk_set_frame_text_value (f, name, @@ -313,7 +313,7 @@ } static void -gtk_set_icon_name_from_bufbyte (struct frame *f, Bufbyte *name) +gtk_set_icon_name_from_intbyte (struct frame *f, Intbyte *name) { gtk_set_frame_text_value (f, name, (void (*)(gpointer, gchar *)) @@ -1430,8 +1430,8 @@ CONSOLE_HAS_METHOD (gtk, internal_frame_property_p); CONSOLE_HAS_METHOD (gtk, frame_properties); CONSOLE_HAS_METHOD (gtk, set_frame_properties); - CONSOLE_HAS_METHOD (gtk, set_title_from_bufbyte); - CONSOLE_HAS_METHOD (gtk, set_icon_name_from_bufbyte); + CONSOLE_HAS_METHOD (gtk, set_title_from_intbyte); + CONSOLE_HAS_METHOD (gtk, set_icon_name_from_intbyte); CONSOLE_HAS_METHOD (gtk, frame_visible_p); CONSOLE_HAS_METHOD (gtk, frame_totally_visible_p); CONSOLE_HAS_METHOD (gtk, frame_iconified_p); diff --text -u 'xemacs-21.5.3/src/frame-msw.c' 'xemacs-21.5.4/src/frame-msw.c' Index: ././src/frame-msw.c --- ././src/frame-msw.c Thu May 31 21:45:37 2001 +++ ././src/frame-msw.c Thu Sep 20 15:29:00 2001 @@ -516,7 +516,7 @@ } static void -mswindows_set_title_from_bufbyte (struct frame *f, Bufbyte *title) +mswindows_set_title_from_intbyte (struct frame *f, Intbyte *title) { unsigned int new_checksum = hash_string (title, strlen ((char *) title)); if (new_checksum != FRAME_MSWINDOWS_TITLE_CHECKSUM (f)) @@ -1086,8 +1086,8 @@ CONSOLE_HAS_METHOD (mswindows, internal_frame_property_p); CONSOLE_HAS_METHOD (mswindows, frame_properties); CONSOLE_HAS_METHOD (mswindows, set_frame_properties); - CONSOLE_HAS_METHOD (mswindows, set_title_from_bufbyte); -/* CONSOLE_HAS_METHOD (mswindows, set_icon_name_from_bufbyte); */ + CONSOLE_HAS_METHOD (mswindows, set_title_from_intbyte); +/* CONSOLE_HAS_METHOD (mswindows, set_icon_name_from_intbyte); */ CONSOLE_HAS_METHOD (mswindows, frame_visible_p); CONSOLE_HAS_METHOD (mswindows, frame_totally_visible_p); CONSOLE_HAS_METHOD (mswindows, frame_iconified_p); diff --text -u 'xemacs-21.5.3/src/frame-x.c' 'xemacs-21.5.4/src/frame-x.c' Index: ././src/frame-x.c --- ././src/frame-x.c Mon Aug 13 13:46:24 2001 +++ ././src/frame-x.c Thu Sep 20 15:29:00 2001 @@ -651,7 +651,7 @@ individual properties. */ static void -x_set_frame_text_value (struct frame *f, Bufbyte *value, +x_set_frame_text_value (struct frame *f, Intbyte *value, String Xt_resource_name, String Xt_resource_encoding_name) { @@ -660,7 +660,7 @@ String old_XtValue = NULL; #ifdef MULE - Bufbyte *ptr; + Intbyte *ptr; /* Optimize for common ASCII case */ for (ptr = value; *ptr; ptr++) if (!BYTE_ASCII_P (*ptr)) @@ -685,13 +685,13 @@ } static void -x_set_title_from_bufbyte (struct frame *f, Bufbyte *name) +x_set_title_from_intbyte (struct frame *f, Intbyte *name) { x_set_frame_text_value (f, name, XtNtitle, XtNtitleEncoding); } static void -x_set_icon_name_from_bufbyte (struct frame *f, Bufbyte *name) +x_set_icon_name_from_intbyte (struct frame *f, Intbyte *name) { x_set_frame_text_value (f, name, XtNiconName, XtNiconNameEncoding); } @@ -773,7 +773,7 @@ if (STRINGP (val)) { const Extbyte *extval; - Extcount extvallen; + Bytecount extvallen; TO_EXTERNAL_FORMAT (LISP_STRING, val, ALLOCA, (extval, extvallen), @@ -1264,7 +1264,7 @@ filePath = transferInfo->dropData->data.files[ii]; hurl = dnd_url_hexify_string ((char *)filePath, "file:"); /* #### Mule-izing required */ - l_data = Fcons (make_string ((Bufbyte* )hurl, + l_data = Fcons (make_string ((Intbyte* )hurl, strlen (hurl)), l_data); xfree (hurl); @@ -1286,11 +1286,11 @@ /* let us forget this name thing for now... */ /* filePath = transferInfo->dropData->data.buffers[ii].name; path = (filePath == NULL) ? Qnil - : make_string ((Bufbyte *)filePath, strlen (filePath)); */ + : make_string ((Intbyte *)filePath, strlen (filePath)); */ /* what, if the data is no text, and how can I tell it? */ - l_data = Fcons ( list3 ( list1 ( make_string ((Bufbyte *)"text/plain", 10) ), - make_string ((Bufbyte *)"8bit", 4), - make_string ((Bufbyte *)transferInfo->dropData->data.buffers[ii].bp, + l_data = Fcons ( list3 ( list1 ( make_string ((Intbyte *)"text/plain", 10) ), + make_string ((Intbyte *)"8bit", 4), + make_string ((Intbyte *)transferInfo->dropData->data.buffers[ii].bp, transferInfo->dropData->data.buffers[ii].size) ), l_data ); } @@ -2819,8 +2819,8 @@ CONSOLE_HAS_METHOD (x, internal_frame_property_p); CONSOLE_HAS_METHOD (x, frame_properties); CONSOLE_HAS_METHOD (x, set_frame_properties); - CONSOLE_HAS_METHOD (x, set_title_from_bufbyte); - CONSOLE_HAS_METHOD (x, set_icon_name_from_bufbyte); + CONSOLE_HAS_METHOD (x, set_title_from_intbyte); + CONSOLE_HAS_METHOD (x, set_icon_name_from_intbyte); CONSOLE_HAS_METHOD (x, frame_visible_p); CONSOLE_HAS_METHOD (x, frame_totally_visible_p); CONSOLE_HAS_METHOD (x, frame_iconified_p); diff --text -u 'xemacs-21.5.3/src/frame.c' 'xemacs-21.5.4/src/frame.c' Index: ././src/frame.c --- ././src/frame.c Mon Jun 18 16:10:19 2001 +++ ././src/frame.c Thu Sep 20 15:29:00 2001 @@ -402,7 +402,7 @@ else name = build_string ("emacs"); - if (!NILP (Fstring_match (make_string ((const Bufbyte *) "\\.", 2), name, + if (!NILP (Fstring_match (make_string ((const Intbyte *) "\\.", 2), name, Qnil, Qnil))) syntax_error (". not allowed in frame names", name); @@ -1804,14 +1804,14 @@ struct window *w; Lisp_Object frame, window = Qnil, lisp_x = Qnil, lisp_y = Qnil; int x, y, obj_x, obj_y; - Bufpos bufpos, closest; + Charbpos charbpos, closest; Charcount modeline_closest; Lisp_Object obj1, obj2; if (mouse_pixel_position_1 (d, &frame, &x, &y) > 0) { int res = pixel_to_glyph_translation (XFRAME (frame), x, y, &x, &y, - &obj_x, &obj_y, &w, &bufpos, + &obj_x, &obj_y, &w, &charbpos, &closest, &modeline_closest, &obj1, &obj2); if (res == OVER_TEXT) @@ -3070,7 +3070,7 @@ /* The caller is responsible for freeing the returned string. */ -static Bufbyte * +static Intbyte * generate_title_string (struct window *w, Lisp_Object format_str, face_index findex, int type) { @@ -3106,7 +3106,7 @@ struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f)); Lisp_Object title_format; Lisp_Object icon_format; - Bufbyte *title; + Intbyte *title; /* We don't change the title for the minibuffer unless the frame only has a minibuffer. */ @@ -3121,14 +3121,14 @@ title_format = symbol_value_in_buffer (Qframe_title_format, w->buffer); icon_format = symbol_value_in_buffer (Qframe_icon_title_format, w->buffer); - if (HAS_FRAMEMETH_P (f, set_title_from_bufbyte)) + if (HAS_FRAMEMETH_P (f, set_title_from_intbyte)) { title = generate_title_string (w, title_format, DEFAULT_INDEX, CURRENT_DISP); - FRAMEMETH (f, set_title_from_bufbyte, (f, title)); + FRAMEMETH (f, set_title_from_intbyte, (f, title)); } - if (HAS_FRAMEMETH_P (f, set_icon_name_from_bufbyte)) + if (HAS_FRAMEMETH_P (f, set_icon_name_from_intbyte)) { if (!EQ (icon_format, title_format) || !title) { @@ -3138,7 +3138,7 @@ title = generate_title_string (w, icon_format, DEFAULT_INDEX, CURRENT_DISP); } - FRAMEMETH (f, set_icon_name_from_bufbyte, (f, title)); + FRAMEMETH (f, set_icon_name_from_intbyte, (f, title)); } if (title) diff --text -u 'xemacs-21.5.3/src/general-slots.h' 'xemacs-21.5.4/src/general-slots.h' Index: ././src/general-slots.h --- ././src/general-slots.h Thu May 24 16:51:16 2001 +++ ././src/general-slots.h Tue Oct 30 14:13:30 2001 @@ -92,6 +92,7 @@ SYMBOL (Qdevice); SYMBOL_KEYWORD (Q_device); SYMBOL (Qdialog); +SYMBOL (Qdirectory); SYMBOL (Qdimension); SYMBOL (Qdisplay); SYMBOL (Qdoc_string); diff --text -u 'xemacs-21.5.3/src/gif_io.c' 'xemacs-21.5.4/src/gif_io.c' Index: ././src/gif_io.c --- ././src/gif_io.c Mon Aug 13 13:46:25 2001 +++ ././src/gif_io.c Thu Sep 20 15:29:00 2001 @@ -98,13 +98,13 @@ GifSetCloseFunc(GifFile, GifStdFileClose, IOData); } -Memory_Count GifStdRead(GifByteType *buf, Memory_Count size, VoidPtr method_data) +Bytecount GifStdRead(GifByteType *buf, Bytecount size, VoidPtr method_data) { GifStdIODataType *IOtype = (GifStdIODataType*)method_data; return (fread(buf, 1, size, IOtype->File)); } -Memory_Count GifStdWrite(GifByteType *buf, Memory_Count size, VoidPtr method_data) +Bytecount GifStdWrite(GifByteType *buf, Bytecount size, VoidPtr method_data) { GifStdIODataType *IOtype = (GifStdIODataType*)method_data; return (fwrite(buf, 1, size, IOtype->File)); @@ -120,14 +120,14 @@ return ret; } -void GifRead(GifByteType *buf, Memory_Count size, GifFileType *GifFile) +void GifRead(GifByteType *buf, Bytecount size, GifFileType *GifFile) { GifIODataType *GifIO = (GifIODataType*)GifFile->GifIO; if ((*(GifIO->ReadFunc))(buf, size, GifIO->ReadFunc_data) != size) GifError(GifFile, "Read error!"); } -void GifWrite(GifByteType *buf, Memory_Count size, GifFileType *GifFile) +void GifWrite(GifByteType *buf, Bytecount size, GifFileType *GifFile) { GifIODataType *GifIO = (GifIODataType*)GifFile->GifIO; if ((*(GifIO->WriteFunc))(buf, size, GifIO->WriteFunc_data) != size) diff --text -u 'xemacs-21.5.3/src/gifrlib.h' 'xemacs-21.5.4/src/gifrlib.h' Index: ././src/gifrlib.h --- ././src/gifrlib.h Mon Aug 13 13:46:25 2001 +++ ././src/gifrlib.h Thu Sep 20 15:29:00 2001 @@ -58,7 +58,7 @@ /* I/O operations. If you roll your own, they need to be semantically equivilent to fread/fwrite, with an additional paramater to hold data local to your method. */ -typedef Memory_Count (*Gif_rw_func)(GifByteType *buffer, Memory_Count size, VoidPtr method_data); +typedef Bytecount (*Gif_rw_func)(GifByteType *buffer, Bytecount size, VoidPtr method_data); /* Finish up stream. Non-zero return indicates failure */ typedef int (*Gif_close_func)(VoidPtr close_data); /* Error handling function */ @@ -252,13 +252,13 @@ void GifStdIOInit(GifFileType *GifFile, FILE *file, int filehandle); /* Error checking reads, writes and closes */ -void GifRead(GifByteType *buf, Memory_Count size, GifFileType *GifFile); -void GifWrite(GifByteType *buf, Memory_Count size, GifFileType *GifFile); +void GifRead(GifByteType *buf, Bytecount size, GifFileType *GifFile); +void GifWrite(GifByteType *buf, Bytecount size, GifFileType *GifFile); int GifClose(GifFileType *GifFile); /* The default Read and Write functions for files */ -Memory_Count GifStdRead(GifByteType *buf, Memory_Count size, VoidPtr method_data); -Memory_Count GifStdWrite(GifByteType *buf, Memory_Count size, VoidPtr method_data); +Bytecount GifStdRead(GifByteType *buf, Bytecount size, VoidPtr method_data); +Bytecount GifStdWrite(GifByteType *buf, Bytecount size, VoidPtr method_data); int GifStdFileClose(VoidPtr method_data); ColorMapObject *MakeMapObject(int ColorCount, GifColorType *ColorMap); diff --text -u 'xemacs-21.5.3/src/glyphs-eimage.c' 'xemacs-21.5.4/src/glyphs-eimage.c' Index: ././src/glyphs-eimage.c --- ././src/glyphs-eimage.c Mon Aug 13 13:46:25 2001 +++ ././src/glyphs-eimage.c Thu Sep 20 15:29:01 2001 @@ -260,7 +260,7 @@ } our_jpeg_source_mgr; static void -jpeg_memory_src (j_decompress_ptr cinfo, JOCTET *data, Memory_Count len) +jpeg_memory_src (j_decompress_ptr cinfo, JOCTET *data, Bytecount len) { struct jpeg_source_mgr *src; @@ -376,7 +376,7 @@ { Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); const UChar_Binary *bytes; - Memory_Count len; + Bytecount len; /* #### This is a definite problem under Mule due to the amount of stack data it might allocate. Need to be able to convert and @@ -561,12 +561,12 @@ typedef struct gif_memory_storage { UChar_Binary *bytes; /* The data */ - Memory_Count len; /* How big is it? */ - Memory_Count index; /* Where are we? */ + Bytecount len; /* How big is it? */ + Bytecount index; /* Where are we? */ } gif_memory_storage; -static Memory_Count -gif_read_from_memory (GifByteType *buf, Memory_Count size, VoidPtr data) +static Bytecount +gif_read_from_memory (GifByteType *buf, Bytecount size, VoidPtr data) { gif_memory_storage *mem = (gif_memory_storage *) data; @@ -613,7 +613,7 @@ gif_memory_storage mem_struct; struct gif_error_struct gif_err; UChar_Binary *bytes; - Memory_Count len; + Bytecount len; int height = 0; int width = 0; @@ -776,8 +776,8 @@ struct png_memory_storage { const UChar_Binary *bytes; /* The data */ - Memory_Count len; /* How big is it? */ - Memory_Count index; /* Where are we? */ + Bytecount len; /* How big is it? */ + Bytecount index; /* Where are we? */ }; static void @@ -787,7 +787,7 @@ struct png_memory_storage *tbr = (struct png_memory_storage *) png_get_io_ptr (png_ptr); - if ((Memory_Count) length > (tbr->len - tbr->index)) + if ((Bytecount) 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; @@ -900,7 +900,7 @@ { Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); const UChar_Binary *bytes; - Memory_Count len; + Bytecount len; assert (!NILP (data)); @@ -1087,8 +1087,8 @@ typedef struct tiff_memory_storage { UChar_Binary *bytes; /* The data */ - Memory_Count len; /* How big is it? */ - Memory_Count index; /* Where are we? */ + Bytecount len; /* How big is it? */ + Bytecount index; /* Where are we? */ } tiff_memory_storage; static size_t @@ -1096,7 +1096,7 @@ { tiff_memory_storage *mem = (tiff_memory_storage *) data; - if ((Memory_Count) size > (mem->len - mem->index)) + if ((Bytecount) size > (mem->len - mem->index)) return (size_t) -1; memcpy (buf, mem->bytes + mem->index, size); mem->index = mem->index + size; @@ -1248,7 +1248,7 @@ { Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); UChar_Binary *bytes; - Memory_Count len; + Bytecount len; uint32 *raster; unsigned char *ep; diff --text -u 'xemacs-21.5.3/src/glyphs-gtk.c' 'xemacs-21.5.4/src/glyphs-gtk.c' Index: ././src/glyphs-gtk.c --- ././src/glyphs-gtk.c Tue Jun 5 02:00:00 2001 +++ ././src/glyphs-gtk.c Mon Dec 24 05:28:21 2001 @@ -1,4 +1,4 @@ -/* X-specific Lisp objects. +/* GTK-specific Lisp objects. Copyright (C) 1993, 1994 Free Software Foundation, Inc. Copyright (C) 1995 Board of Trustees, University of Illinois. Copyright (C) 1995 Tinker Systems @@ -1083,6 +1083,7 @@ /********************************************************************** * XPM * **********************************************************************/ + static void write_lisp_string_to_temp_file (Lisp_Object string, char *filename_out) { @@ -1182,76 +1183,9 @@ report_file_error ("Writing temp file", build_string (filename_out)); } -struct color_symbol -{ - char* name; - GdkColor color; -}; - -static struct color_symbol* -extract_xpm_color_names (Lisp_Object device, - Lisp_Object domain, - Lisp_Object color_symbol_alist, - int* nsymbols) -{ - /* This function can GC */ - Lisp_Object rest; - Lisp_Object results = Qnil; - int i, j; - struct color_symbol *colortbl; - struct gcpro gcpro1, gcpro2; - - GCPRO2 (results, device); - - /* We built up results to be (("name" . #) ...) so that if an - error happens we don't lose any malloc()ed data, or more importantly, - leave any pixels allocated in the server. */ - i = 0; - LIST_LOOP (rest, color_symbol_alist) - { - Lisp_Object cons = XCAR (rest); - Lisp_Object name = XCAR (cons); - Lisp_Object value = XCDR (cons); - if (NILP (value)) - continue; - if (STRINGP (value)) - value = - Fmake_color_instance - (value, device, encode_error_behavior_flag (ERROR_ME_NOT)); - else - { - assert (COLOR_SPECIFIERP (value)); - value = Fspecifier_instance (value, domain, Qnil, Qnil); - } - if (NILP (value)) - continue; - results = noseeum_cons (noseeum_cons (name, value), results); - i++; - } - UNGCPRO; /* no more evaluation */ - - *nsymbols=i; - if (i == 0) return 0; - - colortbl = xnew_array_and_zero (struct color_symbol, i); - - for (j=0; jwidth > 0 && dga->height > 0); @@ -2073,6 +1993,21 @@ } GTK_WIDGET_FLAGS(FRAME_GTK_TEXT_WIDGET (f)) = old_flags; } + else + { + if (IMAGE_INSTANCE_GTK_ALREADY_PUT(p)) + { + /* Do nothing... */ + } + else + { + /* Must make sure we have put the image at least once! */ + IMAGE_INSTANCE_GTK_ALREADY_PUT(p) = TRUE; + gtk_fixed_put (GTK_FIXED (FRAME_GTK_TEXT_WIDGET (f)), + wid, + -dga->xoffset, -dga->yoffset); + } + } if (!IMAGE_INSTANCE_SUBWINDOW_DISPLAYEDP (p)) { @@ -2189,7 +2124,6 @@ /* This function can GC */ Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); - Lisp_Object frame = DOMAIN_FRAME (domain); if (!DEVICE_GTK_P (XDEVICE (device))) gui_error ("Not a GTK device", device); diff --text -u 'xemacs-21.5.3/src/glyphs-msw.c' 'xemacs-21.5.4/src/glyphs-msw.c' Index: ././src/glyphs-msw.c --- ././src/glyphs-msw.c Mon Aug 13 13:46:25 2001 +++ ././src/glyphs-msw.c Thu Sep 20 15:29:01 2001 @@ -942,7 +942,7 @@ Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); const Extbyte *bytes; - Extcount len; + Bytecount len; UChar_Binary *eimage; int width, height, x_hot, y_hot; BITMAPINFO* bmp_info; @@ -1034,7 +1034,7 @@ Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); const Extbyte *bytes; - Extcount len; + Bytecount len; BITMAPFILEHEADER* bmp_file_header; BITMAPINFO* bmp_info; void* bmp_data; @@ -1682,7 +1682,7 @@ Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); int i, stattis; UChar_Binary *p, *bits, *bp; - const CBufbyte * volatile emsg = 0; + const CIntbyte * volatile emsg = 0; const UChar_Binary * volatile dstring; assert (!NILP (data)); @@ -2151,7 +2151,7 @@ return 1; } -static Hash_Code +static Hashcode mswindows_image_instance_hash (Lisp_Image_Instance *p, int depth) { switch (IMAGE_INSTANCE_TYPE (p)) @@ -2159,7 +2159,7 @@ case IMAGE_MONO_PIXMAP: case IMAGE_COLOR_PIXMAP: case IMAGE_POINTER: - return (Hash_Code) IMAGE_INSTANCE_MSWINDOWS_BITMAP (p); + return (Hashcode) IMAGE_INSTANCE_MSWINDOWS_BITMAP (p); default: return 0; @@ -2817,7 +2817,7 @@ /* get the text from a control */ if (EQ (prop, Q_text)) { - Extcount len = SendMessage (wnd, WM_GETTEXTLENGTH, 0, 0); + Bytecount len = SendMessage (wnd, WM_GETTEXTLENGTH, 0, 0); Extbyte *buf = (Extbyte*) alloca (len+1); SendMessage (wnd, WM_GETTEXT, (WPARAM)len+1, (LPARAM) buf); @@ -2853,7 +2853,7 @@ if (EQ (prop, Q_text)) { long item = SendMessage (wnd, CB_GETCURSEL, 0, 0); - Extcount len = SendMessage (wnd, CB_GETLBTEXTLEN, (WPARAM)item, 0); + Bytecount len = SendMessage (wnd, CB_GETLBTEXTLEN, (WPARAM)item, 0); Extbyte* buf = (Extbyte*) alloca (len+1); SendMessage (wnd, CB_GETLBTEXT, (WPARAM)item, (LPARAM)buf); return build_ext_string (buf, Qnative); diff --text -u 'xemacs-21.5.3/src/glyphs-x.c' 'xemacs-21.5.4/src/glyphs-x.c' Index: ././src/glyphs-x.c --- ././src/glyphs-x.c Mon Aug 13 13:46:26 2001 +++ ././src/glyphs-x.c Thu Sep 20 15:29:01 2001 @@ -506,7 +506,7 @@ return 1; } -static Hash_Code +static Hashcode x_image_instance_hash (Lisp_Image_Instance *p, int depth) { switch (IMAGE_INSTANCE_TYPE (p)) @@ -704,7 +704,7 @@ /* Get the data while doing the conversion */ while (1) { - Lstream_Data_Count size_in_bytes = Lstream_read (istr, tempbuf, sizeof (tempbuf)); + Bytecount size_in_bytes = Lstream_read (istr, tempbuf, sizeof (tempbuf)); if (!size_in_bytes) break; /* It does seem the flushes are necessary... */ diff --text -u 'xemacs-21.5.3/src/glyphs.c' 'xemacs-21.5.4/src/glyphs.c' Index: ././src/glyphs.c --- ././src/glyphs.c Mon Aug 13 13:46:26 2001 +++ ././src/glyphs.c Thu Sep 20 15:29:02 2001 @@ -1189,11 +1189,11 @@ return DOMAIN_LIVE_P (XIMAGE_INSTANCE_DOMAIN (instance)); } -static Hash_Code +static Hashcode image_instance_hash (Lisp_Object obj, int depth) { Lisp_Image_Instance *i = XIMAGE_INSTANCE (obj); - Hash_Code hash = HASH5 (LISP_HASH (IMAGE_INSTANCE_DOMAIN (i)), + Hashcode hash = HASH5 (LISP_HASH (IMAGE_INSTANCE_DOMAIN (i)), IMAGE_INSTANCE_WIDTH (i), IMAGE_INSTANCE_MARGIN_WIDTH (i), IMAGE_INSTANCE_HEIGHT (i), @@ -1381,7 +1381,7 @@ (Qinvalid_argument, list2 (emacs_doprnt_string_lisp_2 - ((const Bufbyte *) + ((const Intbyte *) "No compatible image-instance types given: wanted one of %s, got %s", Qnil, -1, 2, encode_image_instance_type_list (desired_dest_mask), @@ -2293,7 +2293,7 @@ if (height) { /* Compute string metric info */ - find_charsets_in_bufbyte_string (charsets, + find_charsets_in_intbyte_string (charsets, XSTRING_DATA (string), XSTRING_LENGTH (string)); @@ -2343,7 +2343,7 @@ Lisp_Object frame = DOMAIN_FRAME (domain); /* Compute string font info */ - find_charsets_in_bufbyte_string (charsets, + find_charsets_in_intbyte_string (charsets, XSTRING_DATA (string), XSTRING_LENGTH (string)); @@ -3088,7 +3088,7 @@ return 0; } -static Hash_Code +static Hashcode instantiator_eq_hash (Lisp_Object obj) { if (CONSP (obj)) @@ -3610,7 +3610,7 @@ !plists_differ (g1->plist, g2->plist, 0, 0, depth + 1)); } -static Hash_Code +static Hashcode glyph_hash (Lisp_Object obj, int depth) { depth++; diff --text -u 'xemacs-21.5.3/src/glyphs.h' 'xemacs-21.5.4/src/glyphs.h' Index: ././src/glyphs.h --- ././src/glyphs.h Mon Aug 13 13:46:27 2001 +++ ././src/glyphs.h Thu Sep 20 15:29:02 2001 @@ -550,7 +550,7 @@ enum image_instance_type type; int x_offset, y_offset; /* for layout purposes */ int width, height, margin_width; - Hash_Code display_hash; /* Hash value representing the structure + Hashcode display_hash; /* Hash value representing the structure of the image_instance when it was last displayed. */ unsigned int dirty : 1; diff --text -u 'xemacs-21.5.3/src/gpmevent.c' 'xemacs-21.5.4/src/gpmevent.c' Index: ././src/gpmevent.c --- ././src/gpmevent.c Mon Aug 13 13:46:29 2001 +++ ././src/gpmevent.c Thu Sep 20 15:29:02 2001 @@ -266,9 +266,9 @@ while (1) { - Bufbyte tempbuf[1024]; /* some random amount */ - Lstream_Data_Count i; - Lstream_Data_Count size_in_bytes = + Intbyte tempbuf[1024]; /* some random amount */ + Bytecount i; + Bytecount size_in_bytes = Lstream_read (XLSTREAM (terminal_stream), tempbuf, sizeof (tempbuf)); diff --text -u 'xemacs-21.5.3/src/gui-x.c' 'xemacs-21.5.4/src/gui-x.c' Index: ././src/gui-x.c --- ././src/gui-x.c Mon Aug 13 13:46:29 2001 +++ ././src/gui-x.c Thu Sep 20 15:29:02 2001 @@ -319,10 +319,10 @@ #endif Extbyte * -menu_separator_style_and_to_external (const Bufbyte *s) +menu_separator_style_and_to_external (const Intbyte *s) { - const Bufbyte *p; - Bufbyte first; + const Intbyte *p; + Intbyte first; if (!s || s[0] == '\0') return NULL; @@ -358,7 +358,7 @@ int i; int found_accel = 0; Extbyte *retval; - Bufbyte *name = XSTRING_DATA (string); + Intbyte *name = XSTRING_DATA (string); for (i = 0; name[i]; ++i) if (name[i] == '%' && name[i+1] == '_') @@ -372,7 +372,7 @@ else { Bytecount namelen = XSTRING_LENGTH (string); - Bufbyte *chars = (Bufbyte *) alloca (namelen + 3); + Intbyte *chars = (Intbyte *) alloca (namelen + 3); chars[0] = '%'; chars[1] = '_'; memcpy (chars + 2, name, namelen + 1); @@ -488,7 +488,7 @@ CHECK_SYMBOL (pgui->style); if (NILP (pgui->style)) { - Bufbyte *intname; + Intbyte *intname; Bytecount intlen; /* If the callback is nil, treat this item like unselectable text. This way, dashes will show up as a separator. */ diff --text -u 'xemacs-21.5.3/src/gui-x.h' 'xemacs-21.5.4/src/gui-x.h' Index: ././src/gui-x.h --- ././src/gui-x.h Mon Jun 18 16:10:20 2001 +++ ././src/gui-x.h Thu Sep 20 15:29:03 2001 @@ -78,7 +78,7 @@ int menu_entry_p, int accel_p); widget_value * gui_items_to_widget_values (Lisp_Object gui_object_instance, Lisp_Object items, int accel_p); -Extbyte *menu_separator_style_and_to_external (const Bufbyte *s); +Extbyte *menu_separator_style_and_to_external (const Intbyte *s); Lisp_Object widget_value_unwind (Lisp_Object closure); #endif /* INCLUDED_gui_x_h_ */ diff --text -u 'xemacs-21.5.3/src/gui.c' 'xemacs-21.5.4/src/gui.c' Index: ././src/gui.c --- ././src/gui.c Mon Aug 13 13:46:29 2001 +++ ././src/gui.c Thu Sep 20 15:29:03 2001 @@ -57,10 +57,10 @@ #endif /* HAVE_POPUPS */ int -separator_string_p (const Bufbyte *s) +separator_string_p (const Intbyte *s) { - const Bufbyte *p; - Bufbyte first; + const Intbyte *p; + Intbyte first; if (!s || s[0] == '\0') return 0; @@ -412,7 +412,7 @@ Lisp_Object gui_name_accelerator (Lisp_Object nm) { - Bufbyte *name = XSTRING_DATA (nm); + Intbyte *name = XSTRING_DATA (nm); while (*name) { @@ -616,7 +616,7 @@ return Qnil; } -static Hash_Code +static Hashcode gui_item_hash (Lisp_Object obj, int depth) { Lisp_Gui_Item *p = XGUI_ITEM (obj); diff --text -u 'xemacs-21.5.3/src/gui.h' 'xemacs-21.5.4/src/gui.h' Index: ././src/gui.h --- ././src/gui.h Mon Aug 13 13:46:29 2001 +++ ././src/gui.h Thu Sep 20 15:29:03 2001 @@ -27,7 +27,7 @@ #ifndef INCLUDED_gui_h_ #define INCLUDED_gui_h_ -int separator_string_p (const Bufbyte *s); +int separator_string_p (const Intbyte *s); void get_gui_callback (Lisp_Object, Lisp_Object *, Lisp_Object *); int gui_item_equal_sans_selected (Lisp_Object obj1, Lisp_Object obj2, int depth); diff --text -u 'xemacs-21.5.3/src/gutter.c' 'xemacs-21.5.4/src/gutter.c' Index: ././src/gutter.c --- ././src/gutter.c Sat Jul 28 14:09:03 2001 +++ ././src/gutter.c Thu Sep 20 15:29:03 2001 @@ -552,7 +552,7 @@ knows exactly what extents have changed. */ void gutter_extent_signal_changed_region_maybe (Lisp_Object obj, - Bufpos start, Bufpos end) + Charbpos start, Charbpos end) { /* #### Start and end are currently ignored but could be used by a more optimal gutter redisplay. We currently loop over all frames diff --text -u 'xemacs-21.5.3/src/gutter.h' 'xemacs-21.5.4/src/gutter.h' Index: ././src/gutter.h --- ././src/gutter.h Fri Apr 13 03:23:55 2001 +++ ././src/gutter.h Thu Sep 20 15:29:03 2001 @@ -64,7 +64,7 @@ int height); void reset_gutter_display_lines (struct frame* f); void gutter_extent_signal_changed_region_maybe (Lisp_Object obj, - Bufpos start, Bufpos end); + Charbpos start, Charbpos end); int display_boxes_in_gutter_p (struct frame *f, struct display_box* db, struct display_glyph_area* dga); diff --text -u 'xemacs-21.5.3/src/hash.c' 'xemacs-21.5.4/src/hash.c' Index: ././src/hash.c --- ././src/hash.c Mon Aug 13 13:46:29 2001 +++ ././src/hash.c Thu Sep 20 15:29:03 2001 @@ -31,19 +31,19 @@ #define KEYS_DIFFER_P(old, new, testfun) \ (((old) != (new)) && (!(testfun) || !(testfun) ((old),(new)))) -static void rehash (hentry *harray, struct hash_table *ht, Element_Count size); +static void rehash (hentry *harray, struct hash_table *ht, Elemcount size); -Hash_Code -memory_hash (const void *xv, Memory_Count size) +Hashcode +memory_hash (const void *xv, Bytecount size) { - Hash_Code h = 0; + Hashcode h = 0; unsigned const char *x = (unsigned const char *) xv; if (!x) return 0; while (size--) { - Hash_Code g; + Hashcode g; h = (h << 4) + *x++; if ((g = h & 0xf0000000) != 0) h = (h ^ (g >> 24)) ^ g; @@ -52,17 +52,17 @@ return h; } -Hash_Code +Hashcode string_hash (const char *xv) { - Hash_Code h = 0; + Hashcode h = 0; unsigned const char *x = (unsigned const char *) xv; if (!x) return 0; while (*x) { - Hash_Code g; + Hashcode g; h = (h << 4) + *x++; if ((g = h & 0xf0000000) != 0) h = (h ^ (g >> 24)) ^ g; @@ -72,13 +72,13 @@ } /* Return a suitable size for a hash table, with at least SIZE slots. */ -static Element_Count -hash_table_size (Element_Count requested_size) +static Elemcount +hash_table_size (Elemcount requested_size) { /* Return some prime near, but greater than or equal to, SIZE. Decades from the time of writing, someone will have a system large enough that the list below will be too short... */ - static const Element_Count primes [] = + static const Elemcount primes [] = { 19, 29, 41, 59, 79, 107, 149, 197, 263, 347, 457, 599, 787, 1031, 1361, 1777, 2333, 3037, 3967, 5167, 6719, 8737, 11369, 14783, @@ -116,12 +116,12 @@ { hentry *harray = hash_table->harray; hash_table_test_function test_function = hash_table->test_function; - Element_Count size = hash_table->size; - Hash_Code hcode_initial = + Elemcount size = hash_table->size; + Hashcode hcode_initial = hash_table->hash_function ? hash_table->hash_function (key) : - (Hash_Code) key; - Element_Count hcode = (Element_Count) (hcode_initial % size); + (Hashcode) key; + Elemcount hcode = (Elemcount) (hcode_initial % size); hentry *e = &harray [hcode]; const void *e_key = e->key; @@ -129,8 +129,8 @@ KEYS_DIFFER_P (e_key, key, test_function) : e->contents == NULL_ENTRY) { - Element_Count h2 = size - 2; - Element_Count incr = (Element_Count) (1 + (hcode_initial % h2)); + Elemcount h2 = size - 2; + Elemcount incr = (Elemcount) (1 + (hcode_initial % h2)); do { hcode += incr; if (hcode >= size) hcode -= size; @@ -164,7 +164,7 @@ } struct hash_table* -make_hash_table (Element_Count size) +make_hash_table (Elemcount size) { struct hash_table *hash_table = xnew_and_zero (struct hash_table); hash_table->size = hash_table_size (COMFORTABLE_SIZE (size)); @@ -174,7 +174,7 @@ } struct hash_table * -make_general_hash_table (Element_Count size, +make_general_hash_table (Elemcount size, hash_table_hash_function hash_function, hash_table_test_function test_function) { @@ -185,9 +185,9 @@ } static void -grow_hash_table (struct hash_table *hash_table, Element_Count new_size) +grow_hash_table (struct hash_table *hash_table, Elemcount new_size) { - Element_Count old_size = hash_table->size; + Elemcount old_size = hash_table->size; hentry *old_harray = hash_table->harray; hash_table->size = hash_table_size (new_size); @@ -217,15 +217,15 @@ else { hash_table_test_function test_function = hash_table->test_function; - Element_Count size = hash_table->size; + Elemcount size = hash_table->size; hentry *harray = hash_table->harray; - Hash_Code hcode_initial = + Hashcode hcode_initial = hash_table->hash_function ? hash_table->hash_function (key) : - (Hash_Code) key; - Element_Count hcode = (Element_Count) (hcode_initial % size); - Element_Count h2 = size - 2; - Element_Count incr = (Element_Count) (1 + (hcode_initial % h2)); + (Hashcode) key; + Elemcount hcode = (Elemcount) (hcode_initial % size); + Elemcount h2 = size - 2; + Elemcount incr = (Elemcount) (1 + (hcode_initial % h2)); const void *e_key = harray [hcode].key; const void *oldcontents; @@ -268,7 +268,7 @@ /* only increment the fullness when we used up a new hentry */ if (!e_key || KEYS_DIFFER_P (e_key, key, test_function)) { - Element_Count comfortable_size = COMFORTABLE_SIZE (++(hash_table->fullness)); + Elemcount comfortable_size = COMFORTABLE_SIZE (++(hash_table->fullness)); if (hash_table->size < comfortable_size) grow_hash_table (hash_table, comfortable_size + 1); } @@ -276,7 +276,7 @@ } static void -rehash (hentry *harray, struct hash_table *hash_table, Element_Count size) +rehash (hentry *harray, struct hash_table *hash_table, Elemcount size) { hentry *limit = harray + size; hentry *e; @@ -299,12 +299,12 @@ { hentry *harray = hash_table->harray; hash_table_test_function test_function = hash_table->test_function; - Element_Count size = hash_table->size; - Hash_Code hcode_initial = + Elemcount size = hash_table->size; + Hashcode hcode_initial = (hash_table->hash_function) ? (hash_table->hash_function (key)) : - ((Hash_Code) key); - Element_Count hcode = (Element_Count) (hcode_initial % size); + ((Hashcode) key); + Elemcount hcode = (Elemcount) (hcode_initial % size); hentry *e = &harray [hcode]; const void *e_key = e->key; @@ -312,8 +312,8 @@ KEYS_DIFFER_P (e_key, key, test_function) : e->contents == NULL_ENTRY) { - Element_Count h2 = size - 2; - Element_Count incr = (Element_Count) (1 + (hcode_initial % h2)); + Elemcount h2 = size - 2; + Elemcount incr = (Elemcount) (1 + (hcode_initial % h2)); do { hcode += incr; if (hcode >= size) hcode -= size; diff --text -u 'xemacs-21.5.3/src/hash.h' 'xemacs-21.5.4/src/hash.h' Index: ././src/hash.h --- ././src/hash.h Mon Aug 13 13:46:30 2001 +++ ././src/hash.h Thu Sep 20 15:29:03 2001 @@ -27,25 +27,25 @@ } hentry; typedef int (*hash_table_test_function) (const void *, const void *); -typedef Hash_Code (*hash_table_hash_function) (const void *); +typedef Hashcode (*hash_table_hash_function) (const void *); struct hash_table { hentry *harray; long zero_set; void *zero_entry; - Element_Count size; /* size of the hasharray */ - Element_Count fullness; /* number of entries in the hash table */ + Elemcount size; /* size of the hasharray */ + Elemcount fullness; /* number of entries in the hash table */ hash_table_hash_function hash_function; hash_table_test_function test_function; }; /* SIZE is the number of initial entries. The hash table will be grown automatically if the number of entries approaches the size */ -struct hash_table *make_hash_table (Element_Count size); +struct hash_table *make_hash_table (Elemcount size); struct hash_table * -make_general_hash_table (Element_Count size, +make_general_hash_table (Elemcount size, hash_table_hash_function hash_function, hash_table_test_function test_function); diff --text -u 'xemacs-21.5.3/src/hpplay.c' 'xemacs-21.5.4/src/hpplay.c' Index: ././src/hpplay.c --- ././src/hpplay.c Fri May 25 20:26:57 2001 +++ ././src/hpplay.c Thu Sep 20 15:29:03 2001 @@ -75,7 +75,7 @@ player_error_internal (Audio * audio, Char_ASCII * text, long errorCode) { Extbyte errorbuff[132]; - Bufbyte *interr; + Intbyte *interr; AGetErrorText (audio, errorCode, errorbuff, 131); EXTERNAL_TO_C_STRING (errorbuf, interr, Qnative); diff --text -u 'xemacs-21.5.3/src/indent.c' 'xemacs-21.5.4/src/indent.c' Index: ././src/indent.c --- ././src/indent.c Thu May 24 16:51:20 2001 +++ ././src/indent.c Thu Sep 20 15:29:04 2001 @@ -58,13 +58,13 @@ static struct buffer *last_known_column_buffer; /* Value of point when current_column was called */ -static Bufpos last_known_column_point; +static Charbpos last_known_column_point; /* Value of MODIFF when current_column was called */ static int last_known_column_modified; -static Bufpos -last_visible_position (Bufpos pos, struct buffer *buf) +static Charbpos +last_visible_position (Charbpos pos, struct buffer *buf) { Lisp_Object buffer; Lisp_Object value; @@ -124,13 +124,13 @@ } int -column_at_point (struct buffer *buf, Bufpos init_pos, int cur_col) +column_at_point (struct buffer *buf, Charbpos init_pos, int cur_col) { int col; int tab_seen; int tab_width = XINT (buf->tab_width); int post_tab; - Bufpos pos = init_pos; + Charbpos pos = init_pos; Emchar c; if (tab_width <= 0 || tab_width > 1000) tab_width = 8; @@ -161,7 +161,7 @@ /* #### FSFmacs looks at ctl_arrow, display tables. We need to do similar. */ #if 0 - displayed_glyphs = glyphs_from_bufpos (sel_frame, buf, + displayed_glyphs = glyphs_from_charbpos (sel_frame, buf, XWINDOW (selected_window), pos, dp, 0, col, 0, 0, 0); col += (displayed_glyphs->columns @@ -195,12 +195,12 @@ } int -string_column_at_point (Lisp_String* s, Bufpos init_pos, int tab_width) +string_column_at_point (Lisp_String* s, Charbpos init_pos, int tab_width) { int col; int tab_seen; int post_tab; - Bufpos pos = init_pos; + Charbpos pos = init_pos; Emchar c; if (tab_width <= 0 || tab_width > 1000) tab_width = 8; @@ -283,7 +283,7 @@ int fromcol; struct buffer *buf = decode_buffer (buffer, 0); int tab_width = XINT (buf->tab_width); - Bufpos opoint = 0; + Charbpos opoint = 0; CHECK_INT (column); if (NILP (minimum)) @@ -305,7 +305,7 @@ if (!NILP (Fextent_at (make_int (BUF_PT (buf)), buffer, Qinvisible, Qnil, Qnil))) { - Bufpos last_visible = last_visible_position (BUF_PT (buf), buf); + Charbpos last_visible = last_visible_position (BUF_PT (buf), buf); opoint = BUF_PT (buf); if (last_visible >= BUF_BEGV (buf)) @@ -340,9 +340,9 @@ } int -bi_spaces_at_point (struct buffer *b, Bytind bi_pos) +bi_spaces_at_point (struct buffer *b, Bytebpos bi_pos) { - Bytind bi_end = BI_BUF_ZV (b); + Bytebpos bi_end = BI_BUF_ZV (b); int col = 0; Emchar c; int tab_width = XINT (b->tab_width); @@ -355,7 +355,7 @@ (c == '\t' ? (col += tab_width - col % tab_width) : (c == ' ' ? ++col : 0)))) - INC_BYTIND (b, bi_pos); + INC_BYTEBPOS (b, bi_pos); return col; } @@ -369,14 +369,14 @@ (buffer)) { struct buffer *buf = decode_buffer (buffer, 0); - Bufpos pos = find_next_newline (buf, BUF_PT (buf), -1); + Charbpos pos = find_next_newline (buf, BUF_PT (buf), -1); XSETBUFFER (buffer, buf); if (!NILP (Fextent_at (make_int (pos), buffer, Qinvisible, Qnil, Qnil))) return Qzero; - return make_int (bi_spaces_at_point (buf, bufpos_to_bytind (buf, pos))); + return make_int (bi_spaces_at_point (buf, charbpos_to_bytebpos (buf, pos))); } @@ -401,11 +401,11 @@ (column, force, buffer)) { /* This function can GC */ - Bufpos pos; + Charbpos pos; struct buffer *buf = decode_buffer (buffer, 0); int col = current_column (buf); int goal; - Bufpos end; + Charbpos end; int tab_width = XINT (buf->tab_width); int prev_col = 0; @@ -447,7 +447,7 @@ /* #### FSFmacs looks at ctl_arrow, display tables. We need to do similar. */ #if 0 - displayed_glyphs = glyphs_from_bufpos (selected_frame (), + displayed_glyphs = glyphs_from_charbpos (selected_frame (), buf, XWINDOW (Fselected_window (Qnil)), pos, dp, 0, col, 0, 0, 0); @@ -538,7 +538,7 @@ */ (from, frompos, to, topos, width, offsets, window)) { - Lisp_Object bufpos, hpos, vpos, prevhpos, contin; + Lisp_Object charbpos, hpos, vpos, prevhpos, contin; struct position *pos; int hscroll, tab_offset; struct window *w = decode_window (window); @@ -569,12 +569,12 @@ XINT (XCAR (topos)), XINT (width), hscroll, tab_offset, w); - XSETINT (bufpos, pos->bufpos); + XSETINT (charbpos, pos->charbpos); XSETINT (hpos, pos->hpos); XSETINT (vpos, pos->vpos); XSETINT (prevhpos, pos->prevhpos); - return list5 (bufpos, hpos, vpos, prevhpos, + return list5 (charbpos, hpos, vpos, prevhpos, pos->contin ? Qt : Qnil); } @@ -610,8 +610,8 @@ pointer to an int and the vertical pixel height of the motion which took place is returned in it. ****************************************************************************/ -static Bufpos -vmotion_1 (struct window *w, Bufpos orig, int vtarget, +static Charbpos +vmotion_1 (struct window *w, Charbpos orig, int vtarget, int *ret_vpos, int *ret_vpix) { struct buffer *b = XBUFFER (w->buffer); @@ -631,7 +631,7 @@ if (vtarget > 0) { int cur_line = Dynarr_length (w->line_start_cache) - 1 - elt; - Bufpos ret_pt; + Charbpos ret_pt; if (cur_line > vtarget) cur_line = vtarget; @@ -694,8 +694,8 @@ taken to be a pointer to an int and the number of lines actually moved is returned in it. ****************************************************************************/ -Bufpos -vmotion (struct window *w, Bufpos orig, int vtarget, int *ret_vpos) +Charbpos +vmotion (struct window *w, Charbpos orig, int vtarget, int *ret_vpos) { return vmotion_1 (w, orig, vtarget, ret_vpos, NULL); } @@ -706,8 +706,8 @@ Lisp_Object vertical_motion_1 (Lisp_Object lines, Lisp_Object window, int pixels) { - Bufpos bufpos; - Bufpos orig; + Charbpos charbpos; + Charbpos orig; int selected; int *vpos, *vpix; int value=0; @@ -729,14 +729,14 @@ vpos = pixels ? NULL : &value; vpix = pixels ? &value : NULL; - bufpos = vmotion_1 (w, orig, XINT (lines), vpos, vpix); + charbpos = vmotion_1 (w, orig, XINT (lines), vpos, vpix); /* Note that the buffer's point is set, not the window's point. */ if (selected) - BUF_SET_PT (XBUFFER (w->buffer), bufpos); + BUF_SET_PT (XBUFFER (w->buffer), charbpos); else set_marker_restricted (w->pointm[CURRENT_DISP], - make_int(bufpos), + make_int(charbpos), w->buffer); return make_int (value); @@ -771,12 +771,12 @@ * HOW specifies the stopping condition. Positive means move at least * PIXELS. Negative means at most. Zero means as close as possible. */ -Bufpos -vmotion_pixels (Lisp_Object window, Bufpos start, int pixels, int how, +Charbpos +vmotion_pixels (Lisp_Object window, Charbpos start, int pixels, int how, int *motion) { struct window *w; - Bufpos eobuf, bobuf; + Charbpos eobuf, bobuf; int defheight; int needed; int line, next; @@ -883,8 +883,8 @@ */ (pixels, window, how)) { - Bufpos bufpos; - Bufpos orig; + Charbpos charbpos; + Charbpos orig; int selected; int motion; int howto; @@ -905,13 +905,13 @@ howto = INTP (how) ? XINT (how) : 0; - bufpos = vmotion_pixels (window, orig, XINT (pixels), howto, &motion); + charbpos = vmotion_pixels (window, orig, XINT (pixels), howto, &motion); if (selected) - BUF_SET_PT (XBUFFER (w->buffer), bufpos); + BUF_SET_PT (XBUFFER (w->buffer), charbpos); else set_marker_restricted (w->pointm[CURRENT_DISP], - make_int(bufpos), + make_int(charbpos), w->buffer); return make_int (motion); diff --text -u 'xemacs-21.5.3/src/insdel.c' 'xemacs-21.5.4/src/insdel.c' Index: ././src/insdel.c --- ././src/insdel.c Mon Aug 13 13:46:30 2001 +++ ././src/insdel.c Thu Sep 20 15:29:04 2001 @@ -31,7 +31,7 @@ of these are one-based: the beginning of the buffer is position or index 1, and 0 is not a valid position. - As a "buffer position" (typedef Bufpos): + As a "buffer position" (typedef Charbpos): This is an index specifying an offset in characters from the beginning of the buffer. Note that buffer positions are @@ -40,7 +40,7 @@ characters between those positions. Buffer positions are the only kind of position externally visible to the user. - As a "byte index" (typedef Bytind): + As a "byte index" (typedef Bytebpos): This is an index over the bytes used to represent the characters in the buffer. If there is no Mule support, this is identical @@ -50,7 +50,7 @@ byte index may be greater than the corresponding buffer position. - As a "memory index" (typedef Memind): + As a "memory index" (typedef Membpos): This is the byte index adjusted for the gap. For positions before the gap, this is identical to the byte index. For @@ -91,19 +91,19 @@ This means that Emchar values are upwardly compatible with the standard 8-bit representation of ASCII/ISO-8859-1. - Bufbyte: + Intbyte: -------- - The data in a buffer or string is logically made up of Bufbyte - objects, where a Bufbyte takes up the same amount of space as a + The data in a buffer or string is logically made up of Intbyte + objects, where a Intbyte takes up the same amount of space as a char. (It is declared differently, though, to catch invalid - usages.) Strings stored using Bufbytes are said to be in + usages.) Strings stored using Intbytes are said to be in "internal format". The important characteristics of internal format are - -- ASCII characters are represented as a single Bufbyte, + -- ASCII characters are represented as a single Intbyte, in the range 0 - 0x7f. - -- All other characters are represented as a Bufbyte in - the range 0x80 - 0x9f followed by one or more Bufbytes + -- All other characters are represented as a Intbyte in + the range 0x80 - 0x9f followed by one or more Intbytes in the range 0xa0 to 0xff. This leads to a number of desirable properties: @@ -152,14 +152,14 @@ This typedef represents a count of characters, such as a character offset into a string or the number of characters between two positions in a buffer. The - difference between two Bufpos's is a Charcount, and + difference between two Charbpos's is a Charcount, and character positions in a string are represented using a Charcount. Bytecount: ---------- Similar to a Charcount but represents a count of bytes. - The difference between two Bytind's is a Bytecount. + The difference between two Bytebpos's is a Bytecount. Usage of the various representations: @@ -211,14 +211,14 @@ #include "line-number.h" /* We write things this way because it's very important the - MAX_BYTIND_GAP_SIZE_3 is a multiple of 3. (As it happens, + MAX_BYTEBPOS_GAP_SIZE_3 is a multiple of 3. (As it happens, 65535 is a multiple of 3, but this may not always be the case.) */ -#define MAX_BUFPOS_GAP_SIZE_3 (65535/3) -#define MAX_BYTIND_GAP_SIZE_3 (3 * MAX_BUFPOS_GAP_SIZE_3) +#define MAX_CHARBPOS_GAP_SIZE_3 (65535/3) +#define MAX_BYTEBPOS_GAP_SIZE_3 (3 * MAX_CHARBPOS_GAP_SIZE_3) -short three_to_one_table[1 + MAX_BYTIND_GAP_SIZE_3]; +short three_to_one_table[1 + MAX_BYTEBPOS_GAP_SIZE_3]; /* Various macros modelled along the lines of those in buffer.h. Purposefully omitted from buffer.h because files other than this @@ -303,10 +303,10 @@ the equivalent length in characters. */ Charcount -bytecount_to_charcount (const Bufbyte *ptr, Bytecount len) +bytecount_to_charcount (const Intbyte *ptr, Bytecount len) { Charcount count = 0; - const Bufbyte *end = ptr + len; + const Intbyte *end = ptr + len; #if SIZEOF_LONG == 8 # define STRIDE_TYPE long @@ -339,29 +339,29 @@ (const unsigned STRIDE_TYPE *) ptr; /* This loop screams, because we can typically detect ASCII characters 8 at a time. */ - while ((const Bufbyte *) ascii_end + STRIDE <= end + while ((const Intbyte *) ascii_end + STRIDE <= end && !(*ascii_end & HIGH_BIT_MASK)) ascii_end++; - if ((Bufbyte *) ascii_end == ptr) + if ((Intbyte *) ascii_end == ptr) ptr++, count++; else { - count += (Bufbyte *) ascii_end - ptr; - ptr = (Bufbyte *) ascii_end; + count += (Intbyte *) ascii_end - ptr; + ptr = (Intbyte *) ascii_end; } } } else { /* optimize for successive characters from the same charset */ - Bufbyte leading_byte = *ptr; - Memory_Count bytes = REP_BYTES_BY_FIRST_BYTE (leading_byte); + Intbyte leading_byte = *ptr; + Bytecount bytes = REP_BYTES_BY_FIRST_BYTE (leading_byte); while ((ptr < end) && (*ptr == leading_byte)) ptr += bytes, count++; } } -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS /* Bomb out if the specified substring ends in the middle of a character. Note that we might have already gotten a core dump above from an invalid reference, but at least @@ -376,9 +376,9 @@ the equivalent length in bytes. */ Bytecount -charcount_to_bytecount (const Bufbyte *ptr, Charcount len) +charcount_to_bytecount (const Intbyte *ptr, Charcount len) { - const Bufbyte *newptr = ptr; + const Intbyte *newptr = ptr; while (len > 0) { @@ -389,14 +389,14 @@ } /* The next two functions are the actual meat behind the - bufpos-to-bytind and bytind-to-bufpos conversions. Currently + charbpos-to-bytebpos and bytebpos-to-charbpos conversions. Currently the method they use is fairly unsophisticated; see buffer.h. - Note that bufpos_to_bytind_func() is probably the most-called + Note that charbpos_to_bytebpos_func() is probably the most-called function in all of XEmacs. Therefore, it must be FAST FAST FAST. This is the reason why so much of the code is duplicated. - Similar considerations apply to bytind_to_bufpos_func(), although + Similar considerations apply to bytebpos_to_charbpos_func(), although less so because the function is not called so often. #### At some point this should use a more sophisticated method; @@ -404,16 +404,16 @@ static int not_very_random_number; -Bytind -bufpos_to_bytind_func (struct buffer *buf, Bufpos x) +Bytebpos +charbpos_to_bytebpos_func (struct buffer *buf, Charbpos x) { - Bufpos bufmin; - Bufpos bufmax; - Bytind bytmin; - Bytind bytmax; + Charbpos bufmin; + Charbpos bufmax; + Bytebpos bytmin; + Bytebpos bytmax; int size; int forward_p; - Bytind retval; + Bytebpos retval; int diff_so_far; int add_to_cache = 0; @@ -445,9 +445,9 @@ if (x > bufmax) { - Bufpos diffmax = x - bufmax; - Bufpos diffpt = x - BUF_PT (buf); - Bufpos diffzv = BUF_ZV (buf) - x; + Charbpos diffmax = x - bufmax; + Charbpos diffpt = x - BUF_PT (buf); + Charbpos diffzv = BUF_ZV (buf) - x; /* #### This value could stand some more exploration. */ Charcount heuristic_hack = (bufmax - bufmin) >> 2; @@ -487,15 +487,15 @@ size = 1; } } -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS else if (x >= bufmin) abort (); #endif else { - Bufpos diffmin = bufmin - x; - Bufpos diffpt = BUF_PT (buf) - x; - Bufpos diffbegv = x - BUF_BEGV (buf); + Charbpos diffmin = bufmin - x; + Charbpos diffpt = BUF_PT (buf) - x; + Charbpos diffbegv = x - BUF_BEGV (buf); /* #### This value could stand some more exploration. */ Charcount heuristic_hack = (bufmax - bufmin) >> 2; @@ -545,7 +545,7 @@ it doesn't seem like it would really matter. */ for (i = 0; i < 16; i++) { - int diff = buf->text->mule_bufpos_cache[i] - x; + int diff = buf->text->mule_charbpos_cache[i] - x; if (diff < 0) diff = -diff; @@ -558,8 +558,8 @@ if (minval < diff_so_far) { - bufmax = bufmin = buf->text->mule_bufpos_cache[found]; - bytmax = bytmin = buf->text->mule_bytind_cache[found]; + bufmax = bufmin = buf->text->mule_charbpos_cache[found]; + bytmax = bytmin = buf->text->mule_bytebpos_cache[found]; size = 1; } } @@ -568,7 +568,7 @@ the same as one of the range edges. */ if (x >= bufmax) { - Bytind newmax; + Bytebpos newmax; Bytecount newsize; forward_p = 1; @@ -576,7 +576,7 @@ { newmax = bytmax; - INC_BYTIND (buf, newmax); + INC_BYTEBPOS (buf, newmax); newsize = newmax - bytmax; if (newsize != size) { @@ -594,7 +594,7 @@ } else /* x < bufmin */ { - Bytind newmin; + Bytebpos newmin; Bytecount newsize; forward_p = 0; @@ -602,7 +602,7 @@ { newmin = bytmin; - DEC_BYTIND (buf, newmin); + DEC_BYTEBPOS (buf, newmin); newsize = bytmin - newmin; if (newsize != size) { @@ -630,17 +630,17 @@ buf->text->mule_three_p = 1; buf->text->mule_shifter = 1; - if (gap > MAX_BYTIND_GAP_SIZE_3) + if (gap > MAX_BYTEBPOS_GAP_SIZE_3) { if (forward_p) { - bytmin = bytmax - MAX_BYTIND_GAP_SIZE_3; - bufmin = bufmax - MAX_BUFPOS_GAP_SIZE_3; + bytmin = bytmax - MAX_BYTEBPOS_GAP_SIZE_3; + bufmin = bufmax - MAX_CHARBPOS_GAP_SIZE_3; } else { - bytmax = bytmin + MAX_BYTIND_GAP_SIZE_3; - bufmax = bufmin + MAX_BUFPOS_GAP_SIZE_3; + bytmax = bytmin + MAX_BYTEBPOS_GAP_SIZE_3; + bufmax = bufmin + MAX_CHARBPOS_GAP_SIZE_3; } } } @@ -671,8 +671,8 @@ it's worth it to go to the trouble of maintaining that. */ not_very_random_number += 621; replace_loc = not_very_random_number & 15; - buf->text->mule_bufpos_cache[replace_loc] = x; - buf->text->mule_bytind_cache[replace_loc] = retval; + buf->text->mule_charbpos_cache[replace_loc] = x; + buf->text->mule_bytebpos_cache[replace_loc] = retval; } return retval; @@ -681,16 +681,16 @@ /* The logic in this function is almost identical to the logic in the previous function. */ -Bufpos -bytind_to_bufpos_func (struct buffer *buf, Bytind x) +Charbpos +bytebpos_to_charbpos_func (struct buffer *buf, Bytebpos x) { - Bufpos bufmin; - Bufpos bufmax; - Bytind bytmin; - Bytind bytmax; + Charbpos bufmin; + Charbpos bufmax; + Bytebpos bytmin; + Bytebpos bytmax; int size; int forward_p; - Bufpos retval; + Charbpos retval; int diff_so_far; int add_to_cache = 0; @@ -722,9 +722,9 @@ if (x > bytmax) { - Bytind diffmax = x - bytmax; - Bytind diffpt = x - BI_BUF_PT (buf); - Bytind diffzv = BI_BUF_ZV (buf) - x; + Bytebpos diffmax = x - bytmax; + Bytebpos diffpt = x - BI_BUF_PT (buf); + Bytebpos diffzv = BI_BUF_ZV (buf) - x; /* #### This value could stand some more exploration. */ Bytecount heuristic_hack = (bytmax - bytmin) >> 2; @@ -764,15 +764,15 @@ size = 1; } } -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS else if (x >= bytmin) abort (); #endif else { - Bytind diffmin = bytmin - x; - Bytind diffpt = BI_BUF_PT (buf) - x; - Bytind diffbegv = x - BI_BUF_BEGV (buf); + Bytebpos diffmin = bytmin - x; + Bytebpos diffpt = BI_BUF_PT (buf) - x; + Bytebpos diffbegv = x - BI_BUF_BEGV (buf); /* #### This value could stand some more exploration. */ Bytecount heuristic_hack = (bytmax - bytmin) >> 2; @@ -822,7 +822,7 @@ it doesn't seem like it would really matter. */ for (i = 0; i < 16; i++) { - int diff = buf->text->mule_bytind_cache[i] - x; + int diff = buf->text->mule_bytebpos_cache[i] - x; if (diff < 0) diff = -diff; @@ -835,8 +835,8 @@ if (minval < diff_so_far) { - bufmax = bufmin = buf->text->mule_bufpos_cache[found]; - bytmax = bytmin = buf->text->mule_bytind_cache[found]; + bufmax = bufmin = buf->text->mule_charbpos_cache[found]; + bytmax = bytmin = buf->text->mule_bytebpos_cache[found]; size = 1; } } @@ -845,7 +845,7 @@ the same as one of the range edges. */ if (x >= bytmax) { - Bytind newmax; + Bytebpos newmax; Bytecount newsize; forward_p = 1; @@ -853,7 +853,7 @@ { newmax = bytmax; - INC_BYTIND (buf, newmax); + INC_BYTEBPOS (buf, newmax); newsize = newmax - bytmax; if (newsize != size) { @@ -871,7 +871,7 @@ } else /* x <= bytmin */ { - Bytind newmin; + Bytebpos newmin; Bytecount newsize; forward_p = 0; @@ -879,7 +879,7 @@ { newmin = bytmin; - DEC_BYTIND (buf, newmin); + DEC_BYTEBPOS (buf, newmin); newsize = bytmin - newmin; if (newsize != size) { @@ -907,17 +907,17 @@ buf->text->mule_three_p = 1; buf->text->mule_shifter = 1; - if (gap > MAX_BYTIND_GAP_SIZE_3) + if (gap > MAX_BYTEBPOS_GAP_SIZE_3) { if (forward_p) { - bytmin = bytmax - MAX_BYTIND_GAP_SIZE_3; - bufmin = bufmax - MAX_BUFPOS_GAP_SIZE_3; + bytmin = bytmax - MAX_BYTEBPOS_GAP_SIZE_3; + bufmin = bufmax - MAX_CHARBPOS_GAP_SIZE_3; } else { - bytmax = bytmin + MAX_BYTIND_GAP_SIZE_3; - bufmax = bufmin + MAX_BUFPOS_GAP_SIZE_3; + bytmax = bytmin + MAX_BYTEBPOS_GAP_SIZE_3; + bufmax = bufmin + MAX_CHARBPOS_GAP_SIZE_3; } } } @@ -948,18 +948,18 @@ it's worth it to go to the trouble of maintaining that. */ not_very_random_number += 621; replace_loc = not_very_random_number & 15; - buf->text->mule_bufpos_cache[replace_loc] = retval; - buf->text->mule_bytind_cache[replace_loc] = x; + buf->text->mule_charbpos_cache[replace_loc] = retval; + buf->text->mule_bytebpos_cache[replace_loc] = x; } return retval; } /* Text of length BYTELENGTH and CHARLENGTH (in different units) - was inserted at bufpos START. */ + was inserted at charbpos START. */ static void -buffer_mule_signal_inserted_region (struct buffer *buf, Bufpos start, +buffer_mule_signal_inserted_region (struct buffer *buf, Charbpos start, Bytecount bytelength, Charcount charlength) { @@ -970,10 +970,10 @@ for (i = 0; i < 16; i++) { - if (buf->text->mule_bufpos_cache[i] > start) + if (buf->text->mule_charbpos_cache[i] > start) { - buf->text->mule_bufpos_cache[i] += charlength; - buf->text->mule_bytind_cache[i] += bytelength; + buf->text->mule_charbpos_cache[i] += charlength; + buf->text->mule_bytebpos_cache[i] += bytelength; } } @@ -994,21 +994,21 @@ } else { - Bufpos end = start + charlength; + Charbpos end = start + charlength; /* the insertion point divides the known region in two. Keep the longer half, at least, and expand into the inserted chunk as much as possible. */ if (start - buf->text->mule_bufmin > buf->text->mule_bufmax - start) { - Bytind bytestart = (buf->text->mule_bytmin + Bytebpos bytestart = (buf->text->mule_bytmin + size * (start - buf->text->mule_bufmin)); - Bytind bytenew; + Bytebpos bytenew; while (start < end) { bytenew = bytestart; - INC_BYTIND (buf, bytenew); + INC_BYTEBPOS (buf, bytenew); if (bytenew - bytestart != size) break; start++; @@ -1027,10 +1027,10 @@ } else { - Bytind byteend = (buf->text->mule_bytmin + Bytebpos byteend = (buf->text->mule_bytmin + size * (start - buf->text->mule_bufmin) + bytelength); - Bytind bytenew; + Bytebpos bytenew; buf->text->mule_bufmax += charlength; buf->text->mule_bytmax += bytelength; @@ -1038,7 +1038,7 @@ while (end > start) { bytenew = byteend; - DEC_BYTIND (buf, bytenew); + DEC_BYTEBPOS (buf, bytenew); if (byteend - bytenew != size) break; end--; @@ -1053,13 +1053,13 @@ } } -/* Text from START to END (equivalent in Bytinds: from BI_START to +/* Text from START to END (equivalent in Bytebposs: from BI_START to BI_END) was deleted. */ static void -buffer_mule_signal_deleted_region (struct buffer *buf, Bufpos start, - Bufpos end, Bytind bi_start, - Bytind bi_end) +buffer_mule_signal_deleted_region (struct buffer *buf, Charbpos start, + Charbpos end, Bytebpos bi_start, + Bytebpos bi_end) { int i; @@ -1067,16 +1067,16 @@ for (i = 0; i < 16; i++) { /* After the end; gets shoved backward */ - if (buf->text->mule_bufpos_cache[i] > end) + if (buf->text->mule_charbpos_cache[i] > end) { - buf->text->mule_bufpos_cache[i] -= end - start; - buf->text->mule_bytind_cache[i] -= bi_end - bi_start; + buf->text->mule_charbpos_cache[i] -= end - start; + buf->text->mule_bytebpos_cache[i] -= bi_end - bi_start; } /* In the range; moves to start of range */ - else if (buf->text->mule_bufpos_cache[i] > start) + else if (buf->text->mule_charbpos_cache[i] > start) { - buf->text->mule_bufpos_cache[i] = start; - buf->text->mule_bytind_cache[i] = bi_start; + buf->text->mule_charbpos_cache[i] = start; + buf->text->mule_bytebpos_cache[i] = bi_start; } } @@ -1106,24 +1106,24 @@ #endif /* MULE */ -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS -Bytind -bufpos_to_bytind (struct buffer *buf, Bufpos x) +Bytebpos +charbpos_to_bytebpos (struct buffer *buf, Charbpos x) { - Bytind retval = real_bufpos_to_bytind (buf, x); - ASSERT_VALID_BYTIND_UNSAFE (buf, retval); + Bytebpos retval = real_charbpos_to_bytebpos (buf, x); + ASSERT_VALID_BYTEBPOS_UNSAFE (buf, retval); return retval; } -Bufpos -bytind_to_bufpos (struct buffer *buf, Bytind x) +Charbpos +bytebpos_to_charbpos (struct buffer *buf, Bytebpos x) { - ASSERT_VALID_BYTIND_UNSAFE (buf, x); - return real_bytind_to_bufpos (buf, x); + ASSERT_VALID_BYTEBPOS_UNSAFE (buf, x); + return real_bytebpos_to_charbpos (buf, x); } -#endif /* ERROR_CHECK_BUFPOS */ +#endif /* ERROR_CHECK_CHARBPOS */ /************************************************************************/ @@ -1132,7 +1132,7 @@ /* Functions below are tagged with either _byte or _char indicating whether they return byte or character positions. For a buffer, - a character position is a "Bufpos" and a byte position is a "Bytind". + a character position is a "Charbpos" and a byte position is a "Bytebpos". For strings, these are sometimes typed using "Charcount" and "Bytecount". */ @@ -1191,12 +1191,12 @@ */ -Bufpos +Charbpos get_buffer_pos_char (struct buffer *b, Lisp_Object pos, unsigned int flags) { /* Does not GC */ - Bufpos ind; - Bufpos min_allowed, max_allowed; + Charbpos ind; + Charbpos min_allowed, max_allowed; CHECK_INT_COERCE_MARKER (pos); ind = XINT (pos); @@ -1220,13 +1220,13 @@ return ind; } -Bytind +Bytebpos get_buffer_pos_byte (struct buffer *b, Lisp_Object pos, unsigned int flags) { - Bufpos bpos = get_buffer_pos_char (b, pos, flags); + Charbpos bpos = get_buffer_pos_char (b, pos, flags); if (bpos < 0) /* could happen with GB_NO_ERROR_IF_BAD */ return -1; - return bufpos_to_bytind (b, bpos); + return charbpos_to_bytebpos (b, bpos); } /* Return a pair of buffer positions representing a range of text, @@ -1242,10 +1242,10 @@ void get_buffer_range_char (struct buffer *b, Lisp_Object from, Lisp_Object to, - Bufpos *from_out, Bufpos *to_out, unsigned int flags) + Charbpos *from_out, Charbpos *to_out, unsigned int flags) { /* Does not GC */ - Bufpos min_allowed, max_allowed; + Charbpos min_allowed, max_allowed; min_allowed = (flags & GB_ALLOW_PAST_ACCESSIBLE) ? BUF_BEG (b) : BUF_BEGV (b); @@ -1275,7 +1275,7 @@ invalid_argument_2 ("start greater than end", from, to); else { - Bufpos temp = *from_out; + Charbpos temp = *from_out; *from_out = *to_out; *to_out = temp; } @@ -1284,17 +1284,17 @@ void get_buffer_range_byte (struct buffer *b, Lisp_Object from, Lisp_Object to, - Bytind *from_out, Bytind *to_out, unsigned int flags) + Bytebpos *from_out, Bytebpos *to_out, unsigned int flags) { - Bufpos s, e; + Charbpos s, e; get_buffer_range_char (b, from, to, &s, &e, flags); if (s >= 0) - *from_out = bufpos_to_bytind (b, s); + *from_out = charbpos_to_bytebpos (b, s); else /* could happen with GB_NO_ERROR_IF_BAD */ *from_out = -1; if (e >= 0) - *to_out = bufpos_to_bytind (b, e); + *to_out = charbpos_to_bytebpos (b, e); else *to_out = -1; } @@ -1374,7 +1374,7 @@ invalid_argument_2 ("start greater than end", from, to); else { - Bufpos temp = *from_out; + Charbpos temp = *from_out; *from_out = *to_out; *to_out = temp; } @@ -1400,7 +1400,7 @@ } -Bufpos +Charbpos get_buffer_or_string_pos_char (Lisp_Object object, Lisp_Object pos, unsigned int flags) { @@ -1409,7 +1409,7 @@ get_buffer_pos_char (XBUFFER (object), pos, flags); } -Bytind +Bytebpos get_buffer_or_string_pos_byte (Lisp_Object object, Lisp_Object pos, unsigned int flags) { @@ -1420,8 +1420,8 @@ void get_buffer_or_string_range_char (Lisp_Object object, Lisp_Object from, - Lisp_Object to, Bufpos *from_out, - Bufpos *to_out, unsigned int flags) + Lisp_Object to, Charbpos *from_out, + Charbpos *to_out, unsigned int flags) { if (STRINGP (object)) get_string_range_char (object, from, to, from_out, to_out, flags); @@ -1431,8 +1431,8 @@ void get_buffer_or_string_range_byte (Lisp_Object object, Lisp_Object from, - Lisp_Object to, Bytind *from_out, - Bytind *to_out, unsigned int flags) + Lisp_Object to, Bytebpos *from_out, + Bytebpos *to_out, unsigned int flags) { if (STRINGP (object)) get_string_range_byte (object, from, to, from_out, to_out, flags); @@ -1440,52 +1440,52 @@ get_buffer_range_byte (XBUFFER (object), from, to, from_out, to_out, flags); } -Bufpos +Charbpos buffer_or_string_accessible_begin_char (Lisp_Object object) { return STRINGP (object) ? 0 : BUF_BEGV (XBUFFER (object)); } -Bufpos +Charbpos buffer_or_string_accessible_end_char (Lisp_Object object) { return STRINGP (object) ? XSTRING_CHAR_LENGTH (object) : BUF_ZV (XBUFFER (object)); } -Bytind +Bytebpos buffer_or_string_accessible_begin_byte (Lisp_Object object) { return STRINGP (object) ? 0 : BI_BUF_BEGV (XBUFFER (object)); } -Bytind +Bytebpos buffer_or_string_accessible_end_byte (Lisp_Object object) { return STRINGP (object) ? XSTRING_LENGTH (object) : BI_BUF_ZV (XBUFFER (object)); } -Bufpos +Charbpos buffer_or_string_absolute_begin_char (Lisp_Object object) { return STRINGP (object) ? 0 : BUF_BEG (XBUFFER (object)); } -Bufpos +Charbpos buffer_or_string_absolute_end_char (Lisp_Object object) { return STRINGP (object) ? XSTRING_CHAR_LENGTH (object) : BUF_Z (XBUFFER (object)); } -Bytind +Bytebpos buffer_or_string_absolute_begin_byte (Lisp_Object object) { return STRINGP (object) ? 0 : BI_BUF_BEG (XBUFFER (object)); } -Bytind +Bytebpos buffer_or_string_absolute_end_byte (Lisp_Object object) { return STRINGP (object) ? @@ -1514,26 +1514,26 @@ /* This gets called more than enough to make the function call overhead a significant factor so we've turned it into a macro. */ -#define JUST_SET_POINT(buf, bufpos, ind) \ +#define JUST_SET_POINT(buf, charbpos, ind) \ do \ { \ - buf->bufpt = (bufpos); \ + buf->bufpt = (charbpos); \ buf->pt = (ind); \ } while (0) /* Set a buffer's point. */ void -set_buffer_point (struct buffer *buf, Bufpos bufpos, Bytind bytpos) +set_buffer_point (struct buffer *buf, Charbpos charbpos, Bytebpos bytpos) { assert (bytpos >= BI_BUF_BEGV (buf) && bytpos <= BI_BUF_ZV (buf)); if (bytpos == BI_BUF_PT (buf)) return; - JUST_SET_POINT (buf, bufpos, bytpos); + JUST_SET_POINT (buf, charbpos, bytpos); MARK_POINT_CHANGED; assert (MARKERP (buf->point_marker)); - XMARKER (buf->point_marker)->memind = - bytind_to_memind (buf, bytpos); + XMARKER (buf->point_marker)->membpos = + bytebpos_to_membpos (buf, bytpos); /* FSF makes sure that PT is not being set within invisible text. However, this is the wrong place for that check. The check @@ -1558,9 +1558,9 @@ /* Do the correct marker-like adjustment on MPOS (see below). FROM, TO, and AMOUNT are as in adjust_markers(). If MPOS doesn't need to be adjusted, nothing will happen. */ -Memind -do_marker_adjustment (Memind mpos, Memind from, - Memind to, Bytecount amount) +Membpos +do_marker_adjustment (Membpos mpos, Membpos from, + Membpos to, Bytecount amount) { if (amount > 0) { @@ -1602,27 +1602,27 @@ */ static void -adjust_markers (struct buffer *buf, Memind from, Memind to, +adjust_markers (struct buffer *buf, Membpos from, Membpos to, Bytecount amount) { Lisp_Marker *m; for (m = BUF_MARKERS (buf); m; m = marker_next (m)) - m->memind = do_marker_adjustment (m->memind, from, to, amount); + m->membpos = do_marker_adjustment (m->membpos, from, to, amount); } /* Adjust markers whose insertion-type is t for an insertion of AMOUNT characters at POS. */ static void -adjust_markers_for_insert (struct buffer *buf, Memind ind, Bytecount amount) +adjust_markers_for_insert (struct buffer *buf, Membpos ind, Bytecount amount) { Lisp_Marker *m; for (m = BUF_MARKERS (buf); m; m = marker_next (m)) { - if (m->insertion_type && m->memind == ind) - m->memind += amount; + if (m->insertion_type && m->membpos == ind) + m->membpos += amount; } } @@ -1640,11 +1640,11 @@ /* Move the gap to POS, which is less than the current GPT. */ static void -gap_left (struct buffer *buf, Bytind pos) +gap_left (struct buffer *buf, Bytebpos pos) { - Bufbyte *to, *from; + Intbyte *to, *from; Bytecount i; - Bytind new_s1; + Bytebpos new_s1; struct buffer *mbuf; Lisp_Object bufcons; @@ -1711,11 +1711,11 @@ } static void -gap_right (struct buffer *buf, Bytind pos) +gap_right (struct buffer *buf, Bytebpos pos) { - Bufbyte *to, *from; + Intbyte *to, *from; Bytecount i; - Bytind new_s1; + Bytebpos new_s1; struct buffer *mbuf; Lisp_Object bufcons; @@ -1794,7 +1794,7 @@ Note that this can quit! */ static void -move_gap (struct buffer *buf, Bytind pos) +move_gap (struct buffer *buf, Bytebpos pos) { if (! BUF_BEG_ADDR (buf)) abort (); @@ -1810,7 +1810,7 @@ merge_gap_with_end_gap (struct buffer *buf) { Lisp_Object tem; - Bytind real_gap_loc; + Bytebpos real_gap_loc; Bytecount old_gap_size; Bytecount increment; @@ -1852,9 +1852,9 @@ static void make_gap (struct buffer *buf, Bytecount increment) { - Bufbyte *result; + Intbyte *result; Lisp_Object tem; - Bytind real_gap_loc; + Bytebpos real_gap_loc; Bytecount old_gap_size; /* If we have to get more space, get enough to last a while. We use @@ -1920,8 +1920,8 @@ /* Those magic changes ... */ static void -buffer_signal_changed_region (struct buffer *buf, Bufpos start, - Bufpos end) +buffer_signal_changed_region (struct buffer *buf, Charbpos start, + Charbpos end) { /* The changed region is recorded as the number of unchanged characters from the beginning and from the end of the @@ -1937,8 +1937,8 @@ } void -buffer_extent_signal_changed_region (struct buffer *buf, Bufpos start, - Bufpos end) +buffer_extent_signal_changed_region (struct buffer *buf, Charbpos start, + Charbpos end) { if (buf->changes->begin_extent_unchanged < 0 || buf->changes->begin_extent_unchanged > start - BUF_BEG (buf)) @@ -1959,8 +1959,8 @@ } static void -signal_after_change (struct buffer *buf, Bufpos start, Bufpos orig_end, - Bufpos new_end); +signal_after_change (struct buffer *buf, Charbpos start, Charbpos orig_end, + Charbpos new_end); /* Call the after-change-functions according to the changes made so far @@ -1984,7 +1984,7 @@ if (buf->text->changes->mc_begin != 0 && buf->text->changes->mc_begin_signaled) { - Bufpos real_mc_begin = buf->text->changes->mc_begin; + Charbpos real_mc_begin = buf->text->changes->mc_begin; buf->text->changes->mc_begin = 0; signal_after_change (buf, real_mc_begin, buf->text->changes->mc_orig_end, @@ -2037,7 +2037,7 @@ whether we want to introduce a similar Lisp form. */ int -begin_multiple_change (struct buffer *buf, Bufpos start, Bufpos end) +begin_multiple_change (struct buffer *buf, Charbpos start, Charbpos end) { /* This function can GC */ int count = -1; @@ -2124,7 +2124,7 @@ START and END are the bounds of the text to be changed. */ static void -signal_before_change (struct buffer *buf, Bufpos start, Bufpos end) +signal_before_change (struct buffer *buf, Charbpos start, Charbpos end) { /* This function can GC */ struct buffer *mbuf; @@ -2212,14 +2212,14 @@ } /* Signal a change immediately after it happens. - START is the bufpos of the start of the changed text. - ORIG_END is the bufpos of the end of the before-changed text. - NEW_END is the bufpos of the end of the after-changed text. + START is the charbpos of the start of the changed text. + ORIG_END is the charbpos of the end of the before-changed text. + NEW_END is the charbpos of the end of the after-changed text. */ static void -signal_after_change (struct buffer *buf, Bufpos start, Bufpos orig_end, - Bufpos new_end) +signal_after_change (struct buffer *buf, Charbpos start, Charbpos orig_end, + Charbpos new_end) { /* This function can GC */ struct buffer *mbuf; @@ -2301,7 +2301,7 @@ it should pay attention to that area. */ static void -prepare_to_modify_buffer (struct buffer *buf, Bufpos start, Bufpos end, +prepare_to_modify_buffer (struct buffer *buf, Charbpos start, Charbpos end, int lockit) { /* This function can GC */ @@ -2370,7 +2370,7 @@ /************************************************************************/ void -fixup_internal_substring (const Bufbyte *nonreloc, Lisp_Object reloc, +fixup_internal_substring (const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount *len) { assert ((nonreloc && NILP (reloc)) || (!nonreloc && STRINGP (reloc))); @@ -2382,7 +2382,7 @@ else *len = XSTRING_LENGTH (reloc) - offset; } -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS assert (*len >= 0); if (STRINGP (reloc)) { @@ -2392,7 +2392,7 @@ #endif } -/* Insert a string into BUF at Bufpos POS. The string data comes +/* Insert a string into BUF at Charbpos POS. The string data comes from one of two sources: constant, non-relocatable data (specified in NONRELOC), or a Lisp string object (specified in RELOC), which is relocatable and may have extent data that needs to be copied @@ -2411,14 +2411,14 @@ in the higher-level Lisp functions calling insert-file-contents. */ Charcount -buffer_insert_string_1 (struct buffer *buf, Bufpos pos, - const Bufbyte *nonreloc, Lisp_Object reloc, +buffer_insert_string_1 (struct buffer *buf, Charbpos pos, + const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length, int flags) { /* This function can GC */ struct gcpro gcpro1; - Bytind ind; + Bytebpos ind; Charcount cclen; int move_point = 0; struct buffer *mbuf; @@ -2472,7 +2472,7 @@ if (STRINGP (reloc)) nonreloc = XSTRING_DATA (reloc); - ind = bufpos_to_bytind (buf, pos); + ind = charbpos_to_bytebpos (buf, pos); cclen = bytecount_to_charcount (nonreloc + offset, length); if (ind != BI_BUF_GPT (buf)) @@ -2525,7 +2525,7 @@ MAP_INDIRECT_BUFFERS (buf, mbuf, bufcons) { /* We know the gap is at IND so the cast is OK. */ - adjust_markers_for_insert (mbuf, (Memind) ind, length); + adjust_markers_for_insert (mbuf, (Membpos) ind, length); } /* Point logically doesn't move, but may need to be adjusted because @@ -2555,7 +2555,7 @@ MAP_INDIRECT_BUFFERS (buf, mbuf, bufcons) { /* ind - 1 is correct because the FROM argument is exclusive. - I formerly used DEC_BYTIND() but that caused problems at the + I formerly used DEC_BYTEBPOS() but that caused problems at the beginning of the buffer. */ adjust_markers (mbuf, ind - 1, ind, length); } @@ -2576,8 +2576,8 @@ moves forward past the text.) FLAGS is as above. */ Charcount -buffer_insert_raw_string_1 (struct buffer *buf, Bufpos pos, - const Bufbyte *nonreloc, Bytecount length, +buffer_insert_raw_string_1 (struct buffer *buf, Charbpos pos, + const Intbyte *nonreloc, Bytecount length, int flags) { /* This function can GC */ @@ -2586,7 +2586,7 @@ } Charcount -buffer_insert_lisp_string_1 (struct buffer *buf, Bufpos pos, Lisp_Object str, +buffer_insert_lisp_string_1 (struct buffer *buf, Charbpos pos, Lisp_Object str, int flags) { /* This function can GC */ @@ -2601,27 +2601,27 @@ /* Insert the null-terminated string S (in external format). */ Charcount -buffer_insert_c_string_1 (struct buffer *buf, Bufpos pos, const char *s, +buffer_insert_c_string_1 (struct buffer *buf, Charbpos pos, const char *s, int flags) { /* This function can GC */ const char *translated = GETTEXT (s); - return buffer_insert_string_1 (buf, pos, (const Bufbyte *) translated, Qnil, + return buffer_insert_string_1 (buf, pos, (const Intbyte *) translated, Qnil, 0, strlen (translated), flags); } Charcount -buffer_insert_emacs_char_1 (struct buffer *buf, Bufpos pos, Emchar ch, +buffer_insert_emacs_char_1 (struct buffer *buf, Charbpos pos, Emchar ch, int flags) { /* This function can GC */ - Bufbyte str[MAX_EMCHAR_LEN]; + Intbyte str[MAX_EMCHAR_LEN]; Bytecount len = set_charptr_emchar (str, ch); return buffer_insert_string_1 (buf, pos, str, Qnil, 0, len, flags); } Charcount -buffer_insert_c_char_1 (struct buffer *buf, Bufpos pos, char c, +buffer_insert_c_char_1 (struct buffer *buf, Charbpos pos, char c, int flags) { /* This function can GC */ @@ -2630,8 +2630,8 @@ } Charcount -buffer_insert_from_buffer_1 (struct buffer *buf, Bufpos pos, - struct buffer *buf2, Bufpos pos2, +buffer_insert_from_buffer_1 (struct buffer *buf, Charbpos pos, + struct buffer *buf2, Charbpos pos2, Charcount length, int flags) { /* This function can GC */ @@ -2648,11 +2648,11 @@ /* Delete characters in buffer from FROM up to (but not including) TO. */ void -buffer_delete_range (struct buffer *buf, Bufpos from, Bufpos to, int flags) +buffer_delete_range (struct buffer *buf, Charbpos from, Charbpos to, int flags) { /* This function can GC */ Charcount numdel; - Bytind bi_from, bi_to; + Bytebpos bi_from, bi_to; Bytecount bc_numdel; EMACS_INT shortage; struct buffer *mbuf; @@ -2702,8 +2702,8 @@ } } - bi_from = bufpos_to_bytind (buf, from); - bi_to = bufpos_to_bytind (buf, to); + bi_from = charbpos_to_bytebpos (buf, from); + bi_to = charbpos_to_bytebpos (buf, to); bc_numdel = bi_to - bi_from; delete_invalidate_line_number_cache (buf, from, to); @@ -2721,10 +2721,10 @@ MARK_BUFFERS_CHANGED; /* #### Point used to be modified here, but this causes problems - with MULE, as point is used to calculate bytinds, and if the + with MULE, as point is used to calculate bytebposs, and if the offset in bc_numdel causes point to move to a non first-byte location, causing some other function to throw an assertion - in ASSERT_VALID_BYTIND. I've moved the code to right after + in ASSERT_VALID_BYTEBPOS. I've moved the code to right after the other movements and adjustments, but before the gap is moved. -- jh 970813 */ @@ -2796,10 +2796,10 @@ MARK_BUFFERS_CHANGED; /* #### Point used to be modified here, but this causes problems - with MULE, as point is used to calculate bytinds, and if the + with MULE, as point is used to calculate bytebposs, and if the offset in bc_numdel causes point to move to a non first-byte location, causing some other function to throw an assertion - in ASSERT_VALID_BYTIND. I've moved the code to right after + in ASSERT_VALID_BYTEBPOS. I've moved the code to right after the other movements and adjustments, but before the gap is moved. -- jh 970813 */ @@ -2878,12 +2878,12 @@ /* Replace the character at POS in buffer B with CH. */ void -buffer_replace_char (struct buffer *buf, Bufpos pos, Emchar ch, +buffer_replace_char (struct buffer *buf, Charbpos pos, Emchar ch, int not_real_change, int force_lock_check) { /* This function can GC */ - Bufbyte curstr[MAX_EMCHAR_LEN]; - Bufbyte newstr[MAX_EMCHAR_LEN]; + Intbyte curstr[MAX_EMCHAR_LEN]; + Intbyte newstr[MAX_EMCHAR_LEN]; Bytecount curlen, newlen; /* Defensive steps just in case a buffer gets deleted and a calling @@ -2986,12 +2986,12 @@ and add any necessary extents from the buffer. */ static Lisp_Object -make_string_from_buffer_1 (struct buffer *buf, Bufpos pos, Charcount length, +make_string_from_buffer_1 (struct buffer *buf, Charbpos pos, Charcount length, int no_extents) { /* This function can GC */ - Bytind bi_ind = bufpos_to_bytind (buf, pos); - Bytecount bi_len = bufpos_to_bytind (buf, pos + length) - bi_ind; + Bytebpos bi_ind = charbpos_to_bytebpos (buf, pos); + Bytecount bi_len = charbpos_to_bytebpos (buf, pos + length) - bi_ind; Lisp_Object val = make_uninit_string (bi_len); struct gcpro gcpro1; @@ -3002,8 +3002,8 @@ { Bytecount len1 = BI_BUF_GPT (buf) - bi_ind; - Bufbyte *start1 = BI_BUF_BYTE_ADDRESS (buf, bi_ind); - Bufbyte *dest = XSTRING_DATA (val); + Intbyte *start1 = BI_BUF_BYTE_ADDRESS (buf, bi_ind); + Intbyte *dest = XSTRING_DATA (val); if (len1 < 0) { @@ -3018,8 +3018,8 @@ else { /* Spans gap */ - Bytind pos2 = bi_ind + len1; - Bufbyte *start2 = BI_BUF_BYTE_ADDRESS (buf, pos2); + Bytebpos pos2 = bi_ind + len1; + Intbyte *start2 = BI_BUF_BYTE_ADDRESS (buf, pos2); memcpy (dest, start1, len1); memcpy (dest + len1, start2, bi_len - len1); @@ -3031,20 +3031,20 @@ } Lisp_Object -make_string_from_buffer (struct buffer *buf, Bufpos pos, Charcount length) +make_string_from_buffer (struct buffer *buf, Charbpos pos, Charcount length) { return make_string_from_buffer_1 (buf, pos, length, 0); } Lisp_Object -make_string_from_buffer_no_extents (struct buffer *buf, Bufpos pos, +make_string_from_buffer_no_extents (struct buffer *buf, Charbpos pos, Charcount length) { return make_string_from_buffer_1 (buf, pos, length, 1); } void -barf_if_buffer_read_only (struct buffer *buf, Bufpos from, Bufpos to) +barf_if_buffer_read_only (struct buffer *buf, Charbpos from, Charbpos to) { Lisp_Object buffer; Lisp_Object iro; @@ -3065,21 +3065,21 @@ if (to < 0) to = from; verify_extent_modification (buffer, - bufpos_to_bytind (buf, from), - bufpos_to_bytind (buf, to), + charbpos_to_bytebpos (buf, from), + charbpos_to_bytebpos (buf, to), iro); } } void -find_charsets_in_bufbyte_string (unsigned char *charsets, const Bufbyte *str, +find_charsets_in_intbyte_string (unsigned char *charsets, const Intbyte *str, Bytecount len) { #ifndef MULE /* Telescope this. */ charsets[0] = 1; #else - const Bufbyte *strend = str + len; + const Intbyte *strend = str + len; memset (charsets, 0, NUM_LEADING_BYTES); /* #### SJT doesn't like this. */ @@ -3124,10 +3124,10 @@ } int -bufbyte_string_displayed_columns (const Bufbyte *str, Bytecount len) +intbyte_string_displayed_columns (const Intbyte *str, Bytecount len) { int cols = 0; - const Bufbyte *end = str + len; + const Intbyte *end = str + len; while (str < end) { @@ -3162,10 +3162,10 @@ /* NOTE: Does not reset the Dynarr. */ void -convert_bufbyte_string_into_emchar_dynarr (const Bufbyte *str, Bytecount len, +convert_intbyte_string_into_emchar_dynarr (const Intbyte *str, Bytecount len, Emchar_dynarr *dyn) { - const Bufbyte *strend = str + len; + const Intbyte *strend = str + len; while (str < strend) { @@ -3176,10 +3176,10 @@ } Charcount -convert_bufbyte_string_into_emchar_string (const Bufbyte *str, Bytecount len, +convert_intbyte_string_into_emchar_string (const Intbyte *str, Bytecount len, Emchar *arr) { - const Bufbyte *strend = str + len; + const Intbyte *strend = str + len; Charcount newlen = 0; while (str < strend) { @@ -3191,14 +3191,14 @@ } /* Convert an array of Emchars into the equivalent string representation. - Store into the given Bufbyte dynarr. Does not reset the dynarr. + Store into the given Intbyte dynarr. Does not reset the dynarr. Does not add a terminating zero. */ void -convert_emchar_string_into_bufbyte_dynarr (Emchar *arr, int nels, - Bufbyte_dynarr *dyn) +convert_emchar_string_into_intbyte_dynarr (Emchar *arr, int nels, + Intbyte_dynarr *dyn) { - Bufbyte str[MAX_EMCHAR_LEN]; + Intbyte str[MAX_EMCHAR_LEN]; int i; for (i = 0; i < nels; i++) @@ -3210,17 +3210,17 @@ /* Convert an array of Emchars into the equivalent string representation. Malloc the space needed for this and return it. If LEN_OUT is not a - NULL pointer, store into LEN_OUT the number of Bufbytes in the - malloc()ed string. Note that the actual number of Bufbytes allocated + NULL pointer, store into LEN_OUT the number of Intbytes in the + malloc()ed string. Note that the actual number of Intbytes allocated is one more than this: the returned string is zero-terminated. */ -Bufbyte * +Intbyte * convert_emchar_string_into_malloced_string (Emchar *arr, int nels, Bytecount *len_out) { /* Damn zero-termination. */ - Bufbyte *str = (Bufbyte *) alloca (nels * MAX_EMCHAR_LEN + 1); - Bufbyte *strorig = str; + Intbyte *str = (Intbyte *) alloca (nels * MAX_EMCHAR_LEN + 1); + Intbyte *strorig = str; Bytecount len; int i; @@ -3229,7 +3229,7 @@ str += set_charptr_emchar (str, arr[i]); *str = '\0'; len = str - strorig; - str = (Bufbyte *) xmalloc (1 + len); + str = (Intbyte *) xmalloc (1 + len); memcpy (str, strorig, 1 + len); if (len_out) *len_out = len; @@ -3249,7 +3249,7 @@ inside_change_hook = 0; in_first_change = 0; - for (i = 0; i <= MAX_BYTIND_GAP_SIZE_3; i++) + for (i = 0; i <= MAX_BYTEBPOS_GAP_SIZE_3; i++) three_to_one_table[i] = i / 3; } @@ -3285,8 +3285,8 @@ for (i = 0; i < 16; i++) { - b->text->mule_bufpos_cache[i] = 1; - b->text->mule_bytind_cache[i] = 1; + b->text->mule_charbpos_cache[i] = 1; + b->text->mule_bytebpos_cache[i] = 1; } } #endif /* MULE */ diff --text -u 'xemacs-21.5.3/src/insdel.h' 'xemacs-21.5.4/src/insdel.h' Index: ././src/insdel.h --- ././src/insdel.h Fri Apr 13 03:23:57 2001 +++ ././src/insdel.h Thu Sep 20 15:29:04 2001 @@ -29,7 +29,7 @@ /* changing a buffer's text */ /************************************************************************/ -int begin_multiple_change (struct buffer *buf, Bufpos start, Bufpos end); +int begin_multiple_change (struct buffer *buf, Charbpos start, Charbpos end); void end_multiple_change (struct buffer *buf, int count); /* flags for functions below */ @@ -37,23 +37,23 @@ #define INSDEL_BEFORE_MARKERS 1 #define INSDEL_NO_LOCKING 2 -Charcount buffer_insert_string_1 (struct buffer *buf, Bufpos pos, - const Bufbyte *nonreloc, Lisp_Object reloc, +Charcount buffer_insert_string_1 (struct buffer *buf, Charbpos pos, + const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length, int flags); -Charcount buffer_insert_raw_string_1 (struct buffer *buf, Bufpos pos, - const Bufbyte *nonreloc, +Charcount buffer_insert_raw_string_1 (struct buffer *buf, Charbpos pos, + const Intbyte *nonreloc, Bytecount length, int flags); -Charcount buffer_insert_lisp_string_1 (struct buffer *buf, Bufpos pos, +Charcount buffer_insert_lisp_string_1 (struct buffer *buf, Charbpos pos, Lisp_Object str, int flags); -Charcount buffer_insert_c_string_1 (struct buffer *buf, Bufpos pos, +Charcount buffer_insert_c_string_1 (struct buffer *buf, Charbpos pos, const char *s, int flags); -Charcount buffer_insert_emacs_char_1 (struct buffer *buf, Bufpos pos, +Charcount buffer_insert_emacs_char_1 (struct buffer *buf, Charbpos pos, Emchar ch, int flags); -Charcount buffer_insert_c_char_1 (struct buffer *buf, Bufpos pos, char c, +Charcount buffer_insert_c_char_1 (struct buffer *buf, Charbpos pos, char c, int flags); -Charcount buffer_insert_from_buffer_1 (struct buffer *buf, Bufpos pos, - struct buffer *buf2, Bufpos pos2, +Charcount buffer_insert_from_buffer_1 (struct buffer *buf, Charbpos pos, + struct buffer *buf2, Charbpos pos2, Charcount length, int flags); /* Macros for insertion functions that insert at point after markers. @@ -74,9 +74,9 @@ #define buffer_insert_from_buffer(buf, b, index, length) \ buffer_insert_from_buffer_1 (buf, -1, b, index, length, 0) -void buffer_delete_range (struct buffer *buf, Bufpos from, Bufpos to, +void buffer_delete_range (struct buffer *buf, Charbpos from, Charbpos to, int flags); -void buffer_replace_char (struct buffer *b, Bufpos pos, Emchar ch, +void buffer_replace_char (struct buffer *b, Charbpos pos, Emchar ch, int not_real_change, int force_lock_check); @@ -91,7 +91,7 @@ { /* multiple change stuff */ int in_multiple_change; - Bufpos mc_begin, mc_orig_end, mc_new_end; + Charbpos mc_begin, mc_orig_end, mc_new_end; int mc_begin_signaled; }; @@ -129,8 +129,8 @@ ((buf)->changes->newline_was_deleted) void buffer_extent_signal_changed_region (struct buffer *buf, - Bufpos start, - Bufpos end); + Charbpos start, + Charbpos end); void buffer_reset_changes (struct buffer *buf); @@ -139,22 +139,22 @@ /* other related functions */ /************************************************************************/ -Memind do_marker_adjustment (Memind mpos, Memind from, - Memind to, Bytecount amount); +Membpos do_marker_adjustment (Membpos mpos, Membpos from, + Membpos to, Bytecount amount); -void fixup_internal_substring (const Bufbyte *nonreloc, +void fixup_internal_substring (const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount *len); /* In font-lock.c */ void font_lock_maybe_update_syntactic_caches (struct buffer *buf, - Bufpos start, - Bufpos orig_end, - Bufpos new_end); + Charbpos start, + Charbpos orig_end, + Charbpos new_end); void font_lock_buffer_was_killed (struct buffer *buf); -void barf_if_buffer_read_only (struct buffer *buf, Bufpos from, - Bufpos to); +void barf_if_buffer_read_only (struct buffer *buf, Charbpos from, + Charbpos to); void init_buffer_text (struct buffer *b); void uninit_buffer_text (struct buffer *b); diff --text -u 'xemacs-21.5.3/src/keymap.c' 'xemacs-21.5.4/src/keymap.c' Index: ././src/keymap.c --- ././src/keymap.c Mon Aug 13 13:46:30 2001 +++ ././src/keymap.c Fri Jan 4 14:16:02 2002 @@ -440,7 +440,7 @@ "9" as its name. */ /* !!#### I'm not sure how correct this is. */ - Bufbyte str [1 + MAX_EMCHAR_LEN]; + Intbyte str [1 + MAX_EMCHAR_LEN]; Bytecount count = set_charptr_emchar (str, XCHAR (keysym)); str[count] = 0; keysym = intern ((char *) str); @@ -751,7 +751,7 @@ /************************************************************************/ static Lisp_Object -make_keymap (Element_Count size) +make_keymap (Elemcount size) { Lisp_Object result; Lisp_Keymap *keymap = alloc_lcrecord_type (Lisp_Keymap, &lrecord_keymap); @@ -1341,7 +1341,7 @@ strncpy(temp, name, sizeof (temp)); temp[sizeof (temp) - 1] = '\0'; temp[2] = '-'; - *keysym = Fintern_soft(make_string((Bufbyte *)temp, + *keysym = Fintern_soft(make_string((Intbyte *)temp, strlen(temp)), Qnil); } else if (EQ (*keysym, QLFD)) @@ -1647,7 +1647,7 @@ returned_value->modifiers = 0; if (modifiers_sans_meta == XEMACS_MOD_CONTROL) { - if EQ (keysym, QKspace) + if (EQ (keysym, QKspace)) MACROLET (make_char ('@'), modifiers); else if (!CHARP (keysym)) return; @@ -3259,7 +3259,7 @@ else if (EQ (keysym, Qshift)) strcpy (bufp, "Sh-"), bufp += 3; else if (CHAR_OR_CHAR_INTP (keysym)) { - bufp += set_charptr_emchar ((Bufbyte *) bufp, + bufp += set_charptr_emchar ((Intbyte *) bufp, XCHAR_OR_CHAR_INT (keysym)); *bufp = 0; } @@ -3297,8 +3297,8 @@ */ (chr)) { - Bufbyte buf[200]; - Bufbyte *p; + Intbyte buf[200]; + Intbyte *p; Emchar c; Lisp_Object ctl_arrow = current_buffer->ctl_arrow; int ctl_p = !NILP (ctl_arrow); @@ -4362,7 +4362,7 @@ staticpro (&Vcurrent_global_map); - Vsingle_space_string = make_string ((const Bufbyte *) " ", 1); + Vsingle_space_string = make_string ((const Intbyte *) " ", 1); staticpro (&Vsingle_space_string); } diff --text -u 'xemacs-21.5.3/src/line-number.c' 'xemacs-21.5.4/src/line-number.c' Index: ././src/line-number.c --- ././src/line-number.c Mon Aug 13 13:46:31 2001 +++ ././src/line-number.c Thu Sep 20 15:29:04 2001 @@ -118,7 +118,7 @@ /* Invalidate the line number cache positions that lie after POS. */ static void -invalidate_line_number_cache (struct buffer *b, Bufpos pos) +invalidate_line_number_cache (struct buffer *b, Charbpos pos) { EMACS_INT i, j; Lisp_Object *ring = XVECTOR_DATA (LINE_NUMBER_RING (b)); @@ -157,8 +157,8 @@ This will do nothing if the cache is uninitialized. */ void -insert_invalidate_line_number_cache (struct buffer *b, Bufpos pos, - const Bufbyte *nonreloc, Bytecount length) +insert_invalidate_line_number_cache (struct buffer *b, Charbpos pos, + const Intbyte *nonreloc, Bytecount length) { if (NILP (b->text->line_number_cache)) return; @@ -179,7 +179,7 @@ This will do nothing if the cache is uninitialized. */ void -delete_invalidate_line_number_cache (struct buffer *b, Bufpos from, Bufpos to) +delete_invalidate_line_number_cache (struct buffer *b, Charbpos from, Charbpos to) { if (NILP (b->text->line_number_cache)) return; @@ -204,7 +204,7 @@ BEG will be BUF_BEGV, and *LINE will be XINT (LINE_NUMBER_BEGV). This will initialize the cache, if necessary. */ static void -get_nearest_line_number (struct buffer *b, Bufpos *beg, Bufpos pos, +get_nearest_line_number (struct buffer *b, Charbpos *beg, Charbpos pos, EMACS_INT *line) { EMACS_INT i; @@ -217,7 +217,7 @@ /* Find the ring entry closest to POS, if it is closer than BEG. */ for (i = 0; i < LINE_NUMBER_RING_SIZE && CONSP (ring[i]); i++) { - Bufpos newpos = marker_position (XCAR (ring[i])); + Charbpos newpos = marker_position (XCAR (ring[i])); Charcount howfar = newpos - pos; if (howfar < 0) howfar = -howfar; @@ -232,7 +232,7 @@ /* Add a (POS . LINE) pair to the ring, and rotate it. */ static void -add_position_to_cache (struct buffer *b, Bufpos pos, EMACS_INT line) +add_position_to_cache (struct buffer *b, Charbpos pos, EMACS_INT line) { Lisp_Object *ring = XVECTOR_DATA (LINE_NUMBER_RING (b)); int i = LINE_NUMBER_RING_SIZE - 1; @@ -268,9 +268,9 @@ If the calculation (with or without the cache lookup) required more than LINE_NUMBER_FAR characters of traversal, update the cache. */ EMACS_INT -buffer_line_number (struct buffer *b, Bufpos pos, int cachep) +buffer_line_number (struct buffer *b, Charbpos pos, int cachep) { - Bufpos beg = BUF_BEGV (b); + Charbpos beg = BUF_BEGV (b); EMACS_INT cached_lines = 0; EMACS_INT shortage, line; diff --text -u 'xemacs-21.5.3/src/line-number.h' 'xemacs-21.5.4/src/line-number.h' Index: ././src/line-number.h --- ././src/line-number.h Fri Apr 13 03:23:58 2001 +++ ././src/line-number.h Thu Sep 20 15:29:05 2001 @@ -23,10 +23,10 @@ /* Synched up with: Not in FSF. */ void narrow_line_number_cache (struct buffer *); -void insert_invalidate_line_number_cache (struct buffer *, Bufpos, - const Bufbyte *, Bytecount); -void delete_invalidate_line_number_cache (struct buffer *, Bufpos, Bufpos); +void insert_invalidate_line_number_cache (struct buffer *, Charbpos, + const Intbyte *, Bytecount); +void delete_invalidate_line_number_cache (struct buffer *, Charbpos, Charbpos); -EMACS_INT buffer_line_number (struct buffer *, Bufpos, int); +EMACS_INT buffer_line_number (struct buffer *, Charbpos, int); #endif /* INCLUDED_line_number_h_ */ diff --text -u 'xemacs-21.5.3/src/lisp.h' 'xemacs-21.5.4/src/lisp.h' Index: ././src/lisp.h --- ././src/lisp.h Mon Aug 13 13:46:31 2001 +++ ././src/lisp.h Thu Dec 20 14:49:47 2001 @@ -96,20 +96,20 @@ functions declared as such. */ /* The data representing the text in a buffer is logically a set - of Bufbytes, declared as follows. */ + of Intbytes, declared as follows. */ -typedef unsigned char Bufbyte; +typedef unsigned char Intbyte; /* The following should be used when you are working with internal data but for whatever reason need to have it declared a "char *". Examples are function arguments whose values are most commonly literal strings, or where you have to apply a stdlib string function to internal data. - In general, you should avoid this where possible and use Bufbyte instead, + In general, you should avoid this where possible and use Intbyte instead, for consistency. For example, the new Mule workspace contains - Bufbyte versions of the stdlib string functions. */ + Intbyte versions of the stdlib string functions. */ -typedef char CBufbyte; +typedef char CIntbyte; /* The data representing a string in "external" format (binary or any external encoding) is logically a set of Extbytes, declared as @@ -132,9 +132,9 @@ /* To the user, a buffer is made up of characters, declared as follows. - In the non-Mule world, characters and Bufbytes are equivalent. + In the non-Mule world, characters and Intbytes are equivalent. In the Mule world, a character requires (typically) 1 to 4 - Bufbytes for its representation in a buffer. */ + Intbytes for its representation in a buffer. */ typedef int Emchar; @@ -145,23 +145,19 @@ buffer.h (where they rightfully belong) to avoid syntax errors in function prototypes. */ -typedef EMACS_INT Bufpos; -typedef EMACS_INT Bytind; -typedef EMACS_INT Memind; +typedef EMACS_INT Charbpos; +typedef EMACS_INT Bytebpos; +typedef EMACS_INT Membpos; /* Counts of bytes or chars */ - typedef EMACS_INT Bytecount; typedef EMACS_INT Charcount; -/* Length in bytes of a string in external format */ -typedef EMACS_INT Extcount; - -/* General counts of bytes or elements */ -typedef EMACS_INT Memory_Count; -typedef EMACS_INT Element_Count; +/* Counts of elements */ +typedef EMACS_INT Elemcount; -typedef unsigned long Hash_Code; +/* Hash codes */ +typedef unsigned long Hashcode; /* ------------------------ dynamic arrays ------------------- */ @@ -216,7 +212,7 @@ #ifdef MEMORY_USAGE_STATS struct overhead_stats; -Memory_Count Dynarr_memory_usage (void *d, struct overhead_stats *stats); +Bytecount Dynarr_memory_usage (void *d, struct overhead_stats *stats); #endif /* Also define min() and max(). (Some compilers put them in strange @@ -232,9 +228,9 @@ /* Memory allocation */ void malloc_warning (const char *); -void *xmalloc (Memory_Count size); -void *xmalloc_and_zero (Memory_Count size); -void *xrealloc (void *, Memory_Count size); +void *xmalloc (Bytecount size); +void *xmalloc_and_zero (Bytecount size); +void *xrealloc (void *, Bytecount size); char *xstrdup (const char *); /* generally useful */ #define countof(x) ((int) (sizeof(x)/sizeof((x)[0]))) @@ -254,7 +250,7 @@ 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 { \ - Memory_Count do_realloc_needed_size = (needed_size); \ + Bytecount do_realloc_needed_size = (needed_size); \ if ((sizevar) < do_realloc_needed_size) \ { \ if ((sizevar) < 32) \ @@ -443,8 +439,8 @@ typedef struct { - Dynarr_declare (Bufbyte); -} Bufbyte_dynarr; + Dynarr_declare (Intbyte); +} Intbyte_dynarr; typedef struct { @@ -480,13 +476,13 @@ typedef struct { - Dynarr_declare (Bufpos); -} Bufpos_dynarr; + Dynarr_declare (Charbpos); +} Charbpos_dynarr; typedef struct { - Dynarr_declare (Bytind); -} Bytind_dynarr; + Dynarr_declare (Bytebpos); +} Bytebpos_dynarr; typedef struct { @@ -673,7 +669,7 @@ { Lisp_Object car, cdr; struct buffer *buffer; - int bufpos; + int charbpos; }; #endif @@ -1160,7 +1156,7 @@ { struct lrecord_header lheader; Bytecount size; - Bufbyte *data; + Intbyte *data; Lisp_Object plist; }; typedef struct Lisp_String Lisp_String; @@ -1175,8 +1171,8 @@ #ifdef MULE -Charcount bytecount_to_charcount (const Bufbyte *ptr, Bytecount len); -Bytecount charcount_to_bytecount (const Bufbyte *ptr, Charcount len); +Charcount bytecount_to_charcount (const Intbyte *ptr, Bytecount len); +Bytecount charcount_to_bytecount (const Intbyte *ptr, Charcount len); #else /* not MULE */ @@ -1217,7 +1213,7 @@ # define string_char_length(s) string_length (s) # define string_char(s, i) ((Emchar) string_byte (s, i)) # define string_char_addr(s, i) string_byte_addr (s, i) -# define set_string_char(s, i, c) set_string_byte (s, i, (Bufbyte)c) +# define set_string_char(s, i, c) set_string_byte (s, i, (Intbyte)c) #endif /* not MULE */ @@ -1291,7 +1287,7 @@ { struct lrecord_header lheader; Lisp_Object next; - Element_Count size; + Elemcount size; unsigned long bits[1]; }; typedef struct Lisp_Bit_Vector Lisp_Bit_Vector; @@ -1319,17 +1315,17 @@ #define bit_vector_length(v) ((v)->size) #define bit_vector_next(v) ((v)->next) -INLINE_HEADER int bit_vector_bit (Lisp_Bit_Vector *v, Element_Count n); +INLINE_HEADER int bit_vector_bit (Lisp_Bit_Vector *v, Elemcount n); INLINE_HEADER int -bit_vector_bit (Lisp_Bit_Vector *v, Element_Count n) +bit_vector_bit (Lisp_Bit_Vector *v, Elemcount n) { return ((v->bits[n >> LONGBITS_LOG2] >> (n & (LONGBITS_POWER_OF_2 - 1))) & 1); } -INLINE_HEADER void set_bit_vector_bit (Lisp_Bit_Vector *v, Element_Count n, int value); +INLINE_HEADER void set_bit_vector_bit (Lisp_Bit_Vector *v, Elemcount n, int value); INLINE_HEADER void -set_bit_vector_bit (Lisp_Bit_Vector *v, Element_Count n, int value) +set_bit_vector_bit (Lisp_Bit_Vector *v, Elemcount n, int value) { if (value) v->bits[n >> LONGBITS_LOG2] |= (1UL << (n & (LONGBITS_POWER_OF_2 - 1))); @@ -1415,7 +1411,7 @@ Lisp_Marker *next; Lisp_Marker *prev; struct buffer *buffer; - Memind memind; + Membpos membpos; char insertion_type; }; @@ -1695,7 +1691,7 @@ { struct lcrecord_header header; Lisp_Object free; - Element_Count size; + Elemcount size; const struct lrecord_implementation *implementation; }; @@ -1708,7 +1704,7 @@ Lcrecord lists should never escape to the Lisp level, so functions should not be doing this. */ -Lisp_Object make_lcrecord_list (Element_Count size, +Lisp_Object make_lcrecord_list (Elemcount size, const struct lrecord_implementation *implementation); Lisp_Object allocate_managed_lcrecord (Lisp_Object lcrecord_list); @@ -1889,7 +1885,7 @@ #define LISP_HASH(obj) ((unsigned long) LISP_TO_VOID (obj)) unsigned long string_hash (const char *xv); -unsigned long memory_hash (const void *xv, Memory_Count size); +unsigned long memory_hash (const void *xv, Bytecount size); unsigned long internal_hash (Lisp_Object obj, int depth); unsigned long internal_array_hash (Lisp_Object *arr, int size, int depth); @@ -2190,7 +2186,7 @@ /* dump_add_opaque (&var, size) dumps the opaque static structure `var'. */ #ifdef PDUMP -void dump_add_opaque (const void *, Memory_Count); +void dump_add_opaque (const void *, Bytecount); #else #define dump_add_opaque(varaddr,size) DO_NOTHING #endif @@ -2258,10 +2254,10 @@ struct overhead_stats { - Memory_Count was_requested; - Memory_Count malloc_overhead; - Memory_Count dynarr_overhead; - Memory_Count gap_overhead; + Bytecount was_requested; + Bytecount malloc_overhead; + Bytecount dynarr_overhead; + Bytecount gap_overhead; }; #endif /* MEMORY_USAGE_STATS */ @@ -2323,12 +2319,12 @@ /* Defined in alloc.c */ void release_breathing_space (void); Lisp_Object noseeum_cons (Lisp_Object, Lisp_Object); -Lisp_Object make_vector (Element_Count, Lisp_Object); +Lisp_Object make_vector (Elemcount, Lisp_Object); Lisp_Object vector1 (Lisp_Object); Lisp_Object vector2 (Lisp_Object, Lisp_Object); Lisp_Object vector3 (Lisp_Object, Lisp_Object, Lisp_Object); -Lisp_Object make_bit_vector (Element_Count, Lisp_Object); -Lisp_Object make_bit_vector_from_byte_vector (unsigned char *, Element_Count); +Lisp_Object make_bit_vector (Elemcount, Lisp_Object); +Lisp_Object make_bit_vector_from_byte_vector (unsigned char *, Elemcount); Lisp_Object noseeum_make_marker (void); void garbage_collect_1 (void); Lisp_Object acons (Lisp_Object, Lisp_Object, Lisp_Object); @@ -2349,14 +2345,14 @@ extern EMACS_INT gc_generation_number[1]; int c_readonly (Lisp_Object); int lisp_readonly (Lisp_Object); -Lisp_Object build_string (const CBufbyte *); +Lisp_Object build_string (const CIntbyte *); Lisp_Object build_ext_string (const Extbyte *, Lisp_Object); -Lisp_Object build_translated_string (const CBufbyte *); -Lisp_Object make_string (const Bufbyte *, Bytecount); +Lisp_Object build_translated_string (const CIntbyte *); +Lisp_Object make_string (const Intbyte *, Bytecount); Lisp_Object make_ext_string (const Extbyte *, EMACS_INT, Lisp_Object); Lisp_Object make_uninit_string (Bytecount); Lisp_Object make_float (double); -Lisp_Object make_string_nocopy (const Bufbyte *, Bytecount); +Lisp_Object make_string_nocopy (const Intbyte *, Bytecount); void free_cons (Lisp_Cons *); void free_list (Lisp_Object); void free_alist (Lisp_Object); @@ -2367,8 +2363,8 @@ int marked_p (Lisp_Object obj); #ifdef MEMORY_USAGE_STATS -Memory_Count malloced_storage_size (void *, Memory_Count, struct overhead_stats *); -Memory_Count fixed_type_block_overhead (Memory_Count); +Bytecount malloced_storage_size (void *, Bytecount, struct overhead_stats *); +Bytecount fixed_type_block_overhead (Bytecount); #endif #ifdef PDUMP void pdump (void); @@ -2389,7 +2385,7 @@ /* Defined in bytecode.c */ DECLARE_DOESNT_RETURN (invalid_byte_code - (const CBufbyte *reason, Lisp_Object frob)); + (const CIntbyte *reason, Lisp_Object frob)); /* Defined in callproc.c */ char *egetenv (const char *); @@ -2420,6 +2416,9 @@ arith_grtr_or_equal }; Lisp_Object arithcompare (Lisp_Object, Lisp_Object, enum arith_comparison); +/* Do NOT use word_to_lisp or wasteful_word_to_lisp to decode time_t's + unless you KNOW arg is non-negative. They cannot return negative + values! Use make_time. */ Lisp_Object word_to_lisp (unsigned int); unsigned int lisp_to_word (Lisp_Object); @@ -2432,32 +2431,33 @@ Lisp_Object read_doc_string (Lisp_Object); /* Defined in doprnt.c */ -Bytecount emacs_doprnt_c (Lisp_Object, const Bufbyte *, Lisp_Object, +Bytecount emacs_doprnt_c (Lisp_Object, const Intbyte *, Lisp_Object, Bytecount, ...); -Bytecount emacs_doprnt_va (Lisp_Object, const Bufbyte *, Lisp_Object, +Bytecount emacs_doprnt_va (Lisp_Object, const Intbyte *, Lisp_Object, Bytecount, va_list); -Bytecount emacs_doprnt_lisp (Lisp_Object, const Bufbyte *, Lisp_Object, +Bytecount emacs_doprnt_lisp (Lisp_Object, const Intbyte *, Lisp_Object, Bytecount, int, const Lisp_Object *); -Bytecount emacs_doprnt_lisp_2 (Lisp_Object, const Bufbyte *, Lisp_Object, +Bytecount emacs_doprnt_lisp_2 (Lisp_Object, const Intbyte *, Lisp_Object, Bytecount, int, ...); -Lisp_Object emacs_doprnt_string_c (const Bufbyte *, Lisp_Object, +Lisp_Object emacs_doprnt_string_c (const Intbyte *, Lisp_Object, Bytecount, ...); -Lisp_Object emacs_doprnt_string_va (const Bufbyte *, Lisp_Object, +Lisp_Object emacs_doprnt_string_va (const Intbyte *, Lisp_Object, Bytecount, va_list); -Lisp_Object emacs_doprnt_string_lisp (const Bufbyte *, Lisp_Object, +Lisp_Object emacs_doprnt_string_lisp (const Intbyte *, Lisp_Object, Bytecount, int, const Lisp_Object *); -Lisp_Object emacs_doprnt_string_lisp_2 (const Bufbyte *, Lisp_Object, +Lisp_Object emacs_doprnt_string_lisp_2 (const Intbyte *, Lisp_Object, Bytecount, int, ...); /* Defined in editfns.c */ void uncache_home_directory (void); Extbyte *get_home_directory (void); char *user_login_name (uid_t *); -Bufpos bufpos_clip_to_bounds (Bufpos, Bufpos, Bufpos); -Bytind bytind_clip_to_bounds (Bytind, Bytind, Bytind); +Charbpos charbpos_clip_to_bounds (Charbpos, Charbpos, Charbpos); +Bytebpos bytebpos_clip_to_bounds (Bytebpos, Bytebpos, Bytebpos); void buffer_insert1 (struct buffer *, Lisp_Object); -Lisp_Object make_string_from_buffer (struct buffer *, Bufpos, Charcount); -Lisp_Object make_string_from_buffer_no_extents (struct buffer *, Bufpos, Charcount); +Lisp_Object make_string_from_buffer (struct buffer *, Charbpos, Charcount); +Lisp_Object make_string_from_buffer_no_extents (struct buffer *, Charbpos, Charcount); +Lisp_Object make_time (time_t); Lisp_Object save_excursion_save (void); Lisp_Object save_restriction_save (void); Lisp_Object save_excursion_restore (Lisp_Object); @@ -2493,50 +2493,50 @@ Lisp_Object, Error_Behavior); DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS (signal_ferror (Lisp_Object, - const CBufbyte *, + const CIntbyte *, ...), 2, 3); void maybe_signal_ferror (Lisp_Object, Lisp_Object, Error_Behavior, - const CBufbyte *, ...) PRINTF_ARGS (4, 5); -Lisp_Object signal_continuable_ferror (Lisp_Object, const CBufbyte *, ...) + const CIntbyte *, ...) PRINTF_ARGS (4, 5); +Lisp_Object signal_continuable_ferror (Lisp_Object, const CIntbyte *, ...) PRINTF_ARGS (2, 3); Lisp_Object maybe_signal_continuable_ferror (Lisp_Object, Lisp_Object, Error_Behavior, - const CBufbyte *, ...) + const CIntbyte *, ...) PRINTF_ARGS (4, 5); -Lisp_Object build_error_data (const CBufbyte *reason, Lisp_Object frob); -DECLARE_DOESNT_RETURN (signal_error (Lisp_Object, const CBufbyte *, +Lisp_Object build_error_data (const CIntbyte *reason, Lisp_Object frob); +DECLARE_DOESNT_RETURN (signal_error (Lisp_Object, const CIntbyte *, Lisp_Object)); -void maybe_signal_error (Lisp_Object, const CBufbyte *, Lisp_Object, +void maybe_signal_error (Lisp_Object, const CIntbyte *, Lisp_Object, Lisp_Object, Error_Behavior); -Lisp_Object signal_continuable_error (Lisp_Object, const CBufbyte *, +Lisp_Object signal_continuable_error (Lisp_Object, const CIntbyte *, Lisp_Object); -Lisp_Object maybe_signal_continuable_error (Lisp_Object, const CBufbyte *, +Lisp_Object maybe_signal_continuable_error (Lisp_Object, const CIntbyte *, Lisp_Object, Lisp_Object, Error_Behavior); DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS (signal_ferror_with_frob (Lisp_Object, Lisp_Object, - const CBufbyte *, + const CIntbyte *, ...), 3, 4); void maybe_signal_ferror_with_frob (Lisp_Object, Lisp_Object, Lisp_Object, Error_Behavior, - const CBufbyte *, ...) PRINTF_ARGS (5, 6); + const CIntbyte *, ...) PRINTF_ARGS (5, 6); Lisp_Object signal_continuable_ferror_with_frob (Lisp_Object, Lisp_Object, - const CBufbyte *, + const CIntbyte *, ...) PRINTF_ARGS (3, 4); Lisp_Object maybe_signal_continuable_ferror_with_frob (Lisp_Object, Lisp_Object, Lisp_Object, Error_Behavior, - const CBufbyte *, ...) + const CIntbyte *, ...) PRINTF_ARGS (5, 6); -DECLARE_DOESNT_RETURN (signal_error_2 (Lisp_Object, const CBufbyte *, +DECLARE_DOESNT_RETURN (signal_error_2 (Lisp_Object, const CIntbyte *, Lisp_Object, Lisp_Object)); -void maybe_signal_error_2 (Lisp_Object, const CBufbyte *, Lisp_Object, +void maybe_signal_error_2 (Lisp_Object, const CIntbyte *, Lisp_Object, Lisp_Object, Lisp_Object, Error_Behavior); -Lisp_Object signal_continuable_error_2 (Lisp_Object, const CBufbyte *, +Lisp_Object signal_continuable_error_2 (Lisp_Object, const CIntbyte *, Lisp_Object, Lisp_Object); -Lisp_Object maybe_signal_continuable_error_2 (Lisp_Object, const CBufbyte *, +Lisp_Object maybe_signal_continuable_error_2 (Lisp_Object, const CIntbyte *, Lisp_Object, Lisp_Object, Lisp_Object, Error_Behavior); @@ -2547,60 +2547,60 @@ DECLARE_DOESNT_RETURN (signal_circular_list_error (Lisp_Object)); DECLARE_DOESNT_RETURN (signal_circular_property_list_error (Lisp_Object)); -DECLARE_DOESNT_RETURN (syntax_error (const CBufbyte *reason, +DECLARE_DOESNT_RETURN (syntax_error (const CIntbyte *reason, Lisp_Object frob)); -DECLARE_DOESNT_RETURN (syntax_error_2 (const CBufbyte *reason, +DECLARE_DOESNT_RETURN (syntax_error_2 (const CIntbyte *reason, Lisp_Object frob1, Lisp_Object frob2)); -void maybe_syntax_error (const CBufbyte *, Lisp_Object, Lisp_Object, +void maybe_syntax_error (const CIntbyte *, Lisp_Object, Lisp_Object, Error_Behavior); -DECLARE_DOESNT_RETURN (sferror (const CBufbyte *reason, Lisp_Object frob)); -DECLARE_DOESNT_RETURN (sferror_2 (const CBufbyte *reason, Lisp_Object frob1, +DECLARE_DOESNT_RETURN (sferror (const CIntbyte *reason, Lisp_Object frob)); +DECLARE_DOESNT_RETURN (sferror_2 (const CIntbyte *reason, Lisp_Object frob1, Lisp_Object frob2)); -void maybe_sferror (const CBufbyte *, Lisp_Object, Lisp_Object, +void maybe_sferror (const CIntbyte *, Lisp_Object, Lisp_Object, Error_Behavior); -DECLARE_DOESNT_RETURN (invalid_argument (const CBufbyte *reason, +DECLARE_DOESNT_RETURN (invalid_argument (const CIntbyte *reason, Lisp_Object frob)); -DECLARE_DOESNT_RETURN (invalid_argument_2 (const CBufbyte *reason, +DECLARE_DOESNT_RETURN (invalid_argument_2 (const CIntbyte *reason, Lisp_Object frob1, Lisp_Object frob2)); -void maybe_invalid_argument (const CBufbyte *, Lisp_Object, Lisp_Object, +void maybe_invalid_argument (const CIntbyte *, Lisp_Object, Lisp_Object, Error_Behavior); -DECLARE_DOESNT_RETURN (invalid_operation (const CBufbyte *reason, +DECLARE_DOESNT_RETURN (invalid_operation (const CIntbyte *reason, Lisp_Object frob)); -DECLARE_DOESNT_RETURN (invalid_operation_2 (const CBufbyte *reason, +DECLARE_DOESNT_RETURN (invalid_operation_2 (const CIntbyte *reason, Lisp_Object frob1, Lisp_Object frob2)); -void maybe_invalid_operation (const CBufbyte *, Lisp_Object, Lisp_Object, +void maybe_invalid_operation (const CIntbyte *, Lisp_Object, Lisp_Object, Error_Behavior); -DECLARE_DOESNT_RETURN (invalid_state (const CBufbyte *reason, +DECLARE_DOESNT_RETURN (invalid_state (const CIntbyte *reason, Lisp_Object frob)); -DECLARE_DOESNT_RETURN (invalid_state_2 (const CBufbyte *reason, +DECLARE_DOESNT_RETURN (invalid_state_2 (const CIntbyte *reason, Lisp_Object frob1, Lisp_Object frob2)); -void maybe_invalid_state (const CBufbyte *, Lisp_Object, Lisp_Object, +void maybe_invalid_state (const CIntbyte *, Lisp_Object, Lisp_Object, Error_Behavior); -DECLARE_DOESNT_RETURN (invalid_change (const CBufbyte *reason, +DECLARE_DOESNT_RETURN (invalid_change (const CIntbyte *reason, Lisp_Object frob)); -DECLARE_DOESNT_RETURN (invalid_change_2 (const CBufbyte *reason, +DECLARE_DOESNT_RETURN (invalid_change_2 (const CIntbyte *reason, Lisp_Object frob1, Lisp_Object frob2)); -void maybe_invalid_change (const CBufbyte *, Lisp_Object, Lisp_Object, +void maybe_invalid_change (const CIntbyte *, Lisp_Object, Lisp_Object, Error_Behavior); -DECLARE_DOESNT_RETURN (invalid_constant (const CBufbyte *reason, +DECLARE_DOESNT_RETURN (invalid_constant (const CIntbyte *reason, Lisp_Object frob)); -DECLARE_DOESNT_RETURN (invalid_constant_2 (const CBufbyte *reason, +DECLARE_DOESNT_RETURN (invalid_constant_2 (const CIntbyte *reason, Lisp_Object frob1, Lisp_Object frob2)); -void maybe_invalid_constant (const CBufbyte *, Lisp_Object, Lisp_Object, +void maybe_invalid_constant (const CIntbyte *, Lisp_Object, Lisp_Object, Error_Behavior); -DECLARE_DOESNT_RETURN (wtaerror (const CBufbyte *reason, Lisp_Object frob)); -DECLARE_DOESNT_RETURN (out_of_memory (const CBufbyte *reason, +DECLARE_DOESNT_RETURN (wtaerror (const CIntbyte *reason, Lisp_Object frob)); +DECLARE_DOESNT_RETURN (out_of_memory (const CIntbyte *reason, Lisp_Object frob)); -DECLARE_DOESNT_RETURN (stack_overflow (const CBufbyte *reason, +DECLARE_DOESNT_RETURN (stack_overflow (const CIntbyte *reason, Lisp_Object frob)); DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS (printing_unreadable_object - (const CBufbyte *, + (const CIntbyte *, ...), 1, 2); Lisp_Object signal_void_function_error (Lisp_Object); @@ -2646,13 +2646,13 @@ Lisp_Object eval_in_buffer (struct buffer *, Lisp_Object); Lisp_Object call0_with_handler (Lisp_Object, Lisp_Object); Lisp_Object call1_with_handler (Lisp_Object, Lisp_Object, Lisp_Object); -Lisp_Object eval_in_buffer_trapping_errors (const CBufbyte *, struct buffer *, +Lisp_Object eval_in_buffer_trapping_errors (const CIntbyte *, struct buffer *, Lisp_Object); -Lisp_Object run_hook_trapping_errors (const CBufbyte *, Lisp_Object); -Lisp_Object safe_run_hook_trapping_errors (const CBufbyte *, Lisp_Object, int); -Lisp_Object call0_trapping_errors (const CBufbyte *, Lisp_Object); -Lisp_Object call1_trapping_errors (const CBufbyte *, Lisp_Object, Lisp_Object); -Lisp_Object call2_trapping_errors (const CBufbyte *, +Lisp_Object run_hook_trapping_errors (const CIntbyte *, Lisp_Object); +Lisp_Object safe_run_hook_trapping_errors (const CIntbyte *, Lisp_Object, int); +Lisp_Object call0_trapping_errors (const CIntbyte *, Lisp_Object); +Lisp_Object call1_trapping_errors (const CIntbyte *, Lisp_Object, Lisp_Object); +Lisp_Object call2_trapping_errors (const CIntbyte *, Lisp_Object, Lisp_Object, Lisp_Object); Lisp_Object call_with_suspended_errors (lisp_fn_t, volatile Lisp_Object, Lisp_Object, Error_Behavior, int, ...); @@ -2671,7 +2671,7 @@ void do_autoload (Lisp_Object, Lisp_Object); Lisp_Object un_autoload (Lisp_Object); void warn_when_safe_lispobj (Lisp_Object, Lisp_Object, Lisp_Object); -void warn_when_safe (Lisp_Object, Lisp_Object, const CBufbyte *, +void warn_when_safe (Lisp_Object, Lisp_Object, const CIntbyte *, ...) PRINTF_ARGS (3, 4); @@ -2697,18 +2697,18 @@ void record_auto_save (void); void force_auto_save_soon (void); DECLARE_DOESNT_RETURN (report_error_with_errno (Lisp_Object errtype, - const CBufbyte *string, + const CIntbyte *string, Lisp_Object data)); DECLARE_DOESNT_RETURN (report_file_type_error (Lisp_Object errtype, Lisp_Object oserrmess, - const CBufbyte *string, + const CIntbyte *string, Lisp_Object data)); -DECLARE_DOESNT_RETURN (report_file_error (const CBufbyte *, Lisp_Object)); +DECLARE_DOESNT_RETURN (report_file_error (const CIntbyte *, Lisp_Object)); Lisp_Object lisp_strerror (int); Lisp_Object expand_and_dir_to_file (Lisp_Object, Lisp_Object); -Memory_Count read_allowing_quit (int fildes, void *buf, Memory_Count size); -Memory_Count write_allowing_quit (int fildes, const void *buf, - Memory_Count size); +Bytecount read_allowing_quit (int fildes, void *buf, Bytecount size); +Bytecount write_allowing_quit (int fildes, const void *buf, + Bytecount size); int internal_delete_file (Lisp_Object); /* Defined in filelock.c */ @@ -2775,13 +2775,13 @@ DECLARE_DOESNT_RETURN (gui_error_2 (const char *reason, Lisp_Object frob0, Lisp_Object frob1)); /* Defined in indent.c */ -int bi_spaces_at_point (struct buffer *, Bytind); -int column_at_point (struct buffer *, Bufpos, int); -int string_column_at_point (Lisp_String *, Bufpos, int); +int bi_spaces_at_point (struct buffer *, Bytebpos); +int column_at_point (struct buffer *, Charbpos, int); +int string_column_at_point (Lisp_String *, Charbpos, int); int current_column (struct buffer *); void invalidate_current_column (void); -Bufpos vmotion (struct window *, Bufpos, int, int *); -Bufpos vmotion_pixels (Lisp_Object, Bufpos, int, int, int *); +Charbpos vmotion (struct window *, Charbpos, int, int *); +Charbpos vmotion_pixels (Lisp_Object, Charbpos, int, int, int *); /* Defined in keymap.c */ void where_is_to_char (Lisp_Object, char *); @@ -2810,10 +2810,10 @@ #endif /*! LOADHIST */ /* Defined in marker.c */ -Bytind bi_marker_position (Lisp_Object); -Bufpos marker_position (Lisp_Object); -void set_bi_marker_position (Lisp_Object, Bytind); -void set_marker_position (Lisp_Object, Bufpos); +Bytebpos bi_marker_position (Lisp_Object); +Charbpos marker_position (Lisp_Object); +void set_bi_marker_position (Lisp_Object, Bytebpos); +void set_marker_position (Lisp_Object, Charbpos); void unchain_marker (Lisp_Object); Lisp_Object noseeum_copy_marker (Lisp_Object, Lisp_Object); Lisp_Object set_marker_restricted (Lisp_Object, Lisp_Object, Lisp_Object); @@ -2828,22 +2828,22 @@ /* Defined in minibuf.c */ extern int minibuf_level; -Charcount scmp_1 (const Bufbyte *, const Bufbyte *, Charcount, int); +Charcount scmp_1 (const Intbyte *, const Intbyte *, Charcount, int); #define scmp(s1, s2, len) scmp_1 (s1, s2, len, completion_ignore_case) extern int completion_ignore_case; -int regexp_ignore_completion_p (const Bufbyte *, Lisp_Object, +int regexp_ignore_completion_p (const Intbyte *, Lisp_Object, Bytecount, Bytecount); Lisp_Object clear_echo_area (struct frame *, Lisp_Object, int); Lisp_Object clear_echo_area_from_print (struct frame *, Lisp_Object, int); -void echo_area_append (struct frame *, const Bufbyte *, Lisp_Object, +void echo_area_append (struct frame *, const Intbyte *, Lisp_Object, Bytecount, Bytecount, Lisp_Object); -void echo_area_message (struct frame *, const Bufbyte *, Lisp_Object, +void echo_area_message (struct frame *, const Intbyte *, Lisp_Object, Bytecount, Bytecount, Lisp_Object); Lisp_Object echo_area_status (struct frame *); int echo_area_active (struct frame *); Lisp_Object echo_area_contents (struct frame *); -void message_internal (const Bufbyte *, Lisp_Object, Bytecount, Bytecount); -void message_append_internal (const Bufbyte *, Lisp_Object, +void message_internal (const Intbyte *, Lisp_Object, Bytecount, Bytecount); +void message_append_internal (const Intbyte *, Lisp_Object, Bytecount, Bytecount); void message (const char *, ...) PRINTF_ARGS (1, 2); void message_append (const char *, ...) PRINTF_ARGS (1, 2); @@ -2852,7 +2852,7 @@ /* Defined in print.c */ void write_string_to_stdio_stream (FILE *, struct console *, - const Bufbyte *, Bytecount, Bytecount, + const Intbyte *, Bytecount, Bytecount, Lisp_Object, int); void debug_print (Lisp_Object); void debug_short_backtrace (int); @@ -2863,7 +2863,7 @@ * (eg Qnil means stdout, not Vstandard_output, etc) */ void write_c_string (const char *, Lisp_Object); /* Same goes for this function. */ -void write_string_1 (const Bufbyte *, Bytecount, Lisp_Object); +void write_string_1 (const Intbyte *, Bytecount, Lisp_Object); void print_cons (Lisp_Object, Lisp_Object, int); void print_vector (Lisp_Object, Lisp_Object, int); void print_string (Lisp_Object, Lisp_Object, int); @@ -2914,15 +2914,15 @@ /* Defined in search.c */ struct re_pattern_buffer; struct re_registers; -Bufpos scan_buffer (struct buffer *, Emchar, Bufpos, Bufpos, EMACS_INT, EMACS_INT *, int); -Bufpos find_next_newline (struct buffer *, Bufpos, int); -Bufpos find_next_newline_no_quit (struct buffer *, Bufpos, int); -Bytind bi_find_next_newline_no_quit (struct buffer *, Bytind, int); -Bytind bi_find_next_emchar_in_string (Lisp_String*, Emchar, Bytind, EMACS_INT); -Bufpos find_before_next_newline (struct buffer *, Bufpos, Bufpos, int); +Charbpos scan_buffer (struct buffer *, Emchar, Charbpos, Charbpos, EMACS_INT, EMACS_INT *, int); +Charbpos find_next_newline (struct buffer *, Charbpos, int); +Charbpos find_next_newline_no_quit (struct buffer *, Charbpos, int); +Bytebpos bi_find_next_newline_no_quit (struct buffer *, Bytebpos, int); +Bytebpos bi_find_next_emchar_in_string (Lisp_String*, Emchar, Bytebpos, EMACS_INT); +Charbpos find_before_next_newline (struct buffer *, Charbpos, Charbpos, int); struct re_pattern_buffer *compile_pattern (Lisp_Object, struct re_registers *, Lisp_Object, int, Error_Behavior); -Bytecount fast_string_match (Lisp_Object, const Bufbyte *, +Bytecount fast_string_match (Lisp_Object, const Intbyte *, Lisp_Object, Bytecount, Bytecount, int, Error_Behavior, int); Bytecount fast_lisp_string_match (Lisp_Object, Lisp_Object); @@ -2947,9 +2947,9 @@ Error_Behavior, int, Lisp_Object); /* Defined in symbols.c */ -unsigned int hash_string (const Bufbyte *, Bytecount); +unsigned int hash_string (const Intbyte *, Bytecount); Lisp_Object intern (const char *); -Lisp_Object oblookup (Lisp_Object, const Bufbyte *, Bytecount); +Lisp_Object oblookup (Lisp_Object, const Intbyte *, Bytecount); void map_obarray (Lisp_Object, int (*) (Lisp_Object, void *), void *); Lisp_Object indirect_function (Lisp_Object, int); Lisp_Object symbol_value_in_buffer (Lisp_Object, Lisp_Object); @@ -2963,14 +2963,14 @@ Lisp_Object follow_past_lisp_magic); /* Defined in syntax.c */ -Bufpos scan_words (struct buffer *, Bufpos, int); +Charbpos scan_words (struct buffer *, Charbpos, int); /* Defined in undo.c */ Lisp_Object truncate_undo_list (Lisp_Object, int, int); void record_extent (Lisp_Object, int); -void record_insert (struct buffer *, Bufpos, Charcount); -void record_delete (struct buffer *, Bufpos, Charcount); -void record_change (struct buffer *, Bufpos, Charcount); +void record_insert (struct buffer *, Charbpos, Charcount); +void record_delete (struct buffer *, Charbpos, Charcount); +void record_change (struct buffer *, Charbpos, Charcount); /* Defined in unex*.c */ int unexec (char *, char *, uintptr_t, uintptr_t, uintptr_t); diff --text -u 'xemacs-21.5.3/src/lread.c' 'xemacs-21.5.4/src/lread.c' Index: ././src/lread.c --- ././src/lread.c Fri May 25 20:26:57 2001 +++ ././src/lread.c Thu Sep 20 15:29:05 2001 @@ -268,7 +268,7 @@ else if (MARKERP (readcharfun)) { Emchar c; - Bufpos mpos = marker_position (readcharfun); + Charbpos mpos = marker_position (readcharfun); struct buffer *inbuffer = XMARKER (readcharfun)->buffer; if (mpos >= BUF_ZV (inbuffer)) @@ -626,7 +626,7 @@ if (result >= 0 && (unsigned) s1.st_mtime < (unsigned) s2.st_mtime) { - Lisp_Object newer_name = make_string ((Bufbyte *) foundstr, + Lisp_Object newer_name = make_string ((Intbyte *) foundstr, foundlen - 1); struct gcpro nngcpro1; NNGCPRO1 (newer_name); @@ -982,7 +982,7 @@ while (1) { char *esuffix = (char *) strchr (nsuffix, ':'); - int lsuffix = esuffix ? esuffix - nsuffix : strlen (nsuffix); + int lsuffix = esuffix ? esuffix - nsuffix : (int) strlen (nsuffix); /* Concatenate path element/specified name with the suffix. */ strncpy (fn + fn_len, nsuffix, lsuffix); @@ -1868,7 +1868,7 @@ return Lstream_byte_count (XLSTREAM (Vread_buffer_stream)) - 1; } -static Lisp_Object parse_integer (const Bufbyte *buf, Bytecount len, int base); +static Lisp_Object parse_integer (const Intbyte *buf, Bytecount len, int base); static Lisp_Object read_atom (Lisp_Object readcharfun, @@ -1923,7 +1923,7 @@ return make_int (number); } #else - return parse_integer ((Bufbyte *) read_ptr, len, 10); + return parse_integer ((Intbyte *) read_ptr, len, 10); #endif } } @@ -1936,10 +1936,10 @@ { Lisp_Object sym; if (uninterned_symbol) - sym = Fmake_symbol ( make_string ((Bufbyte *) read_ptr, len)); + sym = Fmake_symbol ( make_string ((Intbyte *) read_ptr, len)); else { - Lisp_Object name = make_string ((Bufbyte *) read_ptr, len); + Lisp_Object name = make_string ((Intbyte *) read_ptr, len); sym = Fintern (name, Qnil); } return sym; @@ -1948,10 +1948,10 @@ static Lisp_Object -parse_integer (const Bufbyte *buf, Bytecount len, int base) +parse_integer (const Intbyte *buf, Bytecount len, int base) { - const Bufbyte *lim = buf + len; - const Bufbyte *p = buf; + const Intbyte *lim = buf + len; + const Intbyte *p = buf; EMACS_UINT num = 0; int negativland = 0; @@ -2701,7 +2701,7 @@ isfloat_string (const char *cp) { int state = 0; - const Bufbyte *ucp = (const Bufbyte *) cp; + const Intbyte *ucp = (const Intbyte *) cp; if (*ucp == '+' || *ucp == '-') ucp++; diff --text -u 'xemacs-21.5.3/src/lrecord.h' 'xemacs-21.5.4/src/lrecord.h' Index: ././src/lrecord.h --- ././src/lrecord.h Mon Aug 13 13:46:31 2001 +++ ././src/lrecord.h Thu Sep 20 15:29:05 2001 @@ -256,8 +256,8 @@ /* Only one of `static_size' and `size_in_bytes_method' is non-0. If both are 0, this type is not instantiable by alloc_lcrecord(). */ - Memory_Count static_size; - Memory_Count (*size_in_bytes_method) (const void *header); + Bytecount static_size; + Bytecount (*size_in_bytes_method) (const void *header); /* The (constant) index into lrecord_implementations_table */ enum lrecord_type lrecord_type_index; @@ -359,15 +359,18 @@ XD_INT_RESET An integer which will be reset to a given value in the dump file. + + XD_CHARCOUNT + Charcount value. Used for counts. + + XD_ELEMCOUNT + Elemcount value. Used for counts. - XD_ELEMENT_COUNT - Element_Count value. Used for counts. - - XD_MEMORY_COUNT - Memory_Count value. Used for counts. + XD_BYTECOUNT + Bytecount value. Used for counts. - XD_HASH_CODE - Hash_Code value. Used for the results of hashing functions. + XD_HASHCODE + Hashcode value. Used for the results of hashing functions. XD_INT int value. Used for counts. @@ -375,9 +378,6 @@ XD_LONG long value. Used for counts. - XD_BYTECOUNT - bytecount value. Used for counts. - XD_END Special type indicating the end of the array. @@ -404,12 +404,12 @@ XD_C_STRING, XD_DOC_STRING, XD_INT_RESET, - XD_MEMORY_COUNT, - XD_ELEMENT_COUNT, - XD_HASH_CODE, + XD_CHARCOUNT, + XD_BYTECOUNT, + XD_ELEMCOUNT, + XD_HASHCODE, XD_INT, XD_LONG, - XD_BYTECOUNT, XD_END, XD_SPECIFIER_END }; @@ -424,7 +424,7 @@ struct struct_description { - Memory_Count size; + Bytecount size; const struct lrecord_description *description; }; @@ -778,7 +778,7 @@ dead_wrong_type_argument (predicate, x); \ } while (0) -void *alloc_lcrecord (Memory_Count size, +void *alloc_lcrecord (Bytecount size, const struct lrecord_implementation *); #define alloc_lcrecord_type(type, lrecord_implementation) \ diff --text -u 'xemacs-21.5.3/src/lstream.c' 'xemacs-21.5.4/src/lstream.c' Index: ././src/lstream.c --- ././src/lstream.c Mon Aug 13 13:46:32 2001 +++ ././src/lstream.c Thu Sep 20 15:29:06 2001 @@ -95,19 +95,19 @@ void Lstream_fungetc (Lstream *stream, int c) Function equivalents of the above macros. -Lstream_Data_Count Lstream_read (Lstream *stream, void *data, - Lstream_Data_Count size) +Bytecount Lstream_read (Lstream *stream, void *data, + Bytecount size) Read SIZE bytes of DATA from the stream. Return the number of bytes read. 0 means EOF. -1 means an error occurred and no bytes were read. -Lstream_Data_Count Lstream_write (Lstream *stream, void *data, - Lstream_Data_Count size) +Bytecount Lstream_write (Lstream *stream, void *data, + Bytecount size) Write SIZE bytes of DATA to the stream. Return the number of bytes written. -1 means an error occurred and no bytes were written. -void Lstream_unread (Lstream *stream, void *data, Lstream_Data_Count size) +void Lstream_unread (Lstream *stream, void *data, Bytecount size) Push back SIZE bytes of DATA onto the input queue. The next call to Lstream_read() with the same size will read the same bytes back. Note that this will be the case even if @@ -181,14 +181,14 @@ } } -inline static Memory_Count -aligned_sizeof_lstream (Memory_Count lstream_type_specific_size) +inline static Bytecount +aligned_sizeof_lstream (Bytecount lstream_type_specific_size) { return ALIGN_SIZE (offsetof (Lstream, data) + lstream_type_specific_size, ALIGNOF (max_align_t)); } -static Memory_Count +static Bytecount sizeof_lstream (const void *header) { return aligned_sizeof_lstream (((const Lstream *) header)->imp->size); @@ -303,11 +303,11 @@ int Lstream_flush_out (Lstream *lstr) { - Lstream_Data_Count num_written; + Bytecount num_written; while (lstr->out_buffer_ind > 0) { - Lstream_Data_Count size = lstr->out_buffer_ind; + Bytecount size = lstr->out_buffer_ind; if (! (lstr->flags & LSTREAM_FL_IS_OPEN)) Lstream_internal_error ("lstream not open", lstr); if (! (lstr->flags & LSTREAM_FL_WRITE)) @@ -390,10 +390,10 @@ if it's getting EWOULDBLOCK errors. We have to keep stocking them up until they can be written, so as to avoid losing data. */ -static Lstream_Data_Count -Lstream_adding (Lstream *lstr, Lstream_Data_Count num, int force) +static Bytecount +Lstream_adding (Lstream *lstr, Bytecount num, int force) { - Lstream_Data_Count size = num + lstr->out_buffer_ind; + Bytecount size = num + lstr->out_buffer_ind; if (size <= lstr->out_buffer_size) return num; @@ -415,11 +415,11 @@ /* Like Lstream_write(), but does not handle line-buffering correctly. */ -static Lstream_Data_Count -Lstream_write_1 (Lstream *lstr, const void *data, Lstream_Data_Count size) +static Bytecount +Lstream_write_1 (Lstream *lstr, const void *data, Bytecount size) { const unsigned char *p = (const unsigned char *) data; - Lstream_Data_Count off = 0; + Bytecount off = 0; if (! (lstr->flags & LSTREAM_FL_IS_OPEN)) Lstream_internal_error ("lstream not open", lstr); if (! (lstr->flags & LSTREAM_FL_WRITE)) @@ -430,7 +430,7 @@ while (1) { /* Figure out how much we can add to the buffer */ - Lstream_Data_Count chunk = Lstream_adding (lstr, size, 0); + Bytecount chunk = Lstream_adding (lstr, size, 0); if (chunk == 0) { if (couldnt_write_last_time) @@ -475,10 +475,10 @@ repeatedly call Lstream_putc(), which knows how to handle line buffering. Returns number of bytes written. */ -Lstream_Data_Count -Lstream_write (Lstream *lstr, const void *data, Lstream_Data_Count size) +Bytecount +Lstream_write (Lstream *lstr, const void *data, Bytecount size) { - Lstream_Data_Count i; + Bytecount i; const unsigned char *p = (const unsigned char *) data; if (size == 0) @@ -499,9 +499,9 @@ return lstr->imp->was_blocked_p ? lstr->imp->was_blocked_p (lstr) : 0; } -static Lstream_Data_Count +static Bytecount Lstream_raw_read (Lstream *lstr, unsigned char *buffer, - Lstream_Data_Count size) + Bytecount size) { if (! (lstr->flags & LSTREAM_FL_IS_OPEN)) Lstream_internal_error ("lstream not open", lstr); @@ -515,18 +515,18 @@ /* Assuming the buffer is empty, fill it up again. */ -static Lstream_Data_Count +static Bytecount Lstream_read_more (Lstream *lstr) { #if 0 - Lstream_Data_Count size_needed + Bytecount size_needed = max (1, min (MAX_READ_SIZE, lstr->buffering_size)); #else /* If someone requested a larger buffer size, so be it! */ - Lstream_Data_Count size_needed = + Bytecount size_needed = max (1, lstr->buffering_size); #endif - Lstream_Data_Count size_gotten; + Bytecount size_gotten; DO_REALLOC (lstr->in_buffer, lstr->in_buffer_size, size_needed, unsigned char); @@ -536,12 +536,12 @@ return size_gotten < 0 ? -1 : size_gotten; } -Lstream_Data_Count -Lstream_read (Lstream *lstr, void *data, Lstream_Data_Count size) +Bytecount +Lstream_read (Lstream *lstr, void *data, Bytecount size) { unsigned char *p = (unsigned char *) data; - Lstream_Data_Count off = 0; - Lstream_Data_Count chunk; + Bytecount off = 0; + Bytecount chunk; int error_occurred = 0; if (size == 0) @@ -574,7 +574,7 @@ /* If we need some more, try to get some more from the stream's end */ if (size > 0) { - Lstream_Data_Count retval = Lstream_read_more (lstr); + Bytecount retval = Lstream_read_more (lstr); if (retval < 0) error_occurred = 1; if (retval <= 0) @@ -598,7 +598,7 @@ VALIDATE_CHARPTR_BACKWARD (dataend); if (dataend + REP_BYTES_BY_FIRST_BYTE (*dataend) != p + off) { - Lstream_Data_Count newoff = dataend - p; + Bytecount newoff = dataend - p; /* If not, chop the size down to ignore the last char and stash it away for next time. */ Lstream_unread (lstr, dataend, off - newoff); @@ -611,7 +611,7 @@ } void -Lstream_unread (Lstream *lstr, const void *data, Lstream_Data_Count size) +Lstream_unread (Lstream *lstr, const void *data, Bytecount size) { const unsigned char *p = (const unsigned char *) data; @@ -730,7 +730,7 @@ Lstream_fputc (Lstream *lstr, int c) { unsigned char ch = (unsigned char) c; - Lstream_Data_Count retval = Lstream_write_1 (lstr, &ch, 1); + Bytecount retval = Lstream_write_1 (lstr, &ch, 1); if (retval >= 0 && lstr->buffering == LSTREAM_LINE_BUFFERED && ch == '\n') return Lstream_flush_out (lstr); return retval < 0 ? -1 : 0; @@ -811,22 +811,22 @@ code (it could even be argued that the error might have fixed itself, so we should do the fread() again. */ -static Lstream_Data_Count -stdio_reader (Lstream *stream, unsigned char *data, Lstream_Data_Count size) +static Bytecount +stdio_reader (Lstream *stream, unsigned char *data, Bytecount size) { struct stdio_stream *str = STDIO_STREAM_DATA (stream); - Lstream_Data_Count val = fread (data, 1, size, str->file); + Bytecount val = fread (data, 1, size, str->file); if (!val && ferror (str->file)) return -1; return val; } -static Lstream_Data_Count +static Bytecount stdio_writer (Lstream *stream, const unsigned char *data, - Lstream_Data_Count size) + Bytecount size) { struct stdio_stream *str = STDIO_STREAM_DATA (stream); - Lstream_Data_Count val = fwrite (data, 1, size, str->file); + Bytecount val = fwrite (data, 1, size, str->file); if (!val && ferror (str->file)) return -1; return val; @@ -879,7 +879,7 @@ { int fd; int pty_max_bytes; - Bufbyte eof_char; + Intbyte eof_char; int starting_pos; int current_pos; int end_pos; @@ -937,13 +937,13 @@ return make_filedesc_stream_1 (filedesc, offset, count, flags, "w"); } -static Lstream_Data_Count -filedesc_reader (Lstream *stream, unsigned char *data, Lstream_Data_Count size) +static Bytecount +filedesc_reader (Lstream *stream, unsigned char *data, Bytecount size) { - Lstream_Data_Count nread; + Bytecount nread; struct filedesc_stream *str = FILEDESC_STREAM_DATA (stream); if (str->end_pos >= 0) - size = min (size, (Lstream_Data_Count) (str->end_pos - str->current_pos)); + size = min (size, (Bytecount) (str->end_pos - str->current_pos)); nread = str->allow_quit ? read_allowing_quit (str->fd, data, size) : read (str->fd, data, size); @@ -966,12 +966,12 @@ return 0; } -static Lstream_Data_Count +static Bytecount filedesc_writer (Lstream *stream, const unsigned char *data, - Lstream_Data_Count size) + Bytecount size) { struct filedesc_stream *str = FILEDESC_STREAM_DATA (stream); - Lstream_Data_Count retval; + Bytecount retval; int need_newline = 0; /* This function would be simple if it were not for the blasted @@ -1025,7 +1025,7 @@ out for EWOULDBLOCK. */ if (str->chars_sans_newline >= str->pty_max_bytes) { - Lstream_Data_Count retval2 = str->allow_quit ? + Bytecount retval2 = str->allow_quit ? write_allowing_quit (str->fd, &str->eof_char, 1) : write (str->fd, &str->eof_char, 1); @@ -1057,8 +1057,8 @@ in pty-flushing mode. */ if (need_newline) { - Bufbyte nl = '\n'; - Lstream_Data_Count retval2 = str->allow_quit ? + Intbyte nl = '\n'; + Bytecount retval2 = str->allow_quit ? write_allowing_quit (str->fd, &nl, 1) : write (str->fd, &nl, 1); @@ -1140,7 +1140,7 @@ void filedesc_stream_set_pty_flushing (Lstream *stream, int pty_max_bytes, - Bufbyte eof_char) + Intbyte eof_char) { struct filedesc_stream *str = FILEDESC_STREAM_DATA (stream); str->pty_max_bytes = pty_max_bytes; @@ -1194,15 +1194,15 @@ return obj; } -static Lstream_Data_Count +static Bytecount lisp_string_reader (Lstream *stream, unsigned char *data, - Lstream_Data_Count size) + Bytecount size) { struct lisp_string_stream *str = LISP_STRING_STREAM_DATA (stream); /* Don't lose if the string shrank past us ... */ Bytecount offset = min (str->offset, XSTRING_LENGTH (str->obj)); - Bufbyte *strstart = XSTRING_DATA (str->obj); - Bufbyte *start = strstart + offset; + Intbyte *strstart = XSTRING_DATA (str->obj); + Intbyte *start = strstart + offset; /* ... or if someone changed the string and we ended up in the middle of a character. */ @@ -1211,7 +1211,7 @@ if (stream->flags & LSTREAM_FL_NO_PARTIAL_CHARS) VALIDATE_CHARPTR_BACKWARD (start); offset = start - strstart; - size = min (size, (Lstream_Data_Count) (str->end - offset)); + size = min (size, (Bytecount) (str->end - offset)); memcpy (data, start, size); str->offset = offset + size; return size; @@ -1229,8 +1229,8 @@ /* ... or if someone changed the string and we ended up in the middle of a character. */ { - Bufbyte *strstart = XSTRING_DATA (str->obj); - Bufbyte *start = strstart + pos; + Intbyte *strstart = XSTRING_DATA (str->obj); + Intbyte *start = strstart + pos; VALIDATE_CHARPTR_BACKWARD (start); pos = start - strstart; } @@ -1254,15 +1254,15 @@ { const unsigned char *inbuf; unsigned char *outbuf; - Lstream_Data_Count size; - Lstream_Data_Count offset; + Bytecount size; + Bytecount offset; }; DEFINE_LSTREAM_IMPLEMENTATION ("fixed-buffer", lstream_fixed_buffer, sizeof (struct fixed_buffer_stream)); Lisp_Object -make_fixed_buffer_input_stream (const void *buf, Lstream_Data_Count size) +make_fixed_buffer_input_stream (const void *buf, Bytecount size) { Lisp_Object obj; Lstream *lstr = Lstream_new (lstream_fixed_buffer, "r"); @@ -1274,7 +1274,7 @@ } Lisp_Object -make_fixed_buffer_output_stream (void *buf, Lstream_Data_Count size) +make_fixed_buffer_output_stream (void *buf, Bytecount size) { Lisp_Object obj; Lstream *lstr = Lstream_new (lstream_fixed_buffer, "w"); @@ -1285,9 +1285,9 @@ return obj; } -static Lstream_Data_Count +static Bytecount fixed_buffer_reader (Lstream *stream, unsigned char *data, - Lstream_Data_Count size) + Bytecount size) { struct fixed_buffer_stream *str = FIXED_BUFFER_STREAM_DATA (stream); size = min (size, str->size - str->offset); @@ -1296,9 +1296,9 @@ return size; } -static Lstream_Data_Count +static Bytecount fixed_buffer_writer (Lstream *stream, const unsigned char *data, - Lstream_Data_Count size) + Bytecount size) { struct fixed_buffer_stream *str = FIXED_BUFFER_STREAM_DATA (stream); if (str->offset == str->size) @@ -1343,7 +1343,7 @@ struct resizing_buffer_stream { unsigned char *buf; - Lstream_Data_Count allocked; + Bytecount allocked; int max_stored; int stored; }; @@ -1359,9 +1359,9 @@ return obj; } -static Lstream_Data_Count +static Bytecount resizing_buffer_writer (Lstream *stream, const unsigned char *data, - Lstream_Data_Count size) + Bytecount size) { struct resizing_buffer_stream *str = RESIZING_BUFFER_STREAM_DATA (stream); DO_REALLOC (str->buf, str->allocked, str->stored + size, unsigned char); @@ -1400,7 +1400,7 @@ /* Note: If you have a dynarr whose type is not unsigned_char_dynarr but which is really just an unsigned_char_dynarr (e.g. its type - is Bufbyte or Extbyte), just cast to unsigned_char_dynarr. */ + is Intbyte or Extbyte), just cast to unsigned_char_dynarr. */ #define DYNARR_STREAM_DATA(stream) \ LSTREAM_TYPE_DATA (stream, dynarr) @@ -1422,9 +1422,9 @@ return obj; } -static Lstream_Data_Count +static Bytecount dynarr_writer (Lstream *stream, const unsigned char *data, - Lstream_Data_Count size) + Bytecount size) { struct dynarr_stream *str = DYNARR_STREAM_DATA (stream); Dynarr_add_many (str->dyn, data, size); @@ -1466,13 +1466,13 @@ sizeof (struct lisp_buffer_stream)); static Lisp_Object -make_lisp_buffer_stream_1 (struct buffer *buf, Bufpos start, Bufpos end, +make_lisp_buffer_stream_1 (struct buffer *buf, Charbpos start, Charbpos end, int flags, const char *mode) { Lisp_Object obj; Lstream *lstr; struct lisp_buffer_stream *str; - Bufpos bmin, bmax; + Charbpos bmin, bmax; int reading = !strcmp (mode, "r"); /* Make sure the luser didn't pass "w" in. */ @@ -1532,14 +1532,14 @@ } Lisp_Object -make_lisp_buffer_input_stream (struct buffer *buf, Bufpos start, Bufpos end, +make_lisp_buffer_input_stream (struct buffer *buf, Charbpos start, Charbpos end, int flags) { return make_lisp_buffer_stream_1 (buf, start, end, flags, "r"); } Lisp_Object -make_lisp_buffer_output_stream (struct buffer *buf, Bufpos pos, int flags) +make_lisp_buffer_output_stream (struct buffer *buf, Charbpos pos, int flags) { Lisp_Object lstr = make_lisp_buffer_stream_1 (buf, pos, 0, flags, "wc"); @@ -1547,40 +1547,40 @@ return lstr; } -static Lstream_Data_Count +static Bytecount lisp_buffer_reader (Lstream *stream, unsigned char *data, - Lstream_Data_Count size) + Bytecount size) { struct lisp_buffer_stream *str = LISP_BUFFER_STREAM_DATA (stream); unsigned char *orig_data = data; - Bytind start; - Bytind end; + Bytebpos start; + Bytebpos end; struct buffer *buf = XBUFFER (str->buffer); if (!BUFFER_LIVE_P (buf)) return 0; /* Fut. */ - /* NOTE: We do all our operations in Bytind's. + /* NOTE: We do all our operations in Bytebpos's. Keep in mind that SIZE is a value in bytes, not chars. */ start = bi_marker_position (str->start); end = bi_marker_position (str->end); if (!(str->flags & LSTR_IGNORE_ACCESSIBLE)) { - start = bytind_clip_to_bounds (BI_BUF_BEGV (buf), start, + start = bytebpos_clip_to_bounds (BI_BUF_BEGV (buf), start, BI_BUF_ZV (buf)); - end = bytind_clip_to_bounds (BI_BUF_BEGV (buf), end, + end = bytebpos_clip_to_bounds (BI_BUF_BEGV (buf), end, BI_BUF_ZV (buf)); } - size = min (size, (Lstream_Data_Count) (end - start)); + size = min (size, (Bytecount) (end - start)); end = start + size; /* We cannot return a partial character. */ - VALIDATE_BYTIND_BACKWARD (buf, end); + VALIDATE_BYTEBPOS_BACKWARD (buf, end); while (start < end) { - Bytind ceil; + Bytebpos ceil; Bytecount chunk; if (str->flags & LSTR_IGNORE_ACCESSIBLE) @@ -1606,12 +1606,12 @@ return data - orig_data; } -static Lstream_Data_Count +static Bytecount lisp_buffer_writer (Lstream *stream, const unsigned char *data, - Lstream_Data_Count size) + Bytecount size) { struct lisp_buffer_stream *str = LISP_BUFFER_STREAM_DATA (stream); - Bufpos pos; + Charbpos pos; struct buffer *buf = XBUFFER (str->buffer); if (!BUFFER_LIVE_P (buf)) @@ -1653,7 +1653,7 @@ return str->buffer; } -Bufpos +Charbpos lisp_buffer_stream_startpos (Lstream *stream) { return marker_position (LISP_BUFFER_STREAM_DATA (stream)->start); diff --text -u 'xemacs-21.5.3/src/lstream.h' 'xemacs-21.5.4/src/lstream.h' Index: ././src/lstream.h --- ././src/lstream.h Mon Aug 13 13:46:32 2001 +++ ././src/lstream.h Thu Sep 20 15:29:06 2001 @@ -43,11 +43,25 @@ #define EOF (-1) #endif -/* Typedef specifying a count of bytes in a data block to be written - out or read in, using Lstream_read(), Lstream_write(), and related - functions. This MUST BE SIGNED, since it also is used in functions - that return the number of bytes actually read to or written from in - an operation, and these functions can return -1 to signal error. +/* The have been some arguments over the what the type should be that + specifies a count of bytes in a data block to be written out or read in, + using Lstream_read(), Lstream_write(), and related functions. + Originally it was long, which worked fine; Martin "corrected" these to + size_t and ssize_t on the grounds that this is theoretically cleaner and + is in keeping with the C standards. Unfortunately, this practice is + horribly error-prone due to design flaws in the way that mixed + signed/unsigned arithmetic happens. In fact, by doing this change, + Martin introduced a subtle but fatal error that caused the operation of + sending large mail messages to the SMTP server under Windows to fail. + By putting all values back to be signed, avoiding any signed/unsigned + mixing, the bug immediately went away. The type then in use was + Lstream_Data_Count, so that it be reverted cleanly if a vote came to + that. Now it is Bytecount. + + Some earlier comments about why the type must be signed: This MUST BE + SIGNED, since it also is used in functions that return the number of + bytes actually read to or written from in an operation, and these + functions can return -1 to signal error. Note that the standard Unix read() and write() functions define the count going in as a size_t, which is UNSIGNED, and the count going @@ -59,9 +73,9 @@ unrepresentable as an ssize_t, so code that checks to see how many bytes are actually written (which is mandatory if you are dealing with certain types of devices) will get completely screwed up. -*/ -typedef EMACS_INT Lstream_Data_Count; + --ben +*/ typedef enum lstream_buffering { @@ -96,7 +110,7 @@ typedef struct lstream_implementation { const char *name; - Lstream_Data_Count size; /* Number of additional bytes to be + Bytecount size; /* Number of additional bytes to be allocated with this stream. Access this data using Lstream_data(). */ /* Read some data from the stream's end and store it into DATA, which @@ -117,8 +131,8 @@ /* The omniscient mly, blinded by the irresistible thrall of Common Lisp, thinks that it is bogus that the types and implementations of input and output streams are the same. */ - Lstream_Data_Count (*reader) (Lstream *stream, unsigned char *data, - Lstream_Data_Count size); + Bytecount (*reader) (Lstream *stream, unsigned char *data, + Bytecount size); /* Send some data to the stream's end. Data to be sent is in DATA and is SIZE bytes. Return the number of bytes sent. This function can send and return fewer bytes than is passed in; in @@ -129,8 +143,8 @@ data. (This is useful, e.g., of you're dealing with a non-blocking file descriptor and are getting EWOULDBLOCK errors.) This function can be NULL if the stream is input-only. */ - Lstream_Data_Count (*writer) (Lstream *stream, const unsigned char *data, - Lstream_Data_Count size); + Bytecount (*writer) (Lstream *stream, const unsigned char *data, + Bytecount size); /* Return non-zero if the last write operation on the stream resulted in an attempt to block (EWOULDBLOCK). If this method does not exists, the implementation returns 0 */ @@ -171,17 +185,17 @@ struct lcrecord_header header; const Lstream_implementation *imp; /* methods for this stream */ Lstream_buffering buffering; /* type of buffering in use */ - Lstream_Data_Count buffering_size; /* number of bytes buffered */ + Bytecount buffering_size; /* number of bytes buffered */ unsigned char *in_buffer; /* holds characters read from stream end */ - Lstream_Data_Count in_buffer_size; /* allocated size of buffer */ - Lstream_Data_Count in_buffer_current; /* number of characters in buffer */ - Lstream_Data_Count in_buffer_ind; /* pointer to next character to + Bytecount in_buffer_size; /* allocated size of buffer */ + Bytecount in_buffer_current; /* number of characters in buffer */ + Bytecount in_buffer_ind; /* pointer to next character to take from buffer */ unsigned char *out_buffer; /* holds characters to write to stream end */ - Lstream_Data_Count out_buffer_size; /* allocated size of buffer */ - Lstream_Data_Count out_buffer_ind; /* pointer to next buffer spot to + Bytecount out_buffer_size; /* allocated size of buffer */ + Bytecount out_buffer_ind; /* pointer to next buffer spot to write a character */ /* The unget buffer is more or less a stack -- things get pushed @@ -189,11 +203,11 @@ basically reads backwards from the end to get stuff; Lstream_unread() similarly has to push the data on backwards. */ unsigned char *unget_buffer; /* holds characters pushed back onto input */ - Lstream_Data_Count unget_buffer_size; /* allocated size of buffer */ - Lstream_Data_Count unget_buffer_ind; /* pointer to next buffer spot + Bytecount unget_buffer_size; /* allocated size of buffer */ + Bytecount unget_buffer_ind; /* pointer to next buffer spot to write a character */ - Lstream_Data_Count byte_count; + Bytecount byte_count; int flags; max_align_t data[1]; }; @@ -236,12 +250,12 @@ int Lstream_fputc (Lstream *lstr, int c); int Lstream_fgetc (Lstream *lstr); void Lstream_fungetc (Lstream *lstr, int c); -Lstream_Data_Count Lstream_read (Lstream *lstr, void *data, - Lstream_Data_Count size); -Lstream_Data_Count Lstream_write (Lstream *lstr, const void *data, - Lstream_Data_Count size); +Bytecount Lstream_read (Lstream *lstr, void *data, + Bytecount size); +Bytecount Lstream_write (Lstream *lstr, const void *data, + Bytecount size); int Lstream_was_blocked_p (Lstream *lstr); -void Lstream_unread (Lstream *lstr, const void *data, Lstream_Data_Count size); +void Lstream_unread (Lstream *lstr, const void *data, Bytecount size); int Lstream_rewind (Lstream *lstr); int Lstream_seekable_p (Lstream *lstr); int Lstream_close (Lstream *lstr); @@ -364,15 +378,15 @@ int flags); void filedesc_stream_set_pty_flushing (Lstream *stream, int pty_max_bytes, - Bufbyte eof_char); + Intbyte eof_char); int filedesc_stream_fd (Lstream *stream); Lisp_Object make_lisp_string_input_stream (Lisp_Object string, Bytecount offset, Bytecount len); Lisp_Object make_fixed_buffer_input_stream (const void *buf, - Lstream_Data_Count size); + Bytecount size); Lisp_Object make_fixed_buffer_output_stream (void *buf, - Lstream_Data_Count size); + Bytecount size); const unsigned char *fixed_buffer_input_stream_ptr (Lstream *stream); unsigned char *fixed_buffer_output_stream_ptr (Lstream *stream); Lisp_Object make_resizing_buffer_output_stream (void); @@ -380,10 +394,10 @@ Lisp_Object make_dynarr_output_stream (unsigned_char_dynarr *dyn); #define LSTR_SELECTIVE 1 #define LSTR_IGNORE_ACCESSIBLE 2 -Lisp_Object make_lisp_buffer_input_stream (struct buffer *buf, Bufpos start, - Bufpos end, int flags); -Lisp_Object make_lisp_buffer_output_stream (struct buffer *buf, Bufpos pos, +Lisp_Object make_lisp_buffer_input_stream (struct buffer *buf, Charbpos start, + Charbpos end, int flags); +Lisp_Object make_lisp_buffer_output_stream (struct buffer *buf, Charbpos pos, int flags); -Bufpos lisp_buffer_stream_startpos (Lstream *stream); +Charbpos lisp_buffer_stream_startpos (Lstream *stream); #endif /* INCLUDED_lstream_h_ */ diff --text -u 'xemacs-21.5.3/src/malloc.c' 'xemacs-21.5.4/src/malloc.c' Index: ././src/malloc.c Prereq: 1 --- ././src/malloc.c Mon Aug 13 13:46:32 2001 +++ ././src/malloc.c Thu Sep 20 15:29:06 2001 @@ -220,8 +220,8 @@ /* These two are for user programs to look at, when they are interested. */ -Memory_Count malloc_sbrk_used; /* amount of data space used now */ -Memory_Count malloc_sbrk_unused; /* amount more we can have */ +Bytecount malloc_sbrk_used; /* amount of data space used now */ +Bytecount malloc_sbrk_unused; /* amount more we can have */ /* start of data space; can be changed by calling init_malloc */ static char *data_space_start; diff --text -u 'xemacs-21.5.3/src/marker.c' 'xemacs-21.5.4/src/marker.c' Index: ././src/marker.c --- ././src/marker.c Thu May 24 16:51:23 2001 +++ ././src/marker.c Thu Sep 20 15:29:06 2001 @@ -81,7 +81,7 @@ Lisp_Marker *marker2 = XMARKER (obj2); return ((marker1->buffer == marker2->buffer) && - (marker1->memind == marker2->memind || + (marker1->membpos == marker2->membpos || /* All markers pointing nowhere are equal */ !marker1->buffer)); } @@ -91,7 +91,7 @@ { unsigned long hash = (unsigned long) XMARKER (obj)->buffer; if (hash) - hash = HASH2 (hash, XMARKER (obj)->memind); + hash = HASH2 (hash, XMARKER (obj)->membpos); return hash; } @@ -171,7 +171,7 @@ set_marker_internal (Lisp_Object marker, Lisp_Object position, Lisp_Object buffer, int restricted_p) { - Bufpos charno; + Charbpos charno; struct buffer *b; Lisp_Marker *m; int point_p; @@ -237,7 +237,7 @@ } else { - m->memind = bufpos_to_memind (b, charno); + m->membpos = charbpos_to_membpos (b, charno); } if (m->buffer != b) @@ -319,12 +319,12 @@ marker->buffer = 0; } -Bytind +Bytebpos bi_marker_position (Lisp_Object marker) { Lisp_Marker *m = XMARKER (marker); struct buffer *buf = m->buffer; - Bytind pos; + Bytebpos pos; if (!buf) invalid_argument ("Marker does not point anywhere", Qunbound); @@ -335,9 +335,9 @@ shit, I don't think this can happen. In any case, the following macro has an assert() in it that will catch these denormalized positions. */ - pos = memind_to_bytind (buf, m->memind); + pos = membpos_to_bytebpos (buf, m->membpos); -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS if (pos < BI_BUF_BEG (buf) || pos > BI_BUF_Z (buf)) abort (); #endif @@ -345,7 +345,7 @@ return pos; } -Bufpos +Charbpos marker_position (Lisp_Object marker) { struct buffer *buf = XMARKER (marker)->buffer; @@ -353,11 +353,11 @@ if (!buf) invalid_argument ("Marker does not point anywhere", Qunbound); - return bytind_to_bufpos (buf, bi_marker_position (marker)); + return bytebpos_to_charbpos (buf, bi_marker_position (marker)); } void -set_bi_marker_position (Lisp_Object marker, Bytind pos) +set_bi_marker_position (Lisp_Object marker, Bytebpos pos) { Lisp_Marker *m = XMARKER (marker); struct buffer *buf = m->buffer; @@ -365,23 +365,23 @@ if (!buf) invalid_argument ("Marker does not point anywhere", Qunbound); -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS if (pos < BI_BUF_BEG (buf) || pos > BI_BUF_Z (buf)) abort (); #endif - m->memind = bytind_to_memind (buf, pos); + m->membpos = bytebpos_to_membpos (buf, pos); } void -set_marker_position (Lisp_Object marker, Bufpos pos) +set_marker_position (Lisp_Object marker, Charbpos pos) { struct buffer *buf = XMARKER (marker)->buffer; if (!buf) invalid_argument ("Marker does not point anywhere", Qunbound); - set_bi_marker_position (marker, bufpos_to_bytind (buf, pos)); + set_bi_marker_position (marker, charbpos_to_bytebpos (buf, pos)); } static Lisp_Object @@ -467,11 +467,11 @@ (position)) { Lisp_Marker *marker; - Memind pos; + Membpos pos; - /* A small optimization trick: convert POS to memind now, rather - than converting every marker's memory index to bufpos. */ - pos = bytind_to_memind (current_buffer, + /* A small optimization trick: convert POS to membpos now, rather + than converting every marker's memory index to charbpos. */ + pos = bytebpos_to_membpos (current_buffer, get_buffer_pos_byte (current_buffer, position, GB_COERCE_RANGE)); @@ -479,10 +479,10 @@ marker; marker = marker_next (marker)) { - /* We use marker->memind, so we don't have to go through the + /* We use marker->membpos, so we don't have to go through the unwieldy operation of creating a Lisp_Object for marker_position() every time around. */ - if (marker->memind == pos) + if (marker->membpos == pos) return Qt; } diff --text -u 'xemacs-21.5.3/src/md5.c' 'xemacs-21.5.4/src/md5.c' Index: ././src/md5.c --- ././src/md5.c Mon Aug 13 13:46:32 2001 +++ ././src/md5.c Thu Sep 20 15:29:06 2001 @@ -546,7 +546,7 @@ if (BUFFERP (object)) { struct buffer *b; - Bufpos begv, endv; + Charbpos begv, endv; CHECK_LIVE_BUFFER (object); b = XBUFFER (object); /* Figure out where we need to get info from */ @@ -578,8 +578,8 @@ /* Get the data while doing the conversion. */ while (1) { - Bufbyte tempbuf[1024]; /* some random amount */ - Lstream_Data_Count size_in_bytes = + Intbyte tempbuf[1024]; /* some random amount */ + Bytecount size_in_bytes = Lstream_read (XLSTREAM (instream), tempbuf, sizeof (tempbuf)); if (!size_in_bytes) break; diff --text -u 'xemacs-21.5.3/src/menubar-gtk.c' 'xemacs-21.5.4/src/menubar-gtk.c' Index: ././src/menubar-gtk.c --- ././src/menubar-gtk.c Thu May 24 16:51:23 2001 +++ ././src/menubar-gtk.c Mon Dec 24 05:28:21 2001 @@ -1216,11 +1216,21 @@ gtk_popup_menu (Lisp_Object menu_desc, Lisp_Object event) { struct Lisp_Event *eev = NULL; - GtkWidget *widget = menu_descriptor_to_widget (menu_desc); - GtkWidget *menu = GTK_MENU_ITEM (widget)->submenu; - gpointer id = gtk_object_get_data (GTK_OBJECT (widget), XEMACS_MENU_GUIID_TAG); + GtkWidget *widget = NULL; + GtkWidget *menu = NULL; + gpointer id = NULL; + /* Do basic error checking first... */ + if (SYMBOLP (menu_desc)) + menu_desc = Fsymbol_value (menu_desc); + CHECK_CONS (menu_desc); + CHECK_STRING (XCAR (menu_desc)); + + /* Now lets get down to business... */ + widget = menu_descriptor_to_widget (menu_desc); + menu = GTK_MENU_ITEM (widget)->submenu; gtk_widget_set_name (widget, "XEmacsPopupMenu"); + id = gtk_object_get_data (GTK_OBJECT (widget), XEMACS_MENU_GUIID_TAG); __activate_menu (GTK_MENU_ITEM (widget), id); diff --text -u 'xemacs-21.5.3/src/menubar-msw.c' 'xemacs-21.5.4/src/menubar-msw.c' Index: ././src/menubar-msw.c --- ././src/menubar-msw.c Mon Aug 13 13:46:32 2001 +++ ././src/menubar-msw.c Thu Dec 20 14:49:47 2001 @@ -136,18 +136,18 @@ * of not hitting an error, maxlen should be >= 2*len + 3. */ Bytecount -mswindows_translate_menu_or_dialog_item (Bufbyte *item, Bytecount len, +mswindows_translate_menu_or_dialog_item (Intbyte *item, Bytecount len, Bytecount maxlen, Emchar *accel, Lisp_Object error_name) { - Bufbyte *ptr; + Intbyte *ptr; if (accel) *accel = '\0'; /* Escape '&' as '&&' */ ptr = item; - while ((ptr = (Bufbyte *) memchr (ptr, '&', len - (ptr - item))) != NULL) + while ((ptr = (Intbyte *) memchr (ptr, '&', len - (ptr - item))) != NULL) { if (len + 2 > maxlen) invalid_argument ("Menu item produces too long displayable string", @@ -160,7 +160,7 @@ /* Replace XEmacs accelerator '%_' with Windows accelerator '&' and `%%' with `%'. */ ptr = item; - while ((ptr = (Bufbyte *) memchr (ptr, '%', len - (ptr - item))) != NULL) + while ((ptr = (Intbyte *) memchr (ptr, '%', len - (ptr - item))) != NULL) { if (*(ptr + 1) == '_') { @@ -214,7 +214,7 @@ * "Left Flush\tRight Flush" */ -/* #### This is junk. Need correct handling of sizes. Use a Bufbyte_dynarr, +/* #### This is junk. Need correct handling of sizes. Use a Intbyte_dynarr, not a static buffer. */ static char* displayable_menu_item (Lisp_Object gui_item, int bar_p, Emchar *accel) @@ -230,7 +230,7 @@ /* Left flush part of the string */ ll = gui_item_display_flush_left (gui_item, buf, MAX_MENUITEM_LENGTH); - ll = mswindows_translate_menu_or_dialog_item ((Bufbyte *) buf, ll, + ll = mswindows_translate_menu_or_dialog_item ((Intbyte *) buf, ll, MAX_MENUITEM_LENGTH, accel, XGUI_ITEM (gui_item)->name); @@ -738,7 +738,7 @@ Lisp_Object path, desc; struct gcpro gcpro1; - + /* Find which guy is going to explode */ path = Fgethash (hmenu_to_lisp_object (menu), current_hash_table, Qunbound); assert (!UNBOUNDP (path)); @@ -822,8 +822,7 @@ 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; @@ -917,6 +916,8 @@ eev = NULL; } + popup_up_p++; + /* Default is to put the menu at the point (10, 10) in frame */ if (eev) { @@ -932,6 +933,8 @@ 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); @@ -950,7 +953,15 @@ 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 */ @@ -961,6 +972,8 @@ menu_desc); } UNGCPRO; + + return Qnil; } diff --text -u 'xemacs-21.5.3/src/menubar-x.c' 'xemacs-21.5.4/src/menubar-x.c' Index: ././src/menubar-x.c --- ././src/menubar-x.c Thu May 24 16:51:23 2001 +++ ././src/menubar-x.c Thu Sep 20 15:29:07 2001 @@ -115,7 +115,7 @@ if (STRINGP (desc)) { - Bufbyte *string_chars = XSTRING_DATA (desc); + Intbyte *string_chars = XSTRING_DATA (desc); wv->type = (separator_string_p (string_chars) ? SEPARATOR_TYPE : TEXT_TYPE); if (wv->type == SEPARATOR_TYPE) @@ -251,7 +251,7 @@ title_wv->enabled = 1; title_wv->next = sep_wv; sep_wv->type = SEPARATOR_TYPE; - sep_wv->value = menu_separator_style_and_to_external ((Bufbyte *) "=="); + sep_wv->value = menu_separator_style_and_to_external ((Intbyte *) "=="); sep_wv->next = 0; wv->contents = title_wv; @@ -1164,7 +1164,7 @@ args[1] = errordata; warn_when_safe_lispobj (Qerror, Qwarning, - emacs_doprnt_string_lisp ((const Bufbyte *) "%s: %s", + emacs_doprnt_string_lisp ((const Intbyte *) "%s: %s", Qnil, -1, 2, args)); } diff --text -u 'xemacs-21.5.3/src/menubar.c' 'xemacs-21.5.4/src/menubar.c' Index: ././src/menubar.c --- ././src/menubar.c Thu May 24 16:51:23 2001 +++ ././src/menubar.c Thu Sep 20 15:29:07 2001 @@ -330,9 +330,9 @@ Lisp_String *n; Charcount end; int i; - Bufbyte *name_data; - Bufbyte *string_result; - Bufbyte *string_result_ptr; + Intbyte *name_data; + Intbyte *string_result; + Intbyte *string_result_ptr; Emchar elt; int expecting_underscore = 0; @@ -342,7 +342,7 @@ end = string_char_length (n); name_data = string_data (n); - string_result = (Bufbyte *) alloca (end * MAX_EMCHAR_LEN); + string_result = (Intbyte *) alloca (end * MAX_EMCHAR_LEN); string_result_ptr = string_result; for (i = 0; i < end; i++) { diff --text -u 'xemacs-21.5.3/src/minibuf.c' 'xemacs-21.5.4/src/minibuf.c' Index: ././src/minibuf.c --- ././src/minibuf.c Thu May 24 16:51:23 2001 +++ ././src/minibuf.c Thu Sep 20 15:29:07 2001 @@ -205,7 +205,7 @@ if IGNORE_CASE is true. */ Charcount -scmp_1 (const Bufbyte *s1, const Bufbyte *s2, Charcount len, +scmp_1 (const Intbyte *s1, const Intbyte *s2, Charcount len, int ignore_case) { Charcount l = len; @@ -244,7 +244,7 @@ int -regexp_ignore_completion_p (const Bufbyte *nonreloc, +regexp_ignore_completion_p (const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length) { @@ -688,7 +688,7 @@ } else { - write_string_to_stdio_stream (stderr, 0, (const Bufbyte *) "\n", 0, 1, + write_string_to_stdio_stream (stderr, 0, (const Intbyte *) "\n", 0, 1, Qterminal, 0); return Qnil; } @@ -709,7 +709,7 @@ } void -echo_area_append (struct frame *f, const Bufbyte *nonreloc, Lisp_Object reloc, +echo_area_append (struct frame *f, const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length, Lisp_Object label) { @@ -763,7 +763,7 @@ } void -echo_area_message (struct frame *f, const Bufbyte *nonreloc, +echo_area_message (struct frame *f, const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length, Lisp_Object label) { @@ -808,7 +808,7 @@ /* Dump an informative message to the echo area. This function takes a string in internal format. */ void -message_internal (const Bufbyte *nonreloc, Lisp_Object reloc, +message_internal (const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length) { /* This function can call lisp */ @@ -818,7 +818,7 @@ } void -message_append_internal (const Bufbyte *nonreloc, Lisp_Object reloc, +message_append_internal (const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length) { /* This function can call lisp */ @@ -840,7 +840,7 @@ struct gcpro gcpro1; /* message_internal() might GC, e.g. if there are after-change-hooks on the echo area buffer */ - Lisp_Object obj = emacs_doprnt_string_va ((const Bufbyte *) fmt, Qnil, + Lisp_Object obj = emacs_doprnt_string_va ((const Intbyte *) fmt, Qnil, -1, args); GCPRO1 (obj); message_internal (0, obj, 0, -1); @@ -859,7 +859,7 @@ struct gcpro gcpro1; /* message_internal() might GC, e.g. if there are after-change-hooks on the echo area buffer */ - Lisp_Object obj = emacs_doprnt_string_va ((const Bufbyte *) fmt, Qnil, + Lisp_Object obj = emacs_doprnt_string_va ((const Intbyte *) fmt, Qnil, -1, args); GCPRO1 (obj); message_append_internal (0, obj, 0, -1); diff --text -u 'xemacs-21.5.3/src/mule-ccl.c' 'xemacs-21.5.4/src/mule-ccl.c' Index: ././src/mule-ccl.c --- ././src/mule-ccl.c Mon Aug 13 13:46:32 2001 +++ ././src/mule-ccl.c Thu Sep 20 15:29:07 2001 @@ -737,7 +737,7 @@ } \ else \ { \ - Bufbyte work[MAX_EMCHAR_LEN]; \ + Intbyte work[MAX_EMCHAR_LEN]; \ int len; \ len = non_ascii_set_charptr_emchar (work, ch); \ Dynarr_add_many (destination, work, len); \ @@ -751,7 +751,7 @@ } \ else \ { \ - Bufbyte work[MAX_EMCHAR_LEN]; \ + Intbyte work[MAX_EMCHAR_LEN]; \ int len; \ len = non_ascii_set_charptr_emchar (work, ch); \ Dynarr_add_many (destination, work, len); \ @@ -764,7 +764,7 @@ cannot handle a multibyte string except for Control-1 characters. */ #define CCL_WRITE_STRING(len) \ do { \ - Bufbyte work[MAX_EMCHAR_LEN]; \ + Intbyte work[MAX_EMCHAR_LEN]; \ int ch, bytes; \ if (!destination) \ CCL_INVALID_CMD; \ diff --text -u 'xemacs-21.5.3/src/mule-charset.c' 'xemacs-21.5.4/src/mule-charset.c' Index: ././src/mule-charset.c --- ././src/mule-charset.c Mon Aug 13 13:46:33 2001 +++ ././src/mule-charset.c Thu Sep 20 15:29:08 2001 @@ -190,10 +190,10 @@ */ Bytecount -non_ascii_set_charptr_emchar (Bufbyte *str, Emchar c) +non_ascii_set_charptr_emchar (Intbyte *str, Emchar c) { - Bufbyte *p; - Bufbyte lb; + Intbyte *p; + Intbyte lb; int c1, c2; Lisp_Object charset; @@ -217,9 +217,9 @@ Use the macro charptr_emchar() instead. */ Emchar -non_ascii_charptr_emchar (const Bufbyte *str) +non_ascii_charptr_emchar (const Intbyte *str) { - Bufbyte i0 = *str, i1, i2 = 0; + Intbyte i0 = *str, i1, i2 = 0; Lisp_Object charset; if (i0 == LEADING_BYTE_CONTROL_1) @@ -327,7 +327,7 @@ Return the number of bytes copied. */ Bytecount -non_ascii_charptr_copy_char (const Bufbyte *src, Bufbyte *dst) +non_ascii_charptr_copy_char (const Intbyte *src, Intbyte *dst) { Bytecount bytes = REP_BYTES_BY_FIRST_BYTE (*src); Bytecount i; @@ -348,17 +348,17 @@ Emchar Lstream_get_emchar_1 (Lstream *stream, int ch) { - Bufbyte str[MAX_EMCHAR_LEN]; - Bufbyte *strptr = str; + Intbyte str[MAX_EMCHAR_LEN]; + Intbyte *strptr = str; Bytecount bytes; - str[0] = (Bufbyte) ch; + str[0] = (Intbyte) ch; for (bytes = REP_BYTES_BY_FIRST_BYTE (ch) - 1; bytes; bytes--) { int c = Lstream_getc (stream); - bufpos_checking_assert (c >= 0); - *++strptr = (Bufbyte) c; + charbpos_checking_assert (c >= 0); + *++strptr = (Intbyte) c; } return charptr_emchar (str); } @@ -366,7 +366,7 @@ int Lstream_fput_emchar (Lstream *stream, Emchar ch) { - Bufbyte str[MAX_EMCHAR_LEN]; + Intbyte str[MAX_EMCHAR_LEN]; Bytecount len = set_charptr_emchar (str, ch); return Lstream_write (stream, str, len); } @@ -374,7 +374,7 @@ void Lstream_funget_emchar (Lstream *stream, Emchar ch) { - Bufbyte str[MAX_EMCHAR_LEN]; + Intbyte str[MAX_EMCHAR_LEN]; Bytecount len = set_charptr_emchar (str, ch); Lstream_unread (stream, str, len); } @@ -452,7 +452,7 @@ static Lisp_Object make_charset (int id, Lisp_Object name, unsigned char rep_bytes, unsigned char type, unsigned char columns, unsigned char graphic, - Bufbyte final, unsigned char direction, Lisp_Object short_name, + Intbyte final, unsigned char direction, Lisp_Object short_name, Lisp_Object long_name, Lisp_Object doc, Lisp_Object reg) { @@ -1172,7 +1172,7 @@ /************************************************************************/ Emchar -lookup_composite_char (Bufbyte *str, int len) +lookup_composite_char (Intbyte *str, int len) { Lisp_Object lispstr = make_string (str, len); Lisp_Object ch = Fgethash (lispstr, diff --text -u 'xemacs-21.5.3/src/mule-charset.h' 'xemacs-21.5.4/src/mule-charset.h' Index: ././src/mule-charset.h --- ././src/mule-charset.h Mon Aug 13 13:46:33 2001 +++ ././src/mule-charset.h Thu Sep 20 15:29:08 2001 @@ -401,9 +401,9 @@ /* Is this a prefix for a private leading byte? */ -INLINE_HEADER int LEADING_BYTE_PREFIX_P (Bufbyte lb); +INLINE_HEADER int LEADING_BYTE_PREFIX_P (Intbyte lb); INLINE_HEADER int -LEADING_BYTE_PREFIX_P (Bufbyte lb) +LEADING_BYTE_PREFIX_P (Intbyte lb) { return (lb == PRE_LEADING_BYTE_PRIVATE_1 || lb == PRE_LEADING_BYTE_PRIVATE_2); @@ -438,11 +438,11 @@ /* Does BYTE represent the first byte of a character? */ -#define BUFBYTE_FIRST_BYTE_P(byte) ((byte) < 0xA0) +#define INTBYTE_FIRST_BYTE_P(byte) ((byte) < 0xA0) /* Does BYTE represent the first byte of a multi-byte character? */ -#define BUFBYTE_LEADING_BYTE_P(byte) BYTE_C1_P (byte) +#define INTBYTE_LEADING_BYTE_P(byte) BYTE_C1_P (byte) /************************************************************************/ @@ -465,7 +465,7 @@ Lisp_Object ccl_program; /* Final byte of this character set in ISO2022 designating escape sequence */ - Bufbyte final; + Intbyte final; /* Number of bytes (1 - 4) required in the internal representation for characters in this character set. This is *not* the @@ -511,7 +511,7 @@ /* Leading byte and id have been regrouped. -- OG */ #define CHARSET_ID(cs) ((cs)->id) -#define CHARSET_LEADING_BYTE(cs) ((Bufbyte) CHARSET_ID(cs)) +#define CHARSET_LEADING_BYTE(cs) ((Intbyte) CHARSET_ID(cs)) #define CHARSET_NAME(cs) ((cs)->name) #define CHARSET_SHORT_NAME(cs) ((cs)->short_name) #define CHARSET_LONG_NAME(cs) ((cs)->long_name) @@ -557,13 +557,13 @@ /* Table of charsets indexed by type/final-byte/direction. */ Lisp_Object charset_by_attributes[4][128][2]; - Bufbyte next_allocated_1_byte_leading_byte; - Bufbyte next_allocated_2_byte_leading_byte; + Intbyte next_allocated_1_byte_leading_byte; + Intbyte next_allocated_2_byte_leading_byte; }; -INLINE_HEADER Lisp_Object CHARSET_BY_LEADING_BYTE (Bufbyte lb); +INLINE_HEADER Lisp_Object CHARSET_BY_LEADING_BYTE (Intbyte lb); INLINE_HEADER Lisp_Object -CHARSET_BY_LEADING_BYTE (Bufbyte lb) +CHARSET_BY_LEADING_BYTE (Intbyte lb) { extern struct charset_lookup *chlook; @@ -598,9 +598,9 @@ extern const Bytecount rep_bytes_by_first_byte[0xA0]; /* Number of bytes in the string representation of a character. */ -INLINE_HEADER int REP_BYTES_BY_FIRST_BYTE (Bufbyte fb); +INLINE_HEADER int REP_BYTES_BY_FIRST_BYTE (Intbyte fb); INLINE_HEADER int -REP_BYTES_BY_FIRST_BYTE (Bufbyte fb) +REP_BYTES_BY_FIRST_BYTE (Intbyte fb) { type_checking_assert (fb < 0xA0); return rep_bytes_by_first_byte[fb]; @@ -679,8 +679,8 @@ FIELD2_TO_PRIVATE_LEADING_BYTE are the same. */ -INLINE_HEADER Bufbyte CHAR_LEADING_BYTE (Emchar c); -INLINE_HEADER Bufbyte +INLINE_HEADER Intbyte CHAR_LEADING_BYTE (Emchar c); +INLINE_HEADER Intbyte CHAR_LEADING_BYTE (Emchar c) { if (CHAR_ASCII_P (c)) @@ -770,7 +770,7 @@ /* Composite characters */ /************************************************************************/ -Emchar lookup_composite_char (Bufbyte *str, int len); +Emchar lookup_composite_char (Intbyte *str, int len); Lisp_Object composite_char_string (Emchar ch); #endif /* ENABLE_COMPOSITE_CHARS */ @@ -790,9 +790,9 @@ int Lstream_fput_emchar (Lstream *stream, Emchar ch); void Lstream_funget_emchar (Lstream *stream, Emchar ch); -int copy_internal_to_external (const Bufbyte *internal, Bytecount len, +int copy_internal_to_external (const Intbyte *internal, Bytecount len, unsigned char *external); Bytecount copy_external_to_internal (const unsigned char *external, - int len, Bufbyte *internal); + int len, Intbyte *internal); #endif /* INCLUDED_mule_charset_h_ */ diff --text -u 'xemacs-21.5.3/src/mule-wnnfns.c' 'xemacs-21.5.4/src/mule-wnnfns.c' Index: ././src/mule-wnnfns.c --- ././src/mule-wnnfns.c Mon Aug 13 13:46:33 2001 +++ ././src/mule-wnnfns.c Thu Sep 20 15:29:08 2001 @@ -517,7 +517,7 @@ fname and comment must be ASCII strings! */ val = Fcons (Fcons (make_int (dicinfo->dic_no), - list4 (make_string ((Bufbyte *) (dicinfo->fname), + list4 (make_string ((Intbyte *) (dicinfo->fname), strlen (dicinfo->fname)), make_string (comment, strlen ((char *) comment)), make_int (dicinfo->gosuu), @@ -1191,7 +1191,7 @@ if ((snum = check_wnn_server_type ()) == -1) return Qnil; if (!wnnfns_buf[snum]) return Qnil; if (jl_fuzokugo_get (wnnfns_buf[snum], fname) < 0) return Qnil; - return make_string ((Bufbyte *) fname, strlen (fname)); + return make_string ((Intbyte *) fname, strlen (fname)); } @@ -1982,7 +1982,7 @@ while ((ch = *mp++) != 0) { - if (BUFBYTE_LEADING_BYTE_P (ch)) + if (INTBYTE_LEADING_BYTE_P (ch)) { switch (ch) { diff --text -u 'xemacs-21.5.3/src/nt.c' 'xemacs-21.5.4/src/nt.c' Index: ././src/nt.c --- ././src/nt.c Sun Jun 10 19:42:32 2001 +++ ././src/nt.c Thu Dec 20 14:49:47 2001 @@ -507,7 +507,7 @@ } #endif /* 0 */ -#define REG_ROOT "SOFTWARE\\GNU\\XEmacs" +#define REG_ROOT "SOFTWARE\\XEmacs\\XEmacs" LPBYTE nt_get_resource (char *key, LPDWORD lpdwtype) diff --text -u 'xemacs-21.5.3/src/ntheap.c' 'xemacs-21.5.4/src/ntheap.c' Index: ././src/ntheap.c --- ././src/ntheap.c Mon Aug 13 13:46:33 2001 +++ ././src/ntheap.c Thu Dec 20 14:49:47 2001 @@ -291,12 +291,14 @@ sbrk (need_to_alloc); } -#if (_MSC_VER >= 1000) +#if ((_MSC_VER >= 1000) && (_MSC_VER < 1300)) /* MSVC 4.2 invokes these functions from mainCRTStartup to initialize a heap via HeapCreate. They are normally defined by the runtime, but we override them here so that the unnecessary HeapCreate call is not performed. */ + +/* MSVC 7.0 does not allow you to redefine _heap_init or _heap_term. */ int __cdecl _heap_init (void) diff --text -u 'xemacs-21.5.3/src/objects-gtk.c' 'xemacs-21.5.4/src/objects-gtk.c' Index: ././src/objects-gtk.c --- ././src/objects-gtk.c Fri May 25 20:26:58 2001 +++ ././src/objects-gtk.c Thu Sep 20 15:29:08 2001 @@ -72,7 +72,7 @@ } int -gtk_parse_nearest_color (struct device *d, GdkColor *color, Bufbyte *name, +gtk_parse_nearest_color (struct device *d, GdkColor *color, Intbyte *name, Bytecount len, Error_Behavior errb) { GdkColormap *cmap; @@ -85,7 +85,7 @@ xzero (*color); { const Extbyte *extname; - Extcount extnamelen; + Bytecount extnamelen; TO_EXTERNAL_FORMAT (DATA, (name, len), ALLOCA, (extname, extnamelen), Qbinary); @@ -382,7 +382,7 @@ static int gtk_font_spec_matches_charset (struct device *d, Lisp_Object charset, - const Bufbyte *nonreloc, Lisp_Object reloc, + const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length) { if (UNBOUNDP (charset)) @@ -394,7 +394,7 @@ */ if (EQ (charset, Vcharset_ascii)) { - const Bufbyte *the_nonreloc = nonreloc; + const Intbyte *the_nonreloc = nonreloc; int i; Bytecount the_length = length; @@ -406,7 +406,7 @@ { for (i = 0;; i++) { - const Bufbyte *new_nonreloc = (const Bufbyte *) + const Intbyte *new_nonreloc = (const Intbyte *) memchr (the_nonreloc, '-', the_length); if (!new_nonreloc) break; @@ -502,7 +502,7 @@ /* ### This code seems awfully bogus -- mrb */ for (i = 0; i < count; i ++) { - const Bufbyte *intname; + const Intbyte *intname; Bytecount intlen; TO_INTERNAL_FORMAT (C_STRING, names[i], ALLOCA, (intname, intlen), diff --text -u 'xemacs-21.5.3/src/objects-gtk.h' 'xemacs-21.5.4/src/objects-gtk.h' Index: ././src/objects-gtk.h --- ././src/objects-gtk.h Fri May 25 20:26:58 2001 +++ ././src/objects-gtk.h Thu Sep 20 15:29:08 2001 @@ -46,7 +46,7 @@ int allocate_nearest_color (GdkColormap *screen_colormap, GdkVisual *visual, GdkColor *color_def); -int gtk_parse_nearest_color (struct device *d, GdkColor *color, Bufbyte *name, +int gtk_parse_nearest_color (struct device *d, GdkColor *color, Intbyte *name, Bytecount len, Error_Behavior errb); /***************************************************************************** diff --text -u 'xemacs-21.5.3/src/objects-msw.c' 'xemacs-21.5.4/src/objects-msw.c' Index: ././src/objects-msw.c --- ././src/objects-msw.c Mon Aug 13 13:46:34 2001 +++ ././src/objects-msw.c Thu Sep 20 15:29:08 2001 @@ -1663,7 +1663,7 @@ static int mswindows_font_spec_matches_charset (struct device *d, Lisp_Object charset, - const Bufbyte *nonreloc, Lisp_Object reloc, + const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length) { /* #### Implement me */ diff --text -u 'xemacs-21.5.3/src/objects-tty.c' 'xemacs-21.5.4/src/objects-tty.c' Index: ././src/objects-tty.c --- ././src/objects-tty.c Fri May 25 20:26:58 2001 +++ ././src/objects-tty.c Thu Sep 20 15:29:09 2001 @@ -217,7 +217,7 @@ tty_initialize_font_instance (Lisp_Font_Instance *f, Lisp_Object name, Lisp_Object device, Error_Behavior errb) { - Bufbyte *str = XSTRING_DATA (name); + Intbyte *str = XSTRING_DATA (name); Lisp_Object charset = Qnil; if (strncmp ((const char *) str, "normal", 6)) @@ -284,10 +284,10 @@ static int tty_font_spec_matches_charset (struct device *d, Lisp_Object charset, - const Bufbyte *nonreloc, Lisp_Object reloc, + const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length) { - const Bufbyte *the_nonreloc = nonreloc; + const Intbyte *the_nonreloc = nonreloc; if (!the_nonreloc) the_nonreloc = XSTRING_DATA (reloc); @@ -296,7 +296,7 @@ if (UNBOUNDP (charset)) return !memchr (the_nonreloc, '/', length); - the_nonreloc = (const Bufbyte *) memchr (the_nonreloc, '/', length); + the_nonreloc = (const Intbyte *) memchr (the_nonreloc, '/', length); if (!the_nonreloc) return 0; the_nonreloc++; @@ -313,7 +313,7 @@ tty_find_charset_font (Lisp_Object device, Lisp_Object font, Lisp_Object charset) { - Bufbyte *fontname = XSTRING_DATA (font); + Intbyte *fontname = XSTRING_DATA (font); if (strchr ((const char *) fontname, '/')) { diff --text -u 'xemacs-21.5.3/src/objects-x.c' 'xemacs-21.5.4/src/objects-x.c' Index: ././src/objects-x.c --- ././src/objects-x.c Mon Aug 13 13:46:34 2001 +++ ././src/objects-x.c Thu Sep 20 15:29:09 2001 @@ -816,7 +816,7 @@ { Lisp_Object name, value; Atom atom = props [i].name; - Bufbyte *name_str = 0; + Intbyte *name_str = 0; Bytecount name_len; Extbyte *namestrext = XGetAtomName (dpy, atom); @@ -837,17 +837,17 @@ atom == DEVICE_XATOM_SPACING (d) || atom == DEVICE_XATOM_CHARSET_REGISTRY (d) || atom == DEVICE_XATOM_CHARSET_ENCODING (d) || - !bufbyte_strcmp (name_str, "CHARSET_COLLECTIONS") || - !bufbyte_strcmp (name_str, "FONTNAME_REGISTRY") || - !bufbyte_strcmp (name_str, "CLASSIFICATION") || - !bufbyte_strcmp (name_str, "COPYRIGHT") || - !bufbyte_strcmp (name_str, "DEVICE_FONT_NAME") || - !bufbyte_strcmp (name_str, "FULL_NAME") || - !bufbyte_strcmp (name_str, "MONOSPACED") || - !bufbyte_strcmp (name_str, "QUALITY") || - !bufbyte_strcmp (name_str, "RELATIVE_SET") || - !bufbyte_strcmp (name_str, "RELATIVE_WEIGHT") || - !bufbyte_strcmp (name_str, "STYLE"))) + !intbyte_strcmp (name_str, "CHARSET_COLLECTIONS") || + !intbyte_strcmp (name_str, "FONTNAME_REGISTRY") || + !intbyte_strcmp (name_str, "CLASSIFICATION") || + !intbyte_strcmp (name_str, "COPYRIGHT") || + !intbyte_strcmp (name_str, "DEVICE_FONT_NAME") || + !intbyte_strcmp (name_str, "FULL_NAME") || + !intbyte_strcmp (name_str, "MONOSPACED") || + !intbyte_strcmp (name_str, "QUALITY") || + !intbyte_strcmp (name_str, "RELATIVE_SET") || + !intbyte_strcmp (name_str, "RELATIVE_WEIGHT") || + !intbyte_strcmp (name_str, "STYLE"))) { Extbyte *val_str = XGetAtomName (dpy, props [i].card32); @@ -886,7 +886,7 @@ static int x_font_spec_matches_charset (struct device *d, Lisp_Object charset, - const Bufbyte *nonreloc, Lisp_Object reloc, + const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length) { if (UNBOUNDP (charset)) @@ -898,7 +898,7 @@ */ if (EQ (charset, Vcharset_ascii)) { - const Bufbyte *the_nonreloc = nonreloc; + const Intbyte *the_nonreloc = nonreloc; int i; Bytecount the_length = length; @@ -910,7 +910,7 @@ { for (i = 0;; i++) { - const Bufbyte *new_nonreloc = (const Bufbyte *) + const Intbyte *new_nonreloc = (const Intbyte *) memchr (the_nonreloc, '-', the_length); if (!new_nonreloc) break; @@ -951,7 +951,7 @@ /* #### This code seems awfully bogus -- mrb */ for (i = 0; i < count; i ++) { - const Bufbyte *intname; + const Intbyte *intname; Bytecount intlen; TO_INTERNAL_FORMAT (C_STRING, names[i], diff --text -u 'xemacs-21.5.3/src/objects.c' 'xemacs-21.5.4/src/objects.c' Index: ././src/objects.c --- ././src/objects.c Fri May 25 20:26:59 2001 +++ ././src/objects.c Thu Sep 20 15:29:09 2001 @@ -674,7 +674,7 @@ int font_spec_matches_charset (struct device *d, Lisp_Object charset, - const Bufbyte *nonreloc, Lisp_Object reloc, + const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length) { return DEVMETH_OR_GIVEN (d, font_spec_matches_charset, diff --text -u 'xemacs-21.5.3/src/objects.h' 'xemacs-21.5.4/src/objects.h' Index: ././src/objects.h --- ././src/objects.h Mon Jun 18 16:10:25 2001 +++ ././src/objects.h Thu Sep 20 15:29:09 2001 @@ -150,7 +150,7 @@ #ifdef MULE int font_spec_matches_charset (struct device *d, Lisp_Object charset, - const Bufbyte *nonreloc, + const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length); #endif diff --text -u 'xemacs-21.5.3/src/opaque.c' 'xemacs-21.5.4/src/opaque.c' Index: ././src/opaque.c --- ././src/opaque.c Mon Aug 13 13:46:35 2001 +++ ././src/opaque.c Thu Sep 20 15:29:09 2001 @@ -52,14 +52,14 @@ write_c_string (buf, printcharfun); } -inline static Memory_Count -aligned_sizeof_opaque (Memory_Count opaque_size) +inline static Bytecount +aligned_sizeof_opaque (Bytecount opaque_size) { return ALIGN_SIZE (offsetof (Lisp_Opaque, data) + opaque_size, ALIGNOF (max_align_t)); } -static Memory_Count +static Bytecount sizeof_opaque (const void *header) { return aligned_sizeof_opaque (((const Lisp_Opaque *) header)->size); @@ -70,7 +70,7 @@ If DATA is OPAQUE_UNINIT, the object's data is uninitialized. Else the object's data is initialized by copying from DATA. */ Lisp_Object -make_opaque (const void *data, Memory_Count size) +make_opaque (const void *data, Bytecount size) { Lisp_Opaque *p = (Lisp_Opaque *) alloc_lcrecord (aligned_sizeof_opaque (size), &lrecord_opaque); @@ -95,7 +95,7 @@ static int equal_opaque (Lisp_Object obj1, Lisp_Object obj2, int depth) { - Memory_Count size; + Bytecount size; return ((size = XOPAQUE_SIZE (obj1)) == XOPAQUE_SIZE (obj2) && !memcmp (XOPAQUE_DATA (obj1), XOPAQUE_DATA (obj2), size)); } diff --text -u 'xemacs-21.5.3/src/opaque.h' 'xemacs-21.5.4/src/opaque.h' Index: ././src/opaque.h --- ././src/opaque.h Mon Aug 13 13:46:35 2001 +++ ././src/opaque.h Thu Sep 20 15:29:09 2001 @@ -29,7 +29,7 @@ typedef struct Lisp_Opaque { struct lcrecord_header header; - Memory_Count size; + Bytecount size; max_align_t data[1]; } Lisp_Opaque; @@ -53,7 +53,7 @@ #define XOPAQUE_DATA(op) OPAQUE_DATA (XOPAQUE (op)) #define XOPAQUE_MARKFUN(op) OPAQUE_MARKFUN (XOPAQUE (op)) -Lisp_Object make_opaque (const void *data, Memory_Count size); +Lisp_Object make_opaque (const void *data, Bytecount size); typedef struct Lisp_Opaque_Ptr { diff --text -u 'xemacs-21.5.3/src/print.c' 'xemacs-21.5.4/src/print.c' Index: ././src/print.c --- ././src/print.c Fri Jun 1 17:23:10 2001 +++ ././src/print.c Thu Sep 20 15:29:09 2001 @@ -111,7 +111,7 @@ static void std_handle_out_external (FILE *stream, Lisp_Object lstream, - const Extbyte *extptr, Extcount extlen, + const Extbyte *extptr, Bytecount extlen, /* is this really stdout/stderr? (controls termscript writing) */ int output_is_std_handle, @@ -176,9 +176,9 @@ static int std_handle_out_va (FILE *stream, const char *fmt, va_list args) { - Bufbyte kludge[8192]; + Intbyte kludge[8192]; Extbyte *extptr; - Extcount extlen; + Bytecount extlen; int retval; retval = vsprintf ((char *) kludge, fmt, args); @@ -189,7 +189,7 @@ else { extptr = (Extbyte *) kludge; - extlen = (Extcount) strlen ((char *) kludge); + extlen = (Bytecount) strlen ((char *) kludge); } std_handle_out_external (stream, Qnil, extptr, extlen, 1, 1); @@ -248,18 +248,18 @@ void write_string_to_stdio_stream (FILE *stream, struct console *con, - const Bufbyte *str, + const Intbyte *str, Bytecount offset, Bytecount len, Lisp_Object coding_system, int must_flush) { - Extcount extlen; + Bytecount extlen; const Extbyte *extptr; /* #### yuck! sometimes this function is called with string data, and the following call may gc. */ { - Bufbyte *puta = (Bufbyte *) alloca (len); + Intbyte *puta = (Intbyte *) alloca (len); memcpy (puta, str + offset, len); TO_EXTERNAL_FORMAT (DATA, (puta, len), ALLOCA, (extptr, extlen), @@ -283,7 +283,7 @@ buffer_insert_string_1() in insdel.c. */ static void -output_string (Lisp_Object function, const Bufbyte *nonreloc, +output_string (Lisp_Object function, const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount len) { /* This function can GC */ @@ -293,7 +293,7 @@ other functions that take both a nonreloc and a reloc, or things may get confused and an assertion failure in fixup_internal_substring() may get triggered. */ - const Bufbyte *newnonreloc = nonreloc; + const Intbyte *newnonreloc = nonreloc; struct gcpro gcpro1, gcpro2; /* Emacs won't print while GCing, but an external debugger might */ @@ -319,7 +319,7 @@ we inhibit GC. */ if (len < 65536) { - Bufbyte *copied = alloca_array (Bufbyte, len); + Intbyte *copied = alloca_array (Intbyte, len); memcpy (copied, newnonreloc + offset, len); Lstream_write (XLSTREAM (function), copied, len); } @@ -347,7 +347,7 @@ else if (MARKERP (function)) { /* marker_position() will err if marker doesn't point anywhere. */ - Bufpos spoint = marker_position (function); + Charbpos spoint = marker_position (function); buffer_insert_string_1 (XMARKER (function)->buffer, spoint, nonreloc, reloc, offset, len, @@ -478,7 +478,7 @@ /* Used for printing a single-byte character (*not* any Emchar). */ #define write_char_internal(string_of_length_1, stream) \ - output_string (stream, (const Bufbyte *) (string_of_length_1), \ + output_string (stream, (const Intbyte *) (string_of_length_1), \ Qnil, 0, 1) /* NOTE: Do not call this with the data of a Lisp_String, as @@ -491,10 +491,10 @@ canonicalize_printcharfun() (i.e. Qnil means stdout, not Vstandard_output, etc.) */ void -write_string_1 (const Bufbyte *str, Bytecount size, Lisp_Object stream) +write_string_1 (const Intbyte *str, Bytecount size, Lisp_Object stream) { /* This function can GC */ -#ifdef ERROR_CHECK_BUFPOS +#ifdef ERROR_CHECK_CHARBPOS assert (size >= 0); #endif output_string (stream, str, Qnil, 0, size); @@ -504,7 +504,7 @@ write_c_string (const char *str, Lisp_Object stream) { /* This function can GC */ - write_string_1 ((const Bufbyte *) str, strlen (str), stream); + write_string_1 ((const Intbyte *) str, strlen (str), stream); } @@ -515,7 +515,7 @@ (character, stream)) { /* This function can GC */ - Bufbyte str[MAX_EMCHAR_LEN]; + Intbyte str[MAX_EMCHAR_LEN]; Bytecount len; CHECK_CHAR_COERCE_INT (character); @@ -869,7 +869,7 @@ void float_to_string (char *buf, double data) { - Bufbyte *cp, c; + Intbyte *cp, c; int width; if (NILP (Vfloat_output_format) @@ -914,7 +914,7 @@ representation of that form not be corrupted by the printer. */ { - Bufbyte *s = (Bufbyte *) buf; /* don't use signed chars here! + Intbyte *s = (Intbyte *) buf; /* don't use signed chars here! isdigit() can't hack them! */ if (*s == '-') s++; for (; *s; s++) @@ -1192,7 +1192,7 @@ write_char_internal ("\"", printcharfun); for (i = 0; i < bcmax; i++) { - Bufbyte ch = string_byte (s, i); + Intbyte ch = string_byte (s, i); if (ch == '\"' || ch == '\\' || (ch == '\n' && print_escape_newlines)) { @@ -1366,14 +1366,14 @@ else if (ch < 160) { *p++ = '\\', *p++ = '^'; - p += set_charptr_emchar ((Bufbyte *) p, ch + 64); + p += set_charptr_emchar ((Intbyte *) p, ch + 64); } else { - p += set_charptr_emchar ((Bufbyte *) p, ch); + p += set_charptr_emchar ((Intbyte *) p, ch); } - output_string (printcharfun, (Bufbyte *) buf, Qnil, 0, p - buf); + output_string (printcharfun, (Intbyte *) buf, Qnil, 0, p - buf); break; } @@ -1508,7 +1508,7 @@ /* Does it look like an integer or a float? */ { - Bufbyte *data = string_data (name); + Intbyte *data = string_data (name); Bytecount confusing = 0; if (size == 0) @@ -1591,7 +1591,7 @@ */ (character)) { - Bufbyte str[MAX_EMCHAR_LEN]; + Intbyte str[MAX_EMCHAR_LEN]; Bytecount len; int extlen; const Extbyte *extptr; @@ -1654,7 +1654,7 @@ Qterminal, 1); else { - Bufbyte str[MAX_EMCHAR_LEN]; + Intbyte str[MAX_EMCHAR_LEN]; Bytecount len; CHECK_CHAR_COERCE_INT (char_or_string); diff --text -u 'xemacs-21.5.3/src/process-nt.c' 'xemacs-21.5.4/src/process-nt.c' Index: ././src/process-nt.c --- ././src/process-nt.c Mon Aug 13 13:46:35 2001 +++ ././src/process-nt.c Thu Sep 20 15:29:09 2001 @@ -117,7 +117,7 @@ */ static int -alloc_process_memory (HANDLE h_process, Memory_Count size, +alloc_process_memory (HANDLE h_process, Bytecount size, process_memory* pmc) { LPTHREAD_START_ROUTINE adr_ExitThread = @@ -189,12 +189,12 @@ static DWORD run_in_other_process (HANDLE h_process, LPTHREAD_START_ROUTINE routine, - LPVOID data, Memory_Count data_size) + LPVOID data, Bytecount data_size) { process_memory pm; - const Memory_Count code_size = FRAGMENT_CODE_SIZE; + const Bytecount code_size = FRAGMENT_CODE_SIZE; /* Need at most 3 extra bytes of memory, for data alignment */ - Memory_Count total_size = code_size + data_size + 3; + Bytecount total_size = code_size + data_size + 3; LPVOID remote_data; HANDLE h_thread; DWORD dw_unused; @@ -1053,12 +1053,12 @@ /* use a reasonable-sized buffer (somewhere around the size of the stream buffer) so as to avoid inundating the stream with blocked data. */ - Bufbyte chunkbuf[512]; + Intbyte chunkbuf[512]; Bytecount chunklen; while (1) { - Lstream_Data_Count writeret; + Bytecount writeret; chunklen = Lstream_read (lstream, chunkbuf, 512); if (chunklen <= 0) diff --text -u 'xemacs-21.5.3/src/process-unix.c' 'xemacs-21.5.4/src/process-unix.c' Index: ././src/process-unix.c --- ././src/process-unix.c Mon Aug 13 13:46:35 2001 +++ ././src/process-unix.c Sat Jan 5 16:33:23 2002 @@ -1275,12 +1275,12 @@ /* use a reasonable-sized buffer (somewhere around the size of the stream buffer) so as to avoid inundating the stream with blocked data. */ - Bufbyte chunkbuf[512]; + Intbyte chunkbuf[512]; Bytecount chunklen; while (1) { - Lstream_Data_Count writeret; + Bytecount writeret; chunklen = Lstream_read (lstream, chunkbuf, 512); if (chunklen <= 0) @@ -1357,10 +1357,10 @@ character in init_process_io_handles but here it simply screws things up. */ #if 0 - Bufbyte eof_char = get_eof_char (XPROCESS (proc)); + Intbyte eof_char = get_eof_char (XPROCESS (proc)); send_process (proc, Qnil, &eof_char, 0, 1); #else - send_process (proc, Qnil, (const Bufbyte *) "\004", 0, 1); + send_process (proc, Qnil, (const Intbyte *) "\004", 0, 1); #endif return 1; } @@ -1497,7 +1497,7 @@ char sigchar = process_signal_char (d->subtty, signo); if (sigchar) { - send_process (proc, Qnil, (Bufbyte *) &sigchar, 0, 1); + send_process (proc, Qnil, (Intbyte *) &sigchar, 0, 1); return; } } @@ -1584,14 +1584,18 @@ xzero (hints); hints.ai_flags = AI_CANONNAME; +#ifdef IPV6_CANONICALIZE hints.ai_family = AF_UNSPEC; +#else + hints.ai_family = PF_INET; +#endif hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = 0; LISP_STRING_TO_EXTERNAL (host, ext_host, Qnative); retval = getaddrinfo (ext_host, NULL, &hints, &res); if (retval != 0) { - CBufbyte *gai_error; + CIntbyte *gai_error; EXTERNAL_TO_C_STRING (gai_strerror (retval), gai_error, Qnative); maybe_signal_error (Qio_error, gai_error, host, @@ -1685,7 +1689,7 @@ retval = getaddrinfo (ext_host, portstring, &hints, &res); if (retval != 0) { - CBufbyte *gai_error; + CIntbyte *gai_error; EXTERNAL_TO_C_STRING (gai_strerror (retval), gai_error, Qnative); signal_error (Qio_error, gai_error, list2 (host, service)); @@ -1938,7 +1942,7 @@ memset (&sa, 0, sizeof(sa)); sa.sin_family = AF_INET; sa.sin_port = theport; - sa.sin_addr.s_addr = htonl (inet_addr ((char *) XSTRING_DATA (dest))); + sa.sin_addr.s_addr = inet_addr ((char *) XSTRING_DATA (dest)); /* Socket configuration for reading ------------------------ */ @@ -1961,7 +1965,7 @@ } /* join multicast group */ - imr.imr_multiaddr.s_addr = htonl (inet_addr ((char *) XSTRING_DATA (dest))); + imr.imr_multiaddr.s_addr = inet_addr ((char *) XSTRING_DATA (dest)); imr.imr_interface.s_addr = htonl (INADDR_ANY); if (setsockopt (rs, IPPROTO_IP, IP_ADD_MEMBERSHIP, &imr, sizeof (struct ip_mreq)) < 0) diff --text -u 'xemacs-21.5.3/src/process.c' 'xemacs-21.5.4/src/process.c' Index: ././src/process.c --- ././src/process.c Thu May 24 16:51:27 2001 +++ ././src/process.c Thu Sep 20 15:29:10 2001 @@ -850,7 +850,7 @@ { /* This function can GC */ Bytecount nbytes, nchars; - Bufbyte chars[1024]; + Intbyte chars[1024]; Lisp_Object outstream; Lisp_Process *p = XPROCESS (process); @@ -901,9 +901,9 @@ if (!NILP (p->buffer) && BUFFER_LIVE_P (XBUFFER (p->buffer))) { Lisp_Object old_read_only = Qnil; - Bufpos old_point; - Bufpos old_begv; - Bufpos old_zv; + Charbpos old_point; + Charbpos old_begv; + Charbpos old_zv; struct gcpro gcpro1, gcpro2; struct buffer *buf = XBUFFER (p->buffer); @@ -920,7 +920,7 @@ thus preserving logical ordering of input and output. */ if (XMARKER (p->mark)->buffer) BUF_SET_PT (buf, - bufpos_clip_to_bounds (old_begv, marker_position (p->mark), + charbpos_clip_to_bounds (old_begv, marker_position (p->mark), old_zv)); else BUF_SET_PT (buf, old_zv); @@ -961,10 +961,10 @@ if (old_begv != BUF_BEGV (buf) || old_zv != BUF_ZV (buf)) { Fwiden(p->buffer); - old_begv = bufpos_clip_to_bounds (BUF_BEG (buf), + old_begv = charbpos_clip_to_bounds (BUF_BEG (buf), old_begv, BUF_Z (buf)); - old_zv = bufpos_clip_to_bounds (BUF_BEG (buf), + old_zv = charbpos_clip_to_bounds (BUF_BEG (buf), old_zv, BUF_Z (buf)); Fnarrow_to_region (make_int (old_begv), make_int (old_zv), @@ -972,7 +972,7 @@ } buf->read_only = old_read_only; - old_point = bufpos_clip_to_bounds (BUF_BEGV (buf), + old_point = charbpos_clip_to_bounds (BUF_BEGV (buf), old_point, BUF_ZV (buf)); BUF_SET_PT (buf, old_point); @@ -989,12 +989,12 @@ object RELOCATABLE (either a string or a buffer). START and LEN specify the offset and length of the data to send. - Note that START and LEN are in Bufpos's if RELOCATABLE is a buffer, + Note that START and LEN are in Charbpos's if RELOCATABLE is a buffer, and in Bytecounts otherwise. */ void send_process (Lisp_Object process, - Lisp_Object relocatable, const Bufbyte *nonrelocatable, + Lisp_Object relocatable, const Intbyte *nonrelocatable, int start, int len) { /* This function can GC */ @@ -1116,7 +1116,7 @@ (process, start, end, buffer)) { /* This function can GC */ - Bufpos bstart, bend; + Charbpos bstart, bend; struct buffer *buf = decode_buffer (buffer, 0); XSETBUFFER (buffer, buf); @@ -1451,7 +1451,7 @@ { Lisp_Object old_read_only = Qnil; Lisp_Object old = Fcurrent_buffer (); - Bufpos opoint; + Charbpos opoint; struct gcpro ngcpro1, ngcpro2; /* Avoid error if buffer is deleted @@ -1484,7 +1484,7 @@ Fset_marker (p->mark, make_int (BUF_PT (current_buffer)), p->buffer); - opoint = bufpos_clip_to_bounds(BUF_BEGV (XBUFFER (p->buffer)), + opoint = charbpos_clip_to_bounds(BUF_BEGV (XBUFFER (p->buffer)), opoint, BUF_ZV (XBUFFER (p->buffer))); BUF_SET_PT (current_buffer, opoint); @@ -1560,7 +1560,7 @@ return XINT (signal_); else { - Bufbyte *name; + Intbyte *name; CHECK_SYMBOL (signal_); name = string_data (XSYMBOL (signal_)->name); diff --text -u 'xemacs-21.5.3/src/procimpl.h' 'xemacs-21.5.4/src/procimpl.h' Index: ././src/procimpl.h --- ././src/procimpl.h Fri Apr 13 03:24:12 2001 +++ ././src/procimpl.h Thu Sep 20 15:29:10 2001 @@ -178,7 +178,7 @@ void* out, int flags); void send_process (Lisp_Object proc, Lisp_Object relocatable, - const Bufbyte *nonrelocatable, + const Intbyte *nonrelocatable, int start, int len); #endif /* INCLUDED_procimpl_h_ */ diff --text -u 'xemacs-21.5.3/src/redisplay-gtk.c' 'xemacs-21.5.4/src/redisplay-gtk.c' Index: ././src/redisplay-gtk.c --- ././src/redisplay-gtk.c Fri Apr 13 03:24:13 2001 +++ ././src/redisplay-gtk.c Mon Dec 24 05:28:21 2001 @@ -1,4 +1,4 @@ -/* X output and frame manipulation routines. +/* GTK output and frame manipulation routines. Copyright (C) 1994, 1995 Board of Trustees, University of Illinois. Copyright (C) 1994 Lucid, Inc. Copyright (C) 1995 Sun Microsystems, Inc. @@ -55,18 +55,22 @@ #define EOL_CURSOR_WIDTH 5 -static void gtk_output_pixmap (struct window *w, struct display_line *dl, - Lisp_Object image_instance, int xpos, - int xoffset, - int start_pixpos, int width, face_index findex, - int cursor_start, int cursor_width, - int cursor_height); +static void gtk_output_pixmap (struct window *w, + Lisp_Object image_instance, + struct display_box *db, + struct display_glyph_area *dga, + face_index findex, + int cursor_start, + int cursor_width, + int cursor_height, + int bgpixmap); static void gtk_output_vertical_divider (struct window *w, int clear); static void gtk_output_blank (struct window *w, struct display_line *dl, struct rune *rb, int start_pixpos, int cursor_start, int cursor_width); -static void gtk_output_hline (struct window *w, struct display_line *dl, - struct rune *rb); +static void gtk_output_horizontal_line (struct window *w, + struct display_line *dl, + struct rune *rb); static void gtk_redraw_exposed_window (struct window *w, int x, int y, int width, int height); static void gtk_redraw_exposed_windows (Lisp_Object window, int x, int y, @@ -399,7 +403,7 @@ We borrow the shadow_thickness_changed flag for now. */ w->shadow_thickness_changed = 1; - gtk_output_hline (w, dl, rb); + gtk_output_horizontal_line (w, dl, rb); } elt++; @@ -434,7 +438,7 @@ add_glyph_rune(). */ Lisp_Object string = XIMAGE_INSTANCE_TEXT_STRING (instance); - convert_bufbyte_string_into_emchar_dynarr + convert_intbyte_string_into_emchar_dynarr (XSTRING_DATA (string), XSTRING_LENGTH (string), buf); gtk_output_string (w, dl, buf, xpos, @@ -449,10 +453,9 @@ case IMAGE_MONO_PIXMAP: case IMAGE_COLOR_PIXMAP: - gtk_output_pixmap (w, dl, instance, xpos, - rb->object.dglyph.xoffset, start_pixpos, - rb->width, findex, cursor_start, - cursor_width, cursor_height); + redisplay_output_pixmap (w, instance, &dbox, &dga, + findex,cursor_start, + cursor_width, cursor_height, 0); break; case IMAGE_POINTER: @@ -643,14 +646,14 @@ Starting Y position of cursor is the top of the text line. The cursor is drawn sometimes whether or not CURSOR is set. ??? ****************************************************************************/ -void -gdk_draw_text_image (GdkDrawable *drawable, - GdkFont *font, - GdkGC *gc, - gint x, - gint y, - const gchar *text, - gint text_length); +static +void gdk_draw_text_image (GdkDrawable *drawable, + GdkFont *font, + GdkGC *gc, + gint x, + gint y, + const gchar *text, + gint text_length); void gtk_output_string (struct window *w, struct display_line *dl, @@ -1045,10 +1048,10 @@ gint width, gint height); -void +static void gtk_output_gdk_pixmap (struct frame *f, struct Lisp_Image_Instance *p, int x, - int y, int clip_x, int clip_y, int clip_width, - int clip_height, int width, int height, int pixmap_offset, + int y, int xoffset, int yoffset, + int width, int height, GdkColor *fg, GdkColor *bg, GdkGC *override_gc) { struct device *d = XDEVICE (f->device); @@ -1057,7 +1060,6 @@ GdkGC *gc; GdkGCValues gcv; unsigned long pixmap_mask; - int need_clipping = (clip_x || clip_y); if (!override_gc) { @@ -1071,8 +1073,8 @@ { gcv.function = GDK_COPY; gcv.clip_mask = IMAGE_INSTANCE_GTK_MASK (p); - gcv.clip_x_origin = x; - gcv.clip_y_origin = y - pixmap_offset; + gcv.clip_x_origin = x - xoffset; + gcv.clip_y_origin = y - yoffset; pixmap_mask |= (GDK_GC_FUNCTION | GDK_GC_CLIP_MASK | GDK_GC_CLIP_X_ORIGIN | GDK_GC_CLIP_Y_ORIGIN); /* Can't set a clip rectangle below because we already have a mask. @@ -1080,8 +1082,9 @@ everything outside the clip region. Is it worth it? Is it possible to get an equivalent effect by changing the args to XCopyArea below rather than messing with a clip box? - - dkindred@cs.cmu.edu */ - need_clipping = 0; + - dkindred@cs.cmu.edu + Yes. We don't clip at all now - andy@xemacs.org + */ } gc = gc_cache_lookup (DEVICE_GTK_GC_CACHE (d), &gcv, pixmap_mask); @@ -1092,47 +1095,32 @@ /* override_gc might have a mask already--we don't want to nuke it. Maybe we can insist that override_gc have no mask, or use one of the suggestions above. */ - need_clipping = 0; - } - - if (need_clipping) - { - GdkRectangle clip_box; - - clip_box.x = clip_x; - clip_box.y = clip_y; - clip_box.width = clip_width; - clip_box.height = clip_height; - - gdk_gc_set_clip_rectangle (gc, &clip_box); - gdk_gc_set_clip_origin (gc, x, y); } if (IMAGE_INSTANCE_PIXMAP_DEPTH (p) > 0) { gdk_draw_pixmap (GDK_DRAWABLE (x_win), gc, IMAGE_INSTANCE_GTK_PIXMAP (p), - 0, pixmap_offset, x, y, width, height); + xoffset, yoffset, x, y, width, height); } else { our_draw_bitmap (GDK_DRAWABLE (x_win), gc, IMAGE_INSTANCE_GTK_PIXMAP (p), - 0, pixmap_offset, x, y, width, height); + xoffset, yoffset, x, y, width, height); } - - if (need_clipping) - { - gdk_gc_set_clip_rectangle (gc, NULL); - gdk_gc_set_clip_origin (gc, 0, 0); - } } static void -gtk_output_pixmap (struct window *w, struct display_line *dl, - Lisp_Object image_instance, int xpos, int xoffset, - int start_pixpos, int width, face_index findex, - int cursor_start, int cursor_width, int cursor_height) +gtk_output_pixmap (struct window *w, + Lisp_Object image_instance, + struct display_box *db, + struct display_glyph_area *dga, + face_index findex, + int cursor_start, + int cursor_width, + int cursor_height, + int bg_pixmap) { struct frame *f = XFRAME (w->frame); struct device *d = XDEVICE (f->device); @@ -1140,89 +1128,9 @@ Lisp_Object window; GdkWindow *x_win = GET_GTK_WIDGET_WINDOW (FRAME_GTK_TEXT_WIDGET (f)); - int lheight = dl->ascent + dl->descent - dl->clip; - int pheight = ((int) IMAGE_INSTANCE_PIXMAP_HEIGHT (p) > lheight ? lheight : - IMAGE_INSTANCE_PIXMAP_HEIGHT (p)); - int pwidth = min (width + xoffset, (int) IMAGE_INSTANCE_PIXMAP_WIDTH (p)); - int clip_x, clip_y, clip_width, clip_height; - - /* The pixmap_offset is used to center the pixmap on lines which are - shorter than it is. This results in odd effects when scrolling - pixmaps off of the bottom. Let's try not using it. */ -#if 0 - int pixmap_offset = (int) (IMAGE_INSTANCE_PIXMAP_HEIGHT (p) - lheight) / 2; -#else - int pixmap_offset = 0; -#endif XSETWINDOW (window, w); - if ((start_pixpos >= 0 && start_pixpos > xpos) || xoffset) - { - if (start_pixpos > xpos && start_pixpos > xpos + width) - return; - - clip_x = xoffset; - clip_width = width; - if (start_pixpos > xpos) - { - clip_x += (start_pixpos - xpos); - clip_width -= (start_pixpos - xpos); - } - } - else - { - clip_x = 0; - clip_width = 0; - } - - /* Place markers for possible future functionality (clipping the top - half instead of the bottom half; think pixel scrolling). */ - clip_y = 0; - clip_height = pheight; - - /* 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 - take care of is any area above or below the pixmap. */ - /* #### We take a shortcut for now. We know that since we have - pixmap_offset hardwired to 0 that the pixmap is against the top - edge so all we have to worry about is below it. */ - /* #### Unless the pixmap has a mask in which case we have to clear - the whole damn thing since we can't yet clear just the area not - included in the mask. */ - if (((int) (dl->ypos - dl->ascent + pheight) < - (int) (dl->ypos + dl->descent - dl->clip)) - || IMAGE_INSTANCE_GTK_MASK (p)) - { - int clear_x, clear_y, clear_width, clear_height; - - if (IMAGE_INSTANCE_GTK_MASK (p)) - { - clear_y = dl->ypos - dl->ascent; - clear_height = lheight; - } - else - { - clear_y = dl->ypos - dl->ascent + pheight; - clear_height = lheight - pheight; - } - - if (start_pixpos >= 0 && start_pixpos > xpos) - { - clear_x = start_pixpos; - clear_width = xpos + width - start_pixpos; - } - else - { - clear_x = xpos; - clear_width = width; - } - - redisplay_clear_region (window, findex, clear_x, clear_y, - clear_width, clear_height); - } - /* Output the pixmap. */ { Lisp_Object tmp_pixel; @@ -1233,20 +1141,19 @@ tmp_pixel = WINDOW_FACE_CACHEL_BACKGROUND (w, findex); tmp_bcolor = COLOR_INSTANCE_GTK_COLOR (XCOLOR_INSTANCE (tmp_pixel)); - gtk_output_gdk_pixmap (f, p, xpos - xoffset, dl->ypos - dl->ascent, clip_x, - clip_y, clip_width, clip_height, - pwidth, pheight, pixmap_offset, - tmp_fcolor, tmp_bcolor, 0); + gtk_output_gdk_pixmap (f, p, db->xpos, db->ypos, + dga->xoffset, dga->yoffset, + dga->width, dga->height, + tmp_fcolor, tmp_bcolor, NULL); } /* Draw a cursor over top of the pixmap. */ - if (cursor_width && cursor_height && (cursor_start >= xpos) + if (cursor_width && cursor_height && (cursor_start >= db->xpos) && !NILP (w->text_cursor_visible_p) - && (cursor_start < xpos + pwidth)) + && (cursor_start < (db->xpos + dga->width))) { GdkGC *gc; int focus = EQ (w->frame, DEVICE_FRAME_WITH_FOCUS_REAL (d)); - int y = dl->ypos - dl->ascent; struct face_cachel *cursor_cachel = WINDOW_FACE_CACHEL (w, get_builtin_face_cache_index @@ -1254,11 +1161,11 @@ gc = gtk_get_gc (d, Qnil, cursor_cachel->background, Qnil, Qnil, Qnil); - if (cursor_width > xpos + pwidth - cursor_start) - cursor_width = xpos + pwidth - cursor_start; + if (cursor_width > db->xpos + dga->width - cursor_start) + cursor_width = db->xpos + dga->width - cursor_start; gdk_draw_rectangle (GDK_DRAWABLE (x_win), gc, focus ? TRUE : FALSE, - cursor_start, y, cursor_width, + cursor_start, db->ypos, cursor_width, cursor_height); } } @@ -1426,12 +1333,14 @@ } /***************************************************************************** - gtk_output_hline + gtk_output_horizontal_line Output a horizontal line in the foreground of its face. ****************************************************************************/ static void -gtk_output_hline (struct window *w, struct display_line *dl, struct rune *rb) +gtk_output_horizontal_line (struct window *w, + struct display_line *dl, + struct rune *rb) { struct frame *f = XFRAME (w->frame); struct device *d = XDEVICE (f->device); @@ -1919,8 +1828,11 @@ static void gtk_ring_bell (struct device *d, int volume, int pitch, int duration) { - /* Gdk does not allow us to control the duration / pitch / volume */ - gdk_beep (); + /* Gdk does not allow us to control the duration / pitch / volume */ + if (volume > 0) + { + gdk_beep (); + } } @@ -1944,7 +1856,7 @@ CONSOLE_HAS_METHOD (gtk, ring_bell); CONSOLE_HAS_METHOD (gtk, bevel_area); CONSOLE_HAS_METHOD (gtk, output_string); - /* CONSOLE_HAS_METHOD (gtk, output_pixmap); */ + CONSOLE_HAS_METHOD (gtk, output_pixmap); } /* This makes me feel incredibly dirty... but there is no other way to @@ -1954,14 +1866,14 @@ #include -void -gdk_draw_text_image (GdkDrawable *drawable, - GdkFont *font, - GdkGC *gc, - gint x, - gint y, - const gchar *text, - gint text_length) +static +void gdk_draw_text_image (GdkDrawable *drawable, + GdkFont *font, + GdkGC *gc, + gint x, + gint y, + const gchar *text, + gint text_length) { #if !USE_X_SPECIFIC_DRAW_ROUTINES int width = gdk_text_measure (font, text, text_length); diff --text -u 'xemacs-21.5.3/src/redisplay-output.c' 'xemacs-21.5.4/src/redisplay-output.c' Index: ././src/redisplay-output.c --- ././src/redisplay-output.c Fri Jul 27 06:10:46 2001 +++ ././src/redisplay-output.c Thu Sep 20 15:29:11 2001 @@ -188,7 +188,7 @@ static int compare_runes (struct window *w, struct rune *crb, struct rune *drb) { - /* Do not compare the values of bufpos and endpos. They do not + /* Do not compare the values of charbpos and endpos. They do not affect the display characteristics. */ /* Note: (hanoi 6) spends 95% of its time in redisplay, and about @@ -846,11 +846,11 @@ boolean indicating success or failure. ****************************************************************************/ -#define ADJ_BUFPOS (rb->bufpos + dl->offset) +#define ADJ_CHARBPOS (rb->charbpos + dl->offset) #define ADJ_ENDPOS (rb->endpos + dl->offset) int -redisplay_move_cursor (struct window *w, Bufpos new_point, int no_output_end) +redisplay_move_cursor (struct window *w, Charbpos new_point, int no_output_end) { struct frame *f = XFRAME (w->frame); struct device *d = XDEVICE (f->device); @@ -886,13 +886,13 @@ if (rb->cursor_type == CURSOR_OFF) return 0; - else if (ADJ_BUFPOS == new_point - || (ADJ_ENDPOS && (new_point >= ADJ_BUFPOS) + else if (ADJ_CHARBPOS == new_point + || (ADJ_ENDPOS && (new_point >= ADJ_CHARBPOS) && (new_point <= ADJ_ENDPOS))) { w->last_point_x[CURRENT_DISP] = x; w->last_point_y[CURRENT_DISP] = y; - Fset_marker (w->last_point[CURRENT_DISP], make_int (ADJ_BUFPOS), + Fset_marker (w->last_point[CURRENT_DISP], make_int (ADJ_CHARBPOS), w->buffer); dl->cursor_elt = x; return 1; @@ -951,13 +951,13 @@ int first = 0; int cur_dl, up; - if (ADJ_BUFPOS < new_point) + if (ADJ_CHARBPOS < new_point) { up = 1; cur_rb = x + 1; cur_dl = y; } - else /* (rb->bufpos + dl->offset) > new_point */ + else /* (rb->charbpos + dl->offset) > new_point */ { up = 0; @@ -989,9 +989,9 @@ if (rb->cursor_type != IGNORE_CURSOR && rb->cursor_type != NO_CURSOR && - (ADJ_BUFPOS == new_point - || (ADJ_ENDPOS && (new_point >= ADJ_BUFPOS) - && (new_point <= ADJ_BUFPOS)))) + (ADJ_CHARBPOS == new_point + || (ADJ_ENDPOS && (new_point >= ADJ_CHARBPOS) + && (new_point <= ADJ_CHARBPOS)))) { rb->cursor_type = CURSOR_ON; dl->cursor_elt = cur_rb; @@ -1003,7 +1003,7 @@ w->last_point_x[CURRENT_DISP] = cur_rb; w->last_point_y[CURRENT_DISP] = cur_dl; Fset_marker (w->last_point[CURRENT_DISP], - make_int (ADJ_BUFPOS), w->buffer); + make_int (ADJ_CHARBPOS), w->buffer); if (!no_output_end) { @@ -1028,7 +1028,7 @@ } return 0; } -#undef ADJ_BUFPOS +#undef ADJ_CHARBPOS #undef ADJ_ENDPOS /***************************************************************************** @@ -1453,12 +1453,12 @@ unsigned char charsets[NUM_LEADING_BYTES]; struct face_cachel *cachel = WINDOW_FACE_CACHEL (w, findex); - find_charsets_in_bufbyte_string (charsets, + find_charsets_in_intbyte_string (charsets, XSTRING_DATA (string), XSTRING_LENGTH (string)); ensure_face_cachel_complete (cachel, window, charsets); - convert_bufbyte_string_into_emchar_dynarr + convert_intbyte_string_into_emchar_dynarr (XSTRING_DATA (string), XSTRING_LENGTH (string), buf); redisplay_normalize_display_box (&cdb, &cdga); @@ -2080,10 +2080,10 @@ while (first_line <= last_line) { - Charcount old_len = (Dynarr_atp (cdla, first_line)->end_bufpos - - Dynarr_atp (cdla, first_line)->bufpos); - Charcount new_len = (Dynarr_atp (ddla, first_line)->end_bufpos - - Dynarr_atp (ddla, first_line)->bufpos); + Charcount old_len = (Dynarr_atp (cdla, first_line)->end_charbpos - + Dynarr_atp (cdla, first_line)->charbpos); + Charcount new_len = (Dynarr_atp (ddla, first_line)->end_charbpos - + Dynarr_atp (ddla, first_line)->charbpos); assert (Dynarr_length (cdla) == Dynarr_length (ddla)); diff --text -u 'xemacs-21.5.3/src/redisplay-tty.c' 'xemacs-21.5.4/src/redisplay-tty.c' Index: ././src/redisplay-tty.c --- ././src/redisplay-tty.c Fri Apr 13 03:24:14 2001 +++ ././src/redisplay-tty.c Thu Sep 20 15:29:11 2001 @@ -81,9 +81,9 @@ Emchar_dynarr *buf, int xpos, face_index findex, int cursor); -static void tty_output_bufbyte_string (struct window *w, +static void tty_output_intbyte_string (struct window *w, struct display_line *dl, - Bufbyte *str, Bytecount len, + Intbyte *str, Bytecount len, int xpos, face_index findex, int cursor); static void tty_turn_on_face (struct window *w, face_index findex); @@ -517,8 +517,8 @@ } static void -tty_output_bufbyte_string (struct window *w, struct display_line *dl, - Bufbyte *str, Bytecount len, int xpos, +tty_output_intbyte_string (struct window *w, struct display_line *dl, + Intbyte *str, Bytecount len, int xpos, face_index findex, int cursor) { struct frame *f = XFRAME (w->frame); @@ -531,13 +531,13 @@ tty_turn_on_face (w, findex); send_string_to_tty_console (c, str, len); - TTY_INC_CURSOR_X (c, bufbyte_string_displayed_columns (str, len)); + TTY_INC_CURSOR_X (c, intbyte_string_displayed_columns (str, len)); /* Turn the face properties back off. */ tty_turn_off_face (w, findex); } -static Bufbyte_dynarr *tty_output_emchar_dynarr_dynarr; +static Intbyte_dynarr *tty_output_emchar_dynarr_dynarr; /***************************************************************************** tty_output_emchar_dynarr @@ -551,15 +551,15 @@ int cursor) { if (!tty_output_emchar_dynarr_dynarr) - tty_output_emchar_dynarr_dynarr = Dynarr_new (Bufbyte); + tty_output_emchar_dynarr_dynarr = Dynarr_new (Intbyte); else Dynarr_reset (tty_output_emchar_dynarr_dynarr); - convert_emchar_string_into_bufbyte_dynarr (Dynarr_atp (buf, 0), + convert_emchar_string_into_intbyte_dynarr (Dynarr_atp (buf, 0), Dynarr_length (buf), tty_output_emchar_dynarr_dynarr); - tty_output_bufbyte_string (w, dl, + tty_output_intbyte_string (w, dl, Dynarr_atp (tty_output_emchar_dynarr_dynarr, 0), Dynarr_length (tty_output_emchar_dynarr_dynarr), xpos, findex, cursor); @@ -567,17 +567,17 @@ #if 0 -static Bufbyte_dynarr *sidcs_dynarr; +static Intbyte_dynarr *sidcs_dynarr; static void substitute_in_dynamic_color_string (Lisp_Object spec, Lisp_Object string) { int i; - Bufbyte *specdata = XSTRING_DATA (spec); + Intbyte *specdata = XSTRING_DATA (spec); Bytecount speclen = XSTRING_LENGTH (spec); if (!sidcs_dynarr) - sidcs_dynarr = Dynarr_new (Bufbyte); + sidcs_dynarr = Dynarr_new (Intbyte); else Dynarr_reset (sidcs_dynarr); @@ -606,7 +606,7 @@ set_foreground_to (struct console *c, Lisp_Object sym) { Lisp_Object result; - Bufbyte *escseq = 0; + Intbyte *escseq = 0; Bytecount escseqlen = 0; result = assq_no_quit (sym, Vtty_color_alist); @@ -636,7 +636,7 @@ set_background_to (struct console *c, Lisp_Object sym) { Lisp_Object result; - Bufbyte *escseq = 0; + Intbyte *escseq = 0; Bytecount escseqlen = 0; result = assq_no_quit (sym, Vtty_color_alist); diff --text -u 'xemacs-21.5.3/src/redisplay-x.c' 'xemacs-21.5.4/src/redisplay-x.c' Index: ././src/redisplay-x.c --- ././src/redisplay-x.c Mon Aug 13 13:46:36 2001 +++ ././src/redisplay-x.c Tue Sep 18 14:04:40 2001 @@ -2076,8 +2076,8 @@ /* #### grab server? */ XGetKeyboardControl (display, &state); - ctl.bell_pitch = (pitch >= 0 ? pitch : state.bell_pitch); - ctl.bell_duration = (duration >= 0 ? duration : state.bell_duration); + ctl.bell_pitch = (pitch >= 0 ? pitch : (int) state.bell_pitch); + ctl.bell_duration = (duration >= 0 ? duration : (int) state.bell_duration); XChangeKeyboardControl (display, KBBellPitch|KBBellDuration, &ctl); XBell (display, (volume * 2) - 100); diff --text -u 'xemacs-21.5.3/src/redisplay.c' 'xemacs-21.5.4/src/redisplay.c' Index: ././src/redisplay.c --- ././src/redisplay.c Mon Aug 13 13:46:36 2001 +++ ././src/redisplay.c Thu Sep 20 15:29:11 2001 @@ -70,10 +70,10 @@ #endif /* HAVE_TTY */ /* Note: We have to be careful throughout this code to properly handle - and differentiate between Bufbytes and Emchars. + and differentiate between Intbytes and Emchars. - Since strings are generally composed of Bufbytes, I've taken the tack - that any contiguous set of Bufbytes is called a "string", while + Since strings are generally composed of Intbytes, I've taken the tack + that any contiguous set of Intbytes is called a "string", while any contiguous set of Emchars is called an "array". */ /* Return value to indicate a failure by an add_*_rune routine to add @@ -93,7 +93,7 @@ /* The following structures are completely private to redisplay.c so we put them here instead of in a header file, for modularity. */ -/* NOTE: Bytinds not Bufpos's in this structure. */ +/* NOTE: Bytebposs not Charbpos's in this structure. */ typedef struct position_redisplay_data_type { @@ -121,8 +121,8 @@ int font_is_bogus; /* If true, it means we couldn't instantiate the font for this charset, so we substitute ~'s from the ASCII charset. */ - Bytind bi_bufpos; - Bytind bi_endpos; + Bytebpos bi_charbpos; + Bytebpos bi_endpos; int pixpos; int max_pixpos; int blank_width; /* Width of the blank that is to be added. @@ -136,7 +136,7 @@ the non-printing char '\n', which is stuck in the output routines with its width being BLANK_WIDTH. */ - Bytind bi_cursor_bufpos;/* This stores the buffer position of the cursor. */ + Bytebpos bi_cursor_charbpos;/* This stores the buffer position of the cursor. */ unsigned int cursor_type :3; int cursor_x; /* rune block cursor is at */ int start_col; /* Number of character columns (each column has @@ -145,7 +145,7 @@ scrolling, where a certain number of columns (those off the left side of the screen) need to be skipped before anything is displayed. */ - Bytind bi_start_col_enabled; + Bytebpos 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 @@ -196,12 +196,12 @@ }; /* Data that should be propagated to the next line. Either a single - Emchar or a string of Bufbyte's. + Emchar or a string of Intbyte's. The actual data that is propagated ends up as a Dynarr of these blocks. - #### It's unclean that both Emchars and Bufbytes are here. + #### It's unclean that both Emchars and Intbytes are here. */ typedef struct prop_block prop_block; @@ -213,14 +213,14 @@ { struct { - Bufbyte *str; + Intbyte *str; Bytecount len; /* length of the string. */ } p_string; struct { Emchar ch; - Bytind bi_cursor_bufpos; /* NOTE: is in Bytinds */ + Bytebpos bi_cursor_charbpos; /* NOTE: is in Bytebposs */ unsigned int cursor_type :3; } p_char; @@ -249,8 +249,8 @@ struct glyph_block *gb, int pos_type, int allow_cursor, struct glyph_cachel *cachel); -static Bytind create_text_block (struct window *w, struct display_line *dl, - Bytind bi_start_pos, prop_block_dynarr **prop, +static Bytebpos create_text_block (struct window *w, struct display_line *dl, + Bytebpos bi_start_pos, prop_block_dynarr **prop, int type); static int create_overlay_glyph_block (struct window *w, struct display_line *dl); @@ -262,9 +262,9 @@ static void redisplay_windows (Lisp_Object window, int skip_selected); static void decode_mode_spec (struct window *w, Emchar spec, int type); 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 update_line_start_cache (struct window *w, Charbpos from, Charbpos to, + Charbpos point, int no_regen); +static int point_visible (struct window *w, Charbpos point, int type); /* This used to be 10 but 30 seems to give much better performance. */ #define INIT_MAX_PREEMPTS 30 @@ -304,7 +304,7 @@ /* This holds a string representing the text corresponding to a single modeline % spec. */ -static Bufbyte_dynarr *mode_spec_bufbyte_string; +static Intbyte_dynarr *mode_spec_intbyte_string; int in_display; /* 1 if in redisplay. */ @@ -494,7 +494,7 @@ int redisplay_text_width_string (struct window *w, int findex, - Bufbyte *nonreloc, Lisp_Object reloc, + Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount len) { if (!rtw_emchar_dynarr) @@ -504,7 +504,7 @@ fixup_internal_substring (nonreloc, reloc, offset, &len); if (STRINGP (reloc)) nonreloc = XSTRING_DATA (reloc); - convert_bufbyte_string_into_emchar_dynarr (nonreloc, len, rtw_emchar_dynarr); + convert_intbyte_string_into_emchar_dynarr (nonreloc, len, rtw_emchar_dynarr); return redisplay_text_width_emchar_string (w, findex, Dynarr_atp (rtw_emchar_dynarr, 0), Dynarr_length (rtw_emchar_dynarr)); @@ -512,7 +512,7 @@ int redisplay_frame_text_width_string (struct frame *f, Lisp_Object face, - Bufbyte *nonreloc, Lisp_Object reloc, + Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount len) { unsigned char charsets[NUM_LEADING_BYTES]; @@ -526,8 +526,8 @@ fixup_internal_substring (nonreloc, reloc, offset, &len); if (STRINGP (reloc)) nonreloc = XSTRING_DATA (reloc); - convert_bufbyte_string_into_emchar_dynarr (nonreloc, len, rtw_emchar_dynarr); - find_charsets_in_bufbyte_string (charsets, nonreloc, len); + convert_intbyte_string_into_emchar_dynarr (nonreloc, len, rtw_emchar_dynarr); + find_charsets_in_intbyte_string (charsets, nonreloc, len); reset_face_cachel (&cachel); cachel.face = face; XSETFRAME (frame, f); @@ -687,12 +687,12 @@ when the contents of the line reach the right boundary of the given window. */ -static Bufpos +static Charbpos generate_display_line (struct window *w, struct display_line *dl, int bounds, - Bufpos start_pos, prop_block_dynarr **prop, + Charbpos start_pos, prop_block_dynarr **prop, int type) { - Bufpos ret_bufpos; + Charbpos ret_charbpos; int overlay_width; struct buffer *b = XBUFFER (WINDOW_BUFFER (w)); @@ -720,17 +720,17 @@ /* Create a display block for the text region of the line. */ { /* #### urk urk urk!!! Chuck fix this shit! */ - Bytind hacked_up_bytind = - create_text_block (w, dl, bufpos_to_bytind (b, start_pos), + Bytebpos hacked_up_bytebpos = + create_text_block (w, dl, charbpos_to_bytebpos (b, start_pos), prop, type); - if (hacked_up_bytind > BI_BUF_ZV (b)) - ret_bufpos = BUF_ZV (b) + 1; + if (hacked_up_bytebpos > BI_BUF_ZV (b)) + ret_charbpos = BUF_ZV (b) + 1; else - ret_bufpos = bytind_to_bufpos (b, hacked_up_bytind); + ret_charbpos = bytebpos_to_charbpos (b, hacked_up_bytebpos); } - dl->bufpos = start_pos; - if (dl->end_bufpos < dl->bufpos) - dl->end_bufpos = dl->bufpos; + dl->charbpos = start_pos; + if (dl->end_charbpos < dl->charbpos) + dl->end_charbpos = dl->charbpos; if (MARKERP (Voverlay_arrow_position) && EQ (w->buffer, Fmarker_buffer (Voverlay_arrow_position)) @@ -756,9 +756,9 @@ /* In the future additional types of display blocks may be generated here. */ - w->last_redisplay_pos = ret_bufpos; + w->last_redisplay_pos = ret_charbpos; - return ret_bufpos; + return ret_charbpos; } /* Adds an hscroll glyph to a display block. If this is called, then @@ -774,23 +774,23 @@ { struct glyph_block gb; prop_block_dynarr *retval; - Bytind bi_old_cursor_bufpos = data->bi_cursor_bufpos; + Bytebpos bi_old_cursor_charbpos = data->bi_cursor_charbpos; int old_cursor_type = data->cursor_type; - Bytind bi_old_bufpos = data->bi_bufpos; + Bytebpos bi_old_charbpos = data->bi_charbpos; if (data->cursor_type == CURSOR_ON - && data->bi_cursor_bufpos >= data->bi_start_col_enabled - && data->bi_cursor_bufpos <= data->bi_bufpos) + && data->bi_cursor_charbpos >= data->bi_start_col_enabled + && data->bi_cursor_charbpos <= data->bi_charbpos) { - data->bi_cursor_bufpos = data->bi_start_col_enabled; + data->bi_cursor_charbpos = data->bi_start_col_enabled; } else { data->cursor_type = NO_CURSOR; } - data->bi_endpos = data->bi_bufpos; - data->bi_bufpos = data->bi_start_col_enabled; + data->bi_endpos = data->bi_charbpos; + data->bi_charbpos = data->bi_start_col_enabled; gb.extent = Qnil; gb.glyph = Vhscroll_glyph; @@ -803,9 +803,9 @@ data->pixpos - oldpixpos - space_width (XWINDOW (data->window)); } data->bi_endpos = 0; - data->bi_cursor_bufpos = bi_old_cursor_bufpos; + data->bi_cursor_charbpos = bi_old_cursor_charbpos; data->cursor_type = old_cursor_type; - data->bi_bufpos = bi_old_bufpos; + data->bi_charbpos = bi_old_charbpos; data->bi_start_col_enabled = 0; return retval; @@ -903,28 +903,28 @@ crb->findex = data->findex; crb->xpos = data->pixpos; crb->width = width; - if (data->bi_bufpos) + if (data->bi_charbpos) { if (NILP (data->string)) - crb->bufpos = - bytind_to_bufpos (XBUFFER (WINDOW_BUFFER (XWINDOW (data->window))), - data->bi_bufpos); + crb->charbpos = + bytebpos_to_charbpos (XBUFFER (WINDOW_BUFFER (XWINDOW (data->window))), + data->bi_charbpos); else - crb->bufpos = - bytecount_to_charcount (XSTRING_DATA (data->string), data->bi_bufpos); + crb->charbpos = + bytecount_to_charcount (XSTRING_DATA (data->string), data->bi_charbpos); } else if (data->is_modeline) - crb->bufpos = data->modeline_charpos; + crb->charbpos = data->modeline_charpos; else /* Text but not in buffer */ - crb->bufpos = 0; + crb->charbpos = 0; crb->type = RUNE_CHAR; crb->object.chr.ch = data->font_is_bogus ? '~' : data->ch; crb->endpos = 0; if (data->cursor_type == CURSOR_ON) { - if (data->bi_bufpos == data->bi_cursor_bufpos) + if (data->bi_charbpos == data->bi_cursor_charbpos) { crb->cursor_type = CURSOR_ON; data->cursor_x = Dynarr_length (data->db->runes); @@ -958,10 +958,10 @@ unless NO_PROP is non-zero. */ static prop_block_dynarr * -add_bufbyte_string_runes (pos_data *data, Bufbyte *c_string, +add_intbyte_string_runes (pos_data *data, Intbyte *c_string, Bytecount c_length, int no_prop) { - Bufbyte *pos, *end = c_string + c_length; + Intbyte *pos, *end = c_string + c_length; prop_block_dynarr *prop; /* #### This function is too simplistic. It needs to do the same @@ -972,7 +972,7 @@ for (pos = c_string; pos < end;) { - Bufbyte *old_pos = pos; + Intbyte *old_pos = pos; data->ch = charptr_emchar (pos); @@ -989,7 +989,7 @@ prop = Dynarr_new (prop_block); pb.type = PROP_STRING; - pb.data.p_string.str = xnew_array (Bufbyte, len); + pb.data.p_string.str = xnew_array (Intbyte, len); strncpy ((char *) pb.data.p_string.str, (char *) pos, len); pb.data.p_string.len = len; @@ -1056,19 +1056,19 @@ rb.findex = data->findex; rb.xpos = data->pixpos; rb.width = data->blank_width; - if (data->bi_bufpos) - rb.bufpos = - bytind_to_bufpos (XBUFFER (WINDOW_BUFFER (XWINDOW (data->window))), - data->bi_bufpos); + if (data->bi_charbpos) + rb.charbpos = + bytebpos_to_charbpos (XBUFFER (WINDOW_BUFFER (XWINDOW (data->window))), + data->bi_charbpos); else /* #### and this is really correct too? */ - rb.bufpos = 0; + rb.charbpos = 0; rb.endpos = 0; rb.type = RUNE_BLANK; if (data->cursor_type == CURSOR_ON) { - if (data->bi_bufpos == data->bi_cursor_bufpos) + if (data->bi_charbpos == data->bi_cursor_charbpos) { rb.cursor_type = CURSOR_ON; data->cursor_x = Dynarr_length (data->db->runes); @@ -1258,7 +1258,7 @@ if (STRINGP (entry)) { - prop = add_bufbyte_string_runes (data, + prop = add_intbyte_string_runes (data, XSTRING_DATA (entry), XSTRING_LENGTH (entry), 0); @@ -1293,10 +1293,10 @@ && STRINGP (XCAR (XCDR (entry)))) { Lisp_Object format = XCAR (XCDR (entry)); - Bytind len = XSTRING_LENGTH (format); - Bufbyte *src = XSTRING_DATA (format), *end = src + len; - Bufbyte *result = alloca_array (Bufbyte, len); - Bufbyte *dst = result; + Bytebpos len = XSTRING_LENGTH (format); + Intbyte *src = XSTRING_DATA (format), *end = src + len; + Intbyte *result = alloca_array (Intbyte, len); + Intbyte *dst = result; while (src < end) { @@ -1320,7 +1320,7 @@ } } } - prop = add_bufbyte_string_runes (data, result, dst - result, 0); + prop = add_intbyte_string_runes (data, result, dst - result, 0); } } @@ -1381,7 +1381,7 @@ record? */ int elt; prop_block_dynarr *add_failed; - Bytind bi_old_cursor_bufpos = data->bi_cursor_bufpos; + Bytebpos bi_old_cursor_charbpos = data->bi_cursor_charbpos; int old_cursor_type = data->cursor_type; for (elt = 0; elt < Dynarr_length (*prop); elt++) @@ -1392,7 +1392,7 @@ { case PROP_CHAR: data->ch = pb->data.p_char.ch; - data->bi_cursor_bufpos = pb->data.p_char.bi_cursor_bufpos; + data->bi_cursor_charbpos = pb->data.p_char.bi_cursor_charbpos; data->cursor_type = pb->data.p_char.cursor_type; add_failed = add_emchar_rune (data); @@ -1403,16 +1403,16 @@ if (pb->data.p_string.str) xfree (pb->data.p_string.str); /* #### bogus bogus -- this doesn't do anything! - Should probably call add_bufbyte_string_runes(), + Should probably call add_intbyte_string_runes(), once that function is fixed. */ break; case PROP_MINIBUF_PROMPT: { face_index old_findex = data->findex; - Bytind bi_old_bufpos = data->bi_bufpos; + Bytebpos bi_old_charbpos = data->bi_charbpos; data->findex = DEFAULT_INDEX; - data->bi_bufpos = 0; + data->bi_charbpos = 0; data->cursor_type = NO_CURSOR; while (pb->data.p_string.len > 0) @@ -1423,13 +1423,13 @@ if (add_failed) { data->findex = old_findex; - data->bi_bufpos = bi_old_bufpos; + data->bi_charbpos = bi_old_charbpos; goto oops_no_more_space; } else { /* Complicated equivalent of ptr++, len-- */ - Bufbyte *oldpos = pb->data.p_string.str; + Intbyte *oldpos = pb->data.p_string.str; INC_CHARPTR (pb->data.p_string.str); pb->data.p_string.len -= pb->data.p_string.str - oldpos; } @@ -1437,19 +1437,19 @@ data->findex = old_findex; /* ##### FIXME FIXME FIXME -- Upon successful return from - this function, data->bi_bufpos is automatically incremented. + this function, data->bi_charbpos is automatically incremented. However, we don't want that to happen if we were adding the minibuffer prompt. */ { struct buffer *buf = XBUFFER (WINDOW_BUFFER (XWINDOW (data->window))); /* #### Chuck fix this shit or I'm gonna scream! */ - if (bi_old_bufpos > BI_BUF_BEGV (buf)) - data->bi_bufpos = prev_bytind (buf, bi_old_bufpos); + if (bi_old_charbpos > BI_BUF_BEGV (buf)) + data->bi_charbpos = prev_bytebpos (buf, bi_old_charbpos); else /* #### is this correct? Does anyone know? Does anyone care? Is this a cheesy hack or what? */ - data->bi_bufpos = BI_BUF_BEGV (buf) - 1; + data->bi_charbpos = BI_BUF_BEGV (buf) - 1; } } break; @@ -1463,7 +1463,7 @@ data->findex = pb->data.p_blank.findex; data->blank_width = pb->data.p_blank.width; - data->bi_cursor_bufpos = 0; + data->bi_cursor_charbpos = 0; data->cursor_type = IGNORE_CURSOR; if (data->pixpos + data->blank_width > data->max_pixpos) @@ -1496,7 +1496,7 @@ oops_no_more_space: - data->bi_cursor_bufpos = bi_old_cursor_bufpos; + data->bi_cursor_charbpos = bi_old_cursor_charbpos; data->cursor_type = old_cursor_type; if (elt < Dynarr_length (*prop)) { @@ -1670,17 +1670,17 @@ { Lisp_Object string = XIMAGE_INSTANCE_TEXT_STRING (instance); face_index orig_findex = data->findex; - Bytind orig_bufpos = data->bi_bufpos; - Bytind orig_start_col_enabled = data->bi_start_col_enabled; + Bytebpos orig_charbpos = data->bi_charbpos; + Bytebpos orig_start_col_enabled = data->bi_start_col_enabled; data->findex = findex; data->bi_start_col_enabled = 0; if (!allow_cursor) - data->bi_bufpos = 0; - add_bufbyte_string_runes (data, XSTRING_DATA (string), + data->bi_charbpos = 0; + add_intbyte_string_runes (data, XSTRING_DATA (string), XSTRING_LENGTH (string), 0); data->findex = orig_findex; - data->bi_bufpos = orig_bufpos; + data->bi_charbpos = orig_charbpos; data->bi_start_col_enabled = orig_start_col_enabled; return NULL; } @@ -1688,10 +1688,10 @@ rb.findex = findex; rb.xpos = data->pixpos; rb.width = width; - rb.bufpos = 0; /* glyphs are never "at" anywhere */ + rb.charbpos = 0; /* glyphs are never "at" anywhere */ if (data->bi_endpos) /* #### is this necessary at all? */ - rb.endpos = bytind_to_bufpos (XBUFFER (WINDOW_BUFFER (w)), + rb.endpos = bytebpos_to_charbpos (XBUFFER (WINDOW_BUFFER (w)), data->bi_endpos); else rb.endpos = 0; @@ -1702,12 +1702,12 @@ if (allow_cursor) { - rb.bufpos = bytind_to_bufpos (XBUFFER (WINDOW_BUFFER (w)), - data->bi_bufpos); + rb.charbpos = bytebpos_to_charbpos (XBUFFER (WINDOW_BUFFER (w)), + data->bi_charbpos); if (data->cursor_type == CURSOR_ON) { - if (data->bi_bufpos == data->bi_cursor_bufpos) + if (data->bi_charbpos == data->bi_cursor_charbpos) { rb.cursor_type = CURSOR_ON; data->cursor_x = Dynarr_length (data->db->runes); @@ -1801,12 +1801,12 @@ display line DL accurately represents the text on a line starting at the given position. - NOTE NOTE NOTE NOTE: This function works with and returns Bytinds. + NOTE NOTE NOTE NOTE: This function works with and returns Bytebposs. You must do appropriate conversion. */ -static Bytind +static Bytebpos create_text_block (struct window *w, struct display_line *dl, - Bytind bi_start_pos, prop_block_dynarr **prop, + Bytebpos bi_start_pos, prop_block_dynarr **prop, int type) { struct frame *f = XFRAME (w->frame); @@ -1911,7 +1911,7 @@ data.db = db; data.dl = dl; - data.bi_bufpos = bi_start_pos; + data.bi_charbpos = bi_start_pos; data.pixpos = dl->bounds.left_in; data.last_charset = Qunbound; data.last_findex = DEFAULT_INDEX; @@ -1928,7 +1928,7 @@ if (cursor_in_echo_area && MINI_WINDOW_P (w) && echo_area_active (f)) { - data.bi_cursor_bufpos = BI_BUF_ZV (b); + data.bi_cursor_charbpos = BI_BUF_ZV (b); data.cursor_type = CURSOR_ON; } else if (MINI_WINDOW_P (w) && !active_minibuffer) @@ -1938,12 +1938,12 @@ d == XDEVICE(CONSOLE_SELECTED_DEVICE(XCONSOLE(DEVICE_CONSOLE(d))))&& f == XFRAME(DEVICE_SELECTED_FRAME(d))) { - data.bi_cursor_bufpos = BI_BUF_PT (b); + data.bi_cursor_charbpos = BI_BUF_PT (b); data.cursor_type = CURSOR_ON; } else if (w == XWINDOW (FRAME_SELECTED_WINDOW (f))) { - data.bi_cursor_bufpos = bi_marker_position (w->pointm[type]); + data.bi_cursor_charbpos = bi_marker_position (w->pointm[type]); data.cursor_type = CURSOR_ON; } else @@ -1988,10 +1988,10 @@ && (active_minibuffer || !NILP (synch_minibuffers_value))) { /* #### This check probably should not be necessary. */ - if (data.bi_bufpos > BI_BUF_ZV (b)) + if (data.bi_charbpos > BI_BUF_ZV (b)) { /* #### urk! More of this lossage! */ - data.bi_bufpos--; + data.bi_charbpos--; goto done; } @@ -1999,38 +1999,38 @@ a continuation line then find the next line we are actually supposed to display. */ if (selective > 0 - && (data.bi_bufpos == BI_BUF_BEGV (b) - || BUF_FETCH_CHAR (b, prev_bytind (b, data.bi_bufpos)) == '\n')) + && (data.bi_charbpos == BI_BUF_BEGV (b) + || BUF_FETCH_CHAR (b, prev_bytebpos (b, data.bi_charbpos)) == '\n')) { - while (bi_spaces_at_point (b, data.bi_bufpos) >= selective) + while (bi_spaces_at_point (b, data.bi_charbpos) >= selective) { - data.bi_bufpos = - bi_find_next_newline_no_quit (b, data.bi_bufpos, 1); - if (data.bi_bufpos >= BI_BUF_ZV (b)) + data.bi_charbpos = + bi_find_next_newline_no_quit (b, data.bi_charbpos, 1); + if (data.bi_charbpos >= BI_BUF_ZV (b)) { - data.bi_bufpos = BI_BUF_ZV (b); + data.bi_charbpos = BI_BUF_ZV (b); goto done; } } } /* Check for face changes. */ - if (initial || (!no_more_frags && data.bi_bufpos == data.ef->end)) + if (initial || (!no_more_frags && data.bi_charbpos == data.ef->end)) { /* 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); + /* Remember that the extent-fragment routines deal in Bytebpos's. */ + extent_fragment_update (w, data.ef, data.bi_charbpos); get_display_tables (w, data.findex, &face_dt, &window_dt); - if (data.bi_bufpos == data.ef->end) + if (data.bi_charbpos == data.ef->end) no_more_frags = 1; } initial = 0; /* Determine what is next to be displayed. We first handle any - glyphs returned by glyphs_at_bufpos. If there are no glyphs to + glyphs returned by glyphs_at_charbpos. If there are no glyphs to display then we determine what to do based on the character at the current buffer position. */ @@ -2074,7 +2074,7 @@ /* If point is in an invisible region we place it on the next visible character. */ if (data.cursor_type == CURSOR_ON - && data.bi_bufpos == data.bi_cursor_bufpos) + && data.bi_charbpos == data.bi_cursor_charbpos) { data.cursor_type = NEXT_CURSOR; } @@ -2083,10 +2083,10 @@ if (data.start_col) data.start_col--; - if (data.bi_bufpos == BI_BUF_ZV (b)) + if (data.bi_charbpos == BI_BUF_ZV (b)) goto done; else - INC_BYTIND (b, data.bi_bufpos); + INC_BYTEBPOS (b, data.bi_charbpos); } /* If there is propagation data, then it represents the current @@ -2100,13 +2100,13 @@ if (*prop) goto done; /* gee, a really narrow window */ - else if (data.bi_bufpos == BI_BUF_ZV (b)) + else if (data.bi_charbpos == BI_BUF_ZV (b)) goto done; - else if (data.bi_bufpos < BI_BUF_BEGV (b)) + else if (data.bi_charbpos < BI_BUF_BEGV (b)) /* #### urk urk urk! Aborts are not very fun! Fix this please! */ - data.bi_bufpos = BI_BUF_BEGV (b); + data.bi_charbpos = BI_BUF_BEGV (b); else - INC_BYTIND (b, data.bi_bufpos); + INC_BYTEBPOS (b, data.bi_charbpos); } /* If there are end glyphs, add them to the line. These are @@ -2132,14 +2132,14 @@ /* If at end-of-buffer, we've already processed begin and end-glyphs at this point and there's no text to process, so we're done. */ - else if (data.bi_bufpos == BI_BUF_ZV (b)) + else if (data.bi_charbpos == BI_BUF_ZV (b)) goto done; else { Lisp_Object entry = Qnil; /* Get the character at the current buffer position. */ - data.ch = BI_BUF_FETCH_CHAR (b, data.bi_bufpos); + data.ch = BI_BUF_FETCH_CHAR (b, data.bi_charbpos); if (!NILP (face_dt) || !NILP (window_dt)) entry = display_table_entry (data.ch, face_dt, window_dt); @@ -2164,7 +2164,7 @@ if (selective > 0 && (bi_spaces_at_point - (b, next_bytind (b, data.bi_bufpos)) + (b, next_bytebpos (b, data.bi_charbpos)) >= selective)) { if (!NILP (b->selective_display_ellipses)) @@ -2186,25 +2186,25 @@ *prop = add_emchar_rune (&data); } - /* We need to set data.bi_bufpos to the start of the + /* We need to set data.bi_charbpos to the start of the next visible region in order to make this line appear to contain all of the invisible area. Otherwise, the line cache won't work correctly. */ - INC_BYTIND (b, data.bi_bufpos); - while (bi_spaces_at_point (b, data.bi_bufpos) >= selective) + INC_BYTEBPOS (b, data.bi_charbpos); + while (bi_spaces_at_point (b, data.bi_charbpos) >= selective) { - data.bi_bufpos = - bi_find_next_newline_no_quit (b, data.bi_bufpos, 1); - if (data.bi_bufpos >= BI_BUF_ZV (b)) + data.bi_charbpos = + bi_find_next_newline_no_quit (b, data.bi_charbpos, 1); + if (data.bi_charbpos >= BI_BUF_ZV (b)) { - data.bi_bufpos = BI_BUF_ZV (b); + data.bi_charbpos = BI_BUF_ZV (b); break; } } if (BI_BUF_FETCH_CHAR - (b, prev_bytind (b, data.bi_bufpos)) == '\n') - DEC_BYTIND (b, data.bi_bufpos); + (b, prev_bytebpos (b, data.bi_charbpos)) == '\n') + DEC_BYTEBPOS (b, data.bi_charbpos); } else { @@ -2221,20 +2221,20 @@ line is done. */ else if (data.ch == (('M' & 037)) && selective == -1) { - Bytind bi_next_bufpos; + Bytebpos bi_next_charbpos; /* Find the buffer position at the end of the line. */ - bi_next_bufpos = - bi_find_next_newline_no_quit (b, data.bi_bufpos, 1); - if (BI_BUF_FETCH_CHAR (b, prev_bytind (b, bi_next_bufpos)) + bi_next_charbpos = + bi_find_next_newline_no_quit (b, data.bi_charbpos, 1); + if (BI_BUF_FETCH_CHAR (b, prev_bytebpos (b, bi_next_charbpos)) == '\n') - DEC_BYTIND (b, bi_next_bufpos); + DEC_BYTEBPOS (b, bi_next_charbpos); /* If the cursor is somewhere in the elided text make sure that the cursor gets drawn appropriately. */ if (data.cursor_type == CURSOR_ON - && (data.bi_cursor_bufpos >= data.bi_bufpos && - data.bi_cursor_bufpos < bi_next_bufpos)) + && (data.bi_cursor_charbpos >= data.bi_charbpos && + data.bi_cursor_charbpos < bi_next_charbpos)) { data.cursor_type = NEXT_CURSOR; } @@ -2260,10 +2260,10 @@ need to do this before potentially adding a newline so that the cursor flag will get set correctly (if needed). */ - data.bi_bufpos = bi_next_bufpos; + data.bi_charbpos = bi_next_charbpos; if (NILP (b->selective_display_ellipses) - || data.bi_cursor_bufpos == bi_next_bufpos) + || data.bi_cursor_charbpos == bi_next_charbpos) { /* We have to at least add a newline character so that the cursor shows up properly. */ @@ -2280,7 +2280,7 @@ /* This had better be a newline but doing it this way we'll see obvious incorrect results if it isn't. No need to abort here. */ - data.ch = BI_BUF_FETCH_CHAR (b, data.bi_bufpos); + data.ch = BI_BUF_FETCH_CHAR (b, data.bi_charbpos); goto done; } @@ -2349,7 +2349,7 @@ often bites people who carelessly use `char' instead of `unsigned char'.) */ - else if (data.ch < 0x100 && iscntrl ((Bufbyte) data.ch)) + else if (data.ch < 0x100 && iscntrl ((Intbyte) data.ch)) { *prop = add_control_char_runes (&data, b); @@ -2376,7 +2376,7 @@ goto done; } - INC_BYTIND (b, data.bi_bufpos); + INC_BYTEBPOS (b, data.bi_charbpos); } } @@ -2384,15 +2384,15 @@ /* Determine the starting point of the next line if we did not hit the end of the buffer. */ - if (data.bi_bufpos < BI_BUF_ZV (b) + if (data.bi_charbpos < BI_BUF_ZV (b) && (active_minibuffer || !NILP (synch_minibuffers_value))) { /* #### This check is not correct. If the line terminated due to a begin-glyph or end-glyph hitting window-end, then - data.ch will not point to the character at data.bi_bufpos. If + data.ch will not point to the character at data.bi_charbpos. If you make the two changes mentioned at the top of this loop, you should be able to say '(if (*prop))'. That should also - make it possible to eliminate the data.bi_bufpos < BI_BUF_ZV (b) + make it possible to eliminate the data.bi_charbpos < BI_BUF_ZV (b) check. */ /* The common case is that the line ended because we hit a newline. @@ -2408,15 +2408,15 @@ { if (data.cursor_type == CURSOR_ON) { - if (data.bi_cursor_bufpos >= bi_start_pos - && data.bi_cursor_bufpos <= data.bi_bufpos) - data.bi_cursor_bufpos = data.bi_bufpos; + if (data.bi_cursor_charbpos >= bi_start_pos + && data.bi_cursor_charbpos <= data.bi_charbpos) + data.bi_cursor_charbpos = data.bi_charbpos; } data.findex = DEFAULT_INDEX; data.start_col = 0; data.bi_start_col_enabled = 0; - if (data.bi_bufpos != bi_start_pos) + if (data.bi_charbpos != bi_start_pos) { struct glyph_block gb; @@ -2436,7 +2436,7 @@ } } - INC_BYTIND (b, data.bi_bufpos); + INC_BYTEBPOS (b, data.bi_charbpos); } /* Otherwise we have a buffer line which cannot fit on one display @@ -2456,10 +2456,10 @@ if (truncate_win) { - Bytind bi_pos; + Bytebpos bi_pos; /* Now find the start of the next line. */ - bi_pos = bi_find_next_newline_no_quit (b, data.bi_bufpos, 1); + bi_pos = bi_find_next_newline_no_quit (b, data.bi_charbpos, 1); /* If the cursor is past the truncation line then we make it appear on the truncation glyph. If we've hit @@ -2468,17 +2468,17 @@ newline. In that case the cursor should actually appear on the next line. */ if (data.cursor_type == CURSOR_ON - && data.bi_cursor_bufpos >= data.bi_bufpos - && (data.bi_cursor_bufpos < bi_pos || + && data.bi_cursor_charbpos >= data.bi_charbpos + && (data.bi_cursor_charbpos < bi_pos || (bi_pos == BI_BUF_ZV (b) && (bi_pos == BI_BUF_BEGV (b) - || (BI_BUF_FETCH_CHAR (b, prev_bytind (b, bi_pos)) + || (BI_BUF_FETCH_CHAR (b, prev_bytebpos (b, bi_pos)) != '\n'))))) - data.bi_cursor_bufpos = bi_pos; + data.bi_cursor_charbpos = bi_pos; else data.cursor_type = NO_CURSOR; - data.bi_bufpos = bi_pos; + data.bi_charbpos = bi_pos; gb.glyph = Vtruncation_glyph; cachel = GLYPH_CACHEL (w, TRUN_GLYPH_INDEX); } @@ -2487,7 +2487,7 @@ /* The cursor can never be on the continuation glyph. */ data.cursor_type = NO_CURSOR; - /* data.bi_bufpos is already at the start of the next line. */ + /* data.bi_charbpos is already at the start of the next line. */ dl->line_continuation = 1; gb.glyph = Vcontinuation_glyph; @@ -2496,14 +2496,14 @@ add_glyph_rune (&data, &gb, BEGIN_GLYPHS, 0, cachel); - if (truncate_win && data.bi_bufpos == BI_BUF_ZV (b) - && BI_BUF_FETCH_CHAR (b, prev_bytind (b, BI_BUF_ZV (b))) != '\n') + if (truncate_win && data.bi_charbpos == BI_BUF_ZV (b) + && BI_BUF_FETCH_CHAR (b, prev_bytebpos (b, BI_BUF_ZV (b))) != '\n') /* #### Damn this losing shit. */ - data.bi_bufpos++; + data.bi_charbpos++; } } else if ((active_minibuffer || !NILP (synch_minibuffers_value)) - && (!echo_area_active (f) || data.bi_bufpos == BI_BUF_ZV (b))) + && (!echo_area_active (f) || data.bi_charbpos == BI_BUF_ZV (b))) { /* We need to add a marker to the end of the line since there is no newline character in order for the cursor to get drawn. We label @@ -2524,7 +2524,7 @@ /* #### urk! Chuck, this shit is bad news. Going around manipulating invalid positions is guaranteed to result in trouble sooner or later. */ - data.bi_bufpos = BI_BUF_ZV (b) + 1; + data.bi_charbpos = BI_BUF_ZV (b) + 1; } /* Calculate left whitespace boundary. */ @@ -2624,17 +2624,17 @@ dl->cursor_elt = data.cursor_x; /* #### lossage lossage lossage! Fix this shit! */ - if (data.bi_bufpos > BI_BUF_ZV (b)) - dl->end_bufpos = BUF_ZV (b); + if (data.bi_charbpos > BI_BUF_ZV (b)) + dl->end_charbpos = BUF_ZV (b); else - dl->end_bufpos = bytind_to_bufpos (b, data.bi_bufpos) - 1; + dl->end_charbpos = bytebpos_to_charbpos (b, data.bi_charbpos) - 1; if (truncate_win) - data.dl->num_chars = column_at_point (b, dl->end_bufpos, 0); + data.dl->num_chars = column_at_point (b, dl->end_charbpos, 0); else /* This doesn't correctly take into account tabs and control characters but if the window isn't being truncated then this value isn't going to end up being used anyhow. */ - data.dl->num_chars = dl->end_bufpos - dl->bufpos; + data.dl->num_chars = dl->end_charbpos - dl->charbpos; /* #### handle horizontally scrolled line with text none of which was actually laid out. */ @@ -2657,10 +2657,10 @@ The main loop should get fixed so that it isn't necessary to call this function if we are already at EOB. */ - if (data.bi_bufpos == BI_BUF_ZV (b) && bi_start_pos == BI_BUF_ZV (b)) - return data.bi_bufpos + 1; /* Yuck! */ + if (data.bi_charbpos == BI_BUF_ZV (b) && bi_start_pos == BI_BUF_ZV (b)) + return data.bi_charbpos + 1; /* Yuck! */ else - return data.bi_bufpos; + return data.bi_charbpos; } /* Display the overlay arrow at the beginning of the given line. */ @@ -2696,7 +2696,7 @@ if (STRINGP (Voverlay_arrow_string)) { - add_bufbyte_string_runes + add_intbyte_string_runes (&data, XSTRING_DATA (Voverlay_arrow_string), XSTRING_LENGTH (Voverlay_arrow_string), @@ -2830,7 +2830,7 @@ : get_builtin_face_cache_index (w, Vright_margin_face)); rb.xpos = xpos; rb.width = width; - rb.bufpos = -1; + rb.charbpos = -1; rb.endpos = 0; rb.type = RUNE_BLANK; rb.cursor_type = CURSOR_OFF; @@ -3539,7 +3539,7 @@ { int elt; Bytecount len; - Bufbyte *strdata; + Intbyte *strdata; struct buffer *buf = XBUFFER (WINDOW_BUFFER (w)); in_modeline_generation = 1; @@ -3628,7 +3628,7 @@ rb.findex = MODELINE_INDEX; rb.xpos = dl->bounds.left_out; rb.width = dl->bounds.right_out - dl->bounds.left_out; - rb.bufpos = 0; + rb.charbpos = 0; rb.endpos = 0; rb.type = RUNE_HLINE; rb.object.hline.thickness = 1; @@ -3681,12 +3681,12 @@ } static Charcount -add_string_to_fstring_db_runes (pos_data *data, const Bufbyte *str, +add_string_to_fstring_db_runes (pos_data *data, const Intbyte *str, Charcount pos, Charcount min_pos, Charcount max_pos) { /* This function has been Mule-ized. */ Charcount end; - const Bufbyte *cur_pos = str; + const Intbyte *cur_pos = str; struct display_block *db = data->db; data->blank_width = space_width (XWINDOW (data->window)); @@ -3700,7 +3700,7 @@ while (pos < end && *cur_pos) { - const Bufbyte *old_cur_pos = cur_pos; + const Intbyte *old_cur_pos = cur_pos; int succeeded; data->ch = charptr_emchar (cur_pos); @@ -3791,11 +3791,11 @@ /* A string. Add to the display line and check for %-constructs within it. */ - Bufbyte *this = XSTRING_DATA (elt); + Intbyte *this = XSTRING_DATA (elt); while ((pos < max_pos || max_pos == -1) && *this) { - Bufbyte *last = this; + Intbyte *last = this; while (*this && *this != '%') this++; @@ -3812,7 +3812,7 @@ { Charcount tmp_max = (max_pos == -1 ? pos + size - *offset : min (pos + size - *offset, max_pos)); - const Bufbyte *tmp_last = charptr_n_addr (last, *offset); + const Intbyte *tmp_last = charptr_n_addr (last, *offset); pos = add_string_to_fstring_db_runes (data, tmp_last, pos, pos, tmp_max); @@ -3856,7 +3856,7 @@ { int cur_pixsize; int dash_pixsize; - Bufbyte ch = '-'; + Intbyte ch = '-'; SET_CURRENT_MODE_CHARS_PIXSIZE; dash_pixsize = @@ -3869,26 +3869,26 @@ while (num_to_add--) pos = add_string_to_fstring_db_runes - (data, (const Bufbyte *) "-", pos, pos, max_pos); + (data, (const Intbyte *) "-", pos, pos, max_pos); } else if (*this != 0) { Emchar ch = charptr_emchar (this); - Bufbyte *str; + Intbyte *str; Charcount size; decode_mode_spec (w, ch, type); - str = Dynarr_atp (mode_spec_bufbyte_string, 0); + str = Dynarr_atp (mode_spec_intbyte_string, 0); size = bytecount_to_charcount /* Skip the null character added by `decode_mode_spec' */ - (str, Dynarr_length (mode_spec_bufbyte_string)) - 1; + (str, Dynarr_length (mode_spec_intbyte_string)) - 1; if (size <= *offset) *offset -= size; else { - const Bufbyte *tmp_str = charptr_n_addr (str, *offset); + const Intbyte *tmp_str = charptr_n_addr (str, *offset); /* #### NOTE: I don't understand why a tmp_max is not computed and used here as in the plain string case @@ -3927,14 +3927,14 @@ don't check for % within it. */ if (STRINGP (tem)) { - Bufbyte *str = XSTRING_DATA (tem); + Intbyte *str = XSTRING_DATA (tem); Charcount size = XSTRING_CHAR_LENGTH (tem); if (size <= *offset) *offset -= size; else { - const Bufbyte *tmp_str = charptr_n_addr (str, *offset); + const Intbyte *tmp_str = charptr_n_addr (str, *offset); /* #### NOTE: I don't understand why a tmp_max is not computed and used here as in the plain string case @@ -4128,8 +4128,8 @@ *offset -= size; else { - const Bufbyte *tmp_str = - charptr_n_addr ((const Bufbyte *) str, *offset); + const Intbyte *tmp_str = + charptr_n_addr ((const Intbyte *) str, *offset); /* #### NOTE: I don't understand why a tmp_max is not computed and used here as in the plain string case above. -- dv */ @@ -4142,7 +4142,7 @@ if (min_pos > pos) { - add_string_to_fstring_db_runes (data, (const Bufbyte *) "", pos, + add_string_to_fstring_db_runes (data, (const Intbyte *) "", pos, min_pos, -1); } @@ -4262,10 +4262,10 @@ modeline routines should be modified to use this code as it copes with many more types of display situation. */ -static Bufpos +static Charbpos create_string_text_block (struct window *w, Lisp_Object disp_string, struct display_line *dl, - Bufpos start_pos, + Charbpos start_pos, prop_block_dynarr **prop, face_index default_face) { @@ -4282,7 +4282,7 @@ /* we're working with these a lot so precalculate them */ Bytecount slen = XSTRING_LENGTH (disp_string); Bytecount bi_string_zv = slen; - Bytind bi_start_pos = charcount_to_bytecount (string_data (s), start_pos); + Bytebpos bi_start_pos = charcount_to_bytecount (string_data (s), start_pos); pos_data data; @@ -4385,7 +4385,7 @@ data.db = db; data.dl = dl; - data.bi_bufpos = bi_start_pos; + data.bi_charbpos = bi_start_pos; data.pixpos = dl->bounds.left_in; data.last_charset = Qunbound; data.last_findex = default_face; @@ -4447,20 +4447,20 @@ while (data.pixpos <= data.max_pixpos) { /* #### This check probably should not be necessary. */ - if (data.bi_bufpos > bi_string_zv) + if (data.bi_charbpos > bi_string_zv) { /* #### urk! More of this lossage! */ - data.bi_bufpos--; + data.bi_charbpos--; goto done; } /* Check for face changes. */ - if (initial || (!no_more_frags && data.bi_bufpos == data.ef->end)) + if (initial || (!no_more_frags && data.bi_charbpos == data.ef->end)) { /* 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); + /* Remember that the extent-fragment routines deal in Bytebpos's. */ + extent_fragment_update (w, data.ef, data.bi_charbpos); /* This is somewhat cheesy but the alternative is to propagate default_face into extent_fragment_update. */ if (data.findex == DEFAULT_INDEX) @@ -4468,13 +4468,13 @@ get_display_tables (w, data.findex, &face_dt, &window_dt); - if (data.bi_bufpos == data.ef->end) + if (data.bi_charbpos == data.ef->end) no_more_frags = 1; } initial = 0; /* Determine what is next to be displayed. We first handle any - glyphs returned by glyphs_at_bufpos. If there are no glyphs to + glyphs returned by glyphs_at_charbpos. If there are no glyphs to display then we determine what to do based on the character at the current buffer position. */ @@ -4519,10 +4519,10 @@ if (data.start_col) data.start_col--; - if (data.bi_bufpos == bi_string_zv) + if (data.bi_charbpos == bi_string_zv) goto done; else - INC_CHARBYTIND (string_data (s), data.bi_bufpos); + INC_CHARBYTEBPOS (string_data (s), data.bi_charbpos); } /* If there is propagation data, then it represents the current @@ -4536,13 +4536,13 @@ if (*prop) goto done; /* gee, a really narrow window */ - else if (data.bi_bufpos == bi_string_zv) + else if (data.bi_charbpos == bi_string_zv) goto done; - else if (data.bi_bufpos < 0) + else if (data.bi_charbpos < 0) /* #### urk urk urk! Aborts are not very fun! Fix this please! */ - data.bi_bufpos = 0; + data.bi_charbpos = 0; else - INC_CHARBYTIND (string_data (s), data.bi_bufpos); + INC_CHARBYTEBPOS (string_data (s), data.bi_charbpos); } /* If there are end glyphs, add them to the line. These are @@ -4568,14 +4568,14 @@ /* If at end-of-buffer, we've already processed begin and end-glyphs at this point and there's no text to process, so we're done. */ - else if (data.bi_bufpos == bi_string_zv) + else if (data.bi_charbpos == bi_string_zv) goto done; else { Lisp_Object entry = Qnil; /* Get the character at the current buffer position. */ - data.ch = string_char (s, data.bi_bufpos); + data.ch = string_char (s, data.bi_charbpos); if (!NILP (face_dt) || !NILP (window_dt)) entry = display_table_entry (data.ch, face_dt, window_dt); @@ -4663,7 +4663,7 @@ often bites people who carelessly use `char' instead of `unsigned char'.) */ - else if (data.ch < 0x100 && iscntrl ((Bufbyte) data.ch)) + else if (data.ch < 0x100 && iscntrl ((Intbyte) data.ch)) { *prop = add_control_char_runes (&data, b); @@ -4690,7 +4690,7 @@ goto done; } - INC_CHARBYTIND (string_data (s), data.bi_bufpos); + INC_CHARBYTEBPOS (string_data (s), data.bi_charbpos); } } @@ -4698,14 +4698,14 @@ /* Determine the starting point of the next line if we did not hit the end of the buffer. */ - if (data.bi_bufpos < bi_string_zv) + if (data.bi_charbpos < bi_string_zv) { /* #### This check is not correct. If the line terminated due to a begin-glyph or end-glyph hitting window-end, then - data.ch will not point to the character at data.bi_bufpos. If + data.ch will not point to the character at data.bi_charbpos. If you make the two changes mentioned at the top of this loop, you should be able to say '(if (*prop))'. That should also - make it possible to eliminate the data.bi_bufpos < BI_BUF_ZV (b) + make it possible to eliminate the data.bi_charbpos < BI_BUF_ZV (b) check. */ /* The common case is that the line ended because we hit a newline. @@ -4713,7 +4713,7 @@ position. */ if (data.ch == '\n') { - INC_CHARBYTIND (string_data (s), data.bi_bufpos); + INC_CHARBYTEBPOS (string_data (s), data.bi_charbpos); } /* Otherwise we have a buffer line which cannot fit on one display @@ -4733,13 +4733,13 @@ if (truncate_win) { - Bytind bi_pos; + Bytebpos bi_pos; /* Now find the start of the next line. */ - bi_pos = bi_find_next_emchar_in_string (s, '\n', data.bi_bufpos, 1); + bi_pos = bi_find_next_emchar_in_string (s, '\n', data.bi_charbpos, 1); data.cursor_type = NO_CURSOR; - data.bi_bufpos = bi_pos; + data.bi_charbpos = bi_pos; gb.glyph = Vtruncation_glyph; cachel = GLYPH_CACHEL (w, TRUN_GLYPH_INDEX); } @@ -4748,7 +4748,7 @@ /* The cursor can never be on the continuation glyph. */ data.cursor_type = NO_CURSOR; - /* data.bi_bufpos is already at the start of the next line. */ + /* data.bi_charbpos is already at the start of the next line. */ dl->line_continuation = 1; gb.glyph = Vcontinuation_glyph; @@ -4758,19 +4758,19 @@ if (end_glyph_width) add_glyph_rune (&data, &gb, BEGIN_GLYPHS, 0, cachel); - if (truncate_win && data.bi_bufpos == bi_string_zv) + if (truncate_win && data.bi_charbpos == bi_string_zv) { - const Bufbyte* endb = charptr_n_addr (string_data (s), bi_string_zv); + const Intbyte* endb = charptr_n_addr (string_data (s), bi_string_zv); DEC_CHARPTR (endb); if (charptr_emchar (endb) != '\n') { /* #### Damn this losing shit. */ - data.bi_bufpos++; + data.bi_charbpos++; } } } } - else if (data.bi_bufpos == bi_string_zv) + else if (data.bi_charbpos == bi_string_zv) { /* create_text_block () adds a bogus \n marker here which screws up subwindow display. Since we never have a cursor in the @@ -4873,18 +4873,18 @@ dl->cursor_elt = data.cursor_x; /* #### lossage lossage lossage! Fix this shit! */ - if (data.bi_bufpos > bi_string_zv) - dl->end_bufpos = buffer_or_string_bytind_to_bufpos (disp_string, bi_string_zv); + if (data.bi_charbpos > bi_string_zv) + dl->end_charbpos = buffer_or_string_bytebpos_to_charbpos (disp_string, bi_string_zv); else - dl->end_bufpos = buffer_or_string_bytind_to_bufpos (disp_string, data.bi_bufpos) - 1; + dl->end_charbpos = buffer_or_string_bytebpos_to_charbpos (disp_string, data.bi_charbpos) - 1; if (truncate_win) data.dl->num_chars = - string_column_at_point (s, dl->end_bufpos, b ? XINT (b->tab_width) : 8); + string_column_at_point (s, dl->end_charbpos, b ? XINT (b->tab_width) : 8); else /* This doesn't correctly take into account tabs and control characters but if the window isn't being truncated then this value isn't going to end up being used anyhow. */ - data.dl->num_chars = dl->end_bufpos - dl->bufpos; + data.dl->num_chars = dl->end_charbpos - dl->charbpos; /* #### handle horizontally scrolled line with text none of which was actually laid out. */ @@ -4907,10 +4907,10 @@ The main loop should get fixed so that it isn't necessary to call this function if we are already at EOB. */ - if (data.bi_bufpos == bi_string_zv && bi_start_pos == bi_string_zv) - return bytecount_to_charcount (string_data (s), data.bi_bufpos) + 1; /* Yuck! */ + if (data.bi_charbpos == bi_string_zv && bi_start_pos == bi_string_zv) + return bytecount_to_charcount (string_data (s), data.bi_charbpos) + 1; /* Yuck! */ else - return bytecount_to_charcount (string_data (s), data.bi_bufpos); + return bytecount_to_charcount (string_data (s), data.bi_charbpos); } /* Given a display line and a starting position, ensure that the @@ -4922,16 +4922,16 @@ This is very similar to generate_display_line but with the same limitations as create_string_text_block. I have taken the liberty - of fixing the bytind stuff though.*/ + of fixing the bytebpos stuff though.*/ -static Bufpos +static Charbpos generate_string_display_line (struct window *w, Lisp_Object disp_string, struct display_line *dl, - Bufpos start_pos, + Charbpos start_pos, prop_block_dynarr **prop, face_index default_face) { - Bufpos ret_bufpos; + Charbpos ret_charbpos; /* you must set bounds before calling this. */ @@ -4953,11 +4953,11 @@ dl->modeline = 0; /* Create a display block for the text region of the line. */ - ret_bufpos = create_string_text_block (w, disp_string, dl, start_pos, + ret_charbpos = create_string_text_block (w, disp_string, dl, start_pos, prop, default_face); - dl->bufpos = start_pos; - if (dl->end_bufpos < dl->bufpos) - dl->end_bufpos = dl->bufpos; + dl->charbpos = start_pos; + if (dl->end_charbpos < dl->charbpos) + dl->end_charbpos = dl->charbpos; /* If there are left glyphs associated with any character in the text block, then create a display block to handle them. */ @@ -4969,7 +4969,7 @@ if (dl->right_glyphs != NULL && Dynarr_length (dl->right_glyphs)) create_right_glyph_block (w, dl); - return ret_bufpos; + return ret_charbpos; } /* This is ripped off from regenerate_window. All we want to do is @@ -4979,7 +4979,7 @@ generate_displayable_area (struct window *w, Lisp_Object disp_string, int xpos, int ypos, int width, int height, display_line_dynarr* dla, - Bufpos start_pos, + Charbpos start_pos, face_index default_face) { int yend = ypos + height; @@ -5011,7 +5011,7 @@ { struct display_line dl; struct display_line *dlp; - Bufpos next_pos; + Charbpos next_pos; int local; if (Dynarr_length (dla) < Dynarr_largest (dla)) @@ -5085,7 +5085,7 @@ changed it to the echo area buffer. */ static void -regenerate_window (struct window *w, Bufpos start_pos, Bufpos point, int type) +regenerate_window (struct window *w, Charbpos start_pos, Charbpos point, int type) { struct frame *f = XFRAME (w->frame); struct buffer *b = XBUFFER (w->buffer); @@ -5298,7 +5298,7 @@ dla_end = Dynarr_length (cdla) - 1; \ } \ \ - start_pos = (Dynarr_atp (cdla, dla_start)->bufpos \ + start_pos = (Dynarr_atp (cdla, dla_start)->charbpos \ + Dynarr_atp (cdla, dla_start)->offset); \ /* If this isn't true, then startp has changed and we need to do a \ full regen. */ \ @@ -5320,8 +5320,8 @@ when dealing with buffer changes. */ static int -regenerate_window_extents_only_changed (struct window *w, Bufpos startp, - Bufpos pointm, +regenerate_window_extents_only_changed (struct window *w, Charbpos startp, + Charbpos pointm, Charcount beg_unchanged, Charcount end_unchanged) { @@ -5332,7 +5332,7 @@ int dla_start = 0; int dla_end, line; int first_line, last_line; - Bufpos start_pos; + Charbpos start_pos; /* Don't define this in the loop where it is used because we definitely want its value to survive between passes. */ prop_block_dynarr *prop = NULL; @@ -5396,8 +5396,8 @@ while (line <= dla_end) { struct display_line *dl = Dynarr_atp (cdla, line); - Bufpos lstart = dl->bufpos + dl->offset; - Bufpos lend = dl->end_bufpos + dl->offset; + Charbpos lstart = dl->charbpos + dl->offset; + Charbpos lend = dl->end_charbpos + dl->offset; if (beg_unchanged >= lstart && beg_unchanged <= lend) break; @@ -5431,20 +5431,20 @@ first_line = last_line = line; while (line <= dla_end) { - Bufpos old_start, old_end, new_start; + Charbpos old_start, old_end, new_start; struct display_line *cdl = Dynarr_atp (cdla, line); struct display_line *ddl = Dynarr_atp (ddla, line); struct display_block *db; int initial_size; - assert (cdl->bufpos == ddl->bufpos); - assert (cdl->end_bufpos == ddl->end_bufpos); + assert (cdl->charbpos == ddl->charbpos); + assert (cdl->end_charbpos == ddl->end_charbpos); assert (cdl->offset == ddl->offset); db = get_display_block_from_line (ddl, TEXT); initial_size = Dynarr_length (db->runes); - old_start = ddl->bufpos + ddl->offset; - old_end = ddl->end_bufpos + ddl->offset; + old_start = ddl->charbpos + ddl->offset; + old_end = ddl->end_charbpos + ddl->offset; /* If this is the first line being updated and it used propagation data, fail. Otherwise we'll be okay because @@ -5452,7 +5452,7 @@ if (line == first_line && ddl->used_prop_data) return 0; - new_start = generate_display_line (w, ddl, 0, ddl->bufpos + ddl->offset, + new_start = generate_display_line (w, ddl, 0, ddl->charbpos + ddl->offset, &prop, DESIRED_DISP); ddl->offset = 0; @@ -5475,8 +5475,8 @@ || cdl->top_clip != ddl->top_clip || (cdl->cursor_elt != -1 && ddl->cursor_elt == -1) || (cdl->cursor_elt == -1 && ddl->cursor_elt != -1) - || old_start != ddl->bufpos - || old_end != ddl->end_bufpos + || old_start != ddl->charbpos + || old_end != ddl->end_charbpos || initial_size != Dynarr_length (db->runes)) { return 0; @@ -5492,7 +5492,7 @@ /* If the extent changes end on the line we just updated then we're done. Otherwise go on to the next line. */ - if (end_unchanged <= ddl->end_bufpos) + if (end_unchanged <= ddl->end_charbpos) break; else line++; @@ -5509,8 +5509,8 @@ invariants located here. */ static int -regenerate_window_incrementally (struct window *w, Bufpos startp, - Bufpos pointm) +regenerate_window_incrementally (struct window *w, Charbpos startp, + Charbpos pointm) { struct buffer *b = XBUFFER (w->buffer); display_line_dynarr *cdla = window_display_lines (w, CURRENT_DISP); @@ -5520,7 +5520,7 @@ int dla_start = 0; int dla_end, line; - Bufpos start_pos; + Charbpos start_pos; /* If this function is called, the current and desired structures had better be identical. If they are not, then that is a bug. */ @@ -5563,8 +5563,8 @@ while (line <= dla_end) { struct display_line *dl = Dynarr_atp (cdla, line); - Bufpos lstart = dl->bufpos + dl->offset; - Bufpos lend = dl->end_bufpos + dl->offset; + Charbpos lstart = dl->charbpos + dl->offset; + Charbpos lend = dl->end_charbpos + dl->offset; if (beg_unchanged >= lstart && beg_unchanged <= lend) break; @@ -5587,13 +5587,13 @@ we fail the next thing that is going to happen is a full regen so we will actually end up being safe. */ { - Bufpos new_start; + Charbpos new_start; prop_block_dynarr *prop = NULL; struct display_line *cdl = Dynarr_atp (cdla, line); struct display_line *ddl = Dynarr_atp (ddla, line); - assert (cdl->bufpos == ddl->bufpos); - assert (cdl->end_bufpos == ddl->end_bufpos); + assert (cdl->charbpos == ddl->charbpos); + assert (cdl->end_charbpos == ddl->end_charbpos); assert (cdl->offset == ddl->offset); /* If the line continues to next display line, fail. */ @@ -5604,7 +5604,7 @@ if (ddl->used_prop_data) return 0; - new_start = generate_display_line (w, ddl, 0, ddl->bufpos + ddl->offset, + new_start = generate_display_line (w, ddl, 0, ddl->charbpos + ddl->offset, &prop, DESIRED_DISP); ddl->offset = 0; @@ -5634,7 +5634,7 @@ /* If the changed area also ends on this line, then we may be in business. Update everything and return success. */ - if (end_unchanged >= ddl->bufpos && end_unchanged <= ddl->end_bufpos) + if (end_unchanged >= ddl->charbpos && end_unchanged <= ddl->end_charbpos) { w->last_modified[DESIRED_DISP] = make_int (BUF_MODIFF (b)); w->last_facechange[DESIRED_DISP] = make_int (BUF_FACECHANGE (b)); @@ -5679,8 +5679,8 @@ the line because we checked before entering the loop. */ if (extent_beg_unchanged != -1 && extent_end_unchanged != -1 - && ((extent_beg_unchanged < ddl->bufpos) - || (extent_end_unchanged > ddl->end_bufpos))) + && ((extent_beg_unchanged < ddl->charbpos) + || (extent_end_unchanged > ddl->end_charbpos))) return regenerate_window_extents_only_changed (w, startp, pointm, extent_beg_unchanged, extent_end_unchanged); @@ -5697,10 +5697,10 @@ that point is displayed in the middle of the window. Return the window's new start position. */ -static Bufpos -regenerate_window_point_center (struct window *w, Bufpos point, int type) +static Charbpos +regenerate_window_point_center (struct window *w, Charbpos point, int type) { - Bufpos startp; + Charbpos startp; /* We need to make sure that the modeline is generated so that the window height can be calculated correctly. */ @@ -5717,7 +5717,7 @@ indicating whether the given point is contained within. */ static int -point_visible (struct window *w, Bufpos point, int type) +point_visible (struct window *w, Charbpos point, int type) { struct buffer *b = XBUFFER (w->buffer); display_line_dynarr *dla = window_display_lines (w, type); @@ -5730,10 +5730,10 @@ if (Dynarr_length (dla) > first_line) { - Bufpos start, end; + Charbpos start, end; struct display_line *dl = Dynarr_atp (dla, first_line); - start = dl->bufpos; + start = dl->charbpos; end = BUF_Z (b) - w->window_end_pos[type] - 1; if (point >= start && point <= end) @@ -5742,8 +5742,8 @@ { dl = Dynarr_atp (dla, Dynarr_length (dla) - 1); - if (point >= (dl->bufpos + dl->offset) - && point <= (dl->end_bufpos + dl->offset)) + if (point >= (dl->charbpos + dl->offset) + && point <= (dl->end_charbpos + dl->offset)) return !dl->clip; else return 1; @@ -5771,7 +5771,7 @@ window W for display lines TYPE. */ int -line_at_center (struct window *w, int type, Bufpos start, Bufpos point) +line_at_center (struct window *w, int type, Charbpos start, Charbpos point) { display_line_dynarr *dla; int half; @@ -5801,8 +5801,8 @@ /* Return a value for point that would place it at the beginning of the line which is in the middle of the window. */ -Bufpos -point_at_center (struct window *w, int type, Bufpos start, Bufpos point) +Charbpos +point_at_center (struct window *w, int type, Charbpos start, Charbpos point) { /* line_at_center will regenerate the display structures, if necessary. */ int line = line_at_center (w, type, start, point); @@ -5814,7 +5814,7 @@ display_line_dynarr *dla = window_display_lines (w, type); struct display_line *dl = Dynarr_atp (dla, line); - return dl->bufpos; + return dl->charbpos; } } @@ -6165,8 +6165,8 @@ if (!skip_output) { - Bufpos start = marker_position (w->start[DESIRED_DISP]); - Bufpos end = (w->window_end_pos[DESIRED_DISP] == -1 + Charbpos start = marker_position (w->start[DESIRED_DISP]); + Charbpos end = (w->window_end_pos[DESIRED_DISP] == -1 ? BUF_ZV (b) : BUF_Z (b) - w->window_end_pos[DESIRED_DISP] - 1); /* Don't pollute the cache if not sure if we are correct */ @@ -6235,13 +6235,13 @@ static int call_redisplay_end_triggers (struct window *w, void *closure) { - Bufpos lrpos = w->last_redisplay_pos; + Charbpos lrpos = w->last_redisplay_pos; w->last_redisplay_pos = 0; if (!NILP (w->buffer) && !NILP (w->redisplay_end_trigger) && lrpos > 0) { - Bufpos pos; + Charbpos pos; if (MARKERP (w->redisplay_end_trigger) && XMARKER (w->redisplay_end_trigger)->buffer != 0) @@ -6639,7 +6639,7 @@ /* Be careful in the order of these tests. The first clause will fail if DEVICE_SELECTED_FRAME == Qnil (since w->frame cannot be). This can occur when the frame title is computed really early */ - Bufpos pos = + Charbpos pos = ((EQ(DEVICE_SELECTED_FRAME(d), w->frame) && (w == XWINDOW (FRAME_SELECTED_WINDOW (device_selected_frame(d)))) && EQ(DEVICE_CONSOLE(d), Vselected_console) && @@ -6662,7 +6662,7 @@ /* Given a character representing an object in a modeline specification, return a string (stored into the global array - `mode_spec_bufbyte_string') with the information that object + `mode_spec_intbyte_string') with the information that object represents. This function is largely unchanged from previous versions of the @@ -6679,7 +6679,7 @@ const char *str = NULL; struct buffer *b = XBUFFER (w->buffer); - Dynarr_reset (mode_spec_bufbyte_string); + Dynarr_reset (mode_spec_intbyte_string); switch (spec) { @@ -6696,7 +6696,7 @@ /* print the current column */ case 'c': { - Bufpos pt = (w == XWINDOW (Fselected_window (Qnil))) + Charbpos pt = (w == XWINDOW (Fselected_window (Qnil))) ? BUF_PT (b) : marker_position (w->pointm[type]); int col = column_at_point (b, pt, 1) + !!column_number_start_at_one; @@ -6704,8 +6704,8 @@ long_to_string (buf, col); - Dynarr_add_many (mode_spec_bufbyte_string, - (const Bufbyte *) buf, strlen (buf)); + Dynarr_add_many (mode_spec_intbyte_string, + (const Intbyte *) buf, strlen (buf)); goto decode_mode_spec_done; } @@ -6809,7 +6809,7 @@ /* print percent of buffer above top of window, or Top, Bot or All */ case 'p': { - Bufpos pos = marker_position (w->start[type]); + Charbpos pos = marker_position (w->start[type]); /* This had better be while the desired lines are being done. */ if (w->window_end_pos[type] <= BUF_Z (b) - BUF_ZV (b)) @@ -6840,7 +6840,7 @@ percent = 99; sprintf (buf, "%d%%", percent); - Dynarr_add_many (mode_spec_bufbyte_string, (Bufbyte *) buf, + Dynarr_add_many (mode_spec_intbyte_string, (Intbyte *) buf, strlen (buf)); goto decode_mode_spec_done; @@ -6852,8 +6852,8 @@ Top, or print Bottom or All */ case 'P': { - Bufpos toppos = marker_position (w->start[type]); - Bufpos botpos = BUF_Z (b) - w->window_end_pos[type]; + Charbpos toppos = marker_position (w->start[type]); + Charbpos botpos = BUF_Z (b) - w->window_end_pos[type]; /* botpos is only accurate as of the last redisplay, so we can only treat it as a hint. In particular, after erase-buffer, @@ -6891,7 +6891,7 @@ else sprintf (buf, "%d%%", percent); - Dynarr_add_many (mode_spec_bufbyte_string, (Bufbyte *) buf, + Dynarr_add_many (mode_spec_intbyte_string, (Intbyte *) buf, strlen (buf)); goto decode_mode_spec_done; @@ -6916,7 +6916,7 @@ } for (i = 0; i < command_loop_level; i++) - Dynarr_add (mode_spec_bufbyte_string, '['); + Dynarr_add (mode_spec_intbyte_string, '['); goto decode_mode_spec_done; } @@ -6933,7 +6933,7 @@ } for (i = 0; i < command_loop_level; i++) - Dynarr_add (mode_spec_bufbyte_string, ']'); + Dynarr_add (mode_spec_intbyte_string, ']'); goto decode_mode_spec_done; } @@ -6945,14 +6945,14 @@ } if (STRINGP (obj)) - Dynarr_add_many (mode_spec_bufbyte_string, + Dynarr_add_many (mode_spec_intbyte_string, XSTRING_DATA (obj), XSTRING_LENGTH (obj)); else if (str) - Dynarr_add_many (mode_spec_bufbyte_string, (Bufbyte *) str, strlen (str)); + Dynarr_add_many (mode_spec_intbyte_string, (Intbyte *) str, strlen (str)); decode_mode_spec_done: - Dynarr_add (mode_spec_bufbyte_string, '\0'); + Dynarr_add (mode_spec_intbyte_string, '\0'); } /* Given a display line, free all of its data structures. */ @@ -7162,8 +7162,8 @@ { struct line_start_cache lsc; - lsc.start = dl->bufpos; - lsc.end = dl->end_bufpos; + lsc.start = dl->charbpos; + lsc.end = dl->end_charbpos; lsc.height = dl->ascent + dl->descent; Dynarr_add (internal_cache, lsc); @@ -7206,7 +7206,7 @@ window's cache, or -1 if the cache is empty. Assumes that the cache is valid. */ -static Bufpos +static Charbpos line_start_cache_start (struct window *w) { line_start_cache_dynarr *cache = w->line_start_cache; @@ -7221,7 +7221,7 @@ window's cache, or -1 if the cache is empty. Assumes that the cache is valid. */ -static Bufpos +static Charbpos line_start_cache_end (struct window *w) { line_start_cache_dynarr *cache = w->line_start_cache; @@ -7242,7 +7242,7 @@ for any reason. */ int -point_in_line_start_cache (struct window *w, Bufpos point, int min_past) +point_in_line_start_cache (struct window *w, Charbpos point, int min_past) { struct buffer *b = XBUFFER (w->buffer); line_start_cache_dynarr *cache = w->line_start_cache; @@ -7271,8 +7271,8 @@ if (!Dynarr_length (cache)) { - Bufpos from = find_next_newline_no_quit (b, point, -1); - Bufpos to = find_next_newline_no_quit (b, from, win_char_height); + Charbpos from = find_next_newline_no_quit (b, point, -1); + Charbpos to = find_next_newline_no_quit (b, from, win_char_height); update_line_start_cache (w, from, to, point, 0); @@ -7289,7 +7289,7 @@ while (line_start_cache_start (w) > point && (loop < cache_adjustment || min_past == -1)) { - Bufpos from, to; + Charbpos from, to; from = line_start_cache_start (w); if (from <= BUF_BEGV (b)) @@ -7304,7 +7304,7 @@ if (line_start_cache_start (w) > point) { - Bufpos from, to; + Charbpos from, to; from = find_next_newline_no_quit (b, point, -1); if (from >= BUF_ZV (b)) @@ -7323,7 +7323,7 @@ while (line_start_cache_end (w) < point && (loop < cache_adjustment || min_past == -1)) { - Bufpos from, to; + Charbpos from, to; to = line_start_cache_end (w); if (to >= BUF_ZV (b)) @@ -7338,7 +7338,7 @@ if (line_start_cache_end (w) < point) { - Bufpos from, to; + Charbpos from, to; from = find_next_newline_no_quit (b, point, -1); if (from >= BUF_ZV (b)) @@ -7375,7 +7375,7 @@ while (1) { int new_pos; - Bufpos start, end; + Charbpos start, end; pos = (bottom + top + 1) >> 1; start = Dynarr_atp (cache, pos)->start; @@ -7385,10 +7385,10 @@ { if (pos < min_past && line_start_cache_start (w) > BUF_BEGV (b)) { - Bufpos from = + Charbpos from = find_next_newline_no_quit (b, line_start_cache_start (w), -min_past - 1); - Bufpos to = line_start_cache_end (w); + Charbpos to = line_start_cache_end (w); update_line_start_cache (w, from, to, point, 0); goto find_point_loop; @@ -7396,8 +7396,8 @@ else if ((Dynarr_length (cache) - pos - 1) < min_past && line_start_cache_end (w) < BUF_ZV (b)) { - Bufpos from = line_start_cache_end (w); - Bufpos to = find_next_newline_no_quit (b, from, + Charbpos from = line_start_cache_end (w); + Charbpos to = find_next_newline_no_quit (b, from, (min_past ? min_past : 1)); @@ -7431,7 +7431,7 @@ if display of the window was to begin at STARTP. */ int -point_would_be_visible (struct window *w, Bufpos startp, Bufpos point) +point_would_be_visible (struct window *w, Charbpos startp, Charbpos point) { struct buffer *b = XBUFFER (w->buffer); int pixpos = -WINDOW_TEXT_TOP_CLIP(w); @@ -7468,7 +7468,7 @@ /* Expand the cache if necessary. */ if (start_elt == Dynarr_length (w->line_start_cache)) { - Bufpos old_startp = + Charbpos old_startp = Dynarr_atp (w->line_start_cache, start_elt - 1)->start; start_elt = point_in_line_start_cache (w, old_startp, @@ -7522,15 +7522,15 @@ #### With a little work this could probably be reworked as just a call to start_with_line_at_pixpos. */ -static Bufpos -start_end_of_last_line (struct window *w, Bufpos startp, int end, +static Charbpos +start_end_of_last_line (struct window *w, Charbpos startp, int end, int may_error) { struct buffer *b = XBUFFER (w->buffer); line_start_cache_dynarr *cache = w->line_start_cache; int pixpos = 0; int bottom = WINDOW_TEXT_HEIGHT (w); - Bufpos cur_start; + Charbpos cur_start; int start_elt; validate_line_start_cache (w); @@ -7580,9 +7580,9 @@ start_elt++; if (start_elt == Dynarr_length (cache)) { - Bufpos from = line_start_cache_end (w); + Charbpos from = line_start_cache_end (w); int win_char_height = window_char_height (w, 0); - Bufpos to = find_next_newline_no_quit (b, from, + Charbpos to = find_next_newline_no_quit (b, from, (win_char_height ? win_char_height : 1)); @@ -7605,8 +7605,8 @@ /* For the given window W, if display starts at STARTP, what will be the buffer position at the beginning of the last line displayed. */ -Bufpos -start_of_last_line (struct window *w, Bufpos startp) +Charbpos +start_of_last_line (struct window *w, Charbpos startp) { return start_end_of_last_line (w, startp, 0 , 0); } @@ -7615,14 +7615,14 @@ the buffer position at the end of the last line displayed. This is also know as the window end position. */ -Bufpos -end_of_last_line (struct window *w, Bufpos startp) +Charbpos +end_of_last_line (struct window *w, Charbpos startp) { return start_end_of_last_line (w, startp, 1, 0); } -static Bufpos -end_of_last_line_may_error (struct window *w, Bufpos startp) +static Charbpos +end_of_last_line_may_error (struct window *w, Charbpos startp) { return start_end_of_last_line (w, startp, 1, 1); } @@ -7631,12 +7631,12 @@ /* For window W, what does the starting position have to be so that the line containing POINT will cover pixel position PIXPOS. */ -Bufpos -start_with_line_at_pixpos (struct window *w, Bufpos point, int pixpos) +Charbpos +start_with_line_at_pixpos (struct window *w, Charbpos point, int pixpos) { struct buffer *b = XBUFFER (w->buffer); int cur_elt; - Bufpos cur_pos, prev_pos = point; + Charbpos cur_pos, prev_pos = point; int point_line_height; int pixheight = pixpos - WINDOW_TEXT_TOP (w); @@ -7675,7 +7675,7 @@ cur_elt--; while (cur_elt < 0) { - Bufpos from, to; + Charbpos from, to; int win_char_height; if (cur_pos <= BUF_BEGV (b)) @@ -7719,8 +7719,8 @@ considered to be the number of lines from the bottom (-1 is the bottom line). */ -Bufpos -start_with_point_on_display_line (struct window *w, Bufpos point, int line) +Charbpos +start_with_point_on_display_line (struct window *w, Charbpos point, int line) { validate_line_start_cache (w); w->line_cache_validation_override++; @@ -7745,7 +7745,7 @@ int new_line = -line - 1; int cur_elt = point_in_line_start_cache (w, point, new_line); int pixpos = WINDOW_TEXT_BOTTOM (w); - Bufpos retval, search_point; + Charbpos retval, search_point; /* If scroll_on_clipped_lines is false, the last "visible" line of the window covers the pixel at WINDOW_TEXT_BOTTOM (w) - 1. @@ -7802,12 +7802,12 @@ overhead for too little gain. */ static void -update_line_start_cache (struct window *w, Bufpos from, Bufpos to, - Bufpos point, int no_regen) +update_line_start_cache (struct window *w, Charbpos from, Charbpos to, + Charbpos point, int no_regen) { struct buffer *b = XBUFFER (w->buffer); line_start_cache_dynarr *cache = w->line_start_cache; - Bufpos low_bound, high_bound; + Charbpos low_bound, high_bound; validate_line_start_cache (w); w->line_cache_validation_override++; @@ -7854,7 +7854,7 @@ to follow what's going on by having it separate. */ if (no_regen) { - Bufpos start, end; + Charbpos start, end; update_internal_cache_list (w, DESIRED_DISP); if (!Dynarr_length (internal_cache)) @@ -7955,14 +7955,14 @@ if (!Dynarr_length (cache) || from < low_bound) { - Bufpos startp = find_next_newline_no_quit (b, from, -1); + Charbpos startp = find_next_newline_no_quit (b, from, -1); int marker = 0; int old_lb = low_bound; while (startp < old_lb || low_bound == -1) { int ic_elt; - Bufpos new_startp; + Charbpos new_startp; regenerate_window (w, startp, point, CMOTION_DISP); update_internal_cache_list (w, CMOTION_DISP); @@ -8031,7 +8031,7 @@ if (to > high_bound) { - Bufpos startp = Dynarr_atp (cache, Dynarr_length (cache) - 1)->end + 1; + Charbpos startp = Dynarr_atp (cache, Dynarr_length (cache) - 1)->end + 1; do { @@ -8218,7 +8218,7 @@ d->pixel_to_glyph_cache.obj_x = *obj_x; \ d->pixel_to_glyph_cache.obj_y = *obj_y; \ d->pixel_to_glyph_cache.w = *w; \ - d->pixel_to_glyph_cache.bufpos = *bufpos; \ + d->pixel_to_glyph_cache.charbpos = *charbpos; \ d->pixel_to_glyph_cache.closest = *closest; \ d->pixel_to_glyph_cache.modeline_closest = *modeline_closest; \ d->pixel_to_glyph_cache.obj1 = *obj1; \ @@ -8262,8 +8262,8 @@ int pixel_to_glyph_translation (struct frame *f, int x_coord, int y_coord, int *col, int *row, int *obj_x, int *obj_y, - struct window **w, Bufpos *bufpos, - Bufpos *closest, Charcount *modeline_closest, + struct window **w, Charbpos *charbpos, + Charbpos *closest, Charcount *modeline_closest, Lisp_Object *obj1, Lisp_Object *obj2) { struct device *d; @@ -8301,7 +8301,7 @@ *obj_x = cache->obj_x; *obj_y = cache->obj_y; *w = cache->w; - *bufpos = cache->bufpos; + *charbpos = cache->charbpos; *closest = cache->closest; *modeline_closest = cache->modeline_closest; *obj1 = cache->obj1; @@ -8316,7 +8316,7 @@ *obj_x = 0; *obj_y = 0; *w = 0; - *bufpos = 0; + *charbpos = 0; *closest = 0; *modeline_closest = -1; *obj1 = Qnil; @@ -8543,20 +8543,20 @@ if (x_check <= left_bound) { if (dl->modeline) - *modeline_closest = Dynarr_atp (db->runes, 0)->bufpos; + *modeline_closest = Dynarr_atp (db->runes, 0)->charbpos; else - *closest = Dynarr_atp (db->runes, 0)->bufpos; + *closest = Dynarr_atp (db->runes, 0)->charbpos; } else { if (dl->modeline) *modeline_closest = Dynarr_atp (db->runes, - Dynarr_length (db->runes) - 1)->bufpos; + Dynarr_length (db->runes) - 1)->charbpos; else *closest = Dynarr_atp (db->runes, - Dynarr_length (db->runes) - 1)->bufpos; + Dynarr_length (db->runes) - 1)->charbpos; } if (dl->modeline) @@ -8611,7 +8611,7 @@ rb = Dynarr_atp (db->runes, *col); } - *bufpos = rb->bufpos + dl->offset; + *charbpos = rb->charbpos + dl->offset; low_x_coord = rb->xpos; high_x_coord = rb->xpos + rb->width; @@ -8626,11 +8626,11 @@ { if (dl->modeline) *modeline_closest = - (Dynarr_atp (db->runes, elt)->bufpos + + (Dynarr_atp (db->runes, elt)->charbpos + dl->offset); else *closest = - (Dynarr_atp (db->runes, elt)->bufpos + + (Dynarr_atp (db->runes, elt)->charbpos + dl->offset); break; } @@ -8644,18 +8644,18 @@ if (elt == Dynarr_length (db->runes)) { if (dl->modeline) - *modeline_closest = dl->end_bufpos + dl->offset; + *modeline_closest = dl->end_charbpos + dl->offset; else - *closest = dl->end_bufpos + dl->offset; + *closest = dl->end_charbpos + dl->offset; really_over_nothing = 1; } } else { if (dl->modeline) - *modeline_closest = rb->bufpos + dl->offset; + *modeline_closest = rb->charbpos + dl->offset; else - *closest = rb->bufpos + dl->offset; + *closest = rb->charbpos + dl->offset; } if (dl->modeline) @@ -9124,8 +9124,8 @@ { if (!cmotion_display_lines) cmotion_display_lines = Dynarr_new (display_line); - if (!mode_spec_bufbyte_string) - mode_spec_bufbyte_string = Dynarr_new (Bufbyte); + if (!mode_spec_intbyte_string) + mode_spec_intbyte_string = Dynarr_new (Intbyte); if (!formatted_string_extent_dynarr) formatted_string_extent_dynarr = Dynarr_new (EXTENT); if (!formatted_string_extent_start_dynarr) diff --text -u 'xemacs-21.5.3/src/redisplay.h' 'xemacs-21.5.4/src/redisplay.h' Index: ././src/redisplay.h --- ././src/redisplay.h Mon Jun 18 16:10:27 2001 +++ ././src/redisplay.h Thu Sep 20 15:29:12 2001 @@ -50,7 +50,7 @@ typedef struct line_start_cache line_start_cache; struct line_start_cache { - Bufpos start, end; + Charbpos start, end; int height; }; @@ -112,10 +112,10 @@ each of the face properties in this particular window. */ - Bufpos bufpos; /* buffer position this rune is displaying; + Charbpos charbpos; /* buffer position this rune is displaying; for the modeline, the value here is a Charcount, but who's looking? */ - Bufpos endpos; /* if set this rune covers a range of pos */ + Charbpos endpos; /* if set this rune covers a range of pos */ /* #### Chuck, what does it mean for a rune to cover a range of pos? I don't get this. */ @@ -257,7 +257,7 @@ /* Modeline commentary: IMO the modeline is handled very badly, we special case virtually *everything* in the redisplay routines for - the modeline. The fact that dl->bufpos can be either a buffer + the modeline. The fact that dl->charbpos can be either a buffer position or a char count highlights this. There is no abstraction at all that I can find and it means that the code is made very ugly as a result. Either we should treat the modeline *entirely* separately, @@ -293,9 +293,9 @@ in pixels.*/ unsigned short top_clip; /* amount of top of line to clip in pixels.*/ - Bufpos bufpos; /* first buffer position on line */ - Bufpos end_bufpos; /* last buffer position on line */ - Charcount offset; /* adjustment to bufpos vals */ + Charbpos charbpos; /* first buffer position on line */ + Charbpos end_charbpos; /* last buffer position on line */ + Charcount offset; /* adjustment to charbpos vals */ Charcount num_chars; /* # of chars on line including expansion of tabs and control chars */ @@ -383,13 +383,13 @@ }; /* NOTE NOTE NOTE: Currently the positions in an extent fragment - structure are Bytind's, not Bufpos's. This could change. */ + structure are Bytebpos's, not Charbpos's. This could change. */ struct extent_fragment { Lisp_Object object; /* buffer or string */ struct frame *frm; - Bytind pos, end; + Bytebpos pos, end; EXTENT_dynarr *extents; glyph_block_dynarr *begin_glyphs, *end_glyphs; unsigned int invisible:1; @@ -681,11 +681,11 @@ EXFUN (Fredraw_frame, 2); int redisplay_text_width_string (struct window *w, int findex, - Bufbyte *nonreloc, Lisp_Object reloc, + Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount len); int redisplay_frame_text_width_string (struct frame *f, Lisp_Object face, - Bufbyte *nonreloc, + Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount len); int redisplay_frame (struct frame *f, int preemption_check); @@ -694,9 +694,9 @@ enum display_type type); layout_bounds calculate_display_line_boundaries (struct window *w, int modeline); -Bufpos point_at_center (struct window *w, int type, Bufpos start, - Bufpos point); -int line_at_center (struct window *w, int type, Bufpos start, Bufpos point); +Charbpos point_at_center (struct window *w, int type, Charbpos start, + Charbpos point); +int line_at_center (struct window *w, int type, Charbpos start, Charbpos point); int window_half_pixpos (struct window *w); void redisplay_echo_area (void); void free_display_structs (struct window_mirror *mir); @@ -705,7 +705,7 @@ void generate_displayable_area (struct window *w, Lisp_Object disp_string, int xpos, int ypos, int width, int height, display_line_dynarr* dl, - Bufpos start_pos, face_index default_face); + Charbpos start_pos, face_index default_face); /* `generate_title_string' in frame.c needs this */ void generate_formatted_string_db (Lisp_Object format_str, Lisp_Object result_str, @@ -718,20 +718,20 @@ int pixel_to_glyph_translation (struct frame *f, int x_coord, int y_coord, int *col, int *row, int *obj_x, int *obj_y, - struct window **w, Bufpos *bufpos, - Bufpos *closest, Charcount *modeline_closest, + struct window **w, Charbpos *charbpos, + Charbpos *closest, Charcount *modeline_closest, Lisp_Object *obj1, Lisp_Object *obj2); void glyph_to_pixel_translation (struct window *w, int char_x, int char_y, int *pix_x, int *pix_y); -int point_in_line_start_cache (struct window *w, Bufpos point, +int point_in_line_start_cache (struct window *w, Charbpos point, int min_past); -int point_would_be_visible (struct window *w, Bufpos startp, - Bufpos point); -Bufpos start_of_last_line (struct window *w, Bufpos startp); -Bufpos end_of_last_line (struct window *w, Bufpos startp); -Bufpos start_with_line_at_pixpos (struct window *w, Bufpos point, +int point_would_be_visible (struct window *w, Charbpos startp, + Charbpos point); +Charbpos start_of_last_line (struct window *w, Charbpos startp); +Charbpos end_of_last_line (struct window *w, Charbpos startp); +Charbpos start_with_line_at_pixpos (struct window *w, Charbpos point, int pixpos); -Bufpos start_with_point_on_display_line (struct window *w, Bufpos point, +Charbpos start_with_point_on_display_line (struct window *w, Charbpos point, int line); int redisplay_variable_changed (Lisp_Object sym, Lisp_Object *val, Lisp_Object in_object, int flags); @@ -791,7 +791,7 @@ int last_line, int update_values); void redisplay_output_window (struct window *w); void bevel_modeline (struct window *w, struct display_line *dl); -int redisplay_move_cursor (struct window *w, Bufpos new_point, +int redisplay_move_cursor (struct window *w, Charbpos new_point, int no_output_end); void redisplay_redraw_cursor (struct frame *f, int run_begin_end_meths); void output_display_line (struct window *w, display_line_dynarr *cdla, diff --text -u 'xemacs-21.5.3/src/regex.c' 'xemacs-21.5.4/src/regex.c' Index: ././src/regex.c --- ././src/regex.c Tue Aug 14 06:45:57 2001 +++ ././src/regex.c Thu Sep 20 15:29:12 2001 @@ -1167,8 +1167,8 @@ typedef struct { fail_stack_elt_t *stack; - Element_Count size; - Element_Count avail; /* Offset of next open position. */ + Elemcount size; + Elemcount avail; /* Offset of next open position. */ } fail_stack_type; #define FAIL_STACK_EMPTY() (fail_stack.avail == 0) @@ -1551,7 +1551,7 @@ #define PATFETCH_EXTENDED(emch) \ do {if (p == pend) return REG_EEND; \ assert (p < pend); \ - emch = charptr_emchar ((const Bufbyte *) p); \ + emch = charptr_emchar ((const Intbyte *) p); \ INC_CHARPTR (p); \ if (TRANSLATE_P (translate) && emch < 0x80) \ emch = (Emchar) (unsigned char) RE_TRANSLATE (emch); \ @@ -1560,7 +1560,7 @@ #define PATFETCH_RAW_EXTENDED(emch) \ do {if (p == pend) return REG_EEND; \ assert (p < pend); \ - emch = charptr_emchar ((const Bufbyte *) p); \ + emch = charptr_emchar ((const Intbyte *) p); \ INC_CHARPTR (p); \ } while (0) @@ -3182,7 +3182,7 @@ #else { Bytecount bt_count; - Bufbyte tmp_buf[MAX_EMCHAR_LEN]; + Intbyte tmp_buf[MAX_EMCHAR_LEN]; int i; bt_count = set_charptr_emchar (tmp_buf, c); @@ -3443,12 +3443,12 @@ reg_syntax_t syntax, Lisp_Object rtab) { Emchar this_char, range_start, range_end; - const Bufbyte *p; + const Intbyte *p; if (*p_ptr == pend) return REG_ERANGE; - p = (const Bufbyte *) *p_ptr; + p = (const Intbyte *) *p_ptr; range_end = charptr_emchar (p); p--; /* back to '-' */ DEC_CHARPTR (p); /* back to start of range */ @@ -3632,7 +3632,7 @@ EMACS_INT first, last; Lisp_Object dummy_val; int jj; - Bufbyte strr[MAX_EMCHAR_LEN]; + Intbyte strr[MAX_EMCHAR_LEN]; unified_range_table_get_range (p, i, &first, &last, &dummy_val); @@ -4963,7 +4963,7 @@ DEBUG_PRINT2 ("EXECUTING charset_mule%s.\n", not_p ? "_not" : ""); REGEX_PREFETCH (); - c = charptr_emchar ((const Bufbyte *) d); + c = charptr_emchar ((const Intbyte *) d); c = TRANSLATE_EXTENDED_UNSAFE (c); /* The character to match. */ if (EQ (Qt, unified_range_table_lookup (p, c, Qnil))) @@ -5821,7 +5821,7 @@ } #endif - emch = charptr_emchar ((const Bufbyte *) d); + emch = charptr_emchar ((const Intbyte *) d); matches = (SYNTAX_FROM_CACHE (regex_emacs_buffer->mirror_syntax_table, emch) == (enum syntaxcode) mcnt); INC_CHARPTR (d); @@ -5853,7 +5853,7 @@ mcnt = *p++; REGEX_PREFETCH (); - emch = charptr_emchar ((const Bufbyte *) d); + emch = charptr_emchar ((const Intbyte *) d); INC_CHARPTR (d); if (check_category_char(emch, regex_emacs_buffer->category_table, mcnt, should_succeed)) @@ -6498,7 +6498,7 @@ size_t errbuf_size) { const char *msg; - Memory_Count msg_size; + Bytecount msg_size; if (errcode < 0 || errcode >= (int) (sizeof (re_error_msgid) / @@ -6515,7 +6515,7 @@ if (errbuf_size != 0) { - if (msg_size > (Memory_Count) errbuf_size) + if (msg_size > (Bytecount) errbuf_size) { strncpy (errbuf, msg, errbuf_size - 1); errbuf[errbuf_size - 1] = 0; diff --text -u 'xemacs-21.5.3/src/regex.h' 'xemacs-21.5.4/src/regex.h' Index: ././src/regex.h --- ././src/regex.h Mon Aug 13 13:46:39 2001 +++ ././src/regex.h Thu Sep 20 15:29:12 2001 @@ -27,8 +27,8 @@ #define RE_TRANSLATE_TYPE Lisp_Object #else #define RE_TRANSLATE_TYPE char * -#define Element_Count ssize_t -#define Memory_Count ssize_t +#define Elemcount ssize_t +#define Bytecount ssize_t #endif /* emacs */ /* POSIX says that must be included (by the caller) before diff --text -u 'xemacs-21.5.3/src/scrollbar-gtk.h' 'xemacs-21.5.4/src/scrollbar-gtk.h' Index: ././src/scrollbar-gtk.h --- ././src/scrollbar-gtk.h Fri Apr 13 03:24:16 2001 +++ ././src/scrollbar-gtk.h Thu Sep 20 15:29:13 2001 @@ -60,7 +60,7 @@ /* Recorded starting position for Motif-like scrollbar drags. */ int vdrag_orig_value; - Bufpos vdrag_orig_window_start; + Charbpos vdrag_orig_window_start; }; #define SCROLLBAR_GTK_DATA(i) ((struct gtk_scrollbar_data *) ((i)->scrollbar_data)) diff --text -u 'xemacs-21.5.3/src/scrollbar-msw.c' 'xemacs-21.5.4/src/scrollbar-msw.c' Index: ././src/scrollbar-msw.c --- ././src/scrollbar-msw.c Mon Jun 18 16:10:28 2001 +++ ././src/scrollbar-msw.c Thu Dec 20 14:49:48 2001 @@ -3,6 +3,7 @@ Copyright (C) 1994 Amdahl Corporation. Copyright (C) 1995 Sun Microsystems, Inc. Copyright (C) 1995 Darrell Kindred . + Copyright (C) 2001 Ben Wing. This file is part of XEmacs. @@ -43,6 +44,7 @@ #define VERTICAL_SCROLLBAR_DRAG_HACK static int vertical_drag_in_progress = 0; +extern Lisp_Object mswindows_find_frame (HWND hwnd); /* As long as the HWND is around, the scrollbar instance must be GC-protected. We have gotten crashes, apparently from trying to access a dead, freed @@ -218,14 +220,25 @@ assert (OPAQUE_PTRP (ptr)); ptr = Fgethash (ptr, Vmswindows_scrollbar_instance_table, Qnil); sb = XSCROLLBAR_INSTANCE (ptr); - win = real_window (sb->mirror, 0); + /* #### we're still hitting an abort here with 0 as the second + parameter, although only occasionally. It seems that sometimes we + receive events for scrollbars that don't exist anymore. I assume + it must happen like this: The user does something that causes a + scrollbar to disappear (e.g. Alt-TAB, causing recomputation of + everything in the new frame) and then immediately uses the mouse + wheel, generating scrollbar events. Both events get posted before + we have a chance to process them, and in processing the first, the + scrollbar mentioned in the second disappears. */ + win = real_window (sb->mirror, 1); + if (NILP (win)) + return; frame = WINDOW_FRAME (XWINDOW (win)); f = XFRAME (frame); } - /* SB_LINEDOWN == SB_CHARLEFT etc. This is the way they will - always be -- any Windows is binary compatible backward with - old programs. */ + /* SB_LINEDOWN == SB_CHARLEFT etc. This is the way they will + always be - any Windows is binary compatible backward with + old programs */ switch (code) { @@ -317,40 +330,45 @@ { 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; + Charbpos 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; - - 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); - } - 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 --text -u 'xemacs-21.5.3/src/scrollbar-x.h' 'xemacs-21.5.4/src/scrollbar-x.h' Index: ././src/scrollbar-x.h --- ././src/scrollbar-x.h Fri Apr 13 03:24:17 2001 +++ ././src/scrollbar-x.h Thu Sep 20 15:29:13 2001 @@ -46,7 +46,7 @@ defined (LWLIB_SCROLLBARS_ATHENA3D) /* Recorded starting position for Motif-like scrollbar drags. */ int vdrag_orig_value; - Bufpos vdrag_orig_window_start; + Charbpos vdrag_orig_window_start; #endif }; diff --text -u 'xemacs-21.5.3/src/scrollbar.c' 'xemacs-21.5.4/src/scrollbar.c' Index: ././src/scrollbar.c --- ././src/scrollbar.c Mon Jun 18 16:10:28 2001 +++ ././src/scrollbar.c Thu Sep 20 15:29:13 2001 @@ -375,10 +375,10 @@ * return w->start. If flag, then return beginning point of line * which w->sb_point lies on. */ -static Bufpos +static Charbpos scrollbar_point (struct window *w, int flag) { - Bufpos start_pos, end_pos, sb_pos; + Charbpos start_pos, end_pos, sb_pos; Lisp_Object buf; struct buffer *b; @@ -420,7 +420,7 @@ struct frame *f = XFRAME (w->frame); struct device *d = XDEVICE (f->device); struct buffer *b = XBUFFER (w->buffer); - Bufpos start_pos, end_pos, sb_pos; + Charbpos start_pos, end_pos, sb_pos; int scrollbar_width = window_scrollbar_width (w); int scrollbar_height = window_scrollbar_height (w); @@ -665,8 +665,8 @@ accurate. We know this because either set-window-start or recenter was called immediately prior to it being called. */ Lisp_Object buf; - Bufpos start_pos = XINT (Fwindow_start (win)); - Bufpos ptint = XINT (orig_pt); + Charbpos start_pos = XINT (Fwindow_start (win)); + Charbpos ptint = XINT (orig_pt); struct window *w = XWINDOW (win); int selected = ((w == XWINDOW (Fselected_window (XFRAME (w->frame)->device))) ? 1 @@ -692,7 +692,7 @@ else { /* #### Taken from forward-line. */ - Bufpos pos; + Charbpos pos; pos = find_next_newline (XBUFFER (buf), marker_position (w->pointm[CURRENT_DISP]), @@ -759,7 +759,7 @@ window_scroll (window, Qnil, -1, ERROR_ME_NOT); else { - Bufpos bufpos; + Charbpos charbpos; Lisp_Object value = Fcdr (object); CHECK_INT (value); @@ -768,9 +768,9 @@ rather than the window's point. #### It does? Why does it take a window argument then? */ - bufpos = vmotion (XWINDOW (window), XINT (Fwindow_point (window)), + charbpos = vmotion (XWINDOW (window), XINT (Fwindow_point (window)), XINT (value), 0); - Fset_window_point (window, make_int (bufpos)); + Fset_window_point (window, make_int (charbpos)); Fcenter_to_window_line (Qzero, window); } @@ -852,7 +852,7 @@ */ (object)) { - Bufpos start_pos; + Charbpos start_pos; Lisp_Object orig_pt; Lisp_Object window = Fcar (object); Lisp_Object value = Fcdr (object); diff --text -u 'xemacs-21.5.3/src/search.c' 'xemacs-21.5.4/src/search.c' Index: ././src/search.c --- ././src/search.c Mon Aug 13 13:46:39 2001 +++ ././src/search.c Thu Dec 20 14:49:48 2001 @@ -84,7 +84,7 @@ able to free or re-allocate it properly. */ /* Note: things get trickier under Mule because the values returned from - the regexp routines are in Bytinds but we need them to be in Bufpos's. + the regexp routines are in Bytebposs but we need them to be in Charbpos's. We take the easy way out for the moment and just convert them immediately. We could be more clever by not converting them until necessary, but that gets real ugly real fast since the buffer might have changed and @@ -109,17 +109,17 @@ /* range table for use with skip_chars. Only needed for Mule. */ Lisp_Object Vskip_chars_range_table; -static void set_search_regs (struct buffer *buf, Bufpos beg, Charcount len); +static void set_search_regs (struct buffer *buf, Charbpos beg, Charcount len); static void save_search_regs (void); -static Bufpos simple_search (struct buffer *buf, Bufbyte *base_pat, - Bytecount len, Bytind pos, Bytind lim, +static Charbpos simple_search (struct buffer *buf, Intbyte *base_pat, + Bytecount len, Bytebpos pos, Bytebpos lim, EMACS_INT n, Lisp_Object trt); -static Bufpos boyer_moore (struct buffer *buf, Bufbyte *base_pat, - Bytecount len, Bytind pos, Bytind lim, +static Charbpos boyer_moore (struct buffer *buf, Intbyte *base_pat, + Bytecount len, Bytebpos pos, Bytebpos lim, EMACS_INT n, Lisp_Object trt, Lisp_Object inverse_trt, int charset_base); -static Bufpos search_buffer (struct buffer *buf, Lisp_Object str, - Bufpos bufpos, Bufpos buflim, EMACS_INT n, int RE, +static Charbpos search_buffer (struct buffer *buf, Lisp_Object str, + Charbpos charbpos, Charbpos buflim, EMACS_INT n, int RE, Lisp_Object trt, Lisp_Object inverse_trt, int posix); @@ -229,13 +229,13 @@ return Qnil; /* Not reached. */ } -/* Convert the search registers from Bytinds to Bufpos's. Needs to be +/* Convert the search registers from Bytebposs to Charbpos's. Needs to be done after each regexp match that uses the search regs. We could get a potential speedup by not converting the search registers until it's really necessary, e.g. when match-data or replace-match is called. However, this complexifies the code a lot (e.g. the buffer - could have changed and the Bytinds stored might be invalid) and is + could have changed and the Bytebposs stored might be invalid) and is probably not a great time-saver. */ static void @@ -247,9 +247,9 @@ for (i = 0; i < num_regs; i++) { if (search_regs.start[i] >= 0) - search_regs.start[i] = bytind_to_bufpos (buf, search_regs.start[i]); + search_regs.start[i] = bytebpos_to_charbpos (buf, search_regs.start[i]); if (search_regs.end[i] >= 0) - search_regs.end[i] = bytind_to_bufpos (buf, search_regs.end[i]); + search_regs.end[i] = bytebpos_to_charbpos (buf, search_regs.end[i]); } } @@ -290,7 +290,7 @@ { /* This function has been Mule-ized, except for the trt table handling. */ Lisp_Object val; - Bytind p1, p2; + Bytebpos p1, p2; Bytecount s1, s2; REGISTER int i; struct re_pattern_buffer *bufp; @@ -458,14 +458,14 @@ This does not clobber the match data. */ Bytecount -fast_string_match (Lisp_Object regexp, const Bufbyte *nonreloc, +fast_string_match (Lisp_Object regexp, const Intbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length, int case_fold_search, Error_Behavior errb, int no_quit) { /* This function has been Mule-ized, except for the trt table handling. */ Bytecount val; - Bufbyte *newnonreloc = (Bufbyte *) nonreloc; + Intbyte *newnonreloc = (Intbyte *) nonreloc; struct re_pattern_buffer *bufp; bufp = compile_pattern (regexp, 0, @@ -491,7 +491,7 @@ /* QUIT could relocate RELOC. Therefore we must alloca() and copy. No way around this except some serious rewriting of re_search(). */ - newnonreloc = (Bufbyte *) alloca (length); + newnonreloc = (Intbyte *) alloca (length); memcpy (newnonreloc, XSTRING_DATA (reloc), length); } } @@ -561,12 +561,12 @@ If ALLOW_QUIT is non-zero, call QUIT periodically. */ -static Bytind -bi_scan_buffer (struct buffer *buf, Emchar target, Bytind st, Bytind en, +static Bytebpos +bi_scan_buffer (struct buffer *buf, Emchar target, Bytebpos st, Bytebpos en, EMACS_INT count, EMACS_INT *shortage, int allow_quit) { /* This function has been Mule-ized. */ - Bytind lim = en > 0 ? en : + Bytebpos lim = en > 0 ? en : ((count > 0) ? BI_BUF_ZV (buf) : BI_BUF_BEGV (buf)); /* #### newline cache stuff in this function not yet ported */ @@ -590,7 +590,7 @@ { if (BI_BUF_FETCH_CHAR (buf, st) == target) count--; - INC_BYTIND (buf, st); + INC_BYTEBPOS (buf, st); } } else @@ -598,12 +598,12 @@ { while (st < lim && count > 0) { - Bytind ceil; - Bufbyte *bufptr; + Bytebpos ceil; + Intbyte *bufptr; ceil = BI_BUF_CEILING_OF (buf, st); ceil = min (lim, ceil); - bufptr = (Bufbyte *) memchr (BI_BUF_BYTE_ADDRESS (buf, st), + bufptr = (Intbyte *) memchr (BI_BUF_BYTE_ADDRESS (buf, st), (int) target, ceil - st); if (bufptr) { @@ -628,7 +628,7 @@ { while (st > lim && count < 0) { - DEC_BYTIND (buf, st); + DEC_BYTEBPOS (buf, st); if (BI_BUF_FETCH_CHAR (buf, st) == target) count++; } @@ -638,9 +638,9 @@ { while (st > lim && count < 0) { - Bytind floor; - Bufbyte *bufptr; - Bufbyte *floorptr; + Bytebpos floor; + Intbyte *bufptr; + Intbyte *floorptr; floor = BI_BUF_FLOOR_OF (buf, st); floor = max (lim, floor); @@ -674,54 +674,54 @@ /* We found the character we were looking for; we have to return the position *after* it due to the strange way that the return value is defined. */ - INC_BYTIND (buf, st); + INC_BYTEBPOS (buf, st); return st; } } } -Bufpos -scan_buffer (struct buffer *buf, Emchar target, Bufpos start, Bufpos end, +Charbpos +scan_buffer (struct buffer *buf, Emchar target, Charbpos start, Charbpos end, EMACS_INT count, EMACS_INT *shortage, int allow_quit) { - Bytind bi_retval; - Bytind bi_start, bi_end; + Bytebpos bi_retval; + Bytebpos bi_start, bi_end; - bi_start = bufpos_to_bytind (buf, start); + bi_start = charbpos_to_bytebpos (buf, start); if (end) - bi_end = bufpos_to_bytind (buf, end); + bi_end = charbpos_to_bytebpos (buf, end); else bi_end = 0; bi_retval = bi_scan_buffer (buf, target, bi_start, bi_end, count, shortage, allow_quit); - return bytind_to_bufpos (buf, bi_retval); + return bytebpos_to_charbpos (buf, bi_retval); } -Bytind -bi_find_next_newline_no_quit (struct buffer *buf, Bytind from, int count) +Bytebpos +bi_find_next_newline_no_quit (struct buffer *buf, Bytebpos from, int count) { return bi_scan_buffer (buf, '\n', from, 0, count, 0, 0); } -Bufpos -find_next_newline_no_quit (struct buffer *buf, Bufpos from, int count) +Charbpos +find_next_newline_no_quit (struct buffer *buf, Charbpos from, int count) { return scan_buffer (buf, '\n', from, 0, count, 0, 0); } -Bufpos -find_next_newline (struct buffer *buf, Bufpos from, int count) +Charbpos +find_next_newline (struct buffer *buf, Charbpos from, int count) { return scan_buffer (buf, '\n', from, 0, count, 0, 1); } -Bytind -bi_find_next_emchar_in_string (Lisp_String* str, Emchar target, Bytind st, +Bytebpos +bi_find_next_emchar_in_string (Lisp_String* str, Emchar target, Bytebpos st, EMACS_INT count) { /* This function has been Mule-ized. */ - Bytind lim = string_length (str) -1; - Bufbyte* s = string_data (str); + Bytebpos lim = string_length (str) -1; + Intbyte* s = string_data (str); assert (count >= 0); @@ -737,7 +737,7 @@ { if (string_char (str, st) == target) count--; - INC_CHARBYTIND (s, st); + INC_CHARBYTEBPOS (s, st); } } else @@ -745,12 +745,12 @@ { while (st < lim && count > 0) { - Bufbyte *bufptr = (Bufbyte *) memchr (charptr_n_addr (s, st), + Intbyte *bufptr = (Intbyte *) memchr (charptr_n_addr (s, st), (int) target, lim - st); if (bufptr) { count--; - st = (Bytind)(bufptr - s) + 1; + st = (Bytebpos)(bufptr - s) + 1; } else st = lim; @@ -762,11 +762,11 @@ /* Like find_next_newline, but returns position before the newline, not after, and only search up to TO. This isn't just find_next_newline (...)-1, because you might hit TO. */ -Bufpos -find_before_next_newline (struct buffer *buf, Bufpos from, Bufpos to, int count) +Charbpos +find_before_next_newline (struct buffer *buf, Charbpos from, Charbpos to, int count) { EMACS_INT shortage; - Bufpos pos = scan_buffer (buf, '\n', from, to, count, &shortage, 1); + Charbpos pos = scan_buffer (buf, '\n', from, to, count, &shortage, 1); if (shortage == 0) pos--; @@ -779,7 +779,7 @@ Lisp_Object string, Lisp_Object lim) { /* This function has been Mule-ized. */ - REGISTER Bufbyte *p, *pend; + REGISTER Intbyte *p, *pend; REGISTER Emchar c; /* We store the first 256 chars in an array here and the rest in a range table. */ @@ -789,7 +789,7 @@ #ifndef emacs Lisp_Char_Table *syntax_table = XCHAR_TABLE (buf->mirror_syntax_table); #endif - Bufpos limit; + Charbpos limit; if (NILP (lim)) limit = forwardp ? BUF_ZV (buf) : BUF_BEGV (buf); @@ -880,7 +880,7 @@ fastmap[i] ^= 1; { - Bufpos start_point = BUF_PT (buf); + Charbpos start_point = BUF_PT (buf); if (syntaxp) { @@ -1017,8 +1017,8 @@ int RE, int posix) { /* This function has been Mule-ized, except for the trt table handling. */ - REGISTER Bufpos np; - Bufpos lim; + REGISTER Charbpos np; + Charbpos lim; EMACS_INT n = direction; struct buffer *buf; @@ -1085,7 +1085,7 @@ { /* This function has been Mule-ized. */ Bytecount len = XSTRING_LENGTH (regexp); - Bufbyte *s = XSTRING_DATA (regexp); + Intbyte *s = XSTRING_DATA (regexp); while (--len >= 0) { switch (*s++) @@ -1114,14 +1114,14 @@ } /* Search for the n'th occurrence of STRING in BUF, - starting at position BUFPOS and stopping at position BUFLIM, + starting at position CHARBPOS and stopping at position BUFLIM, treating PAT as a literal string if RE is false or as a regular expression if RE is true. If N is positive, searching is forward and BUFLIM must be greater - than BUFPOS. + than CHARBPOS. If N is negative, searching is backward and BUFLIM must be less - than BUFPOS. + than CHARBPOS. Returns -x if only N-x occurrences found (x > 0), or else the position at the beginning of the Nth occurrence @@ -1129,18 +1129,18 @@ POSIX is nonzero if we want full backtracking (POSIX style) for this pattern. 0 means backtrack only enough to get a valid match. */ -static Bufpos -search_buffer (struct buffer *buf, Lisp_Object string, Bufpos bufpos, - Bufpos buflim, EMACS_INT n, int RE, Lisp_Object trt, +static Charbpos +search_buffer (struct buffer *buf, Lisp_Object string, Charbpos charbpos, + Charbpos buflim, EMACS_INT n, int RE, Lisp_Object trt, Lisp_Object inverse_trt, int posix) { /* This function has been Mule-ized, except for the trt table handling. */ Bytecount len = XSTRING_LENGTH (string); - Bufbyte *base_pat = XSTRING_DATA (string); + Intbyte *base_pat = XSTRING_DATA (string); REGISTER EMACS_INT i, j; - Bytind p1, p2; + Bytebpos p1, p2; Bytecount s1, s2; - Bytind pos, lim; + Bytebpos pos, lim; if (running_asynch_code) save_search_regs (); @@ -1148,16 +1148,16 @@ /* Null string is found at starting position. */ if (len == 0) { - set_search_regs (buf, bufpos, 0); - return bufpos; + set_search_regs (buf, charbpos, 0); + return charbpos; } /* Searching 0 times means don't move. */ if (n == 0) - return bufpos; + return charbpos; - pos = bufpos_to_bytind (buf, bufpos); - lim = bufpos_to_bytind (buf, buflim); + pos = charbpos_to_bytebpos (buf, charbpos); + lim = charbpos_to_bytebpos (buf, buflim); if (RE && !trivial_regexp_p (string)) { struct re_pattern_buffer *bufp; @@ -1203,8 +1203,8 @@ /* Set pos to the new position. */ pos = search_regs.start[0]; fixup_search_regs_for_buffer (buf); - /* And bufpos too. */ - bufpos = search_regs.start[0]; + /* And charbpos too. */ + charbpos = search_regs.start[0]; } else { @@ -1240,8 +1240,8 @@ /* Set pos to the new position. */ pos = search_regs.end[0]; fixup_search_regs_for_buffer (buf); - /* And bufpos too. */ - bufpos = search_regs.end[0]; + /* And charbpos too. */ + charbpos = search_regs.end[0]; } else { @@ -1249,19 +1249,19 @@ } n--; } - return bufpos; + return charbpos; } else /* non-RE case */ { int charset_base = -1; int boyer_moore_ok = 1; - Bufbyte *pat = 0; - Bufbyte *patbuf = alloca_array (Bufbyte, len * MAX_EMCHAR_LEN); + Intbyte *pat = 0; + Intbyte *patbuf = alloca_array (Intbyte, len * MAX_EMCHAR_LEN); pat = patbuf; #ifdef MULE while (len > 0) { - Bufbyte tmp_str[MAX_EMCHAR_LEN]; + Intbyte tmp_str[MAX_EMCHAR_LEN]; Emchar c, translated, inverse; Bytecount orig_bytelen, new_bytelen, inv_bytelen; @@ -1337,9 +1337,9 @@ regardless of what is in TRT. It is used in cases where boyer_moore cannot work. */ -static Bufpos -simple_search (struct buffer *buf, Bufbyte *base_pat, Bytecount len_byte, - Bytind idx, Bytind lim, EMACS_INT n, Lisp_Object trt) +static Charbpos +simple_search (struct buffer *buf, Intbyte *base_pat, Bytecount len_byte, + Bytebpos idx, Bytebpos lim, EMACS_INT n, Lisp_Object trt) { int forward = n > 0; Bytecount buf_len = 0; /* Shut up compiler. */ @@ -1350,8 +1350,8 @@ while (1) { Bytecount this_len = len_byte; - Bytind this_idx = idx; - Bufbyte *p = base_pat; + Bytebpos this_idx = idx; + Intbyte *p = base_pat; if (idx >= lim) goto stop; @@ -1371,7 +1371,7 @@ pat_len = charcount_to_bytecount (p, 1); p += pat_len; this_len -= pat_len; - INC_BYTIND (buf, this_idx); + INC_BYTEBPOS (buf, this_idx); } if (this_len == 0) { @@ -1379,7 +1379,7 @@ idx = this_idx; break; } - INC_BYTIND (buf, idx); + INC_BYTEBPOS (buf, idx); } n--; } @@ -1389,8 +1389,8 @@ while (1) { Bytecount this_len = len_byte; - Bytind this_idx = idx; - Bufbyte *p; + Bytebpos this_idx = idx; + Intbyte *p; if (idx <= lim) goto stop; p = base_pat + len_byte; @@ -1400,7 +1400,7 @@ Emchar pat_ch, buf_ch; DEC_CHARPTR (p); - DEC_BYTIND (buf, this_idx); + DEC_BYTEBPOS (buf, this_idx); pat_ch = charptr_emchar (p); buf_ch = BI_BUF_FETCH_CHAR (buf, this_idx); @@ -1417,23 +1417,23 @@ idx = this_idx; break; } - DEC_BYTIND (buf, idx); + DEC_BYTEBPOS (buf, idx); } n++; } stop: if (n == 0) { - Bufpos beg, end, retval; + Charbpos beg, end, retval; if (forward) { - beg = bytind_to_bufpos (buf, idx - buf_len); - retval = end = bytind_to_bufpos (buf, idx); + beg = bytebpos_to_charbpos (buf, idx - buf_len); + retval = end = bytebpos_to_charbpos (buf, idx); } else { - retval = beg = bytind_to_bufpos (buf, idx); - end = bytind_to_bufpos (buf, idx + buf_len); + retval = beg = bytebpos_to_charbpos (buf, idx); + end = bytebpos_to_charbpos (buf, idx + buf_len); } set_search_regs (buf, beg, end - beg); @@ -1458,9 +1458,9 @@ If that criterion is not satisfied, do not call this function. */ -static Bufpos -boyer_moore (struct buffer *buf, Bufbyte *base_pat, Bytecount len, - Bytind pos, Bytind lim, EMACS_INT n, Lisp_Object trt, +static Charbpos +boyer_moore (struct buffer *buf, Intbyte *base_pat, Bytecount len, + Bytebpos pos, Bytebpos lim, EMACS_INT n, Lisp_Object trt, Lisp_Object inverse_trt, int charset_base) { /* #### Someone really really really needs to comment the workings @@ -1496,16 +1496,16 @@ EMACS_INT *BM_tab_base; REGISTER Bytecount dirlen; EMACS_INT infinity; - Bytind limit; + Bytebpos limit; Bytecount stride_for_teases = 0; REGISTER EMACS_INT i, j; - Bufbyte *pat, *pat_end; - REGISTER Bufbyte *cursor, *p_limit, *ptr2; - Bufbyte simple_translate[0400]; + Intbyte *pat, *pat_end; + REGISTER Intbyte *cursor, *p_limit, *ptr2; + Intbyte simple_translate[0400]; REGISTER int direction = ((n > 0) ? 1 : -1); #ifdef MULE - Bufbyte translate_prev_byte = 0; - Bufbyte translate_anteprev_byte = 0; + Intbyte translate_prev_byte = 0; + Intbyte translate_anteprev_byte = 0; #endif #ifdef C_ALLOCA EMACS_INT BM_tab_space[0400]; @@ -1566,11 +1566,11 @@ in the pattern. Others don't matter anyway! */ xzero (simple_translate); for (i = 0; i < 0400; i++) - simple_translate[i] = (Bufbyte) i; + simple_translate[i] = (Intbyte) i; i = 0; while (i != infinity) { - Bufbyte *ptr = base_pat + i; + Intbyte *ptr = base_pat + i; i += direction; if (i == dirlen) i = infinity; @@ -1581,19 +1581,19 @@ int this_translated = 1; /* Is *PTR the last byte of a character? */ - if (pat_end - ptr == 1 || BUFBYTE_FIRST_BYTE_P (ptr[1])) + if (pat_end - ptr == 1 || INTBYTE_FIRST_BYTE_P (ptr[1])) { - Bufbyte *charstart = ptr; - while (!BUFBYTE_FIRST_BYTE_P (*charstart)) + Intbyte *charstart = ptr; + while (!INTBYTE_FIRST_BYTE_P (*charstart)) charstart--; untranslated = charptr_emchar (charstart); if (charset_base == (untranslated & ~CHAR_FIELD3_MASK)) { ch = TRANSLATE (trt, untranslated); - if (!BUFBYTE_FIRST_BYTE_P (*ptr)) + if (!INTBYTE_FIRST_BYTE_P (*ptr)) { translate_prev_byte = ptr[-1]; - if (!BUFBYTE_FIRST_BYTE_P (translate_prev_byte)) + if (!INTBYTE_FIRST_BYTE_P (translate_prev_byte)) translate_anteprev_byte = ptr[-2]; } } @@ -1651,7 +1651,7 @@ while ((j = TRANSLATE (inverse_trt, j)) != k) { - simple_translate[j] = (Bufbyte) k; + simple_translate[j] = (Intbyte) k; BM_tab[j] = dirlen - i; } #endif @@ -1676,8 +1676,8 @@ reverse) of pattern would align in a possible match. */ while (n != 0) { - Bytind tail_end; - Bufbyte *tail_end_ptr; + Bytebpos tail_end; + Intbyte *tail_end_ptr; /* It's been reported that some (broken) compiler thinks that Boolean expressions in an arithmetic context are unsigned. Using an explicit ?1:0 prevents this. */ @@ -1762,10 +1762,10 @@ cursor -= direction; /* Translate only the last byte of a character. */ if ((cursor == tail_end_ptr - || BUFBYTE_FIRST_BYTE_P (cursor[1])) - && (BUFBYTE_FIRST_BYTE_P (cursor[0]) + || INTBYTE_FIRST_BYTE_P (cursor[1])) + && (INTBYTE_FIRST_BYTE_P (cursor[0]) || (translate_prev_byte == cursor[-1] - && (BUFBYTE_FIRST_BYTE_P (translate_prev_byte) + && (INTBYTE_FIRST_BYTE_P (translate_prev_byte) || translate_anteprev_byte == cursor[-2])))) ch = simple_translate[*cursor]; else @@ -1790,11 +1790,11 @@ cursor -= direction; { - Bytind bytstart = (pos + cursor - ptr2 + + Bytebpos bytstart = (pos + cursor - ptr2 + ((direction > 0) ? 1 - len : 0)); - Bufpos bufstart = bytind_to_bufpos (buf, bytstart); - Bufpos bufend = bytind_to_bufpos (buf, bytstart + len); + Charbpos bufstart = bytebpos_to_charbpos (buf, bytstart); + Charbpos bufend = bytebpos_to_charbpos (buf, bytstart + len); set_search_regs (buf, bufstart, bufend - bufstart); } @@ -1846,16 +1846,16 @@ { #ifdef MULE Emchar ch; - Bufbyte *ptr; + Intbyte *ptr; #endif pos -= direction; #ifdef MULE ptr = BI_BUF_BYTE_ADDRESS (buf, pos); if ((ptr == tail_end_ptr - || BUFBYTE_FIRST_BYTE_P (ptr[1])) - && (BUFBYTE_FIRST_BYTE_P (ptr[0]) + || INTBYTE_FIRST_BYTE_P (ptr[1])) + && (INTBYTE_FIRST_BYTE_P (ptr[0]) || (translate_prev_byte == ptr[-1] - && (BUFBYTE_FIRST_BYTE_P (translate_prev_byte) + && (INTBYTE_FIRST_BYTE_P (translate_prev_byte) || translate_anteprev_byte == ptr[-2])))) ch = simple_translate[*ptr]; else @@ -1879,11 +1879,11 @@ pos -= direction; { - Bytind bytstart = (pos + + Bytebpos bytstart = (pos + ((direction > 0) ? 1 - len : 0)); - Bufpos bufstart = bytind_to_bufpos (buf, bytstart); - Bufpos bufend = bytind_to_bufpos (buf, bytstart + len); + Charbpos bufstart = bytebpos_to_charbpos (buf, bytstart); + Charbpos bufend = bytebpos_to_charbpos (buf, bytstart + len); set_search_regs (buf, bufstart, bufend - bufstart); } @@ -1902,14 +1902,14 @@ if ((lim - pos) * direction < 0) return (0 - n) * direction; } - return bytind_to_bufpos (buf, pos); + return bytebpos_to_charbpos (buf, pos); } /* Record beginning BEG and end BEG + LEN for a match just found in the current buffer. */ static void -set_search_regs (struct buffer *buf, Bufpos beg, Charcount len) +set_search_regs (struct buffer *buf, Charbpos beg, Charcount len) { /* This function has been Mule-ized. */ /* Make sure we have registers in which to store @@ -1957,10 +1957,10 @@ { /* The following value is an upper bound on the amount of storage we need. In non-Mule, it is exact. */ - Bufbyte *storage = - (Bufbyte *) alloca (XSTRING_LENGTH (string) - punct_count + + Intbyte *storage = + (Intbyte *) alloca (XSTRING_LENGTH (string) - punct_count + 5 * (word_count - 1) + 4); - Bufbyte *o = storage; + Intbyte *o = storage; *o++ = '\\'; *o++ = 'b'; @@ -2259,7 +2259,7 @@ /* This function has been Mule-ized. */ /* This function can GC */ enum { nochange, all_caps, cap_initial } case_action; - Bufpos pos, last; + Charbpos pos, last; int some_multiletter_word; int some_lowercase; int some_uppercase; @@ -2293,9 +2293,7 @@ } else { - if (NILP (strbuffer)) - sub = 0; - else + if (!NILP (strbuffer)) { CHECK_INT (strbuffer); sub = XINT (strbuffer); @@ -2337,7 +2335,7 @@ { /* Decide how to casify by examining the matched text. */ - last = search_regs.end[0]; + last = search_regs.end[sub]; prevc = '\n'; case_action = all_caps; @@ -2348,7 +2346,7 @@ some_nonuppercase_initial = 0; some_uppercase = 0; - for (pos = search_regs.start[0]; pos < last; pos++) + for (pos = search_regs.start[sub]; pos < last; pos++) { if (NILP (string)) c = BUF_FETCH_CHAR (buf, pos); @@ -2564,8 +2562,8 @@ return concat3 (before, replacement, after); } - mc_count = begin_multiple_change (buf, search_regs.start[0], - search_regs.end[0]); + mc_count = begin_multiple_change (buf, search_regs.start[sub], + search_regs.end[sub]); /* begin_multiple_change() records an unwind-protect, so we need to record this value now. */ @@ -2575,7 +2573,7 @@ delete the original text. This means that markers at the beginning or end of the original will float to the corresponding position in the replacement. */ - BUF_SET_PT (buf, search_regs.start[0]); + BUF_SET_PT (buf, search_regs.start[sub]); if (!NILP (literal)) Finsert (1, &replacement); else @@ -2586,11 +2584,21 @@ GCPRO1 (replacement); for (strpos = 0; strpos < stlen; strpos++) { - Charcount offset = BUF_PT (buf) - search_regs.start[0]; + /* on the first iteration assert(offset==0), + exactly complementing BUF_SET_PT() above. + During the loop, it keeps track of the amount inserted. + */ + Charcount offset = BUF_PT (buf) - search_regs.start[sub]; c = string_char (XSTRING (replacement), strpos); if (c == '\\' && strpos < stlen - 1) { + /* XXX FIXME: replacing just a substring non-literally + using backslash refs to the match looks dangerous. But + <15366.18513.698042.156573@ns.caldera.de> from Torsten Duwe + claims Finsert_buffer_substring already + handles this correctly. + */ c = string_char (XSTRING (replacement), ++strpos); if (c == '&') Finsert_buffer_substring @@ -2633,9 +2641,9 @@ UNGCPRO; } - inslen = BUF_PT (buf) - (search_regs.start[0]); - buffer_delete_range (buf, search_regs.start[0] + inslen, search_regs.end[0] + - inslen, 0); + inslen = BUF_PT (buf) - (search_regs.start[sub]); + buffer_delete_range (buf, search_regs.start[sub] + inslen, + search_regs.end[sub] + inslen, 0); if (case_action == all_caps) Fupcase_region (make_int (BUF_PT (buf) - inslen), @@ -2648,7 +2656,7 @@ in the replacement string. */ if (ul_pos_dynarr) { - Bufpos eend = BUF_PT (buf); + Charbpos eend = BUF_PT (buf); int i = 0; int cur_action = 'E'; @@ -2756,7 +2764,7 @@ len = -1; for (i = 0; i < search_regs.num_regs; i++) { - Bufpos start = search_regs.start[i]; + Charbpos start = search_regs.start[i]; if (start >= 0) { if (EQ (last_thing_searched, Qt) @@ -2933,12 +2941,12 @@ */ (string)) { - REGISTER Bufbyte *in, *out, *end; - REGISTER Bufbyte *temp; + REGISTER Intbyte *in, *out, *end; + REGISTER Intbyte *temp; CHECK_STRING (string); - temp = (Bufbyte *) alloca (XSTRING_LENGTH (string) * 2); + temp = (Intbyte *) alloca (XSTRING_LENGTH (string) * 2); /* Now copy the data into the new string, inserting escapes. */ diff --text -u 'xemacs-21.5.3/src/select-common.h' 'xemacs-21.5.4/src/select-common.h' Index: ././src/select-common.h --- ././src/select-common.h Mon Aug 13 13:46:39 2001 +++ ././src/select-common.h Thu Sep 20 15:29:13 2001 @@ -68,7 +68,7 @@ static Lisp_Object selection_data_to_lisp_data (struct device *d, UChar_Binary *data, - Memory_Count size, + Bytecount size, XE_ATOM_TYPE type, int format) { @@ -106,8 +106,8 @@ return XE_ATOM_TO_SYMBOL (d, *((XE_ATOM_TYPE *) data)); else { - Element_Count i; - Element_Count len = size / sizeof (XE_ATOM_TYPE); + Elemcount i; + Elemcount len = size / sizeof (XE_ATOM_TYPE); Lisp_Object v = Fmake_vector (make_int (len), Qzero); for (i = 0; i < len; i++) Faset (v, make_int (i), XE_ATOM_TO_SYMBOL (d, ((XE_ATOM_TYPE *) data) [i])); @@ -142,7 +142,7 @@ */ else if (format == 16) { - Element_Count i; + Elemcount i; Lisp_Object v = make_vector (size / 4, Qzero); for (i = 0; i < size / 4; i++) { @@ -153,7 +153,7 @@ } else { - Element_Count i; + Elemcount i; Lisp_Object v = make_vector (size / 4, Qzero); for (i = 0; i < size / 4; i++) { @@ -170,7 +170,7 @@ Lisp_Object obj, UChar_Binary **data_ret, XE_ATOM_TYPE *type_ret, - Memory_Count *size_ret, + Bytecount *size_ret, int *format_ret) { Lisp_Object type = Qnil; @@ -193,7 +193,7 @@ else if (STRINGP (obj)) { const Extbyte *extval; - Extcount extvallen; + Bytecount extvallen; TO_EXTERNAL_FORMAT (LISP_STRING, obj, ALLOCA, (extval, extvallen), @@ -210,10 +210,10 @@ } else if (CHARP (obj)) { - Bufbyte buf[MAX_EMCHAR_LEN]; + Intbyte buf[MAX_EMCHAR_LEN]; Bytecount len; const Extbyte *extval; - Extcount extvallen; + Bytecount extvallen; *format_ret = 8; len = set_charptr_emchar (buf, XCHAR (obj)); @@ -264,7 +264,7 @@ a set of 16 or 32 bit INTEGERs; or a set of ATOM_PAIRs (represented as [[A1 A2] [A3 A4] ...] */ - Element_Count i; + Elemcount i; if (SYMBOLP (XVECTOR_DATA (obj) [0])) /* This vector is an ATOM set */ diff --text -u 'xemacs-21.5.3/src/select-gtk.c' 'xemacs-21.5.4/src/select-gtk.c' Index: ././src/select-gtk.c --- ././src/select-gtk.c Mon Aug 13 13:46:39 2001 +++ ././src/select-gtk.c Sun Dec 23 10:08:32 2001 @@ -64,7 +64,7 @@ if (atom == GDK_SELECTION_SECONDARY) return (QSECONDARY); { - CBufbyte *intstr; + CIntbyte *intstr; Extbyte *str = gdk_atom_name (atom); if (! str) return Qnil; @@ -196,7 +196,7 @@ { UChar_Binary *data; - Memory_Count size; + Bytecount size; int format; GdkAtom type; lisp_data_to_selection_data (d, converted_selection, @@ -366,7 +366,7 @@ static Lisp_Object gtk_own_selection (Lisp_Object selection_name, Lisp_Object selection_value, - Lisp_Object how_to_add, Lisp_Object selection_type) + Lisp_Object how_to_add, Lisp_Object selection_type, int owned_p) { struct device *d = decode_gtk_device (Qnil); GtkWidget *selecting_window = GTK_WIDGET (DEVICE_GTK_APP_SHELL (d)); diff --text -u 'xemacs-21.5.3/src/select-x.c' 'xemacs-21.5.4/src/select-x.c' Index: ././src/select-x.c --- ././src/select-x.c Mon Aug 13 13:46:40 2001 +++ ././src/select-x.c Thu Sep 20 15:29:14 2001 @@ -284,13 +284,13 @@ #endif XmString fmh; String encoding = "STRING"; - const Bufbyte *data = XSTRING_DATA (selection_value); + const Intbyte *data = XSTRING_DATA (selection_value); Bytecount bytes = XSTRING_LENGTH (selection_value); #ifdef MULE { enum { ASCII, LATIN_1, WORLD } chartypes = ASCII; - const Bufbyte *ptr = data, *end = ptr + bytes; + const Intbyte *ptr = data, *end = ptr + bytes; /* Optimize for the common ASCII case */ while (ptr <= end) { @@ -461,16 +461,16 @@ */ static void x_reply_selection_request (XSelectionRequestEvent *event, int format, - UChar_Binary *data, Memory_Count size, Atom type) + UChar_Binary *data, Bytecount size, Atom type) { /* This function can GC */ XSelectionEvent reply; Display *display = event->display; struct device *d = get_device_from_display (display); Window window = event->requestor; - Memory_Count bytes_remaining; + Bytecount bytes_remaining; int format_bytes = format/8; - Memory_Count max_bytes = SELECTION_QUANTUM (display); + Bytecount max_bytes = SELECTION_QUANTUM (display); if (max_bytes > MAX_SELECTION_QUANTUM) max_bytes = MAX_SELECTION_QUANTUM; reply.type = SelectionNotify; @@ -527,7 +527,7 @@ while (bytes_remaining) { - Memory_Count i = ((bytes_remaining < max_bytes) + Bytecount i = ((bytes_remaining < max_bytes) ? bytes_remaining : max_bytes); prop_id = expect_property_change (display, window, reply.property, @@ -625,7 +625,7 @@ { UChar_Binary *data; - Memory_Count size; + Bytecount size; int format; Atom type; lisp_data_to_selection_data (d, converted_selection, @@ -840,8 +840,8 @@ copy_multiple_data (Lisp_Object obj) { Lisp_Object vec; - Element_Count i; - Element_Count len; + Elemcount i; + Elemcount len; if (CONSP (obj)) return Fcons (XCAR (obj), copy_multiple_data (XCDR (obj))); @@ -946,16 +946,16 @@ static void x_get_window_property (Display *display, Window window, Atom property, - UChar_Binary **data_ret, Memory_Count *bytes_ret, + UChar_Binary **data_ret, Bytecount *bytes_ret, Atom *actual_type_ret, int *actual_format_ret, unsigned long *actual_size_ret, int delete_p) { - Memory_Count total_size; + Bytecount total_size; unsigned long bytes_remaining; - Memory_Count offset = 0; + Bytecount offset = 0; UChar_Binary *tmp_data = 0; int result; - Memory_Count buffer_size = SELECTION_QUANTUM (display); + Bytecount buffer_size = SELECTION_QUANTUM (display); if (buffer_size > MAX_SELECTION_QUANTUM) buffer_size = MAX_SELECTION_QUANTUM; /* First probe the thing to find out how big it is. */ @@ -987,7 +987,7 @@ while (bytes_remaining) { #if 0 - Memory_Count last = bytes_remaining; + Bytecount last = bytes_remaining; #endif result = XGetWindowProperty (display, window, property, @@ -1017,14 +1017,14 @@ receive_incremental_selection (Display *display, Window window, Atom property, /* this one is for error messages only */ Lisp_Object target_type, - Memory_Count min_size_bytes, + Bytecount min_size_bytes, UChar_Binary **data_ret, - Memory_Count *size_bytes_ret, + Bytecount *size_bytes_ret, Atom *type_ret, int *format_ret, unsigned long *size_ret) { /* This function can GC */ - Memory_Count offset = 0; + Bytecount offset = 0; int prop_id; *size_bytes_ret = min_size_bytes; *data_ret = (UChar_Binary *) xmalloc (*size_bytes_ret); @@ -1044,7 +1044,7 @@ while (1) { UChar_Binary *tmp_data; - Memory_Count tmp_size_bytes; + Bytecount tmp_size_bytes; wait_for_property_change (prop_id); /* expect it again immediately, because x_get_window_property may .. no it won't, I don't get it. @@ -1097,7 +1097,7 @@ int actual_format; unsigned long actual_size; UChar_Binary *data = NULL; - Memory_Count bytes = 0; + Bytecount bytes = 0; Lisp_Object val; struct device *d = get_device_from_display (display); @@ -1125,9 +1125,9 @@ { /* Ok, that data wasn't *the* data, it was just the beginning. */ - Memory_Count min_size_bytes = + Bytecount min_size_bytes = /* careful here. */ - (Memory_Count) (* ((unsigned int *) data)); + (Bytecount) (* ((unsigned int *) data)); xfree (data); receive_incremental_selection (display, window, property, target_type, min_size_bytes, &data, &bytes, @@ -1245,7 +1245,7 @@ Window window = RootWindow (display, 0); /* Cutbuffers are on frame 0 */ Atom cut_buffer_atom; UChar_Binary *data; - Memory_Count bytes; + Bytecount bytes; Atom type; int format; unsigned long size; @@ -1286,12 +1286,12 @@ Display *display = DEVICE_X_DISPLAY (d); Window window = RootWindow (display, 0); /* Cutbuffers are on frame 0 */ Atom cut_buffer_atom; - const Bufbyte *data = XSTRING_DATA (string); + const Intbyte *data = XSTRING_DATA (string); Bytecount bytes = XSTRING_LENGTH (string); Bytecount bytes_remaining; - Memory_Count max_bytes = SELECTION_QUANTUM (display); + Bytecount max_bytes = SELECTION_QUANTUM (display); #ifdef MULE - const Bufbyte *ptr, *end; + const Intbyte *ptr, *end; enum { ASCII, LATIN_1, WORLD } chartypes = ASCII; #endif @@ -1346,7 +1346,7 @@ while (bytes_remaining) { - Memory_Count chunk = + Bytecount chunk = bytes_remaining < max_bytes ? bytes_remaining : max_bytes; XChangeProperty (display, window, cut_buffer_atom, XA_STRING, 8, (bytes_remaining == bytes diff --text -u 'xemacs-21.5.3/src/sheap.c' 'xemacs-21.5.4/src/sheap.c' Index: ././src/sheap.c --- ././src/sheap.c Mon Aug 13 13:46:40 2001 +++ ././src/sheap.c Thu Sep 20 15:29:14 2001 @@ -126,7 +126,7 @@ { int rc = 0; - Memory_Count lost = (STATIC_HEAP_BASE + STATIC_HEAP_SLOP + SHEAP_ADJUSTMENT) + Bytecount lost = (STATIC_HEAP_BASE + STATIC_HEAP_SLOP + SHEAP_ADJUSTMENT) - (static_heap_ptr - static_heap_buffer); char buf[200]; sprintf (buf, "Static heap usage: %ld of %ld", diff --text -u 'xemacs-21.5.3/src/sound.c' 'xemacs-21.5.4/src/sound.c' Index: ././src/sound.c --- ././src/sound.c Wed Jun 6 21:34:46 2001 +++ ././src/sound.c Thu Sep 20 15:29:14 2001 @@ -323,7 +323,7 @@ if (DEVICE_CONNECTED_TO_NAS_P (d) && STRINGP (sound)) { const UChar_Binary *soundext; - Extcount soundextlen; + Bytecount soundextlen; TO_EXTERNAL_FORMAT (LISP_STRING, sound, ALLOCA, (soundext, soundextlen), @@ -337,7 +337,7 @@ if (DEVICE_CONNECTED_TO_ESD_P (d) && STRINGP (sound)) { UChar_Binary *soundext; - Extcount soundextlen; + Bytecount soundextlen; int succes; TO_EXTERNAL_FORMAT (LISP_STRING, sound, ALLOCA, (soundext, soundextlen), @@ -358,7 +358,7 @@ && STRINGP (sound)) { UChar_Binary *soundext; - Extcount soundextlen; + Bytecount soundextlen; int succes; TO_EXTERNAL_FORMAT (LISP_STRING, sound, diff --text -u 'xemacs-21.5.3/src/sound.h' 'xemacs-21.5.4/src/sound.h' Index: ././src/sound.h --- ././src/sound.h Mon Jun 18 16:10:29 2001 +++ ././src/sound.h Thu Sep 20 15:29:14 2001 @@ -31,8 +31,8 @@ # define sound_perror(string) \ do { \ - Bufbyte *errmess; \ - Bufbyte *string_int; \ + Intbyte *errmess; \ + Intbyte *string_int; \ /* #### fix this to GET_STRERROR in my mule ws */ \ EXTERNAL_TO_C_STRING (strerror (errno), errmess, Qnative); \ EXTERNAL_TO_C_STRING (string, string_int, Qnative); \ @@ -40,7 +40,7 @@ } while (0) # define sound_warn(string) \ do { \ - Bufbyte *string_int; \ + Intbyte *string_int; \ EXTERNAL_TO_C_STRING (GETTEXT (string), string_int, Qnative); \ warn_when_safe (Qsound, Qwarning, "audio: %s", string_int); \ } while (0) diff --text -u 'xemacs-21.5.3/src/specifier.c' 'xemacs-21.5.4/src/specifier.c' Index: ././src/specifier.c --- ././src/specifier.c Mon Aug 13 13:46:40 2001 +++ ././src/specifier.c Thu Sep 20 15:29:14 2001 @@ -350,15 +350,15 @@ internal_hash (s->buffer_specs, depth + 1)); } -inline static Memory_Count -aligned_sizeof_specifier (Memory_Count specifier_type_specific_size) +inline static Bytecount +aligned_sizeof_specifier (Bytecount specifier_type_specific_size) { return ALIGN_SIZE (offsetof (Lisp_Specifier, data) + specifier_type_specific_size, ALIGNOF (max_align_t)); } -static Memory_Count +static Bytecount sizeof_specifier (const void *header) { const Lisp_Specifier *p = (const Lisp_Specifier *) header; @@ -473,7 +473,7 @@ static Lisp_Object make_specifier_internal (struct specifier_methods *spec_meths, - Memory_Count data_size, int call_create_meth) + Bytecount data_size, int call_create_meth) { Lisp_Object specifier; Lisp_Specifier *sp = (Lisp_Specifier *) diff --text -u 'xemacs-21.5.3/src/symbols.c' 'xemacs-21.5.4/src/symbols.c' Index: ././src/symbols.c --- ././src/symbols.c Mon Aug 13 13:46:40 2001 +++ ././src/symbols.c Thu Sep 20 15:29:14 2001 @@ -180,7 +180,7 @@ intern (const char *str) { Bytecount len = strlen (str); - const Bufbyte *buf = (const Bufbyte *) str; + const Intbyte *buf = (const Intbyte *) str; Lisp_Object obarray = Vobarray; if (!VECTORP (obarray) || XVECTOR_LENGTH (obarray) == 0) @@ -339,7 +339,7 @@ Also store the bucket number in oblookup_last_bucket_number. */ Lisp_Object -oblookup (Lisp_Object obarray, const Bufbyte *ptr, Bytecount size) +oblookup (Lisp_Object obarray, const Intbyte *ptr, Bytecount size) { unsigned int hash, obsize; Lisp_Symbol *tail; @@ -379,7 +379,7 @@ Investigation by Karl Nelson . Do a web search for "g_str_hash X31_HASH" if you want to know more. */ unsigned int -hash_string (const Bufbyte *ptr, Bytecount len) +hash_string (const Intbyte *ptr, Bytecount len) { unsigned int hash; @@ -3218,7 +3218,7 @@ /* Bootstrapping problem: Qnil isn't set when make_string_nocopy is called the first time. */ - Qnil = Fmake_symbol (make_string_nocopy ((const Bufbyte *) "nil", 3)); + Qnil = Fmake_symbol (make_string_nocopy ((const Intbyte *) "nil", 3)); XSYMBOL (Qnil)->name->plist = Qnil; XSYMBOL (Qnil)->value = Qnil; /* Nihil ex nihil */ XSYMBOL (Qnil)->plist = Qnil; @@ -3286,7 +3286,7 @@ for (i = 0; i < len; i++) if (temp[i] == '_') temp[i] = '-'; - *location = Fintern (make_string ((const Bufbyte *) temp, len), Qnil); + *location = Fintern (make_string ((const Intbyte *) temp, len), Qnil); if (dump_p) staticpro (location); else @@ -3321,7 +3321,7 @@ void defsymbol_nodump (Lisp_Object *location, const char *name) { - *location = Fintern (make_string_nocopy ((const Bufbyte *) name, + *location = Fintern (make_string_nocopy ((const Intbyte *) name, strlen (name)), Qnil); staticpro_nodump (location); @@ -3330,7 +3330,7 @@ void defsymbol (Lisp_Object *location, const char *name) { - *location = Fintern (make_string_nocopy ((const Bufbyte *) name, + *location = Fintern (make_string_nocopy ((const Intbyte *) name, strlen (name)), Qnil); staticpro (location); @@ -3592,7 +3592,7 @@ sym = Fintern (build_string (symbol_name), Qnil); else #endif - sym = Fintern (make_string_nocopy ((const Bufbyte *) symbol_name, + sym = Fintern (make_string_nocopy ((const Intbyte *) symbol_name, strlen (symbol_name)), Qnil); XSETOBJ (XSYMBOL (sym)->value, magic); diff --text -u 'xemacs-21.5.3/src/symsinit.h' 'xemacs-21.5.4/src/symsinit.h' Index: ././src/symsinit.h --- ././src/symsinit.h Mon Jun 18 16:10:30 2001 +++ ././src/symsinit.h Sun Sep 9 13:37:44 2001 @@ -32,6 +32,7 @@ void init_process_times_very_early (void); void init_ralloc (void); void init_signals_very_early (void); +void init_mswindows_very_early (void); /* Early Lisp-engine initialization (dump-time for init, run-time for reinit). */ diff --text -u 'xemacs-21.5.3/src/syntax.c' 'xemacs-21.5.4/src/syntax.c' Index: ././src/syntax.c --- ././src/syntax.c Thu Jul 12 15:29:10 2001 +++ ././src/syntax.c Thu Sep 20 15:29:15 2001 @@ -99,12 +99,12 @@ int comstyle; /* comment style a=0, or b=1, or ST_COMMENT_STYLE */ int quoted; /* Nonzero if just after an escape char at end of parsing */ - Bufpos thislevelstart;/* Char number of most recent start-of-expression + Charbpos thislevelstart;/* Char number of most recent start-of-expression at current level */ - Bufpos prevlevelstart;/* Char number of start of containing expression */ - Bufpos location; /* Char number at which parsing stopped */ + Charbpos prevlevelstart;/* Char number of start of containing expression */ + Charbpos location; /* Char number at which parsing stopped */ int mindepth; /* Minimum depth seen while scanning */ - Bufpos comstr_start; /* Position just after last comment/string starter */ + Charbpos comstr_start; /* Position just after last comment/string starter */ Lisp_Object levelstarts; /* Char numbers of starts-of-expression of levels (starting from outermost). */ }; @@ -116,20 +116,20 @@ find_start_begv is the BEGV value when it was found. find_start_modiff is the value of MODIFF when it was found. */ -static Bufpos find_start_pos; -static Bufpos find_start_value; +static Charbpos find_start_pos; +static Charbpos find_start_value; static struct buffer *find_start_buffer; -static Bufpos find_start_begv; +static Charbpos find_start_begv; static int find_start_modiff; /* Find a defun-start that is the last one before POS (or nearly the last). We record what we find, so that another call in the same area can return the same value right away. */ -static Bufpos -find_defun_start (struct buffer *buf, Bufpos pos) +static Charbpos +find_defun_start (struct buffer *buf, Charbpos pos) { - Bufpos tem; + Charbpos tem; /* Use previous finding, if it's valid and applies to this inquiry. */ if (buf == find_start_buffer @@ -457,10 +457,10 @@ If that many words cannot be found before the end of the buffer, return 0. COUNT negative means scan backward and stop at word beginning. */ -Bufpos -scan_words (struct buffer *buf, Bufpos from, int count) +Charbpos +scan_words (struct buffer *buf, Charbpos from, int count) { - Bufpos limit = count > 0 ? BUF_ZV (buf) : BUF_BEGV (buf); + Charbpos limit = count > 0 ? BUF_ZV (buf) : BUF_BEGV (buf); Emchar ch0, ch1; enum syntaxcode code; @@ -573,7 +573,7 @@ */ (count, buffer)) { - Bufpos val; + Charbpos val; struct buffer *buf = decode_buffer (buffer, 0); EMACS_INT n; @@ -600,13 +600,13 @@ static void scan_sexps_forward (struct buffer *buf, struct lisp_parse_state *, - Bufpos from, Bufpos end, + Charbpos from, Charbpos end, int targetdepth, int stopbefore, Lisp_Object oldstate, int commentstop); static int -find_start_of_comment (struct buffer *buf, Bufpos from, Bufpos stop, +find_start_of_comment (struct buffer *buf, Charbpos from, Charbpos stop, int comstyle) { Emchar c; @@ -624,8 +624,8 @@ int parity = 0; Emchar my_stringend = 0; int string_lossage = 0; - Bufpos comment_end = from; - Bufpos comstart_pos = 0; + Charbpos comment_end = from; + Charbpos comstart_pos = 0; int comstart_parity = 0; int styles_match_p = 0; /* mask to match comment styles against; for ST_COMMENT_STYLE, this @@ -788,8 +788,8 @@ return from; } -static Bufpos -find_end_of_comment (struct buffer *buf, Bufpos from, Bufpos stop, int comstyle) +static Charbpos +find_end_of_comment (struct buffer *buf, Charbpos from, Charbpos stop, int comstyle) { int c; int prev_code; @@ -877,8 +877,8 @@ */ (count, buffer)) { - Bufpos from; - Bufpos stop; + Charbpos from; + Charbpos stop; Emchar c; enum syntaxcode code; int syncode; @@ -960,7 +960,7 @@ if (code == Scomment) { - Bufpos newfrom = find_end_of_comment (buf, from, stop, comstyle); + Charbpos newfrom = find_end_of_comment (buf, from, stop, comstyle); if (newfrom < 0) { /* we stopped because from==stop */ @@ -1065,10 +1065,10 @@ Lisp_Object -scan_lists (struct buffer *buf, Bufpos from, int count, int depth, +scan_lists (struct buffer *buf, Charbpos from, int count, int depth, int sexpflag, int noerror) { - Bufpos stop; + Charbpos stop; Emchar c; int quoted; int mathexit = 0; @@ -1169,7 +1169,7 @@ break; UPDATE_SYNTAX_CACHE_FORWARD (from); { - Bufpos newfrom = + Charbpos newfrom = find_end_of_comment (buf, from, stop, comstyle); if (newfrom < 0) { @@ -1453,12 +1453,12 @@ } int -char_quoted (struct buffer *buf, Bufpos pos) +char_quoted (struct buffer *buf, Charbpos pos) { enum syntaxcode code; - Bufpos beg = BUF_BEGV (buf); + Charbpos beg = BUF_BEGV (buf); int quoted = 0; - Bufpos startpos = pos; + Charbpos startpos = pos; while (pos > beg) { @@ -1545,8 +1545,8 @@ (buffer)) { struct buffer *buf = decode_buffer (buffer, 0); - Bufpos beg = BUF_BEGV (buf); - Bufpos pos = BUF_PT (buf); + Charbpos beg = BUF_BEGV (buf); + Charbpos pos = BUF_PT (buf); #ifndef emacs Lisp_Char_Table *mirrortab = XCHAR_TABLE (buf->mirror_syntax_table); #endif @@ -1574,7 +1574,7 @@ static void scan_sexps_forward (struct buffer *buf, struct lisp_parse_state *stateptr, - Bufpos from, Bufpos end, + Charbpos from, Charbpos end, int targetdepth, int stopbefore, Lisp_Object oldstate, int commentstop) @@ -1772,7 +1772,7 @@ goto done; UPDATE_SYNTAX_CACHE_FORWARD (from); { - Bufpos newfrom = find_end_of_comment (buf, from, end, state.comstyle); + Charbpos newfrom = find_end_of_comment (buf, from, end, state.comstyle); if (newfrom < 0) { /* we terminated search because from == end */ @@ -1944,7 +1944,7 @@ { struct lisp_parse_state state; int target; - Bufpos start, end; + Charbpos start, end; struct buffer *buf = decode_buffer (buffer, 0); Lisp_Object val; diff --text -u 'xemacs-21.5.3/src/syntax.h' 'xemacs-21.5.4/src/syntax.h' Index: ././src/syntax.h --- ././src/syntax.h Fri Apr 13 03:24:21 2001 +++ ././src/syntax.h Thu Sep 20 15:29:15 2001 @@ -248,9 +248,9 @@ extern const unsigned char syntax_code_spec[]; -Lisp_Object scan_lists (struct buffer *buf, Bufpos from, int count, +Lisp_Object scan_lists (struct buffer *buf, Charbpos from, int count, int depth, int sexpflag, int no_error); -int char_quoted (struct buffer *buf, Bufpos pos); +int char_quoted (struct buffer *buf, Charbpos pos); /* NOTE: This does not refer to the mirror table, but to the syntax table itself. */ @@ -281,9 +281,9 @@ Lisp_Object current_syntax_table; /* Syntax table for current pos. */ Lisp_Object old_prop; /* Syntax-table prop at prev pos. */ - Bufpos next_change; /* Position of the next extent + Charbpos next_change; /* Position of the next extent change. */ - Bufpos prev_change; /* Position of the previous + Charbpos prev_change; /* Position of the previous extent change. */ }; extern struct syntax_cache syntax_cache; @@ -332,7 +332,7 @@ : STRINGP (syntax_cache.object) \ ? bytecount_to_charcount (XSTRING_DATA (syntax_cache.object), bytepos) \ : (BUFFERP (syntax_cache.object) || NILP (syntax_cache.object)) \ - ? bytind_to_bufpos (syntax_cache.buffer, \ + ? bytebpos_to_charbpos (syntax_cache.buffer, \ bytepos + BI_BUF_BEGV (syntax_cache.buffer)) \ : (bytepos)) @@ -342,7 +342,7 @@ : STRINGP (obj) \ ? bytecount_to_charcount (XSTRING_DATA (obj), bytepos) \ : (BUFFERP (obj) || NILP (obj)) \ - ? bytind_to_bufpos (buf, bytepos + BI_BUF_BEGV (buf)) \ + ? bytebpos_to_charbpos (buf, bytepos + BI_BUF_BEGV (buf)) \ : (bytepos)) #else /* not emacs */ diff --text -u 'xemacs-21.5.3/src/sysdep.c' 'xemacs-21.5.4/src/sysdep.c' Index: ././src/sysdep.c --- ././src/sysdep.c Mon Aug 13 13:46:41 2001 +++ ././src/sysdep.c Sat Jan 5 16:33:24 2002 @@ -805,10 +805,10 @@ /* Figure out the eof character for the FD. */ -Bufbyte +Intbyte get_eof_char (int fd) { - const Bufbyte ctrl_d = (Bufbyte) '\004'; + const Intbyte ctrl_d = (Intbyte) '\004'; if (!isatty (fd)) return ctrl_d; @@ -821,9 +821,9 @@ if ((int) strlen ((const char *) t.c_cc) < (VEOF + 1)) return ctrl_d; else - return (Bufbyte) t.c_cc[VEOF]; + return (Intbyte) t.c_cc[VEOF]; #endif - return t.c_cc[VEOF] == _POSIX_VDISABLE ? ctrl_d : (Bufbyte) t.c_cc[VEOF]; + return t.c_cc[VEOF] == _POSIX_VDISABLE ? ctrl_d : (Intbyte) t.c_cc[VEOF]; } #else /* ! HAVE_TERMIOS */ /* On Berkeley descendants, the following IOCTL's retrieve the @@ -832,7 +832,7 @@ { struct tchars c; ioctl (fd, TIOCGETC, &c); - return (Bufbyte) c.t_eofc; + return (Intbyte) c.t_eofc; } #else /* ! defined (TIOCGLTC) && defined (TIOCGETC) */ /* On SYSV descendants, the TCGETA ioctl retrieves the current control @@ -844,7 +844,7 @@ if ((int) strlen ((const char *) t.c_cc) < (VINTR + 1)) return ctrl_d; else - return (Bufbyte) t.c_cc[VINTR]; + return (Intbyte) t.c_cc[VINTR]; } #else /* ! defined (TCGETA) */ /* Rather than complain, we'll just guess ^D, which is what @@ -2373,7 +2373,11 @@ xzero (hints); hints.ai_flags = AI_CANONNAME; +#ifdef IPV6_CANONICALIZE hints.ai_family = AF_UNSPEC; +#else + hints.ai_family = PF_INET; +#endif hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = 0; if (!getaddrinfo (hostname, NULL, &hints, &res)) @@ -2389,7 +2393,7 @@ Vsystem_name = build_string (hostname); #endif /* HAVE_GETHOSTNAME */ { - Bufbyte *p; + Intbyte *p; Bytecount i; for (i = 0, p = XSTRING_DATA (Vsystem_name); @@ -3022,8 +3026,8 @@ return NULL; { const Extbyte * const external_name = (const Extbyte *) rtnval->d_name; - Extcount external_len = strlen (rtnval->d_name); - const Bufbyte *internal_name; + Bytecount external_len = strlen (rtnval->d_name); + const Intbyte *internal_name; Bytecount internal_len; TO_INTERNAL_FORMAT (DATA, (external_name, external_len), @@ -3036,13 +3040,13 @@ return rtnval; { /* Non-ASCII filename */ - static Bufbyte_dynarr *internal_DIRENTRY; + static Intbyte_dynarr *internal_DIRENTRY; if (!internal_DIRENTRY) - internal_DIRENTRY = Dynarr_new (Bufbyte); + internal_DIRENTRY = Dynarr_new (Intbyte); else Dynarr_reset (internal_DIRENTRY); - Dynarr_add_many (internal_DIRENTRY, (Bufbyte *) rtnval, + Dynarr_add_many (internal_DIRENTRY, (Intbyte *) rtnval, offsetof (DIRENTRY, d_name)); diff --text -u 'xemacs-21.5.3/src/sysdep.h' 'xemacs-21.5.4/src/sysdep.h' Index: ././src/sysdep.h --- ././src/sysdep.h Thu May 31 21:45:40 2001 +++ ././src/sysdep.h Thu Sep 20 15:29:15 2001 @@ -46,7 +46,7 @@ void wait_without_blocking (void); int get_pty_max_bytes (int fd); -Bufbyte get_eof_char (int fd); +Intbyte get_eof_char (int fd); /* Wait for subprocess with process id `pid' to terminate and make sure it will get eliminated (not remain forever as a zombie) */ diff --text -u 'xemacs-21.5.3/src/syswindows.h' 'xemacs-21.5.4/src/syswindows.h' Index: ././src/syswindows.h --- ././src/syswindows.h Thu May 31 21:45:40 2001 +++ ././src/syswindows.h Tue Oct 30 14:13:31 2001 @@ -55,6 +55,23 @@ #define WIN32_LEAN_AND_MEAN #endif +#if defined (CYGWIN) || defined (MINGW) + +#ifdef __cplusplus +extern "C" { +#endif + +/* Fucking GCC complains about "no previous prototype" for inline + functions. DUH! See DECLARE_INLINE_HEADER. */ +extern __inline void *GetCurrentFiber (void); +extern __inline void *GetFiberData (void); + +#ifdef __cplusplus +} +#endif + +#endif + #include #if defined (WIN32_LEAN_AND_MEAN) @@ -68,6 +85,7 @@ # define Status int # endif # include +# include # include # include #endif @@ -105,6 +123,17 @@ #define PHYSICALOFFSETY 113 #endif +/* shlobj.h defines. */ +#ifndef BIF_EDITBOX +#define BIF_EDITBOX 0x10 +#endif +#ifndef BIF_VALIDATE +#define BIF_VALIDATE 0x20 +#endif +#ifndef BFFM_VALIDATEFAILED +#define BFFM_VALIDATEFAILED 3 +#endif + /* windows.h defines. */ #if defined (CYGWIN) && (CYGWIN_VERSION_DLL_MAJOR < 20) typedef NMHDR *LPNMHDR; @@ -225,7 +254,7 @@ #define LOCAL_FILE_FORMAT_TO_TSTR(path, out) \ do { \ - Bufbyte *lttff; \ + Intbyte *lttff; \ \ LOCAL_TO_WIN32_FILE_FORMAT (path, lttff); \ C_STRING_TO_EXTERNAL (lttff, out, Qmswindows_tstr); \ @@ -244,12 +273,15 @@ is ASCII-compatible, and so these functions will work fine with \ this data. */ \ Lisp_Object ltwff1 = (path); \ - int ltwff2 = \ - cygwin_posix_to_win32_path_list_buf_size ((char *) \ - XSTRING_DATA (ltwff1)); \ - pathout = (Bufbyte *) alloca (ltwff2); \ - cygwin_posix_to_win32_path_list ((char *) XSTRING_DATA (ltwff1), \ - (char *) pathout); \ + Intbyte* ltwffp = XSTRING_DATA (ltwff1); \ + if (isalpha (ltwffp[0]) && (IS_DEVICE_SEP (ltwffp[1]))) \ + pathout = ltwffp; \ + else { \ + int ltwff2 = \ + cygwin_posix_to_win32_path_list_buf_size ((char*)ltwffp); \ + pathout = (Intbyte *) alloca (ltwff2); \ + cygwin_posix_to_win32_path_list ((char*) ltwffp, (char*) pathout); \ + } \ } while (0) #else #define LOCAL_TO_WIN32_FILE_FORMAT(path, pathout) \ @@ -261,17 +293,17 @@ #ifdef CYGWIN #define WIN32_TO_LOCAL_FILE_FORMAT(path, pathout) \ do { \ - Bufbyte *wtlff1 = (path); \ + Intbyte *wtlff1 = (path); \ int wtlff2 = \ cygwin_win32_to_posix_path_list_buf_size ((char *) wtlff1); \ - Bufbyte *wtlff3 = (Bufbyte *) alloca (wtlff2); \ + Intbyte *wtlff3 = (Intbyte *) alloca (wtlff2); \ cygwin_win32_to_posix_path_list ((char *) wtlff1, (char *) wtlff3); \ - (pathout) = build_string ((CBufbyte *) wtlff3); \ + (pathout) = build_string ((CIntbyte *) wtlff3); \ } while (0) #else #define WIN32_TO_LOCAL_FILE_FORMAT(path, pathout) \ do { \ - (pathout) = build_string ((CBufbyte *) path); \ + (pathout) = build_string ((CIntbyte *) path); \ } while (0) #endif diff --text -u 'xemacs-21.5.3/src/tests.c' 'xemacs-21.5.4/src/tests.c' Index: ././src/tests.c --- ././src/tests.c Mon Aug 13 13:46:41 2001 +++ ././src/tests.c Thu Sep 20 15:29:16 2001 @@ -40,10 +40,10 @@ */ ()) { - void *ptr; Memory_Count len; + void *ptr; Bytecount len; Lisp_Object string, opaque; - Bufbyte int_foo[] = "\n\nfoo\nbar"; + Intbyte int_foo[] = "\n\nfoo\nbar"; Extbyte ext_unix[]= "\n\nfoo\nbar"; Extbyte ext_dos[] = "\r\n\r\nfoo\r\nbar"; @@ -52,8 +52,8 @@ Lisp_Object string_foo = make_string (int_foo, sizeof (int_foo) - 1); Extbyte ext_latin[] = "f\372b\343\340"; - Bufbyte int_latin1[] = "f\201\372b\201\343\201\340"; - Bufbyte int_latin2[] = "f\202\372b\202\343\202\340"; + Intbyte int_latin1[] = "f\201\372b\201\343\201\340"; + Intbyte int_latin2[] = "f\202\372b\202\343\202\340"; #ifdef MULE Extbyte ext_latin12[]= "f\033-A\372b\343\340\033-B"; Extbyte ext_tilde[] = "f~b~~"; diff --text -u /dev/null 'xemacs-21.5.4/src/toolbar-common.c' Index: ././src/toolbar-common.c --- ././src/toolbar-common.c Thu Jan 1 09:00:00 1970 +++ ././src/toolbar-common.c Mon Dec 24 05:28:21 2001 @@ -0,0 +1,705 @@ +/* toolbar implementation -- Generic redisplay interface. + Copyright (C) 1995 Board of Trustees, University of Illinois. + Copyright (C) 1995 Sun Microsystems, Inc. + Copyright (C) 1995, 1996 Ben Wing. + Copyright (C) 1996 Chuck Thompson. + +This file is part of XEmacs. + +XEmacs is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2, or (at your option) any +later version. + +XEmacs is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with XEmacs; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* Synched up with: Not in FSF. */ + +#include +#include "lisp.h" + +#include "faces.h" +#include "frame.h" +#include "toolbar.h" +#include "window.h" + +/* Only a very few things need to differ based on the toolkit used. +** +** Some of the routines used assert(FRAME_yyy_P(f)) checks, this is +** now abstracted into __INTERNAL_APPROPRIATENESS_CHECK(). When we +** add new window systems that use this code, we should either add a +** new case here, or just remove the checks completely. +** +** At least for X & GTK redraw_frame_toolbars() might end up getting +** called before we are completely initialized. To avoid this, we use +** the __INTERNAL_MAPPED_P(f) macro, that should return 0 if we should +** not draw the toolbars yet. When we add new window systems that use +** this code, we should add a new case here, if they need it. +** +** When clearing the toolbar, it is nice to flush the drawing queue. +** Use __INTERNAL_FLUSH to do this. It is passed a device. +*/ +#if defined(HAVE_GTK) +#include "console-gtk.h" +#define __INTERNAL_MAPPED_P(f) GTK_WIDGET_REALIZED (FRAME_GTK_TEXT_WIDGET (f)) +#define __INTERNAL_FLUSH(d) gdk_flush() +#define __INTERNAL_APPROPRIATENESS_CHECK(f) assert(FRAME_GTK_P (f)) +#elif defined(HAVE_X_WINDOWS) +#include "console-x.h" +#define __INTERNAL_MAPPED_P(f) XtIsRealized (FRAME_X_SHELL_WIDGET (f)) +#define __INTERNAL_APPROPRIATENESS_CHECK(f) assert(FRAME_X_P (f)) +#define __INTERNAL_FLUSH(d) XFlush (DEVICE_X_DISPLAY (d)) +#else +#define __INTERNAL_MAPPED_P(f) abort() +#define __INTERNAL_APPROPRIATENESS_CHECK(f) abort() +#define __INTERNAL_FLUSH(f) abort() +#endif + +#include "toolbar-common.h" + +static void __prepare_button_area (struct frame *f, + struct toolbar_button *tb) +{ + int sx = tb->x; + int sy = tb->y; + int swidth = tb->width; + int sheight = tb->height; + int border_width = tb->border_width; + int x_adj, width_adj, y_adj, height_adj; + struct device *d = XDEVICE (f->device); + Lisp_Object window = FRAME_LAST_NONMINIBUF_WINDOW (f); + struct window *w = XWINDOW (window); + int shadow_thickness = 2; + face_index toolbar_findex; + + if (tb->vertical) + { + x_adj = border_width; + width_adj = - 2 * border_width; + y_adj = height_adj = 0; + } + else + { + x_adj = width_adj = 0; + y_adj = border_width; + height_adj = - 2 * border_width; + } + + toolbar_findex = get_builtin_face_cache_index (w, Vtoolbar_face); + + /* Blank toolbar buttons that should be 3d will have EQ(tb->up_glyph, Qt) + ** Blank toolbar buttons that should be flat will have NILP (tb->up_glyph) + ** + ** Real toolbar buttons will check tb->enabled && tb->down + */ + if (EQ (Qt, tb->up_glyph)) + { + shadow_thickness = 2; + } + else if (NILP (tb->up_glyph)) + { + shadow_thickness = 0; + } + else + { + if (tb->enabled) + { + if (tb->down) + shadow_thickness = -2; + else + shadow_thickness = 2; + } + else + { + shadow_thickness = 0; + } + } + + /* Blank the entire area. */ + redisplay_clear_region (window, toolbar_findex, + sx + x_adj, sy + y_adj, + swidth + width_adj, + sheight + height_adj); + + /* Draw the outline. */ + if (shadow_thickness) + { + MAYBE_DEVMETH (d, bevel_area, + (w, toolbar_findex, sx + x_adj, + sy + y_adj, swidth + width_adj, + sheight + height_adj, abs(shadow_thickness), + EDGE_ALL, (shadow_thickness < 0) ? EDGE_BEVEL_IN : EDGE_BEVEL_OUT)); + } + + /* Handle the borders... */ + redisplay_clear_region (window, toolbar_findex, + sx, sy, + (tb->vertical ? border_width : swidth), + (tb->vertical ? sheight : border_width)); + redisplay_clear_region (window, toolbar_findex, + (tb->vertical ? sx + swidth : sx), + (tb->vertical ? sy : sy + sheight), + (tb->vertical ? border_width : swidth), + (tb->vertical ? sheight : border_width)); +} + +#define common_draw_blank_toolbar_button(f,tb) __prepare_button_area (f,tb) + +void +common_output_toolbar_button (struct frame *f, Lisp_Object button) +{ + int shadow_thickness = 2; + int x_adj, y_adj, width_adj, height_adj; + struct device *d = XDEVICE (f->device); + Lisp_Object instance, frame, window, glyph; + struct toolbar_button *tb = XTOOLBAR_BUTTON (button); + struct Lisp_Image_Instance *p; + struct window *w; + int vertical = tb->vertical; + int border_width = tb->border_width; + face_index toolbar_findex; + + if (vertical) + { + x_adj = border_width; + width_adj = - 2 * border_width; + y_adj = 0; + height_adj = 0; + } + else + { + x_adj = 0; + width_adj = 0; + y_adj = border_width; + height_adj = - 2 * border_width; + } + + XSETFRAME (frame, f); + window = FRAME_LAST_NONMINIBUF_WINDOW (f); + w = XWINDOW (window); + + glyph = get_toolbar_button_glyph (w, tb); + + if (tb->enabled) + { + if (tb->down) + { + shadow_thickness = -2; + } + else + { + shadow_thickness = 2; + } + } + else + { + shadow_thickness = 0; + } + + toolbar_findex = get_builtin_face_cache_index (w, Vtoolbar_face); + + __prepare_button_area (f, tb); + + /* #### It is currently possible for users to trash us by directly + changing the toolbar glyphs. Avoid crashing in that case. */ + if (GLYPHP (glyph)) + instance = glyph_image_instance (glyph, window, ERROR_ME_NOT, 1); + else + instance = Qnil; + + if (IMAGE_INSTANCEP (instance)) + { + int width = tb->width + width_adj - shadow_thickness * 2; + int height = tb->height + height_adj - shadow_thickness * 2; + int x_offset = x_adj + shadow_thickness; + int y_offset = y_adj + shadow_thickness; + + p = XIMAGE_INSTANCE (instance); + + if (IMAGE_INSTANCE_PIXMAP_TYPE_P (p)) + { + struct display_box db; + struct display_glyph_area dga; + + if (width > (int) IMAGE_INSTANCE_PIXMAP_WIDTH (p)) + { + x_offset += ((int) (width - IMAGE_INSTANCE_PIXMAP_WIDTH (p)) + / 2); + width = IMAGE_INSTANCE_PIXMAP_WIDTH (p); + } + if (height > (int) IMAGE_INSTANCE_PIXMAP_HEIGHT (p)) + { + y_offset += ((int) (height - IMAGE_INSTANCE_PIXMAP_HEIGHT (p)) + / 2); + height = IMAGE_INSTANCE_PIXMAP_HEIGHT (p); + } + + /* Draw exactly in the area specified... */ + db.xpos = tb->x + x_offset; + db.ypos = tb->y + y_offset; + db.width = width; + db.height = height; + + /* Display the whole glyph */ + dga.xoffset = 0; + dga.yoffset = 0; + dga.width = width; + dga.height = height; + + redisplay_output_pixmap (w, instance, + &db, &dga, + toolbar_findex, 0, 0, 0, 0); + } + else if (IMAGE_INSTANCE_TYPE (p) == IMAGE_TEXT) + { + /* #### We need to make the face used configurable. */ + struct face_cachel *cachel = + WINDOW_FACE_CACHEL (w, DEFAULT_INDEX); + struct display_line dl; + Lisp_Object string = IMAGE_INSTANCE_TEXT_STRING (p); + unsigned char charsets[NUM_LEADING_BYTES]; + Emchar_dynarr *buf; + struct font_metric_info fm; + + /* This could be true if we were called via the Expose event + handler. Mark the button as dirty and return + immediately. */ + if (f->window_face_cache_reset) + { + tb->dirty = 1; + MARK_TOOLBAR_CHANGED; + return; + } + buf = Dynarr_new (Emchar); + convert_intbyte_string_into_emchar_dynarr + (XSTRING_DATA (string), XSTRING_LENGTH (string), buf); + find_charsets_in_emchar_string (charsets, Dynarr_atp (buf, 0), + Dynarr_length (buf)); + ensure_face_cachel_complete (cachel, window, charsets); + face_cachel_charset_font_metric_info (cachel, charsets, &fm); + + dl.ascent = fm.ascent; + dl.descent = fm.descent; + dl.ypos = tb->y + y_offset + fm.ascent; + + if (fm.ascent + fm.descent <= height) + { + dl.ypos += (height - fm.ascent - fm.descent) / 2; + dl.clip = 0; + } + else + { + dl.clip = fm.ascent + fm.descent - height; + } + + MAYBE_DEVMETH (d, output_string, + (w, &dl, buf, tb->x + x_offset, 0, 0, width, + toolbar_findex, 0, 0, 0, 0)); + Dynarr_free (buf); + } + + /* We silently ignore the image if it isn't a pixmap or text. */ + } + + tb->dirty = 0; +} + +static int +common_get_button_size (struct frame *f, Lisp_Object window, + struct toolbar_button *tb, int vert, int pos) +{ + int shadow_thickness = 2; + int size; + + if (tb->blank) + { + if (!NILP (tb->down_glyph)) + size = XINT (tb->down_glyph); + else + size = DEFAULT_TOOLBAR_BLANK_SIZE; + } + else + { + struct window *w = XWINDOW (window); + Lisp_Object glyph = get_toolbar_button_glyph (w, tb); + + /* Unless, of course, the user has done something stupid like + change the glyph out from under us. Use a blank placeholder + in that case. */ + if (NILP (glyph)) + return XINT (f->toolbar_size[pos]); + + if (vert) + size = glyph_height (glyph, window); + else + size = glyph_width (glyph, window); + } + + if (!size) + { + /* If the glyph doesn't have a size we'll insert a blank + placeholder instead. */ + return XINT (f->toolbar_size[pos]); + } + + size += shadow_thickness * 2; + + return (size); +} + +#define COMMON_OUTPUT_BUTTONS_LOOP(left) \ + do { \ + while (!NILP (button)) \ + { \ + struct toolbar_button *tb = XTOOLBAR_BUTTON (button); \ + int size, height, width; \ + \ + if (left && tb->pushright) \ + break; \ + \ + size = common_get_button_size (f, window, tb, vert, pos); \ + \ + if (vert) \ + { \ + width = bar_width; \ + if (y + size > max_pixpos) \ + height = max_pixpos - y; \ + else \ + height = size; \ + } \ + else \ + { \ + if (x + size > max_pixpos) \ + width = max_pixpos - x; \ + else \ + width = size; \ + height = bar_height; \ + } \ + \ + if (tb->x != x \ + || tb->y != y \ + || tb->width != width \ + || tb->height != height \ + || tb->dirty) \ + { \ + if (width && height) \ + { \ + tb->x = x; \ + tb->y = y; \ + tb->width = width; \ + tb->height = height; \ + tb->border_width = border_width; \ + tb->vertical = vert; \ + \ + if (tb->blank || NILP (tb->up_glyph)) \ + { \ + common_draw_blank_toolbar_button (f, tb); \ + } \ + else \ + common_output_toolbar_button (f, button); \ + } \ + } \ + \ + if (vert) \ + y += height; \ + else \ + x += width; \ + \ + if ((vert && y == max_pixpos) || (!vert && x == max_pixpos)) \ + button = Qnil; \ + else \ + button = tb->next; \ + } \ + } while (0) + +#define SET_TOOLBAR_WAS_VISIBLE_FLAG(frame, pos, flag) \ + do { \ + switch (pos) \ + { \ + case TOP_TOOLBAR: \ + (frame)->top_toolbar_was_visible = flag; \ + break; \ + case BOTTOM_TOOLBAR: \ + (frame)->bottom_toolbar_was_visible = flag; \ + break; \ + case LEFT_TOOLBAR: \ + (frame)->left_toolbar_was_visible = flag; \ + break; \ + case RIGHT_TOOLBAR: \ + (frame)->right_toolbar_was_visible = flag; \ + break; \ + default: \ + abort (); \ + } \ + } while (0) + +static void +common_output_toolbar (struct frame *f, enum toolbar_pos pos) +{ + int x, y, bar_width, bar_height, vert; + int max_pixpos, right_size, right_start, blank_size; + int border_width = FRAME_REAL_TOOLBAR_BORDER_WIDTH (f, pos); + Lisp_Object button, window; + face_index toolbar_findex; + + get_toolbar_coords (f, pos, &x, &y, &bar_width, &bar_height, &vert, 1); + window = FRAME_LAST_NONMINIBUF_WINDOW (f); + toolbar_findex = get_builtin_face_cache_index (XWINDOW (window), Vtoolbar_face); + + /* Do the border */ + redisplay_clear_region (window, toolbar_findex, + x, y, + (vert ? bar_width : border_width), + (vert ? border_width : bar_height)); + redisplay_clear_region (window, toolbar_findex, + (vert ? x : x + bar_width - border_width), + (vert ? y + bar_height - border_width : y), + (vert ? bar_width : border_width), + (vert ? border_width : bar_height)); + + if (vert) + { + max_pixpos = y + bar_height - border_width; + y += border_width; + } + else + { + max_pixpos = x + bar_width - border_width; + x += border_width; + } + + button = FRAME_TOOLBAR_BUTTONS (f, pos); + right_size = 0; + + /* First loop over all of the buttons to determine how much room we + need for left hand and right hand buttons. This loop will also + make sure that all instances are instantiated so when we actually + output them they will come up immediately. */ + while (!NILP (button)) + { + struct toolbar_button *tb = XTOOLBAR_BUTTON (button); + int size = common_get_button_size (f, window, tb, vert, pos); + + if (tb->pushright) + right_size += size; + + button = tb->next; + } + + button = FRAME_TOOLBAR_BUTTONS (f, pos); + + /* Loop over the left buttons, updating and outputting them. */ + COMMON_OUTPUT_BUTTONS_LOOP (1); + + /* Now determine where the right buttons start. */ + right_start = max_pixpos - right_size; + if (right_start < (vert ? y : x)) + right_start = (vert ? y : x); + + /* Output the blank which goes from the end of the left buttons to + the start of the right. */ + blank_size = right_start - (vert ? y : x); + if (blank_size) + { + int height, width; + + if (vert) + { + width = bar_width; + height = blank_size; + } + else + { + width = blank_size; + height = bar_height; + } + + /* + * Use a 3D pushright separator only if there isn't a toolbar + * border. A flat separator meshes with the border and looks + * better. + */ + if (1) + { + struct toolbar_button tb; + + tb.x = x; + tb.y = y; + tb.width = width; + tb.height = height; + tb.border_width = border_width; + tb.vertical = vert; + tb.enabled = 1; + tb.up_glyph = border_width ? Qt : Qnil; + + __prepare_button_area (f, &tb); + } + + if (vert) + y += height; + else + x += width; + } + + /* Loop over the right buttons, updating and outputting them. */ + COMMON_OUTPUT_BUTTONS_LOOP (0); + + if (!vert) + { + Lisp_Object frame; + + XSETFRAME (frame, f); + redisplay_clear_region (frame, + DEFAULT_INDEX, FRAME_PIXWIDTH (f) - 1, y, 1, + bar_height); + } + + SET_TOOLBAR_WAS_VISIBLE_FLAG (f, pos, 1); + __INTERNAL_FLUSH (XDEVICE (f->device)); +} + +static void +common_clear_toolbar (struct frame *f, enum toolbar_pos pos, int thickness_change) +{ + Lisp_Object frame; + int x, y, width, height, vert; + + get_toolbar_coords (f, pos, &x, &y, &width, &height, &vert, 1); + XSETFRAME (frame, f); + + /* The thickness_change parameter is used by the toolbar resize routines + to clear any excess toolbar if the size shrinks. */ + if (thickness_change < 0) + { + if (pos == LEFT_TOOLBAR || pos == RIGHT_TOOLBAR) + { + x = x + width + thickness_change; + width = -thickness_change; + } + else + { + y = y + height + thickness_change; + height = -thickness_change; + } + } + + SET_TOOLBAR_WAS_VISIBLE_FLAG (f, pos, 0); + + redisplay_clear_region (frame, DEFAULT_INDEX, x, y, width, height); + + __INTERNAL_FLUSH (XDEVICE (f->device)); +} + +void +common_output_frame_toolbars (struct frame *f) +{ + __INTERNAL_APPROPRIATENESS_CHECK(f); + + if (FRAME_REAL_TOP_TOOLBAR_VISIBLE (f)) + common_output_toolbar (f, TOP_TOOLBAR); + else if (f->top_toolbar_was_visible) + common_clear_toolbar (f, TOP_TOOLBAR, 0); + + if (FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f)) + common_output_toolbar (f, BOTTOM_TOOLBAR); + else if (f->bottom_toolbar_was_visible) + common_clear_toolbar (f, BOTTOM_TOOLBAR, 0); + + if (FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f)) + common_output_toolbar (f, LEFT_TOOLBAR); + else if (f->left_toolbar_was_visible) + common_clear_toolbar (f, LEFT_TOOLBAR, 0); + + if (FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f)) + common_output_toolbar (f, RIGHT_TOOLBAR); + else if (f->right_toolbar_was_visible) + common_clear_toolbar (f, RIGHT_TOOLBAR, 0); +} + +static void +common_redraw_exposed_toolbar (struct frame *f, enum toolbar_pos pos, int x, int y, + int width, int height) +{ + int bar_x, bar_y, bar_width, bar_height, vert; + Lisp_Object button = FRAME_TOOLBAR_BUTTONS (f, pos); + + get_toolbar_coords (f, pos, &bar_x, &bar_y, &bar_width, &bar_height, + &vert, 1); + + if (((y + height) < bar_y) || (y > (bar_y + bar_height))) + return; + if (((x + width) < bar_x) || (x > (bar_x + bar_width))) + return; + + while (!NILP (button)) + { + struct toolbar_button *tb = XTOOLBAR_BUTTON (button); + + if (vert) + { + if (((tb->y + tb->height) > y) && (tb->y < (y + height))) + tb->dirty = 1; + + /* If this is true we have gone past the exposed region. */ + if (tb->y > (y + height)) + break; + } + else + { + if (((tb->x + tb->width) > x) && (tb->x < (x + width))) + tb->dirty = 1; + + /* If this is true we have gone past the exposed region. */ + if (tb->x > (x + width)) + break; + } + + button = tb->next; + } + + /* Even if none of the buttons is in the area, the blank region at + the very least must be because the first thing we did is verify + that some portion of the toolbar is in the exposed region. */ + common_output_toolbar (f, pos); +} + +void +common_redraw_exposed_toolbars (struct frame *f, int x, int y, int width, + int height) +{ + __INTERNAL_APPROPRIATENESS_CHECK(f); + + if (FRAME_REAL_TOP_TOOLBAR_VISIBLE (f)) + common_redraw_exposed_toolbar (f, TOP_TOOLBAR, x, y, width, height); + + if (FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f)) + common_redraw_exposed_toolbar (f, BOTTOM_TOOLBAR, x, y, width, height); + + if (FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f)) + common_redraw_exposed_toolbar (f, LEFT_TOOLBAR, x, y, width, height); + + if (FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f)) + common_redraw_exposed_toolbar (f, RIGHT_TOOLBAR, x, y, width, height); +} + +void +common_redraw_frame_toolbars (struct frame *f) +{ + /* There are certain startup paths that lead to update_EmacsFrame in + faces.c being called before a new frame is fully initialized. In + particular before we have actually mapped it. That routine can + call this one. So, we need to make sure that the frame is + actually ready before we try and draw all over it. */ + + if (__INTERNAL_MAPPED_P(f)) + common_redraw_exposed_toolbars (f, 0, 0, FRAME_PIXWIDTH (f), + FRAME_PIXHEIGHT (f)); +} diff --text -u /dev/null 'xemacs-21.5.4/src/toolbar-common.h' Index: ././src/toolbar-common.h --- ././src/toolbar-common.h Thu Jan 1 09:00:00 1970 +++ ././src/toolbar-common.h Sun Dec 23 10:11:00 2001 @@ -0,0 +1,20 @@ +/* toolbar-common.h +** +** Description: +** +** Created by: William M. Perry +** Copyright (c) 2001 Free Software Foundation +** +*/ + +#ifndef __TOOLBAR_COMMON_H__ +#define __TOOLBAR_COMMON_H__ + +extern void common_output_frame_toolbars (struct frame *f); +extern void common_redraw_exposed_toolbars (struct frame *f, + int x, int y, + int width, int height); +extern void common_redraw_frame_toolbars (struct frame *f); +extern void common_output_toolbar_button (struct frame *f, Lisp_Object button); + +#endif /* __TOOLBAR_COMMON_H__ */ diff --text -u 'xemacs-21.5.3/src/toolbar-gtk.c' 'xemacs-21.5.4/src/toolbar-gtk.c' Index: ././src/toolbar-gtk.c --- ././src/toolbar-gtk.c Fri Apr 13 03:24:24 2001 +++ ././src/toolbar-gtk.c Mon Dec 24 05:28:22 2001 @@ -1,4 +1,4 @@ -/* toolbar implementation -- X interface. +/* toolbar implementation -- GTK interface. Copyright (C) 1995 Board of Trustees, University of Illinois. Copyright (C) 1995 Sun Microsystems, Inc. Copyright (C) 1995, 1996 Ben Wing. @@ -25,621 +25,18 @@ #include #include "lisp.h" - -#include "console-gtk.h" -#include "glyphs-gtk.h" -#include "objects-gtk.h" -#include "gtk-xemacs.h" -#include "gccache-gtk.h" - -#include "faces.h" #include "frame.h" -#include "toolbar.h" -#include "window.h" - -extern GdkGC *gtk_get_gc (struct device *d, Lisp_Object font, Lisp_Object fg, Lisp_Object bg, - Lisp_Object bg_pmap, Lisp_Object lwidth); - -static GdkGC *get_toolbar_gc (struct frame *f) -{ - Lisp_Object fg, bg; - Lisp_Object frame; - - XSETFRAME (frame, f); - - fg = Fspecifier_instance (Fget (Vtoolbar_face, Qforeground, Qnil), frame, Qnil, Qnil); - bg = Fspecifier_instance (Fget (Vtoolbar_face, Qbackground, Qnil), frame, Qnil, Qnil); - - /* Need to swap the foreground/background here or most themes look bug ugly */ - return (gtk_get_gc (XDEVICE (FRAME_DEVICE (f)), Qnil, bg, fg, Qnil, Qnil)); -} - -static void -gtk_draw_blank_toolbar_button (struct frame *f, int x, int y, int width, - int height, int threed, int border_width, - int vertical) -{ - GtkXEmacs *ef = GTK_XEMACS (FRAME_GTK_TEXT_WIDGET (f)); - int sx = x, sy = y, swidth = width, sheight = height; - GdkWindow *x_win = GTK_WIDGET (ef)->window; - GdkGC *background_gc = get_toolbar_gc (f); - - if (vertical) - { - sx += border_width; - swidth -= 2 * border_width; - } - else - { - sy += border_width; - sheight -= 2 * border_width; - } - - /* Blank the entire area. */ - gdk_draw_rectangle (x_win, background_gc, TRUE, sx, sy, swidth, sheight); - - /* Draw the outline. */ - if (threed) - gtk_output_shadows (f, sx, sy, swidth, sheight, 2); - - /* Do the border */ - gdk_draw_rectangle (x_win, background_gc, TRUE, x, y, - (vertical ? border_width : width), - (vertical ? height : border_width)); - gdk_draw_rectangle (x_win, background_gc, TRUE, - (vertical ? sx + swidth : x), - (vertical ? y : sy + sheight), - (vertical ? border_width : width), - (vertical ? height : border_width)); -} - -static void -gtk_output_toolbar_button (struct frame *f, Lisp_Object button) -{ - int shadow_thickness = 2; - int x_adj, y_adj, width_adj, height_adj; - GdkWindow *x_win = FRAME_GTK_TEXT_WIDGET (f)->window; - GdkGC *background_gc = get_toolbar_gc (f); - Lisp_Object instance, frame, window, glyph; - struct toolbar_button *tb = XTOOLBAR_BUTTON (button); - struct Lisp_Image_Instance *p; - struct window *w; - int vertical = tb->vertical; - int border_width = tb->border_width; - - if (vertical) - { - x_adj = border_width; - width_adj = - 2 * border_width; - y_adj = 0; - height_adj = 0; - } - else - { - x_adj = 0; - width_adj = 0; - y_adj = border_width; - height_adj = - 2 * border_width; - } - - XSETFRAME (frame, f); - window = FRAME_LAST_NONMINIBUF_WINDOW (f); - w = XWINDOW (window); - - glyph = get_toolbar_button_glyph (w, tb); - - if (tb->enabled) - { - if (tb->down) - { - shadow_thickness = -2; - } - else - { - shadow_thickness = 2; - } - } - else - { - shadow_thickness = 0; - } - - background_gc = get_toolbar_gc (f); - - /* Clear the entire area. */ - gdk_draw_rectangle (x_win, background_gc, TRUE, - tb->x + x_adj, - tb->y + y_adj, - tb->width + width_adj, - tb->height + height_adj); - - /* Draw the outline. */ - if (shadow_thickness) - gtk_output_shadows (f, tb->x + x_adj, tb->y + y_adj, - tb->width + width_adj, tb->height + height_adj, - shadow_thickness); - - /* Do the border. */ - gdk_draw_rectangle (x_win, background_gc, TRUE, tb->x, tb->y, - (vertical ? border_width : tb->width), - (vertical ? tb->height : border_width)); - - gdk_draw_rectangle (x_win, background_gc, TRUE, - (vertical ? tb->x + tb->width - border_width : tb->x), - (vertical ? tb->y : tb->y + tb->height - border_width), - (vertical ? border_width : tb->width), - (vertical ? tb->height : border_width)); - - background_gc = get_toolbar_gc (f); - - /* #### It is currently possible for users to trash us by directly - changing the toolbar glyphs. Avoid crashing in that case. */ - if (GLYPHP (glyph)) - instance = glyph_image_instance (glyph, window, ERROR_ME_NOT, 1); - else - instance = Qnil; - - if (IMAGE_INSTANCEP (instance)) - { - int width = tb->width + width_adj - shadow_thickness * 2; - int height = tb->height + height_adj - shadow_thickness * 2; - int x_offset = x_adj + shadow_thickness; - int y_offset = y_adj + shadow_thickness; - - p = XIMAGE_INSTANCE (instance); - - if (IMAGE_INSTANCE_PIXMAP_TYPE_P (p)) - { - if (width > (int) IMAGE_INSTANCE_PIXMAP_WIDTH (p)) - { - x_offset += ((int) (width - IMAGE_INSTANCE_PIXMAP_WIDTH (p)) - / 2); - width = IMAGE_INSTANCE_PIXMAP_WIDTH (p); - } - if (height > (int) IMAGE_INSTANCE_PIXMAP_HEIGHT (p)) - { - y_offset += ((int) (height - IMAGE_INSTANCE_PIXMAP_HEIGHT (p)) - / 2); - height = IMAGE_INSTANCE_PIXMAP_HEIGHT (p); - } - - gtk_output_gdk_pixmap (f, XIMAGE_INSTANCE (instance), tb->x + x_offset, - tb->y + y_offset, 0, 0, 0, 0, width, height, - 0, 0, 0, background_gc); - } - else if (IMAGE_INSTANCE_TYPE (p) == IMAGE_TEXT) - { - /* #### We need to make the face used configurable. */ - struct face_cachel *cachel = - WINDOW_FACE_CACHEL (w, DEFAULT_INDEX); - struct display_line dl; - Lisp_Object string = IMAGE_INSTANCE_TEXT_STRING (p); - unsigned char charsets[NUM_LEADING_BYTES]; - Emchar_dynarr *buf; - struct font_metric_info fm; - - /* This could be true if we were called via the Expose event - handler. Mark the button as dirty and return - immediately. */ - if (f->window_face_cache_reset) - { - tb->dirty = 1; - MARK_TOOLBAR_CHANGED; - return; - } - buf = Dynarr_new (Emchar); - convert_bufbyte_string_into_emchar_dynarr - (XSTRING_DATA (string), XSTRING_LENGTH (string), buf); - find_charsets_in_emchar_string (charsets, Dynarr_atp (buf, 0), - Dynarr_length (buf)); - ensure_face_cachel_complete (cachel, window, charsets); - face_cachel_charset_font_metric_info (cachel, charsets, &fm); - - dl.ascent = fm.ascent; - dl.descent = fm.descent; - dl.ypos = tb->y + y_offset + fm.ascent; - - if (fm.ascent + fm.descent <= height) - { - dl.ypos += (height - fm.ascent - fm.descent) / 2; - dl.clip = 0; - } - else - { - dl.clip = fm.ascent + fm.descent - height; - } - - gtk_output_string (w, &dl, buf, tb->x + x_offset, 0, 0, width, - DEFAULT_INDEX, 0, 0, 0, 0); - Dynarr_free (buf); - } - - /* We silently ignore the image if it isn't a pixmap or text. */ - } - - tb->dirty = 0; -} - -static int -gtk_get_button_size (struct frame *f, Lisp_Object window, - struct toolbar_button *tb, int vert, int pos) -{ - int shadow_thickness = 2; - int size; - - if (tb->blank) - { - if (!NILP (tb->down_glyph)) - size = XINT (tb->down_glyph); - else - size = DEFAULT_TOOLBAR_BLANK_SIZE; - } - else - { - struct window *w = XWINDOW (window); - Lisp_Object glyph = get_toolbar_button_glyph (w, tb); - - /* Unless, of course, the user has done something stupid like - change the glyph out from under us. Use a blank placeholder - in that case. */ - if (NILP (glyph)) - return XINT (f->toolbar_size[pos]); - - if (vert) - size = glyph_height (glyph, window); - else - size = glyph_width (glyph, window); - } - - if (!size) - { - /* If the glyph doesn't have a size we'll insert a blank - placeholder instead. */ - return XINT (f->toolbar_size[pos]); - } - - size += shadow_thickness * 2; - - return (size); -} - -#define GTK_OUTPUT_BUTTONS_LOOP(left) \ - do { \ - while (!NILP (button)) \ - { \ - struct toolbar_button *tb = XTOOLBAR_BUTTON (button); \ - int size, height, width; \ - \ - if (left && tb->pushright) \ - break; \ - \ - size = gtk_get_button_size (f, window, tb, vert, pos); \ - \ - if (vert) \ - { \ - width = bar_width; \ - if (y + size > max_pixpos) \ - height = max_pixpos - y; \ - else \ - height = size; \ - } \ - else \ - { \ - if (x + size > max_pixpos) \ - width = max_pixpos - x; \ - else \ - width = size; \ - height = bar_height; \ - } \ - \ - if (tb->x != x \ - || tb->y != y \ - || tb->width != width \ - || tb->height != height \ - || tb->dirty) \ - { \ - if (width && height) \ - { \ - tb->x = x; \ - tb->y = y; \ - tb->width = width; \ - tb->height = height; \ - tb->border_width = border_width; \ - tb->vertical = vert; \ - \ - if (tb->blank || NILP (tb->up_glyph)) \ - { \ - int threed = (EQ (Qt, tb->up_glyph) ? 1 : 0); \ - gtk_draw_blank_toolbar_button (f, x, y, width, \ - height, threed, \ - border_width, vert); \ - } \ - else \ - gtk_output_toolbar_button (f, button); \ - } \ - } \ - \ - if (vert) \ - y += height; \ - else \ - x += width; \ - \ - if ((vert && y == max_pixpos) || (!vert && x == max_pixpos)) \ - button = Qnil; \ - else \ - button = tb->next; \ - } \ - } while (0) - -#define SET_TOOLBAR_WAS_VISIBLE_FLAG(frame, pos, flag) \ - do { \ - switch (pos) \ - { \ - case TOP_TOOLBAR: \ - (frame)->top_toolbar_was_visible = flag; \ - break; \ - case BOTTOM_TOOLBAR: \ - (frame)->bottom_toolbar_was_visible = flag; \ - break; \ - case LEFT_TOOLBAR: \ - (frame)->left_toolbar_was_visible = flag; \ - break; \ - case RIGHT_TOOLBAR: \ - (frame)->right_toolbar_was_visible = flag; \ - break; \ - default: \ - abort (); \ - } \ - } while (0) - -static void -gtk_output_toolbar (struct frame *f, enum toolbar_pos pos) -{ - int x, y, bar_width, bar_height, vert; - int max_pixpos, right_size, right_start, blank_size; - int border_width = FRAME_REAL_TOOLBAR_BORDER_WIDTH (f, pos); - Lisp_Object button, window; - GdkWindow *x_win = FRAME_GTK_TEXT_WIDGET (f)->window; - GdkGC *background_gc = get_toolbar_gc (f); - - get_toolbar_coords (f, pos, &x, &y, &bar_width, &bar_height, &vert, 1); - window = FRAME_LAST_NONMINIBUF_WINDOW (f); - - /* Do the border */ - gdk_draw_rectangle (x_win, background_gc, TRUE, x, y, - (vert ? bar_width : border_width), - (vert ? border_width : bar_height)); - gdk_draw_rectangle (x_win, background_gc, TRUE, - (vert ? x : x + bar_width - border_width), - (vert ? y + bar_height - border_width : y), - (vert ? bar_width : border_width), - (vert ? border_width : bar_height)); - - if (vert) - { - max_pixpos = y + bar_height - border_width; - y += border_width; - } - else - { - max_pixpos = x + bar_width - border_width; - x += border_width; - } - - button = FRAME_TOOLBAR_BUTTONS (f, pos); - right_size = 0; - - /* First loop over all of the buttons to determine how much room we - need for left hand and right hand buttons. This loop will also - make sure that all instances are instantiated so when we actually - output them they will come up immediately. */ - while (!NILP (button)) - { - struct toolbar_button *tb = XTOOLBAR_BUTTON (button); - int size = gtk_get_button_size (f, window, tb, vert, pos); - - if (tb->pushright) - right_size += size; - - button = tb->next; - } - - button = FRAME_TOOLBAR_BUTTONS (f, pos); - - /* Loop over the left buttons, updating and outputting them. */ - GTK_OUTPUT_BUTTONS_LOOP (1); - - /* Now determine where the right buttons start. */ - right_start = max_pixpos - right_size; - if (right_start < (vert ? y : x)) - right_start = (vert ? y : x); - - /* Output the blank which goes from the end of the left buttons to - the start of the right. */ - blank_size = right_start - (vert ? y : x); - if (blank_size) - { - int height, width; - - if (vert) - { - width = bar_width; - height = blank_size; - } - else - { - width = blank_size; - height = bar_height; - } - - /* - * Use a 3D pushright separator only if there isn't a toolbar - * border. A flat separator meshes with the border and looks - * better. - */ - gtk_draw_blank_toolbar_button (f, x, y, width, height, !border_width, - border_width, vert); - - if (vert) - y += height; - else - x += width; - } - - /* Loop over the right buttons, updating and outputting them. */ - GTK_OUTPUT_BUTTONS_LOOP (0); - - if (!vert) - { - Lisp_Object frame; - - XSETFRAME (frame, f); - redisplay_clear_region (frame, - DEFAULT_INDEX, FRAME_PIXWIDTH (f) - 1, y, 1, - bar_height); - } - - SET_TOOLBAR_WAS_VISIBLE_FLAG (f, pos, 1); - - gdk_flush (); -} - -static void -gtk_clear_toolbar (struct frame *f, enum toolbar_pos pos, int thickness_change) -{ - Lisp_Object frame; - int x, y, width, height, vert; - - get_toolbar_coords (f, pos, &x, &y, &width, &height, &vert, 1); - XSETFRAME (frame, f); - - /* The thickness_change parameter is used by the toolbar resize routines - to clear any excess toolbar if the size shrinks. */ - if (thickness_change < 0) - { - if (pos == LEFT_TOOLBAR || pos == RIGHT_TOOLBAR) - { - x = x + width + thickness_change; - width = -thickness_change; - } - else - { - y = y + height + thickness_change; - height = -thickness_change; - } - } - - SET_TOOLBAR_WAS_VISIBLE_FLAG (f, pos, 0); - - redisplay_clear_region (frame, DEFAULT_INDEX, x, y, width, height); - gdk_flush (); -} - -static void -gtk_output_frame_toolbars (struct frame *f) -{ - assert (FRAME_GTK_P (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) - gtk_clear_toolbar (f, RIGHT_TOOLBAR, 0); -} - -static void -gtk_redraw_exposed_toolbar (struct frame *f, enum toolbar_pos pos, int x, int y, - int width, int height) -{ - int bar_x, bar_y, bar_width, bar_height, vert; - Lisp_Object button = FRAME_TOOLBAR_BUTTONS (f, pos); - - get_toolbar_coords (f, pos, &bar_x, &bar_y, &bar_width, &bar_height, - &vert, 1); - - if (((y + height) < bar_y) || (y > (bar_y + bar_height))) - return; - if (((x + width) < bar_x) || (x > (bar_x + bar_width))) - return; - - while (!NILP (button)) - { - struct toolbar_button *tb = XTOOLBAR_BUTTON (button); - - if (vert) - { - if (((tb->y + tb->height) > y) && (tb->y < (y + height))) - tb->dirty = 1; - - /* If this is true we have gone past the exposed region. */ - if (tb->y > (y + height)) - break; - } - else - { - if (((tb->x + tb->width) > x) && (tb->x < (x + width))) - tb->dirty = 1; - - /* If this is true we have gone past the exposed region. */ - if (tb->x > (x + width)) - break; - } - - button = tb->next; - } - - /* Even if none of the buttons is in the area, the blank region at - the very least must be because the first thing we did is verify - that some portion of the toolbar is in the exposed region. */ - gtk_output_toolbar (f, pos); -} - -static void -gtk_redraw_exposed_toolbars (struct frame *f, int x, int y, int width, - int height) -{ - assert (FRAME_GTK_P (f)); - - if (FRAME_REAL_TOP_TOOLBAR_VISIBLE (f)) - gtk_redraw_exposed_toolbar (f, TOP_TOOLBAR, x, y, width, height); - - if (FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f)) - gtk_redraw_exposed_toolbar (f, BOTTOM_TOOLBAR, x, y, width, height); - - if (FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f)) - gtk_redraw_exposed_toolbar (f, LEFT_TOOLBAR, x, y, width, height); - - if (FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f)) - gtk_redraw_exposed_toolbar (f, RIGHT_TOOLBAR, x, y, width, height); -} - -static void -gtk_redraw_frame_toolbars (struct frame *f) -{ - /* There are certain startup paths that lead to update_EmacsFrame in - faces.c being called before a new frame is fully initialized. In - particular before we have actually mapped it. That routine can - call this one. So, we need to make sure that the frame is - actually ready before we try and draw all over it. */ +#include "toolbar-common.h" +#include "console-gtk.h" - if (GTK_WIDGET_REALIZED (FRAME_GTK_TEXT_WIDGET (f))) - gtk_redraw_exposed_toolbars (f, 0, 0, FRAME_PIXWIDTH (f), - FRAME_PIXHEIGHT (f)); -} +/* We should really create a 'common' console type and fill it with +** all the shared code. We would then just use +** CONSOLE_INHERITS_METHOD(x,common,blah) +*/ +#define gtk_output_frame_toolbars common_output_frame_toolbars +#define gtk_output_toolbar_button common_output_toolbar_button +#define gtk_redraw_exposed_toolbars common_redraw_exposed_toolbars +#define gtk_redraw_frame_toolbars common_redraw_frame_toolbars static void diff --text -u 'xemacs-21.5.3/src/toolbar-x.c' 'xemacs-21.5.4/src/toolbar-x.c' Index: ././src/toolbar-x.c --- ././src/toolbar-x.c Fri Apr 13 03:24:24 2001 +++ ././src/toolbar-x.c Thu Sep 20 15:29:16 2001 @@ -239,7 +239,7 @@ return; } buf = Dynarr_new (Emchar); - convert_bufbyte_string_into_emchar_dynarr + convert_intbyte_string_into_emchar_dynarr (XSTRING_DATA (string), XSTRING_LENGTH (string), buf); find_charsets_in_emchar_string (charsets, Dynarr_atp (buf, 0), Dynarr_length (buf)); diff --text -u 'xemacs-21.5.3/src/tooltalk.c' 'xemacs-21.5.4/src/tooltalk.c' Index: ././src/tooltalk.c --- ././src/tooltalk.c Wed Jun 6 21:34:47 2001 +++ ././src/tooltalk.c Thu Sep 20 15:29:16 2001 @@ -301,7 +301,7 @@ { if (tt_is_err (st)) { - CBufbyte *err; + CIntbyte *err; EXTERNAL_TO_C_STRING (tt_status_message (st), err, Qnative); signal_error (Qtooltalk_error, err, Qunbound); @@ -532,7 +532,7 @@ tt_message_arg_bval_vector (Tt_message m, int n) { /* !!#### This function has not been Mule-ized */ - Bufbyte *value; + Intbyte *value; int len = 0; check_status (tt_message_arg_bval (m, n, &value, &len)); @@ -762,7 +762,7 @@ else if (EQ (attribute, Qtt_arg_bval)) { Extbyte *value_ext; - Extcount value_ext_len; + Bytecount value_ext_len; CHECK_STRING (value); TO_EXTERNAL_FORMAT (LISP_STRING, value, ALLOCA, (value_ext, value_ext_len), diff --text -u 'xemacs-21.5.3/src/tparam.c' 'xemacs-21.5.4/src/tparam.c' Index: ././src/tparam.c --- ././src/tparam.c Mon Aug 13 13:46:41 2001 +++ ././src/tparam.c Thu Sep 20 15:29:16 2001 @@ -30,8 +30,8 @@ #define realloc xrealloc #define malloc xmalloc #define free xfree -extern void *xmalloc (Memory_Count size); -extern void *xrealloc (void *, Memory_Count size); +extern void *xmalloc (Bytecount size); +extern void *xrealloc (void *, Bytecount size); /* Assuming STRING is the value of a termcap string entry containing `%' constructs to expand parameters, diff --text -u 'xemacs-21.5.3/src/undo.c' 'xemacs-21.5.4/src/undo.c' Index: ././src/undo.c --- ././src/undo.c Thu May 24 16:51:32 2001 +++ ././src/undo.c Thu Sep 20 15:29:16 2001 @@ -28,7 +28,7 @@ #include "extents.h" /* Maintained in event-stream.c */ -extern Bufpos last_point_position; +extern Charbpos last_point_position; extern Lisp_Object last_point_position_buffer; /* Extent code needs to know about undo because the behavior of insert() @@ -118,7 +118,7 @@ because we don't need to record the contents.) */ void -record_insert (struct buffer *b, Bufpos beg, Charcount length) +record_insert (struct buffer *b, Charbpos beg, Charcount length) { if (!undo_prelude (b, 1)) return; @@ -148,7 +148,7 @@ for LENGTH characters at location BEG. */ void -record_delete (struct buffer *b, Bufpos beg, Charcount length) +record_delete (struct buffer *b, Charbpos beg, Charcount length) { /* This function can GC */ Lisp_Object sbeg; @@ -184,7 +184,7 @@ The replacement does not change the number of characters. */ void -record_change (struct buffer *b, Bufpos beg, Charcount length) +record_change (struct buffer *b, Charbpos beg, Charcount length) { record_delete (b, beg, length); record_insert (b, beg, length); @@ -222,7 +222,7 @@ /* Record a change in property PROP (whose old value was VAL) for LENGTH characters starting at position BEG in BUFFER. */ -record_property_change (Bufpos beg, Charcount length, +record_property_change (Charbpos beg, Charcount length, Lisp_Object prop, Lisp_Object value, Lisp_Object buffer) { @@ -408,7 +408,7 @@ /* Handle an integer by setting point to that value. */ else if (INTP (next)) BUF_SET_PT (current_buffer, - bufpos_clip_to_bounds (BUF_BEGV (current_buffer), + charbpos_clip_to_bounds (BUF_BEGV (current_buffer), XINT (next), BUF_ZV (current_buffer))); else if (CONSP (next)) diff --text -u 'xemacs-21.5.3/src/win32.c' 'xemacs-21.5.4/src/win32.c' Index: ././src/win32.c --- ././src/win32.c Sun Jun 10 19:42:34 2001 +++ ././src/win32.c Thu Dec 20 14:49:48 2001 @@ -87,7 +87,7 @@ Lisp_Object tstr_to_local_file_format (Extbyte *pathout) { - Bufbyte *ttlff; + Intbyte *ttlff; Lisp_Object in; EXTERNAL_TO_C_STRING (pathout, ttlff, Qmswindows_tstr); @@ -183,8 +183,11 @@ /* Encode filename and current directory. */ Lisp_Object current_dir = Ffile_name_directory (document); char* path = NULL; +#ifdef CYGWIN + char* fname1, *fname2; + int pos, sz; +#endif char* doc = NULL; - Extbyte* f=0; int ret; struct gcpro gcpro1, gcpro2; @@ -198,25 +201,37 @@ /* Use mule and cygwin-safe APIs top get at file data. */ if (STRINGP (current_dir)) { - TO_EXTERNAL_FORMAT (LISP_STRING, current_dir, - C_STRING_ALLOCA, f, - Qfile_name); -#ifdef CYGWIN - CYGWIN_WIN32_PATH (f, path); -#else - path = f; -#endif + LOCAL_TO_WIN32_FILE_FORMAT (current_dir, path); } if (STRINGP (document)) { - TO_EXTERNAL_FORMAT (LISP_STRING, document, - C_STRING_ALLOCA, f, - Qfile_name); + doc = XSTRING_DATA (document); #ifdef CYGWIN - CYGWIN_WIN32_PATH (f, doc); -#else - doc = f; + if ((fname1 = strchr (doc, ':')) != NULL + && *++fname1 == '/' && *++fname1 == '/') + { + // 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) + { + 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 } @@ -249,6 +264,29 @@ return Qnil; } +#ifdef CYGWIN +DEFUN ("mswindows-cygwin-to-win32-path", Fmswindows_cygwin_to_win32_path, 1, 1, 0, /* +Get the cygwin environment to convert the Unix PATH to win32 format. +No expansion is performed, all conversion is done by the cygwin runtime. +*/ + (path)) +{ + Extbyte* f; + Intbyte* p; + CHECK_STRING (path); + + /* There appears to be a bug in the cygwin conversion routines in + that they are not idempotent. */ + p = XSTRING_DATA (path); + if (isalpha (p[0]) && (IS_DEVICE_SEP (p[1]))) + return path; + + /* Use mule and cygwin-safe APIs top get at file data. */ + LOCAL_TO_WIN32_FILE_FORMAT (path, f); + return build_ext_string (f, Qnative); +} +#endif + #if defined (WIN32_NATIVE) || defined (CYGWIN_BROKEN_SIGNALS) /* setitimer() does not exist on native MS Windows, and appears broken @@ -502,6 +540,9 @@ syms_of_win32 (void) { DEFSUBR (Fmswindows_shell_execute); +#ifdef CYGWIN + DEFSUBR (Fmswindows_cygwin_to_win32_path); +#endif } void diff --text -u 'xemacs-21.5.3/src/window.c' 'xemacs-21.5.4/src/window.c' Index: ././src/window.c --- ././src/window.c Mon Aug 13 13:46:42 2001 +++ ././src/window.c Thu Dec 20 14:49:48 2001 @@ -123,6 +123,8 @@ /* List of freed window configurations with 1 - 10 windows. */ static Lisp_Object Vwindow_configuration_free_list[10]; +Lisp_Object Qtruncate_partial_width_windows; + #define SET_LAST_MODIFIED(w, cache_too) \ do { \ (w)->last_modified[CURRENT_DISP] = Qzero; \ @@ -756,7 +758,8 @@ /* If truncate_partial_width_windows is true and the window is not the full width of the frame it is truncated. */ - if (truncate_partial_width_windows + if (!NILP (symbol_value_in_buffer (Qtruncate_partial_width_windows, + w->buffer)) && !(window_is_leftmost (w) && window_is_rightmost (w))) return 1; @@ -1299,8 +1302,8 @@ (pos, window)) { struct window *w = decode_window (window); - Bufpos top = marker_position (w->start[CURRENT_DISP]); - Bufpos posint; + Charbpos top = marker_position (w->start[CURRENT_DISP]); + Charbpos posint; struct buffer *buf = XBUFFER (w->buffer); if (NILP (pos)) @@ -1438,7 +1441,7 @@ (window, noclipped)) { struct window *w; - Bufpos start, eobuf; + Charbpos start, eobuf; int defheight; int hlimit, height, prev_height = -1; int line; @@ -1728,7 +1731,7 @@ } else { - Bufpos startp = marker_position (w->start[CURRENT_DISP]); + Charbpos startp = marker_position (w->start[CURRENT_DISP]); return make_int (end_of_last_line (w, startp)); } } @@ -1862,7 +1865,7 @@ if (! EQ (buf, XWINDOW (Fselected_window (Qnil))->buffer)) { struct buffer *b= XBUFFER (buf); - BUF_SET_PT (b, bufpos_clip_to_bounds (BUF_BEGV (b), + BUF_SET_PT (b, charbpos_clip_to_bounds (BUF_BEGV (b), marker_position (w->pointm[CURRENT_DISP]), BUF_ZV (b))); } @@ -2670,7 +2673,7 @@ We can't just wait until we hit the first window again, because it might be deleted. */ - last_window = Fprevious_window (w, mini ? Qt : Qnil, frame_arg, Qt); + last_window = Fprevious_window (w, mini ? Qt : Qnil, frame_arg, device); best_window = Qnil; for (;;) @@ -2685,7 +2688,17 @@ /* Given the outstanding quality of the rest of this code, I feel no shame about putting this piece of shit in. */ if (++lose_lose >= 500) - return Qnil; + { + /* Call to abort() added by Darryl Okahata (16 Nov. 2001), + at Ben's request, to catch any remaining bugs. + + If you find that XEmacs is aborting here, and you + need to be up and running ASAP, it should be safe to + comment out the following abort(), as long as you + leave the "break;" alone. */ + abort(); + break; /* <--- KEEP THIS HERE! Do not delete! */ + } /* Note that we do not pay attention here to whether the frame is visible, since Fnext_window skips non-visible frames @@ -3024,7 +3037,7 @@ { struct window *w = decode_window (window); struct buffer *b = XBUFFER (w->buffer); - Bufpos start_pos; + Charbpos start_pos; int old_top = WINDOW_TOP (w); XSETWINDOW (window, w); @@ -3045,7 +3058,7 @@ if (start_pos >= BUF_BEGV (b) && start_pos <= BUF_ZV (b) && !MINI_WINDOW_P (w)) { - Bufpos new_start = start_with_line_at_pixpos (w, start_pos, old_top); + Charbpos new_start = start_with_line_at_pixpos (w, start_pos, old_top); if (new_start >= BUF_BEGV (b) && new_start <= BUF_ZV (b)) { @@ -3567,7 +3580,7 @@ redisplay_window has altered point after scrolling, because it makes the change only in the window. */ { - Bufpos new_point = marker_position (w->pointm[CURRENT_DISP]); + Charbpos new_point = marker_position (w->pointm[CURRENT_DISP]); if (new_point < BUF_BEGV (current_buffer)) new_point = BUF_BEGV (current_buffer); else if (new_point > BUF_ZV (current_buffer)) @@ -3683,8 +3696,9 @@ 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)) { @@ -4296,7 +4310,7 @@ point = make_int (BUF_PT (b)); else { - Bufpos pos = marker_position (w->pointm[CURRENT_DISP]); + Charbpos pos = marker_position (w->pointm[CURRENT_DISP]); if (pos < BUF_BEGV (b)) pos = BUF_BEGV (b); @@ -4395,7 +4409,7 @@ else { int vtarget; - Bufpos startp, old_start; + Charbpos startp, old_start; if (WINDOW_TEXT_TOP_CLIP (w)) { @@ -4453,7 +4467,7 @@ else { int vtarget; - Bufpos startp, old_start; + Charbpos startp, old_start; if (WINDOW_TEXT_TOP_CLIP (w)) { @@ -4498,7 +4512,7 @@ if (!point_would_be_visible (w, startp, XINT (point))) { - Bufpos new_point; + Charbpos new_point; if (MINI_WINDOW_P (w)) new_point = startp; @@ -4531,9 +4545,9 @@ { int vtarget; int movement = next_screen_context_lines - 1; - Bufpos old_startp = marker_position (w->start[CURRENT_DISP]); - Bufpos bottom = vmotion (w, old_startp, movement, &vtarget); - Bufpos startp = + Charbpos old_startp = marker_position (w->start[CURRENT_DISP]); + Charbpos bottom = vmotion (w, old_startp, movement, &vtarget); + Charbpos startp = start_with_point_on_display_line (w, bottom, -1 - (movement - vtarget)); @@ -4548,7 +4562,7 @@ if (!point_would_be_visible (w, startp, XINT (point))) { - Bufpos new_point = start_of_last_line (w, startp); + Charbpos new_point = start_of_last_line (w, startp); if (selected) BUF_SET_PT (b, new_point); @@ -4712,8 +4726,8 @@ { struct window *w = decode_window (window); struct buffer *b = XBUFFER (w->buffer); - Bufpos opoint = BUF_PT (b); - Bufpos startp; + Charbpos opoint = BUF_PT (b); + Charbpos startp; if (NILP (n)) startp = start_with_line_at_pixpos (w, opoint, window_half_pixpos (w)); @@ -4744,7 +4758,7 @@ struct window *w; struct buffer *b; int height; - Bufpos start, new_point; + Charbpos start, new_point; int selected; /* Don't use decode_window() because we need the new value of @@ -5129,14 +5143,14 @@ return Qnil; } -inline static Memory_Count +inline static Bytecount sizeof_window_config_for_n_windows (int n) { return FLEXIBLE_ARRAY_STRUCT_SIZEOF (struct window_config, struct saved_window, saved_windows, n); } -static Memory_Count +static Bytecount sizeof_window_config (const void *h) { const struct window_config *c = (const struct window_config *) h; @@ -6028,7 +6042,7 @@ if (y<0 || x<0 || y >= Dynarr_length (dla) || !NILP (pos)) { int first_line, i; - Bufpos point; + Charbpos point; if (NILP (pos)) pos = Fwindow_point (window); @@ -6045,20 +6059,20 @@ { dl = Dynarr_atp (dla, i); /* find the vertical location first */ - if (point >= dl->bufpos && point <= dl->end_bufpos) + if (point >= dl->charbpos && point <= dl->end_charbpos) { db = get_display_block_from_line (dl, TEXT); for (i = 0; i < Dynarr_length (db->runes); i++) { rb = Dynarr_atp (db->runes, i); - if (point <= rb->bufpos) - goto found_bufpos; + if (point <= rb->charbpos) + goto found_charbpos; } return Qnil; } } return Qnil; - found_bufpos: + found_charbpos: ; } else @@ -6146,6 +6160,8 @@ /* Qother in general.c */ #endif + DEFSYMBOL (Qtruncate_partial_width_windows); + DEFSUBR (Fselected_window); DEFSUBR (Flast_nonminibuf_window); DEFSUBR (Fminibuffer_window); diff --text -u 'xemacs-21.5.3/src/window.h' 'xemacs-21.5.4/src/window.h' Index: ././src/window.h --- ././src/window.h Mon Jun 18 16:10:32 2001 +++ ././src/window.h Thu Sep 20 15:29:17 2001 @@ -137,7 +137,7 @@ /* Set by redisplay to the last position seen. This is used to implement the redisplay-end-trigger-functions. */ - Bufpos last_redisplay_pos; + Charbpos last_redisplay_pos; #define WINDOW_SLOT_DECLARATION #define WINDOW_SLOT(slot) Lisp_Object slot; diff --text -u 'xemacs-21.5.3/tests/ChangeLog' 'xemacs-21.5.4/tests/ChangeLog' Index: ././tests/ChangeLog --- ././tests/ChangeLog Fri Sep 7 18:13:26 2001 +++ ././tests/ChangeLog Wed Jan 9 01:22:54 2002 @@ -1,3 +1,7 @@ +2002-01-08 Stephen J. Turnbull + + * XEmacs 21.5.4 "bamboo" is released. + 2001-09-07 Stephen J. Turnbull * XEmacs 21.5.3 "asparagus" is released. diff --text -u 'xemacs-21.5.3/version.sh' 'xemacs-21.5.4/version.sh' Index: ././version.sh --- ././version.sh Fri Sep 7 18:13:26 2001 +++ ././version.sh Wed Jan 9 01:22:54 2002 @@ -2,8 +2,9 @@ emacs_is_beta=t emacs_major_version=21 emacs_minor_version=5 -emacs_beta_version=3 -xemacs_codename="asparagus" +emacs_beta_version=4 +xemacs_codename="bamboo" +emacs_kit_version= infodock_major_version=4 infodock_minor_version=0 infodock_build_version=8 #### End of Patch data #### #### ApplyPatch data follows #### # Data version : 1.0 # Date generated : Wed Jan 9 01:22:59 2002 # Generated by : makepatch 2.00_03 # Recurse directories : Yes # Excluded files : (\A|/).*\.gz\Z # (\A|/)display\Z # (\A|/)TUTORIAL\.ru\Z # (\A|/)TUTORIAL\.th\Z # (\A|/).*\.png\Z # (\A|/).*\.bmp\Z # (\A|/).*\.ico\Z # (\A|/).*\.elc\Z # (\A|/).*\.info.*\Z # (\A|/)MANIFEST\Z # (\A|/)\.precious\Z # r './lisp/mule/custom-load.el' 190 0 # r './lisp/mule/auto-autoloads.el' 7730 0 # r './lisp/custom-load.el' 4546 0 # r './lisp/auto-autoloads.el' 102822 0 # p './CHANGES-beta' 35237 1010215991 0100644 # c './CHANGES-msw' 0 1008828489 0100644 # p './ChangeLog' 144115 1010506974 0100644 # p './Makefile.in.in' 24334 1008828489 0100644 # p './PROBLEMS' 74118 1010215991 0100644 # p './aclocal.m4' 15817 1010215991 0100644 # c './build-msw-release.sh' 0 1008828613 0100755 # p './configure' 460813 1010506972 0100755 # c './configure.ac' 0 1001413211 0100644 # p './configure.in' 171465 1010215997 0100644 # p './configure.usage' 14983 1010215997 0100644 # p './etc/NEWS' 58176 1007402569 0100644 # c './etc/package-index.LATEST.gpg' 0 1009586473 0100644 # p './etc/package-index.LATEST.pgp' 46330 1009586473 0100644 # c './info/.cvsignore' 0 1008716134 0100644 # p './info/dir' 2343 1010004992 0100644 # p './lib-src/ChangeLog' 40827 1010506974 0100644 # p './lib-src/Makefile.in.in' 12424 1008835099 0100644 # p './lib-src/etags.c' 142607 1009179896 0100644 # p './lisp/ChangeLog' 365884 1010506974 0100644 # p './lisp/about.el' 90008 1007970214 0100644 # p './lisp/code-files.el' 20233 1004418807 0100644 # p './lisp/cus-edit.el' 124956 1008827370 0100644 # p './lisp/cus-face.el' 11478 1008827370 0100644 # p './lisp/dialog-gtk.el' 9485 1008827370 0100644 # p './lisp/dialog.el' 24916 1004418807 0100644 # p './lisp/faces.el' 78338 1009069306 0100644 # p './lisp/files.el' 129734 1007555357 0100644 # p './lisp/find-paths.el' 11332 1007631350 0100644 # p './lisp/font-lock.el' 117133 1008296453 0100644 # p './lisp/font.el' 47253 1008827370 0100644 # p './lisp/gnuserv.el' 29320 1009005658 0100644 # p './lisp/gtk-faces.el' 11945 1009069306 0100644 # p './lisp/gui.el' 4503 1009069306 0100644 # p './lisp/hyper-apropos.el' 48694 1009503522 0100644 # p './lisp/info.el' 117982 1010174014 0100644 # p './lisp/isearch-mode.el' 76024 1009005658 0100644 # p './lisp/keydefs.el' 26777 1009411076 0100644 # p './lisp/menubar-items.el' 72601 1007059161 0100644 # p './lisp/menubar.el' 27503 1008827371 0100644 # p './lisp/minibuf.el' 92853 1004418807 0100644 # p './lisp/modeline.el' 26059 1008416794 0100644 # p './lisp/obsolete.el' 15709 1009503522 0100644 # p './lisp/package-get.el' 42413 1008827371 0100644 # p './lisp/package-net.el' 9191 1008827371 0100644 # p './lisp/packages.el' 19606 1007631350 0100644 # p './lisp/paragraphs.el' 15673 1007525365 0100644 # p './lisp/printer.el' 17606 1009493546 0100644 # p './lisp/rect.el' 11942 1007402567 0100644 # p './lisp/startup.el' 52761 1007362151 0100644 # p './lisp/toolbar-items.el' 19079 1004418808 0100644 # p './lisp/view-less.el' 14718 1008416794 0100644 # p './lisp/wid-edit.el' 126918 1010216000 0100644 # p './lwlib/ChangeLog' 22495 1010506974 0100644 # p './man/ChangeLog' 81651 1010506974 0100644 # p './man/Makefile' 7845 1008316206 0100644 # p './man/emodules.texi' 41899 1010004996 0100644 # p './man/external-widget.texi' 5623 1010004996 0100644 # p './man/lispref/glyphs.texi' 60972 1008827377 0100644 # p './man/lispref/intro.texi' 37894 1008316210 0100644 # p './man/lispref/lispref.texi' 53226 1008827377 0100644 # p './man/lispref/objects.texi' 80743 1008316210 0100644 # c './man/lispref/packaging.texi' 0 1008407781 0100644 # p './man/term.texi' 13425 1008444319 0100644 # p './man/xemacs-faq.texi' 249266 1006887296 0100644 # p './man/xemacs/programs.texi' 85489 1008835103 0100644 # p './man/xemacs/xemacs.texi' 46821 1008444321 0100644 # p './netinstall/ChangeLog' 5862 1010506974 0100644 # p './netinstall/Makefile.in.in' 7089 1008827380 0100644 # p './netinstall/choose.cc' 19996 1000010266 0100644 # p './netinstall/desktop.cc' 11112 1008827380 0100644 # c './netinstall/desktop.h' 0 1008827380 0100644 # p './netinstall/dialog.h' 1895 1000010266 0100644 # p './netinstall/download.cc' 2431 1000010266 0100644 # p './netinstall/geturl.cc' 5654 1004064173 0100644 # p './netinstall/ini.h' 2415 1000010267 0100644 # p './netinstall/install.cc' 11036 1008827380 0100644 # p './netinstall/localdir.cc' 3185 1004418808 0100644 # p './netinstall/log.cc' 2526 1004418808 0100644 # p './netinstall/main.cc' 2439 1000010267 0100644 # p './netinstall/msg.cc' 1498 1004418808 0100644 # p './netinstall/net.cc' 3078 1004418808 0100644 # p './netinstall/nio-ftp.cc' 2704 1004064173 0100644 # p './netinstall/nio-ie5.cc' 3749 1000010267 0100644 # p './netinstall/regedit.cc' 4986 1001385332 0100644 # p './netinstall/regedit.h' 830 1001385332 0100644 # p './netinstall/reginfo.h' 1487 1000010267 0100644 # p './netinstall/res.rc' 20642 1004418808 0100644 # p './netinstall/resource.h' 4827 1004418808 0100644 # p './netinstall/root.cc' 7408 1000010267 0100644 # p './netinstall/setup.mak' 7369 1001385332 0100644 # p './netinstall/source.cc' 2191 1008827380 0100644 # p './netinstall/splash.cc' 1646 1000010267 0100644 # p './netinstall/state.h' 1243 1004064173 0100644 # c './netinstall/uninstall.cc' 0 1008827380 0100644 # p './netinstall/win32.h' 1522 1008827381 0100644 # p './nt/ChangeLog' 40970 1010506974 0100644 # p './nt/installer/Wise/ChangeLog' 385 1010506974 0100644 # p './nt/xemacs.mak' 46849 1001691061 0100644 # p './src/.cvsignore' 225 1008716131 0100644 # p './src/ChangeLog' 419628 1010506974 0100644 # p './src/abbrev.c' 14438 1000967328 0100644 # p './src/alloc.c' 119504 1008827384 0100644 # p './src/blocktype.c' 2764 1000967328 0100644 # p './src/blocktype.h' 1514 1000967328 0100644 # p './src/buffer.c' 103111 1008827385 0100644 # p './src/buffer.h' 67818 1000967329 0100644 # p './src/bytecode.c' 60230 1000967329 0100644 # p './src/callint.c' 33968 1000967329 0100644 # p './src/callproc.c' 28261 1000967329 0100644 # p './src/casefiddle.c' 10176 1000967330 0100644 # p './src/chartab.c' 50317 1000967330 0100644 # p './src/cmds.c' 16440 1000967330 0100644 # p './src/config.h.in' 25881 1010216003 0100644 # p './src/console-gtk.h' 8841 1009139300 0100644 # p './src/console-msw.c' 19314 1000967330 0100644 # p './src/console-msw.h' 13667 1000967330 0100644 # p './src/console-x.c' 8384 1000967330 0100644 # p './src/console.c' 44813 1000967330 0100644 # p './src/console.h' 26231 1000967331 0100644 # p './src/data.c' 60664 1000967331 0100644 # p './src/database.c' 19941 1000967331 0100644 # p './src/device-msw.c' 39239 1000967331 0100644 # p './src/device-x.c' 63891 1000967331 0100644 # p './src/device.h' 14111 1000967332 0100644 # p './src/dialog-msw.c' 22298 1008827385 0100644 # p './src/dired.c' 29386 1008827385 0100644 # p './src/doc.c' 27638 1000967332 0100644 # p './src/doprnt.c' 24101 1000967332 0100644 # p './src/dumper.c' 35656 1000967332 0100644 # p './src/dynarr.c' 7777 1000967332 0100644 # p './src/editfns.c' 79990 1008827385 0100644 # p './src/eldap.c' 23948 1000967333 0100644 # p './src/elhash.c' 51775 1000967333 0100644 # p './src/elhash.h' 3165 1000967333 0100644 # p './src/emacs.c' 116746 1000967333 0100644 # p './src/emodules.c' 19077 1000967334 0100644 # p './src/eval.c' 155784 1000967334 0100644 # p './src/event-Xt.c' 110838 1000967334 0100644 # p './src/event-gtk.c' 66775 1000967335 0100644 # p './src/event-msw.c' 119275 1008827386 0100644 # p './src/event-stream.c' 164210 1008827386 0100644 # p './src/event-unixoid.c' 9570 1000967336 0100644 # p './src/events.c' 67638 1000967336 0100644 # p './src/events.h' 28003 1000967336 0100644 # p './src/extents.c' 218525 1000967337 0100644 # p './src/extents.h' 17168 1000967337 0100644 # p './src/faces.c' 65553 1000967337 0100644 # p './src/file-coding.c' 174692 1000967337 0100644 # p './src/file-coding.h' 20670 1000967338 0100644 # p './src/fileio.c' 129408 1008827386 0100644 # p './src/filelock.c' 14487 1000967339 0100644 # p './src/floatfns.c' 25768 1000967339 0100644 # p './src/fns.c' 108531 1000967339 0100644 # p './src/font-lock.c' 26638 1000967339 0100644 # p './src/frame-gtk.c' 41302 1000967339 0100644 # p './src/frame-msw.c' 36605 1000967340 0100644 # p './src/frame-x.c' 85939 1000967340 0100644 # p './src/frame.c' 107787 1000967340 0100644 # p './src/general-slots.h' 5860 1004418810 0100644 # p './src/gif_io.c' 8443 1000967340 0100644 # p './src/gifrlib.h' 11594 1000967340 0100644 # p './src/glyphs-eimage.c' 40160 1000967341 0100644 # p './src/glyphs-gtk.c' 80499 1009139301 0100644 # p './src/glyphs-msw.c' 90546 1000967341 0100644 # p './src/glyphs-x.c' 91120 1000967341 0100644 # p './src/glyphs.c' 165830 1000967342 0100644 # p './src/glyphs.h' 45150 1000967342 0100644 # p './src/gpmevent.c' 16073 1000967342 0100644 # p './src/gui-x.c' 19143 1000967342 0100644 # p './src/gui-x.h' 3135 1000967343 0100644 # p './src/gui.c' 21465 1000967343 0100644 # p './src/gui.h' 4176 1000967343 0100644 # p './src/gutter.c' 50933 1000967343 0100644 # p './src/gutter.h' 5142 1000967343 0100644 # p './src/hash.c' 9910 1000967343 0100644 # p './src/hash.h' 2793 1000967343 0100644 # p './src/hpplay.c' 7757 1000967343 0100644 # p './src/indent.c' 26355 1000967344 0100644 # p './src/insdel.c' 97468 1000967344 0100644 # p './src/insdel.h' 6067 1000967344 0100644 # p './src/keymap.c' 133941 1010121362 0100644 # p './src/line-number.c' 11041 1000967344 0100644 # p './src/line-number.h' 1186 1000967345 0100644 # p './src/lisp.h' 120877 1008827387 0100644 # p './src/lread.c' 91906 1000967345 0100644 # p './src/lrecord.h' 29222 1000967345 0100644 # p './src/lstream.c' 48012 1000967346 0100644 # p './src/lstream.h' 16102 1000967346 0100644 # p './src/malloc.c' 22666 1000967346 0100644 # p './src/marker.c' 14905 1000967346 0100644 # p './src/md5.c' 18441 1000967346 0100644 # p './src/menubar-gtk.c' 35459 1009139301 0100644 # p './src/menubar-msw.c' 29514 1008827387 0100644 # p './src/menubar-x.c' 37503 1000967347 0100644 # p './src/menubar.c' 27840 1000967347 0100644 # p './src/minibuf.c' 27535 1000967347 0100644 # p './src/mule-ccl.c' 63606 1000967347 0100644 # p './src/mule-charset.c' 50427 1000967348 0100644 # p './src/mule-charset.h' 30725 1000967348 0100644 # p './src/mule-wnnfns.c' 58018 1000967348 0100644 # p './src/nt.c' 54261 1008827387 0100644 # p './src/ntheap.c' 10362 1008827387 0100644 # p './src/objects-gtk.c' 16645 1000967348 0100644 # p './src/objects-gtk.h' 2361 1000967348 0100644 # p './src/objects-msw.c' 62804 1000967348 0100644 # p './src/objects-tty.c' 9639 1000967349 0100644 # p './src/objects-x.c' 34041 1000967349 0100644 # p './src/objects.c' 32604 1000967349 0100644 # p './src/objects.h' 6963 1000967349 0100644 # p './src/opaque.c' 5212 1000967349 0100644 # p './src/opaque.h' 2543 1000967349 0100644 # p './src/print.c' 56362 1000967349 0100644 # p './src/process-nt.c' 40952 1000967349 0100644 # p './src/process-unix.c' 59712 1010216003 0100644 # p './src/process.c' 64675 1000967350 0100644 # p './src/procimpl.h' 6593 1000967350 0100644 # p './src/redisplay-gtk.c' 62017 1009139301 0100644 # p './src/redisplay-output.c' 73312 1000967351 0100644 # p './src/redisplay-tty.c' 42415 1000967351 0100644 # p './src/redisplay-x.c' 64713 1000789480 0100644 # p './src/redisplay.c' 282378 1000967351 0100644 # p './src/redisplay.h' 27990 1000967352 0100644 # p './src/regex.c' 208224 1000967352 0100644 # p './src/regex.h' 20013 1000967352 0100644 # p './src/scrollbar-gtk.h' 2639 1000967353 0100644 # p './src/scrollbar-msw.c' 14736 1008827388 0100644 # p './src/scrollbar-x.h' 2589 1000967353 0100644 # p './src/scrollbar.c' 31381 1000967353 0100644 # p './src/search.c' 90973 1008827388 0100644 # p './src/select-common.h' 10556 1000967353 0100644 # p './src/select-gtk.c' 13387 1009069712 0100644 # p './src/select-x.c' 46396 1000967354 0100644 # p './src/sheap.c' 4255 1000967354 0100644 # p './src/sound.c' 18054 1000967354 0100644 # p './src/sound.h' 1659 1000967354 0100644 # p './src/specifier.c' 104649 1000967354 0100644 # p './src/symbols.c' 113078 1000967354 0100644 # p './src/symsinit.h' 16434 1000010264 0100644 # p './src/syntax.c' 60781 1000967355 0100644 # p './src/syntax.h' 17843 1000967355 0100644 # p './src/sysdep.c' 112951 1010216004 0100644 # p './src/sysdep.h' 5480 1000967355 0100644 # p './src/syswindows.h' 9507 1004418811 0100644 # p './src/tests.c' 16730 1000967356 0100644 # c './src/toolbar-common.c' 0 1009139301 0100644 # c './src/toolbar-common.h' 0 1009069860 0100644 # p './src/toolbar-gtk.c' 18658 1009139302 0100644 # p './src/toolbar-x.c' 23486 1000967356 0100644 # p './src/tooltalk.c' 41815 1000967356 0100644 # p './src/tparam.c' 6968 1000967356 0100644 # p './src/undo.c' 15285 1000967356 0100644 # p './src/win32.c' 14684 1008827388 0100644 # p './src/window.c' 200124 1008827388 0100644 # p './src/window.h' 15784 1000967357 0100644 # p './tests/ChangeLog' 11113 1010506974 0100644 # p './version.sh' 195 1010506974 0100644 #### End of ApplyPatch data #### #### End of Patch kit [created: Wed Jan 9 01:22:59 2002] #### #### Patch checksum: 42952 1439997 38356 #### #### Checksum: 43004 1441828 61234 ####