# This is a patch for xemacs-21.5.4 to update it to xemacs-21.5.5 # # 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/x-win-xfree86.elc' rm -f './lisp/x-win-sun.elc' rm -f './lisp/x-select.elc' rm -f './lisp/x-scrollbar.elc' rm -f './lisp/x-mouse.elc' rm -f './lisp/x-misc.elc' rm -f './lisp/x-iso8859-1.elc' rm -f './lisp/x-init.elc' rm -f './lisp/x-font-menu.elc' rm -f './lisp/x-faces.elc' rm -f './lisp/x-compose.elc' rm -f './lisp/window.elc' rm -f './lisp/window-xemacs.elc' rm -f './lisp/win32-native.elc' rm -f './lisp/widgets-gtk.elc' rm -f './lisp/widget.elc' rm -f './lisp/wid-edit.elc' rm -f './lisp/wid-browse.elc' rm -f './lisp/view-less.elc' rm -f './lisp/userlock.elc' rm -f './lisp/undo-stack.elc' rm -f './lisp/tty-init.elc' rm -f './lisp/toolbar.elc' rm -f './lisp/toolbar-items.elc' rm -f './lisp/text-props.elc' rm -f './lisp/text-mode.elc' rm -f './lisp/term/xterm.elc' rm -f './lisp/term/wyse50.elc' rm -f './lisp/term/vt420.elc' rm -f './lisp/term/vt400.elc' rm -f './lisp/term/vt320.elc' rm -f './lisp/term/vt300.elc' rm -f './lisp/term/vt240.elc' rm -f './lisp/term/vt220.elc' rm -f './lisp/term/vt201.elc' rm -f './lisp/term/vt200.elc' rm -f './lisp/term/vt125.elc' rm -f './lisp/term/vt102.elc' rm -f './lisp/term/vt100.elc' rm -f './lisp/term/vt100-led.elc' rm -f './lisp/term/vt-control.elc' rm -f './lisp/term/tvi970.elc' rm -f './lisp/term/sup-mouse.elc' rm -f './lisp/term/scoansi.elc' rm -f './lisp/term/news.elc' rm -f './lisp/term/lk201.elc' rm -f './lisp/term/linux.elc' rm -f './lisp/term/keyswap.elc' rm -f './lisp/term/cygwin.elc' rm -f './lisp/term/bobcat.elc' rm -f './lisp/term/bg-mouse.elc' rm -f './lisp/term/apollo.elc' rm -f './lisp/term/AT386.elc' rm -f './lisp/syntax.elc' rm -f './lisp/symbols.elc' rm -f './lisp/symbol-syntax.elc' rm -f './lisp/subr.elc' rm -f './lisp/startup.elc' rm -f './lisp/specifier.elc' rm -f './lisp/sound.elc' rm -f './lisp/simple.elc' rm -f './lisp/shadow.elc' rm -f './lisp/setup-paths.elc' rm -f './lisp/select.elc' rm -f './lisp/scrollbar.elc' rm -f './lisp/replace.elc' rm -f './lisp/register.elc' rm -f './lisp/rect.elc' rm -f './lisp/process.elc' rm -f './lisp/printer.elc' rm -f './lisp/picture.elc' rm -f './lisp/paragraphs.elc' rm -f './lisp/page.elc' rm -f './lisp/packages.elc' rm -f './lisp/package-ui.elc' rm -f './lisp/package-net.elc' rm -f './lisp/package-info.elc' rm -f './lisp/package-get.elc' rm -f './lisp/package-admin.elc' rm -f './lisp/obsolete.elc' rm -f './lisp/objects.elc' rm -f './lisp/mwheel.elc' rm -f './lisp/multicast.elc' rm -f './lisp/mule/vietnamese.elc' rm -f './lisp/mule/viet-chars.elc' rm -f './lisp/mule/thai-xtis.elc' rm -f './lisp/mule/thai-xtis-chars.elc' rm -f './lisp/mule/mule-x-init.elc' rm -f './lisp/mule/mule-tty-init.elc' rm -f './lisp/mule/mule-misc.elc' rm -f './lisp/mule/mule-init.elc' rm -f './lisp/mule/mule-help.elc' rm -f './lisp/mule/mule-coding.elc' rm -f './lisp/mule/mule-cmds.elc' rm -f './lisp/mule/mule-charset.elc' rm -f './lisp/mule/mule-ccl.elc' rm -f './lisp/mule/mule-category.elc' rm -f './lisp/mule/misc-lang.elc' rm -f './lisp/mule/latin.elc' rm -f './lisp/mule/korean.elc' rm -f './lisp/mule/kinsoku.elc' rm -f './lisp/mule/japanese.elc' rm -f './lisp/mule/hebrew.elc' rm -f './lisp/mule/greek.elc' rm -f './lisp/mule/european.elc' rm -f './lisp/mule/ethiopic.elc' rm -f './lisp/mule/english.elc' rm -f './lisp/mule/cyrillic.elc' rm -f './lisp/mule/custom-load.elc' rm -f './lisp/mule/custom-load.el' rm -f './lisp/mule/chinese.elc' rm -f './lisp/mule/canna-leim.elc' rm -f './lisp/mule/auto-autoloads.elc' rm -f './lisp/mule/auto-autoloads.el' rm -f './lisp/mule/arabic.elc' rm -f './lisp/msw-select.elc' rm -f './lisp/msw-mouse.elc' rm -f './lisp/msw-init.elc' rm -f './lisp/msw-glyphs.elc' rm -f './lisp/msw-font-menu.elc' rm -f './lisp/msw-faces.elc' rm -f './lisp/movemail.elc' rm -f './lisp/mouse.elc' rm -f './lisp/modeline.elc' rm -f './lisp/mode-motion.elc' rm -f './lisp/misc.elc' rm -f './lisp/minibuf.elc' rm -f './lisp/menubar.elc' rm -f './lisp/menubar-items.elc' rm -f './lisp/map-ynp.elc' rm -f './lisp/loadhist.elc' rm -f './lisp/loaddefs.elc' rm -f './lisp/list-mode.elc' rm -f './lisp/lisp.elc' rm -f './lisp/lisp-mode.elc' rm -f './lisp/lisp-mnt.elc' rm -f './lisp/lib-complete.elc' rm -f './lisp/ldap.elc' rm -f './lisp/keymap.elc' rm -f './lisp/keydefs.elc' rm -f './lisp/itimer.elc' rm -f './lisp/itimer-autosave.elc' rm -f './lisp/iso8859-1.elc' rm -f './lisp/isearch-mode.elc' rm -f './lisp/info.elc' rm -f './lisp/indent.elc' rm -f './lisp/hyper-apropos.elc' rm -f './lisp/help.elc' rm -f './lisp/help-nomule.elc' rm -f './lisp/help-macro.elc' rm -f './lisp/hash-table.elc' rm -f './lisp/gutter.elc' rm -f './lisp/gutter-items.elc' rm -f './lisp/gui.elc' rm -f './lisp/gtk.elc' rm -f './lisp/gtk-widgets.elc' rm -f './lisp/gtk-widget-accessors.elc' rm -f './lisp/gtk-select.elc' rm -f './lisp/gtk-password-dialog.elc' rm -f './lisp/gtk-package.elc' rm -f './lisp/gtk-mouse.elc' rm -f './lisp/gtk-marshal.elc' rm -f './lisp/gtk-iso8859-1.elc' rm -f './lisp/gtk-init.elc' rm -f './lisp/gtk-glyphs.elc' rm -f './lisp/gtk-font-menu.elc' rm -f './lisp/gtk-file-dialog.elc' rm -f './lisp/gtk-ffi.elc' rm -f './lisp/gtk-faces.elc' rm -f './lisp/gtk-extra.elc' rm -f './lisp/gtk-compose.elc' rm -f './lisp/gpm.elc' rm -f './lisp/gnuserv.elc' rm -f './lisp/gnome.elc' rm -f './lisp/gnome-widgets.elc' rm -f './lisp/glyphs.elc' rm -f './lisp/glade.elc' rm -f './lisp/generic-widgets.elc' rm -f './lisp/gdk.elc' rm -f './lisp/frame.elc' rm -f './lisp/format.elc' rm -f './lisp/fontl-hooks.elc' rm -f './lisp/font.elc' rm -f './lisp/font-menu.elc' rm -f './lisp/font-lock.elc' rm -f './lisp/float-sup.elc' rm -f './lisp/finder.elc' rm -f './lisp/find-paths.elc' rm -f './lisp/fill.elc' rm -f './lisp/files.elc' rm -f './lisp/files-nomule.elc' rm -f './lisp/faces.elc' rm -f './lisp/extents.elc' rm -f './lisp/events.elc' rm -f './lisp/etags.elc' rm -f './lisp/easymenu.elc' rm -f './lisp/dump-paths.elc' rm -f './lisp/dragdrop.elc' rm -f './lisp/disp-table.elc' rm -f './lisp/disass.elc' rm -f './lisp/dialog.elc' rm -f './lisp/dialog-items.elc' rm -f './lisp/dialog-gtk.elc' rm -f './lisp/device.elc' rm -f './lisp/derived.elc' rm -f './lisp/custom.elc' rm -f './lisp/custom-load.elc' rm -f './lisp/custom-load.el' rm -f './lisp/cus-start.elc' rm -f './lisp/cus-load.elc' rm -f './lisp/cus-file.elc' rm -f './lisp/cus-face.elc' rm -f './lisp/cus-edit.elc' rm -f './lisp/cus-dep.elc' rm -f './lisp/console.elc' rm -f './lisp/config.elc' rm -f './lisp/compat.elc' rm -f './lisp/coding.elc' rm -f './lisp/code-process.elc' rm -f './lisp/code-files.elc' rm -f './lisp/code-cmds.elc' rm -f './lisp/cmdloop.elc' rm -f './lisp/cl.elc' rm -f './lisp/cl-seq.elc' rm -f './lisp/cl-macs.elc' rm -f './lisp/cl-extra.elc' rm -f './lisp/cl-compat.elc' rm -f './lisp/check-features.elc' rm -f './lisp/callers-of-rpt.elc' rm -f './lisp/bytecomp.elc' rm -f './lisp/bytecomp-runtime.elc' rm -f './lisp/byte-optimize.elc' rm -f './lisp/build-report.elc' rm -f './lisp/buffer.elc' rm -f './lisp/buff-menu.elc' rm -f './lisp/blessmail.elc' rm -f './lisp/behavior.elc' rm -f './lisp/behavior-defs.elc' rm -f './lisp/backquote.elc' rm -f './lisp/autoload.elc' rm -f './lisp/auto-show.elc' rm -f './lisp/auto-save.elc' rm -f './lisp/auto-autoloads.elc' rm -f './lisp/auto-autoloads.el' rm -f './lisp/apropos.elc' rm -f './lisp/alist.elc' rm -f './lisp/about.elc' rm -f './lisp/abbrev.elc' rm -f './info/xemacs.info-9' rm -f './info/xemacs.info-8' rm -f './info/xemacs.info-7' rm -f './info/xemacs.info-6' rm -f './info/xemacs.info-5' rm -f './info/xemacs.info-4' rm -f './info/xemacs.info-3' rm -f './info/xemacs.info-23' rm -f './info/xemacs.info-22' rm -f './info/xemacs.info-21' rm -f './info/xemacs.info-20' rm -f './info/xemacs.info-2' rm -f './info/xemacs.info-19' rm -f './info/xemacs.info-18' rm -f './info/xemacs.info-17' rm -f './info/xemacs.info-16' rm -f './info/xemacs.info-15' rm -f './info/xemacs.info-14' rm -f './info/xemacs.info-13' rm -f './info/xemacs.info-12' rm -f './info/xemacs.info-11' rm -f './info/xemacs.info-10' rm -f './info/xemacs.info-1' rm -f './info/xemacs.info' rm -f './info/xemacs-faq.info-6' rm -f './info/xemacs-faq.info-5' rm -f './info/xemacs-faq.info-4' rm -f './info/xemacs-faq.info-3' rm -f './info/xemacs-faq.info-2' rm -f './info/xemacs-faq.info-1' rm -f './info/xemacs-faq.info' rm -f './info/widget.info' rm -f './info/texinfo.info-9' rm -f './info/texinfo.info-8' rm -f './info/texinfo.info-7' rm -f './info/texinfo.info-6' rm -f './info/texinfo.info-5' rm -f './info/texinfo.info-4' rm -f './info/texinfo.info-3' rm -f './info/texinfo.info-2' rm -f './info/texinfo.info-12' rm -f './info/texinfo.info-11' rm -f './info/texinfo.info-10' rm -f './info/texinfo.info-1' rm -f './info/texinfo.info' rm -f './info/termcap.info-3' rm -f './info/termcap.info-2' rm -f './info/termcap.info-1' rm -f './info/termcap.info' rm -f './info/term.info' rm -f './info/standards.info-4' rm -f './info/standards.info-3' rm -f './info/standards.info-2' rm -f './info/standards.info-1' rm -f './info/standards.info' rm -f './info/new-users-guide.info-3' rm -f './info/new-users-guide.info-2' rm -f './info/new-users-guide.info-1' rm -f './info/new-users-guide.info' rm -f './info/lispref.info-9' rm -f './info/lispref.info-8' rm -f './info/lispref.info-7' rm -f './info/lispref.info-6' rm -f './info/lispref.info-5' rm -f './info/lispref.info-48' rm -f './info/lispref.info-47' rm -f './info/lispref.info-46' rm -f './info/lispref.info-45' rm -f './info/lispref.info-44' rm -f './info/lispref.info-43' rm -f './info/lispref.info-42' rm -f './info/lispref.info-41' rm -f './info/lispref.info-40' rm -f './info/lispref.info-4' rm -f './info/lispref.info-39' rm -f './info/lispref.info-38' rm -f './info/lispref.info-37' rm -f './info/lispref.info-36' rm -f './info/lispref.info-35' rm -f './info/lispref.info-34' rm -f './info/lispref.info-33' rm -f './info/lispref.info-32' rm -f './info/lispref.info-31' rm -f './info/lispref.info-30' rm -f './info/lispref.info-3' rm -f './info/lispref.info-29' rm -f './info/lispref.info-28' rm -f './info/lispref.info-27' rm -f './info/lispref.info-26' rm -f './info/lispref.info-25' rm -f './info/lispref.info-24' rm -f './info/lispref.info-23' rm -f './info/lispref.info-22' rm -f './info/lispref.info-21' rm -f './info/lispref.info-20' rm -f './info/lispref.info-2' rm -f './info/lispref.info-19' rm -f './info/lispref.info-18' rm -f './info/lispref.info-17' rm -f './info/lispref.info-16' rm -f './info/lispref.info-15' rm -f './info/lispref.info-14' rm -f './info/lispref.info-13' rm -f './info/lispref.info-12' rm -f './info/lispref.info-11' rm -f './info/lispref.info-10' rm -f './info/lispref.info-1' rm -f './info/lispref.info' rm -f './info/internals.info-9' rm -f './info/internals.info-8' rm -f './info/internals.info-7' rm -f './info/internals.info-6' rm -f './info/internals.info-5' rm -f './info/internals.info-4' rm -f './info/internals.info-3' rm -f './info/internals.info-2' rm -f './info/internals.info-1' rm -f './info/internals.info' rm -f './info/info.info' rm -f './info/external-widget.info' rm -f './info/emodules.info' rm -f './info/custom.info' rm -f './info/cl.info-6' rm -f './info/cl.info-5' rm -f './info/cl.info-4' rm -f './info/cl.info-3' rm -f './info/cl.info-2' rm -f './info/cl.info-1' rm -f './info/cl.info' touch './CHANGES-msw' chmod 0644 './CHANGES-msw' touch './build-msw-release.sh' chmod 0755 './build-msw-release.sh' touch './etc/TUTORIAL.se' chmod 0644 './etc/TUTORIAL.se' 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 './modules/ChangeLog' chmod 0644 './modules/ChangeLog' touch './netinstall/desktop.h' chmod 0644 './netinstall/desktop.h' touch './src/README.integral-types' chmod 0644 './src/README.integral-types' 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.4/CHANGES-beta' 'xemacs-21.5.5/CHANGES-beta' Index: ././CHANGES-beta --- ././CHANGES-beta Fri Sep 7 15:40:06 2001 +++ ././CHANGES-beta Tue Mar 5 21:44:45 2002 @@ -1,3 +1,144 @@ +to 21.5.5 "beets" + +Documentation +-- new external-widget example node -- Stephen Turnbull +-- new packaging manual nodes -- Steve Youngs, Stephen Turnbull +-- new Swedish TUTORIAL -- Mats Lidell +-- update etc/BETA -- Jarl Friis, Stephen Turnbull +-- update FAQ, new FAQs -- Adrian Aichner, Stephen Turnbull +-- typo fixes for Info docs -- Jeff Miller, Darryl Okahata + +UI +-- fix switching between virtual desktops on MS Windows -- Adrian Aichner +-- improve Customize: modifier-keys-sticky-time, abbrev-mode-line-string, + overwrite-mode-line-string, auto-fill-mode-line-string, + defining-kbd-macro-mode-line-string -- John Paul Wallington +-- improve GTK clipboard handling -- Eric Gillespie, Jr. +-- improve Info dir - generate file if non-existent -- Michael Sperber +-- improve printer handling -- Adrian Aichner, Bj,Av(Brn Torkelsson +-- support GUI toolbar shadow thickness adjustment -- Bill Perry +-- support ISO 8859/15 (Euro) -- Stephen Turnbull +-- support Sieve in auto-mode-alist -- Simon Josefsson +-- suppress ask-user-about-supersession-threat if CLASH_DETECTION -- Daiki Ueno + +Lisp API +-- synch from GNU Emacs 21: quit-window -- Christoph Wedler + +Internals +-- improve dead console handling in post-command code -- Ben Wing +-- improve handling when XOpenDevice calls error handler -- Mike Sperber +-- move disabled-command-loop to C -- Jan Vroonhof + +Build +-- improve Athena widgets detection -- Jan Vroonhof + +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 @@ -127,645 +268,5 @@ -- Speed up `intern' and hash tables containing strings -- Martin Buchholz -- Make hash table mapping safe -- Martin Buchholz -to 21.5.0 "alfalfa" --- Switch to new beta series - -to 21.2.46 "Urania" --- GTK code has been merged as an experimental display type -- William Perry - -to 21.2.45 "Thelxepeia" --- lib-src Makefile fixes -- Martin Buchholz --- startup path fixes -- Michael Sperber --- Port FSF 20.7 syntax table improvements -- Matt Tucker --- --pdump now works with HP-UX native cc -- Martin Buchholz --- copy-file now works correctly with non-ascii filenames -- Martin Buchholz --- More pdump improvements -- Martin Buchholz --- Prefer more standard utime() to utimes() -- Martin Buchholz - -to 21.2.44 "Thalia" --- Upgrade to etags 14.15 -- Francesco Potorti --- XEmacs now works on Unixware 7 -- Martin Buchholz --- Work around AIX C compiler bug causing "scroll-up has no effect" - -- Martin Buchholz --- Fix crash in kill-emacs -- Martin Buchholz --- XEmacs builds with gcc 2.97 -- Martin Buchholz --- XEmacs builds with g++ 2.97 -- Martin Buchholz --- Port .gdbinit debugging support to many systems -- Martin Buchholz --- XEmacs builds on mips-sgi-irix6.5 with 64-bit compilers -- Martin Buchholz --- The C variable containing the value of a DEFVAR_INT is now - EMACS_INT, not int -- Martin Buchholz --- config.sug, config.guess upgraded to official versions -- Martin Buchholz --- Support mouse-6 and mouse-7 for newfangled mice -- Martin Buchholz --- portable dumper alignment fixes -- Martin Buchholz --- sound fixes -- Didier Verna --- Progress gauge now goes away if C-g'ed -- Andy Piper - -to 21.2.43 "Terspichore" --- Important gnuserv security fix. Upgrade if you use gnuserv. - -- Klaus Frank, Jan Vroonhof, Gunnar Evermann --- C-level alignment correctness fixes -- Martin Buchholz --- cut-and-paste slowness under Motif fixed -- Andy Piper --- pdump now works on SunOS 4 and HP-UX -- Martin Buchholz --- Packages documentation updates -- Steve Youngs --- Windows netinstall changes -- Andy Piper - -to 21.2.42 "Poseidon" --- 64-bit platforms (Alpha) broken in 21.2.41 now fixed -- Martin Buchholz --- Windows packaging changes -- Andy Piper --- Widget bug fixes -- Andy Piper --- Modeline scrolling documented -- Didier Verna --- C-level alignment hackery -- Martin Buchholz - -to 21.2.41 "Polyhymnia" --- A very important fix to the byte-compiler was made. - RE-BYTE-COMPILE all your .el files that were compiled by any older - 21.2 byte-compiler (the 21.1 byte-compiler was OK.) - Explicitly remove all .elc files using - cd XEMACS; find . -name '*.elc' -print | xargs rm - and then rebuild using `make'. - -- Martin Buchholz --- More Windows installer changes -- Andy Piper --- Another tab widget fix -- Andy Piper --- pdump code cleanup -- Martin Buchholz --- lisp path changes -- Mike Sperber --- init file changes -- Mike Sperber --- debugging support works better with pdump -- Martin Buchholz --- Port to AIX cc -O3 -qansi-aliasing -- Martin Buchholz --- Allow building 64-bit binaries on AIX. -- Martin Buchholz --- Make code more resistant to aliasing optimizations. -- Martin Buchholz --- XEmacs now works on Netbsd 1.5. -- Martin Buchholz --- Eliminate kludgy checks for non-standard _dlopen -- Golubev I. N. --- Make Purify a little happier working on pdumped xemacs -- Martin Buchholz --- Fix never-used macro LISP_TO_CVOID -- Jerry James - -to 21.2.40 "Persephone" --- various doc fixes -- Stephen Turnbull --- more widget bug fixes -- Andy Piper --- Introduce yet another hash table weakness type -- Andy Piper --- SCO 5 fixes -- Golubev I. N. --- SunOS 4 works again -- MIYASHITA Hisashi --- Make peace with Mandrake's Alt-Meta hacks -- Stephen Turnbull --- Remove input-method-xfs.o -- Kazuyuki IENAGA - -to 21.2.39 "Millennium" --- Safer coding-priority-list -- Stephen Turnbull --- Andreas Jaeger resigns as core maintainer :-( --- Make font-lock know about all C++ keywords -- Enrico Scholz --- Comments beginning in column zero are no longer indented by - indent-for-comment -- Adrian Aichner --- Better documentation for package creation -- Stephen Turnbull --- input-method-xfs.c removed. Functionality incorporated into - input-method-xlib.c -- Kazuyuki IENAGA --- replace-buffer-in-windows fixes -- Yoshiki Hayashi --- Fix redisplay bugs with buffer-local face specifiers -- Yoshiki Hayashi --- More printing fixes -- Martin Buchholz --- Another SGI dumping fix -- Martin Buchholz --- A new Windows installer in netinstall -- Andy Piper --- Support Berkeley DB 3.1 -- Daiki Ueno - -to 21.2.38 "Peisino,Ak(B" --- Keyboard commands to set code system now work in file-coding - Emacsen! -- Jan Vroonhof (actually in 21.2.37) --- Calls to the following functions are now better optimized: - backward-char backward-word plusp, minusp oddp evenp -- Martin Buchholz --- COUNT argument to following functions is now optional: - forward-word backward-word mark-word kill-word backward-kill-word - forward-comment delete-char backward-delete-char -- Martin Buchholz --- Don't put gutters/tabs on popup windows -- Andy Piper --- Fix up info file cross references -- Adrian Aichner --- Make `format' 64-bit clean -- Martin Buchholz --- unexec changes on Windows -- Martin Buchholz --- Make ptys work again on Cygwin -- Philip Aston --- GCPRO fixes -- Yoshiki Hayashi, Gunnar Evermann, Martin Buchholz --- Fix dumping problems on SGI Irix 6 -- Max Matveev, Martin Buchholz --- Make DEBUG_GCPRO work again -- Gunnar Evermann --- Pdump fixes -- Olivier Galibert --- Case table changes -- Yoshiki Hayashi --- Fix remaining tab oddities -- Andy Piper --- Fix Windows unexec -- Andy Piper --- byte-compiler arithmetic improvements -- Martin Buchholz - -to 21.2.37 "Pan" --- etags fix -- Stephen Carney --- more gutters and tab changes -- Andy Piper --- eval-when-compile no longer compiles its body -- Martin Buchholz --- top-level (defvar foo) no longer generates a run-time load-history - entry -- Martin Buchholz --- Windows 1251 code page encoding for Cyrillic -- Sergey Groznyh --- `local-key-binding' and `global-key-binding' now have an optional - `accepts-defaults' parameter, just like `lookup-key' -- Martin Buchholz --- 1000 arglist-related lispref documentation bugs fixed -- Martin Buchholz --- arg to `down-list', `up-list', `backward-up-list', `kill-sexp', - `backward-kill-sexp' are now optional, just like FSF Emacs -- Martin Buchholz --- info mode fixes -- Didier Verna --- Massive CCL upgrade -- MIYASHITA Hisashi --- byte-code optimizations -- Yoshiki Hayashi --- historical purecopy's purged -- Robert Pluim --- `mwheel-install', `turn-on-auto-fill', `turn-on-font-lock', - `turn-off-font-lock' are now interactive -- Martin Buchholz --- Detect _getpty correctly (for SGIs) -- Martin Buchholz --- Several GCPRO bugs found -- Yoshiki Hayashi --- `replace-buffer-in-windows' now has the same WHICH-FRAMES and - WHICH-DEVICES parameters as `delete-windows-on' -- Martin Buchholz --- Add support for Compaq C on Alpha Linux -- Martin Buchholz --- auto-save fixes -- Yoshiki Hayashi --- Removed unused C vars detected by Compaq C -- Martin Buchholz --- More 64-bit cleanliness micro-fixes -- Martin Buchholz --- Fix cachel.merged_faces memory leak -- Golubev I. N. --- More changes to allow definitions of lisp object types by - third-party modules -- Daiki Ueno. --- Extbyte is now a char, not unsigned char -- Martin Buchholz --- C++ compilability is restored -- Martin Buchholz --- New tests for CCL -- MIYASHITA Hisashi, Yoshiki Hayashi --- Use stropts.h, not sys/stropts.h. Likewise for strtio.h -- Martin Buchholz - -to 21.2.36 "Notus" --- Fix build problems on AIX 4.3 -- Martin Buchholz --- Fix build problems on HP-UX 10.20 -- Alexandre Oliva and Martin Buchholz --- Fix build problems on SunOS 4.1.4 -- Martin Buchholz --- Fix build problems on IA64/Linux -- Martin Buchholz --- Fix build problems on Alpha/Linux -- Steve Baur --- Fix build problems on Unixware -- Martin Buchholz --- Support pty input lines longer than 512 bytes on HP-UX 10.20. -- Martin Buchholz --- `equal' of hash tables is now the same as `eq'. -- Martin Buchholz --- ucs fixes - Daiki Ueno --- Lots of little doc fixes. -- Martin Buchholz --- Process-signaling code rewritten -- Martin Buchholz --- pty allocation code rewritten -- Martin Buchholz --- The byte compiler generates more efficient code -- Martin Buchholz --- build-report fixes -- Adrian Aichner --- next-window/next-frame functions rewritten -- Martin Buchholz --- Windows fixes -- Jonathan Harris --- Multiple info buffer support -- Golubev I. N. --- regex crash fixes -- Yoshiki Hayashi --- Widget/windows fixes -- Andy Piper --- structured lisp errors -- Ben Wing --- allow modules to define their own lisp object types -- Andrew Begel - -to 21.2.35 "Nike" --- You now again build XEmacs in a directory containing a predefined - CPP symbol -- Martin Buchholz --- Minor fixes for Postgres integration -- Martin Buchholz --- Many fixes for DEC OSF 4.0 -- Martin Buchholz --- More C++ compilation support (for quality control) -- Martin Buchholz --- XEmacs can now be built with XFree86 4.0 -- Martin Buchholz --- Fix lots of byte-compiler warnings -- Martin Buchholz --- Many documentation fixes -- Adrian Aichner --- support for S390 has been added -- Andreas Jaeger, Martin Schwidefsky --- clean up Windows includes/defines -- Ben Wing --- numerous configure/GCC-warning fixes -- Martin Buchholz --- generalize selection support to arbitrary types -- Alastair Houghton --- MS Windows printer improvements -- Kirill Katsnelson --- MinGW fixes -- Craig Lanning --- NT process fixes -- Mixe Alexander, Adrian Aichner --- new key-value weak hashtable type -- Andy Piper/Olivier Galibert --- migrate .emacs to .xemacs/init.el -- Mike Sperber --- new file compat.el for cleaner compatibility functions -- Ben Wing - -to 21.2.34 "Molpe" --- Lots of changes to GUI, Windows, font-lock code, Ben Wing --- Lots of changes to GUI, Windows code, Andy Piper --- Various fixes, Karl Hegbloom --- User manual documentation updates, Yoshiki Hayashi --- Dumping fixes, Yoshiki Hayashi --- Define C-x BS to backward-kill-sentence, Yoshiki Hayashi - -to 21.2.33 "Melpomene" --- Yet more progress gauge and gutter redisplay fixes from Andy Piper --- glyph error checking from Andy Piper --- Proper implementation of string glyphs makes them Mule safe (IKEYAMA Tomonori) --- Bug fixes from the usual suspects --- --with-clash-detection now defaults to `yes', at least for betas. --- Autoconf support for detecting how to #include header files - with names containing preprocessor constants, Didier Verna. --- LDAP documentation updated, Oscar Figueiredo. --- clash-detection code cleaned and audited, Yoshiki and Martin --- Fix hangs on DEC OSF 4.0 when (process-send-string) sends strings - longer than 252 bytes. --- Fix non-ANSI macro hacking to allow compilation by Irix native compiler. --- redisplay fixes, IKEYAMA Tomonori --- Code cleaning, Mike Alexander --- Pdump + Windows support, Mike Alexander --- Sound code cleanup, Jan Vroonhof --- yes-or-no-p-dialog-box no longer gives unpredictable results with - focus follows mouse, Martin Buchholz - -to 21.2.32 "Kastor & Polydeukes" --- Internal Postgres RDBMS support from Steve Baur --- Improve gutter useability --- Fix window geometry with gutters --- Fix async updates so that they only occur when necessary --- Gutter documentation from Stephen Turnbull --- redisplay-gutter-area fixes from Andy Piper --- pdump file in MS-Windows executable from Mike Alexander --- Miscellaneous fixes from Andy Piper --- Windows and menubar changes from Ben Wing --- dumper changes from Olivier Galibert - -to 21.2.31 "Iris" --- Make XEmacs work on Windows again. - -to 21.2.30 "Hygeia" --- Make (find-tag-other-window) always use other window, - even if tag is found in buffer of current window, Samuel Mikes --- Make configure complain about broken compiler versions (Jan Vroonhof, Yoshiki Hayashi, Bill Perry) --- `write-region' now deals properly with non-ASCII file names, Martin Buchholz --- `file-truename' now respects file-name-coding-system, Martin Buchholz --- arm configure support fixed. --- non-ASCII string handling performance boost, Martin Buchholz --- Garbage collector performance boost, Martin Buchholz --- Lisp engine performance boost, Martin Buchholz --- New ldap API (Oscar Figueiredo) --- (- 0) is now optimized to 0, not (-), Martin Buchholz --- More gutter tabs fixes, Andy Piper - -to 21.2.29 "Hestia" --- Fix compile errors on pre-X11R6 systems, introduced in 21.2.28. --- Fix autodetection of Berkeley DB on Linux Glibc 2 systems. - (but more work needed) --- Allow non-symbols (anything compared with `eq') in object plists. --- Cleanup of property frobbing code. --- Various AIX 4 fixes, including port of PDUMP. --- Unconditionally define _POSIX_C_SOURCE, _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED. --- MS-Windows redisplay and font fixes from Jonathan Harris. --- various fixes from Craig Lanning, Daiki Ueno. --- Asynchronous widget updates from Andy Piper. --- More widget fixes from Andy Piper. --- Don't use rel_alloc on glibc systems, including Linux --- Upgrade etags.c to version 13.44, Francesco Potorti --- etags does a better job of finding the exact match first, Kyle Jones --- Portable dumper now described in Internals manual, Olivier and Martin --- Object Plist documentation in lispref updated, Martin Buchholz --- Just use standard `const' everywhere, instead of CONST --- More pdump changes, Olivier Galibert - -to 21.2.28 "Hermes" --- Add configure support for NetWinders, Sean MacLennan --- Make the "Load .emacs" menu item work again, Kirill Katsnelson --- Make --without-x work again. --- Detect Xaw3d and friends using #include --- Experimental Drag-N-Drop now defaults to "no" until there is again - active development. --- SGI dumping fixes should make XEmacs work again on Irix 6. --- More warning flags on by default when building with gcc. --- process coding changes, Kirill Katsnelson --- help now knows how to print macro arglists, Yoshiki Hayashi --- Windows printing support, Kirill Katsnelson --- Obscure crash fixes, Martin Buchholz --- Memory leak fixes, Martin Buchholz --- We now always use our own realpath(), never the system-provided one. --- More gutter/tab widget changes, Andy Piper --- Crash fix when using dead processes, Gunnar Evermann (fix PR#1061) --- Pdump stability fixes, Olivier Galibert --- New coding system alias implementation, Ben Wing and Martin Buchholz --- New internal data conversion infrastructure, Ben Wing and Martin Buchholz --- IPv6 support, URA Hiroshi --- Runtime Athena mismatch warnings added, Daniel Pittman --- Removal of old MSDOS support, Kirill Katsnelson --- Correctly define Latin-3 and Latin-4 character syntax as "w". --- Auto-define all X-defined keysyms as self-inserting, not just Latin-1. --- Workaround egcs-20000131 c++ compiler bug --- Byte-optimize (length "foo") to 3. --- (define-key ctl-x-4-map "p" global-map) no longer causes stack overflow crash. --- Partially implement dontusethis-set-symbol-value-handler. --- Fix bug: (getf nil t t) ==> Lisp nesting exceeds `max-lisp-eval-depth' --- lib-src partially C++ized, Zack Weinberg. - -to 21.2.27 "Hera" --- Dynamic layout for widgets from Andy Piper --- Vertical tab widgets for MS-Windows from Andy Piper --- pdump fixes for MS-Windows from Big K --- config.sub, config.guess major upgrade, Marcus Thiessel --- gdbinit renamed to .gdbinit --- dbxrc renamed to .dbxrc --- Mail locking overhaul, Michael Sperber --- Info-visit-file can now be used non-interactively, Martin Buchholz --- FAQ updates, Sandra Wambold --- Document lisp-level error handling, Hrvoje Niksic --- Windows changes, Kirill Katsnelson --- Portable dumper ported to Windows, Kirill Katsnelson --- idlwave-mode added, Carsten Dominik --- Info changes, Yoshiki Hayashi and Didier Verna. --- Again support BSD/OS 2.0 --- minibuf.* changes, Yoshiki Hayashi --- hyper-apropos changes, Yoshiki Hayashi --- buffers tab has its own face, Andy Piper --- modeline scrolling changes, Didier Verna - -to 21.2.26 "Millenium" --- Fix unpredictable results, perhaps even crashes, if using the - `return from debugger feature' and errors in `eval' or `funcall'. --- fix for Tab widgets causing X errors in XMapWindow(). - -to 21.2.25 "Hephaestus" --- the LATEST.IS.* file has been renamed to LATEST-IS-*. --- the CVS tag to checkout the latest tarball is `r21-2-latest-beta'. --- 3 crashes in mapcar1 have been fixed. --- lwlib arg passing cleanup --- yet more widget and tab fixes --- yet another Tab sync --- specifier copying fix for widgets --- preparation for proper layouts --- native widgets used for some custom widgets --- (+ 1) is no longer incorrectly compiled --- char-before no longer has performance penalty --- xpm again works on Windows --- native Windows fixes from Adrian Aichner --- Mule fixes from Yoshiki Hayashi --- properly detect Athena widgets headers and libs, preventing crashes - from misdetection and from libraries and headers that don't match, - from Daniel Pittman - -to 21.2.24 "Hecate" --- Tabs fixes from Andy Piper --- Widget leak fixes from Andy Piper --- (coding-system-list) deals properly with coding system aliases, Shenghuo ZHU --- configure support for ESD sound rewritte, Martin Buchholz --- directory separator fix from Mike Alexander --- Windows process support cleanup, Adrian Aichner --- NT now encapsulates fstat to get correct file mod time, Adrian Aichner - -to 21.2.23 "Hebe" --- MS-Windows selection fixes from Mike Alexander --- MS-WIndows process handling fixes from Mike Alexander --- Subwindow GC fix from Andy Piper --- Various minor fixes from Andy Piper --- Rewrite module configure support, Martin Buchholz --- Various Windows fixes, Martin Buchholz, Adrian Aichner, Andy Piper --- HP native compiler compilation fixes, Martin Buchholz --- Workarounds for Cygnus compiler bugs, Martin Buchholz --- Workarounds for Cygwin broken header files, Martin Buchholz --- itimers work again, Kyle Jones --- random code cleanup, Martin Buchholz --- various redisplay fixes, Andy Piper, Jan Vroonhof --- various fixes from Hrvoje Niksic, Yoshiki Hayashi - -to 21.2.22 "Mercedes" --- ESD Sound support from Robert Bihlmeyer --- 10% faster redisplay from Jan Vroonhof --- Fixes from Jeff Miller, Alexandre Oliva and Yoshiki Hayashi --- "If you've got problems, read PROBLEMS!" from Robert Pluim --- Completely revamped GPM support from William Perry --- Lstream code now uses size_t, ssize_t consistently, Martin Buchholz --- Fix `make install' if prefix != exec_prefix, Martin Buchholz --- Fix compile warnings and C++ compilation, Martin Buchholz --- Fix detection of coding: cookie in -*- first line. --- More xim-xlib work by Kazuyuki Ienaga --- Fix crash in abbrev.c (abbrev_location), Eric Darve - -to 21.2.20 "Yoko" --- UTF-8 & file-coding magic cookie fix from MORIOKA Tomohiko --- bug fixes from Adrian Aichner, Sean MacLennan, and Jeff Miller --- glyph widget support under X/Athena from Andy Piper --- tab widget support under X (all variants) from Andy Piper --- many gutter, redisplay & widget fixes from Andy Piper --- mswindows mousewheel support from Mike Woolley --- combo box support under X/Motif from Andy Piper --- buffer tab grouping from Andy Piper --- layout widget support from Andy Piper --- partial display line scrolling support from Andy Piper --- cleanup patches from Gleb Arshinov --- hash table FSF API sync from Martin Buchholz --- widget cleanup from Martin Buchholz --- process-environment fix for nt from Julian Back --- widget to frame fix from Jan Vroonhof --- animated glyph support from Andy Piper --- glyph redisplay improvements from Andy Piper --- color cells allocation fix from Lee Kindness --- recover file fix for windows nt --- mingw install fix from Craig Lanning --- recognize keypad keys under MS-Windows from Jonathan Harris --- Switch gui dialogs to native widgets from Andy Piper --- fixes from Yoshiki Hayashi and Norbert Koch - -to 21.2.19 "Shinjuku" --- various fixes from Gunnar Evermann --- XIM fixes from Kazuyuki IENAGA --- keymap fix from Katsumi Yamaoka --- Microsoft build fixes from Adrian Aichner --- documentation update from Adrian Aichner --- rect.el rewrite from Didier Verna --- custom comment fields from Didier Verna --- various fixes from Karl Hegbloom --- filling fix from Yoshiki Hayashi --- miscellaneous changes from Jeff Miller and Didier Verna --- configure hacking from Steve Baur --- various fixes from Bob Weiner --- Mule synching from MORIOKA Tomohiko --- various fixes from Steve Baur --- LDAP configure changes from Gregory Neil Shapiro --- gutter implementation from Andy Piper --- tab widgets in gutter from Andy Piper --- Custom themes, API part. See etc/custom/theme-examples from Jan Vroonhof - -to 21.2.18 "Toshima" --- miscellaneous fixes from Steve Baur --- miscellaneous fixes from Didier Verna --- various bug fixes from Karl Hegbloom --- miscellaneous fixes from Bob Weiner --- fix for XIM server crashing and taking down XEmacs from Kazuyuki IENAGA --- valid-image-instantiator-format-p tightened up by Andy Piper. --- glyph widget support under X/Motif from Andy Piper --- Make docdir configurable, update package searching rules from Michael - Sperber --- Fix for Japanese word/character movements from MORIOKA Tomohiko --- lrecord struct header size fix from Olivier Galibert - -to 21.2.17 "Chiyoda" --- miscellaneous bug fixes from Steve Baur --- font menu fix from Robert Pluim --- ldap API update from Oscar Figueiredo --- Fix thai-xtis charset width from MORIOKA Tomohiko --- CCL engine fix from MORIOKA Tomohiko --- mswindows build fixes from Norbert Koch --- miscellaneous fixes from Andy Piper --- automated tests for mswindows from Adrian Aichner --- tree-view and tab-control widget glyph support from Andy Piper - -to 21.2.16 "Sumida" --- miscellaneous fixes from Hrvoje Niksic and Olivier Galibert --- make selection more mswindows conformant. --- Make customize use specifiers from Jan Vroonhof --- Cyrillic CCL crash fix from MORIOKA Tomohiko --- DEC OSF Build fix and miscellaneous Lisp fix from Steve Baur --- raw-text coding system synch from MORIOKA Tomohiko - -to 21.2.15 "Sakuragawa" --- new self tests from Oscar Figueiredo and Hrvoje Niksic --- Miscellaneous bug fixes from Yoshiki Hayashi, Jerry James, Hirokazu FUKUI, - Hrvoje Niksic, MORIOKA Tomohiko --- LDAP internationalization from Oscar Figueiredo --- DEC OSF build fixes from Steve Baur --- Documentation fixes from Mike McEwan, Vin Shelton and Gunnar Evermann --- Build fixes from Jan Vroonhof --- Miscellaneous fixes from Hrvoje Niksic --- Documentation updates from Hrvoje Niksic and Albert Chin-A-Young --- mule-charset.el synch with Mule from Steve Baur --- miscellaneous build and cosmetic fixes from Steve Baur --- font-menu for mswindows from Andy Piper --- select rationalisation for window systems from Andy Piper --- reinstate sheap adjustment + mingw32 fixes from Andy Piper - -to 21.2.14 "Dionysos" --- mingw32 port from Andy Piper --- fix for Solaris build lossage from Hrvoje Niksic --- THAI/Cyrillic-KOI8, Vietnamese, Ethiopic support from MORIOKA Tomohiko --- miscellaneous bug fixes from Gunnar Evermann --- Internal purespace cleanup from Olivier Galibert --- documentation updates from Hrvoje Niksic --- dump time tuning from Hrvoje Niksic --- miscellaneous bug fixes from Giacomo Boffi --- font hacking from Jan Vroonhof --- Czech language support from David Sauer --- `delete-key-deletes-forward' now defaults to t --- `locate-file' update from Hrvoje Niksic --- MS Windows build fixes from Adrian Aichner --- LDAP updates from Oscar Figueiredo --- miscellaneous bug fixes from Colin Rafferty and Kai Haberzettl --- disable display of images in buffers by file format --- miscellaneous Mule fixes from Olivier Galibert --- documentation updates from Albert Chin-A-Young --- documentation updates from Gunnar Evermann and Stephen Turnbull --- MS Windows build fix from Norbert Koch --- miscellaneous MS Windows fixes from Andy Piper --- redisplay bug fixes from Jan Vroonhof --- miscellaneous bug fixes from Robert Pluim, MORIOKA Tomohiko --- many, many bug fixes and enhancements from Hrvoje Niksic and Olivier - Galibert --- miscellaneous bug fixes from Martin Buchholz --- Miscellaneous MS Windows fixes from Philip Aston --- lots of new tests from Hrvoje Niksic - -to 21.2.13 "Demeter" --- Build fixes from Martin Buchholz --- experimental splash screen rewrite from Didier Verna --- Various patches from Jan Vroonhof and Andy Piper --- alist.el synched up with APEL 9.13 from MORIOKA Tomohiko --- MS Window build fixes from Jonathan Harris --- UCS-4/UTF-8 support from MORIOKA Tomohiko - -to 21.2.12 "Clio" --- event-stream unification for MS Windows from Andy Piper --- Determine best visual to use to avoid flashing from IENAGA Kazuyuki --- Fix for new Berkeley DB library from Paul Keusemann/Gregory Neil Shapiro --- Various package-ui fixes from Jan Vroonhof --- Fix for doubled font-locking during buffer reversion --- KFM browsing support from Neal Becker --- info fix from Didier Verna --- Build bug fixes from Martin Buchholz --- Various Documentation updates --- X-Face support for MS Windows native build from Gleb Arshinov - -to 21.2 beta11 "Calliope" --- Dialog box fix from Jan Vroonhof --- unified mswindows and tty event loops from Andy Piper --- miscellaneous patches from Gleb Arshinov --- miscellaneous patches from Charles Waldman and Adrian Aichner --- Mule dump time files remerged from mule-base package --- Documentation fixes from Jan Vroonhof --- 24bit color image fix from Kazuo OISHI --- various build fixes from Martin Buchholz - -to 21.2 beta10 "Boreas" --- package UI fix from Jan Vroonhof --- MS Windows NT process fix from Gleb Arshinov - -to 21.2 beta9 "Athena" --- parameterize replace-match function from Didier Verna --- X-Face support under mswindows from Andy Piper --- doc fixes from Adrian Aichner --- about patchlet from Marcus Thiessel --- isearch doc fixes from Didier Verna --- interlaced gif fix from Gunnar Evermann --- isearch improvements from Didier Verna --- eldap connection fix from William Perry --- package-get site fix from Robert Pluim --- loadable modules fix from Damon Lipparelli --- ldap fixes from Oscar Figueiredo --- loadable modules from J. Kean Johnston --- runwhatever from Charles Wilson --- redisplay fixes for glyphs from Andy Piper --- progress gauge widgets implentation from Andy Piper --- W3 works again due to font.el being fixed --- Another mule xemacs crash fixed --- Images in widgets, warning fixes and gui_item cleanup from Andy Piper --- package admin fixes under mswindows from Charles Waldman --- miscellaneous mswindows build fixes from Jonathan Harris --- help-echo fix from Hrvoje Niksic --- x font path support from Jim Radford --- MSVC compile fixes from Damon Lipparelli - -to 21.2 beta8 "Artemis" --- A bunch of Mule fixes from Martin Buchholz - -to 21.2 beta7 "Ares" --- mswindows modeline crash fix from Jonathan Harris --- picon glyph fix from Gunnar Evermann --- widgets-in-buffers and subwindow support from Andy Piper --- movemail pop support under mswindows from Fabrice Popineau --- ldap fixes from Oscar Figueiredo --- fns cleanup from Hrvoje Niksic --- menubar fixes from Didier Verna --- mswindows accelerator fix from Jonathan Harris --- dired mule fix from Didier Verna --- sound doc cleanup from Charles Waldman --- new display table functionality from Hrvoje Niksic --- minor cleanups --- package fixes from Jan Vroonhof --- subwindow support fixes from Martin Buchholz - -to 21.2 beta6 "Apollo" --- mswindows compile fixes from Martin Buchholz, Andy Piper, Greg - Klanderman and Adrian Aichner --- Synch with XEmacs 21.0.60 --- mega-patch fixes from Martin Buchholz --- md5 fixes and testsuite from Hrvoje Niksic --- database fix from Hrvoje Niksic - -to 21.2 beta5 "Aphrodite" --- synch with XEmacs 21.0.58 --- bytecode interpreter rewritten --- byte compiler fixes --- hash table implementation rewritten --- basic lisp functions rewritten --- spelling fixes --- garbage collector tuned a little --- various global code changes for consistency --- automated test suite --- major internals manual updates --- lisp reference updates - -to 21.2 beta4 "Aglaophonos" --- isearch keymap fix from Katsumi Yamaoka --- directory_files cleanup from Hrvoje Niksic --- C implementation of base64 from Hrvoje Niksic --- C implementation of `buffer-substring-no-properties' from Hrvoje Niksic --- Experimental fix for spurious `file has changed on disk' message from - Charles Waldman --- Fix for etags.el hook calling from Malcolm Box --- User-name-completion fix for MS Windows NT from Greg Klanderman - -to 21.2 beta3 "Aglaia" --- case sensitiveness improvements from Didier Verna --- Bug fixes from 21.0 --- Word selection on mouse click on quotes from Hrvoje Niksic --- WAVE support for NAS from Raymond Toy - -to 21.2 beta2 "Aether" --- Synched with 21.0-pre14 "Poitou" --- isearch improvements from Hrvoje Niksic --- bytecompiler fix from Martin Buccholz --- shadow.el speedup from Martin Buchholz --- clash detection update from Jan Vroonhof --- Indirect buffers from Hrvoje Niksic --- ~user completion cleanup from Greg Klanderman --- New face property from Didier Verna --- ~user completion and fixes from Greg Klanderman --- casefiddle.c speedup from Martin Buchholz - -to 21.2 beta1 "Aeolus" --- Synch with 21.0-pre6 --- Removal of ancient obsolete symbols courtesy of Altrasoft --- Fix version numbers - -Fork at 21.0 pre5 "Zhong Wei" +Fork from 21.2: 21.5.0 "alfalfa" +-- For changes up to 21.4.0, see etc/NEWS diff --text -u /dev/null 'xemacs-21.5.5/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.4/ChangeLog' 'xemacs-21.5.5/ChangeLog' Index: ././ChangeLog --- ././ChangeLog Sat Oct 27 17:12:35 2001 +++ ././ChangeLog Tue Mar 5 23:23:36 2002 @@ -1,7 +1,97 @@ -2001-10-27 Stephen J. Turnbull +2002-03-05 Stephen J. Turnbull + + * XEmacs 21.5.5 "beets" is released. + +2002-03-05 Stephen J. Turnbull + + * CHANGES-beta: Prune pre-21.5 information. + +2002-02-28 Stephen J. Turnbull + + * etc/TUTORIAL.se: New from Mats Lidell. + +2002-02-04 Stephen J. Turnbull + + * etc/BETA: General update. Fix some broken URLs. + +2002-01-23 Jarl Friis + + * etc/BETA (http): Informing of xemacs-patches mailing list. Added + note on patch etiquette. + +2002-01-07 Jan Vroonhof + + * configure.in: Make explicit "--with-widgets" mean "=yes". + If "--with-widgets=yes" autodetect athena. + +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): @@ -10,6 +100,44 @@ 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 diff --text -u 'xemacs-21.5.4/Makefile.in.in' 'xemacs-21.5.5/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.4/PROBLEMS' 'xemacs-21.5.5/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.4/aclocal.m4' 'xemacs-21.5.5/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.5/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.4/configure' 'xemacs-21.5.5/configure' Index: ././configure --- ././configure Sat Oct 27 17:12:25 2001 +++ ././configure Tue Mar 5 23:23:13 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. @@ -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 @@ -733,12 +737,13 @@ "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 ;; + "") 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 +848,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:852: checking whether ln -s works" >&5 rm -f conftestdata if ln -s X conftestdata 2>/dev/null @@ -1108,7 +1113,7 @@ echo $ac_n "checking "host system type"""... $ac_c" 1>&6 -echo "configure:1112: checking "host system type"" >&5 +echo "configure:1117: 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 +1628,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:1632: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1650,7 +1655,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:1659: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1698,7 +1703,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:1707: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1727,7 +1732,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:1736: 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 +1745,12 @@ cat > conftest.$ac_ext << EOF -#line 1744 "configure" +#line 1749 "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:1754: \"$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 +1778,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:1782: 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:1787: 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:1794: \"$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 +1808,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:1812: 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 +1841,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:1845: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1863,7 +1868,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:1872: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1911,7 +1916,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:1920: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1940,7 +1945,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:1949: 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 +1958,12 @@ cat > conftest.$ac_ext << EOF -#line 1957 "configure" +#line 1962 "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:1967: \"$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 +1991,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:1995: 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:2000: 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:2007: \"$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 +2021,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:2025: 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 +2054,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:2058: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2076,7 +2081,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:2085: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2124,7 +2129,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:2133: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2153,7 +2158,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:2162: 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 +2171,12 @@ cat > conftest.$ac_ext << EOF -#line 2170 "configure" +#line 2175 "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:2180: \"$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 +2204,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:2208: 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:2213: 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:2220: \"$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 +2234,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:2238: 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 +2271,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:2275: 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 +2284,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:2294: \"$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 +2301,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:2311: \"$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 +2318,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:2328: \"$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 +2350,9 @@ echo $ac_n "checking for AIX""... $ac_c" 1>&6 -echo "configure:2349: checking for AIX" >&5 +echo "configure:2354: checking for AIX" >&5 cat > conftest.$ac_ext <&6 -echo "configure:2378: checking for GNU libc" >&5 +echo "configure:2383: checking for GNU libc" >&5 cat > conftest.$ac_ext < int main() { @@ -2388,7 +2393,7 @@ ; return 0; } EOF -if { (eval echo configure:2392: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2397: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_glibc=yes else @@ -2465,7 +2470,7 @@ esac cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:2488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -2731,17 +2736,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:2740: 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:2750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* : else @@ -2752,14 +2757,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:2768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* need_kalloca=yes else @@ -2797,7 +2802,7 @@ if test "$GCC" = "yes"; then echo $ac_n "checking for buggy gcc versions""... $ac_c" 1>&6 -echo "configure:2801: checking for buggy gcc versions" >&5 +echo "configure:2806: 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.*) @@ -2920,7 +2925,7 @@ fi echo $ac_n "checking for dynodump""... $ac_c" 1>&6 -echo "configure:2924: checking for dynodump" >&5 +echo "configure:2929: checking for dynodump" >&5 if test "$unexec" != "unexsol2.o"; then echo "$ac_t""no" 1>&6 else @@ -2958,12 +2963,12 @@ done echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6 -echo "configure:2962: checking for terminateAndUnload in -lC" >&5 +echo "configure:2967: 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:2983: \"$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 @@ -3082,7 +3087,7 @@ if test "$add_runtime_path" = "yes"; then echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6 -echo "configure:3086: checking "for runtime libraries flag"" >&5 +echo "configure:3091: checking "for runtime libraries flag"" >&5 case "$opsys" in sol2 ) dash_r="-R" ;; decosf* | linux* | irix*) dash_r="-rpath " ;; @@ -3104,14 +3109,14 @@ done fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* dash_r="$try_dash_r" else @@ -3212,10 +3217,10 @@ fi after_morecore_hook_exists=yes echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6 -echo "configure:3216: checking for malloc_set_state" >&5 +echo "configure:3221: 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:3247: \"$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 @@ -3258,16 +3263,16 @@ fi echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6 -echo "configure:3262: checking whether __after_morecore_hook exists" >&5 +echo "configure:3267: 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:3276: \"$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 @@ -3323,7 +3328,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:3327: checking for $ac_word" >&5 +echo "configure:3332: checking for $ac_word" >&5 if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -3378,7 +3383,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:3382: checking for a BSD compatible install" >&5 +echo "configure:3387: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" @@ -3432,7 +3437,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:3436: checking for $ac_word" >&5 +echo "configure:3441: checking for $ac_word" >&5 if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. @@ -3464,15 +3469,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3468: checking for $ac_hdr" >&5 +echo "configure:3473: 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:3476: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3481: \"$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* @@ -3502,10 +3507,10 @@ done echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:3506: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:3511: checking for sys/wait.h that is POSIX.1 compatible" >&5 cat > conftest.$ac_ext < #include @@ -3521,7 +3526,7 @@ s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:3525: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3530: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -3545,10 +3550,10 @@ fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:3549: checking for ANSI C header files" >&5 +echo "configure:3554: checking for ANSI C header files" >&5 cat > conftest.$ac_ext < #include @@ -3556,7 +3561,7 @@ #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3560: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3565: \"$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* @@ -3573,7 +3578,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 @@ -3591,7 +3596,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 @@ -3609,7 +3614,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') @@ -3620,7 +3625,7 @@ exit (0); } EOF -if { (eval echo configure:3624: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:3629: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -3646,10 +3651,10 @@ fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:3650: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:3655: checking whether time.h and sys/time.h may both be included" >&5 cat > conftest.$ac_ext < #include @@ -3658,7 +3663,7 @@ struct tm *tp; ; return 0; } EOF -if { (eval echo configure:3662: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3667: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -3682,10 +3687,10 @@ fi echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 -echo "configure:3686: checking for sys_siglist declaration in signal.h or unistd.h" >&5 +echo "configure:3691: checking for sys_siglist declaration in signal.h or unistd.h" >&5 cat > conftest.$ac_ext < #include @@ -3697,7 +3702,7 @@ char *msg = *(sys_siglist + 1); ; return 0; } EOF -if { (eval echo configure:3701: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3706: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes else @@ -3723,9 +3728,9 @@ echo $ac_n "checking for utime""... $ac_c" 1>&6 -echo "configure:3727: checking for utime" >&5 +echo "configure:3732: checking for utime" >&5 cat > conftest.$ac_ext < #include @@ -3733,7 +3738,7 @@ struct utimbuf x; x.actime = x.modtime = 0; utime ("/", &x); ; return 0; } EOF -if { (eval echo configure:3737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3742: \"$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 @@ -3752,10 +3757,10 @@ for ac_func in utimes do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3756: checking for $ac_func" >&5 +echo "configure:3761: 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:3787: \"$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 @@ -3810,10 +3815,10 @@ echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:3814: checking return type of signal handlers" >&5 +echo "configure:3819: checking return type of signal handlers" >&5 cat > conftest.$ac_ext < #include @@ -3830,7 +3835,7 @@ int i; ; return 0; } EOF -if { (eval echo configure:3834: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3839: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -3852,10 +3857,10 @@ echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3856: checking for size_t" >&5 +echo "configure:3861: checking for size_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3886,10 +3891,10 @@ fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:3890: checking for pid_t" >&5 +echo "configure:3895: checking for pid_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3920,10 +3925,10 @@ fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:3924: checking for uid_t in sys/types.h" >&5 +echo "configure:3929: checking for uid_t in sys/types.h" >&5 cat > conftest.$ac_ext < EOF @@ -3959,10 +3964,10 @@ fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:3963: checking for mode_t" >&5 +echo "configure:3968: checking for mode_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3993,10 +3998,10 @@ fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3997: checking for off_t" >&5 +echo "configure:4002: checking for off_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -4027,10 +4032,10 @@ fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:4031: checking for ssize_t" >&5 +echo "configure:4036: checking for ssize_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -4062,9 +4067,9 @@ echo $ac_n "checking for socklen_t""... $ac_c" 1>&6 -echo "configure:4066: checking for socklen_t" >&5 +echo "configure:4071: checking for socklen_t" >&5 cat > conftest.$ac_ext < socklen_t x; @@ -4073,7 +4078,7 @@ ; return 0; } EOF -if { (eval echo configure:4077: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4082: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -4082,7 +4087,7 @@ rm -rf conftest* cat > conftest.$ac_ext < int accept (int, struct sockaddr *, size_t *); @@ -4091,7 +4096,7 @@ ; return 0; } EOF -if { (eval echo configure:4095: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4100: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""size_t" 1>&6 @@ -4123,9 +4128,9 @@ rm -f conftest* echo $ac_n "checking for struct timeval""... $ac_c" 1>&6 -echo "configure:4127: checking for struct timeval" >&5 +echo "configure:4132: checking for struct timeval" >&5 cat > conftest.$ac_ext < @@ -4141,7 +4146,7 @@ static struct timeval x; x.tv_sec = x.tv_usec; ; return 0; } EOF -if { (eval echo configure:4145: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4150: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 HAVE_TIMEVAL=yes @@ -4163,10 +4168,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:4167: checking whether struct tm is in sys/time.h or time.h" >&5 +echo "configure:4172: checking whether struct tm is in sys/time.h or time.h" >&5 cat > conftest.$ac_ext < #include @@ -4174,7 +4179,7 @@ struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:4178: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4183: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -4198,10 +4203,10 @@ fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 -echo "configure:4202: checking for tm_zone in struct tm" >&5 +echo "configure:4207: checking for tm_zone in struct tm" >&5 cat > conftest.$ac_ext < #include <$ac_cv_struct_tm> @@ -4209,7 +4214,7 @@ struct tm tm; tm.tm_zone; ; return 0; } EOF -if { (eval echo configure:4213: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4218: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes else @@ -4232,10 +4237,10 @@ else echo $ac_n "checking for tzname""... $ac_c" 1>&6 -echo "configure:4236: checking for tzname" >&5 +echo "configure:4241: checking for tzname" >&5 cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ @@ -4245,7 +4250,7 @@ atoi(*tzname); ; return 0; } EOF -if { (eval echo configure:4249: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_var_tzname=yes else @@ -4271,10 +4276,10 @@ echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:4275: checking for working const" >&5 +echo "configure:4280: checking for working const" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -4348,7 +4353,7 @@ echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:4352: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:4357: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` cat > conftestmake <<\EOF @@ -4373,12 +4378,12 @@ echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:4377: checking whether byte ordering is bigendian" >&5 +echo "configure:4382: 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 @@ -4389,11 +4394,11 @@ #endif ; return 0; } EOF -if { (eval echo configure:4393: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4398: \"$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 @@ -4404,7 +4409,7 @@ #endif ; return 0; } EOF -if { (eval echo configure:4408: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4413: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -4421,7 +4426,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:4443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_bigendian=no else @@ -4461,10 +4466,10 @@ echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:4465: checking size of short" >&5 +echo "configure:4470: checking size of short" >&5 cat > conftest.$ac_ext < #include @@ -4476,7 +4481,7 @@ exit(0); } EOF -if { (eval echo configure:4480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4485: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_short=`cat conftestval` else @@ -4504,10 +4509,10 @@ exit 1 fi echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:4508: checking size of int" >&5 +echo "configure:4513: checking size of int" >&5 cat > conftest.$ac_ext < #include @@ -4519,7 +4524,7 @@ exit(0); } EOF -if { (eval echo configure:4523: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_int=`cat conftestval` else @@ -4541,10 +4546,10 @@ echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:4545: checking size of long" >&5 +echo "configure:4550: checking size of long" >&5 cat > conftest.$ac_ext < #include @@ -4556,7 +4561,7 @@ exit(0); } EOF -if { (eval echo configure:4560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_long=`cat conftestval` else @@ -4578,10 +4583,10 @@ echo $ac_n "checking size of long long""... $ac_c" 1>&6 -echo "configure:4582: checking size of long long" >&5 +echo "configure:4587: checking size of long long" >&5 cat > conftest.$ac_ext < #include @@ -4593,7 +4598,7 @@ exit(0); } EOF -if { (eval echo configure:4597: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4602: \"$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 @@ -4615,10 +4620,10 @@ echo $ac_n "checking size of void *""... $ac_c" 1>&6 -echo "configure:4619: checking size of void *" >&5 +echo "configure:4624: checking size of void *" >&5 cat > conftest.$ac_ext < #include @@ -4630,7 +4635,7 @@ exit(0); } EOF -if { (eval echo configure:4634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4639: \"$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 @@ -4653,7 +4658,7 @@ echo $ac_n "checking for long file names""... $ac_c" 1>&6 -echo "configure:4657: checking for long file names" >&5 +echo "configure:4662: 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: @@ -4699,10 +4704,10 @@ echo $ac_n "checking for sin""... $ac_c" 1>&6 -echo "configure:4703: checking for sin" >&5 +echo "configure:4708: checking for sin" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4734: \"$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 @@ -4743,12 +4748,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 -echo "configure:4747: checking for sin in -lm" >&5 +echo "configure:4752: 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:4768: \"$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 @@ -4803,14 +4808,14 @@ cat > conftest.$ac_ext < int main() { return atanh(1.0) + asinh(1.0) + acosh(1.0); ; return 0; } EOF -if { (eval echo configure:4814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4819: \"$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 @@ -4829,10 +4834,10 @@ for ac_func in mkstemp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4833: checking for $ac_func" >&5 +echo "configure:4838: 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:4864: \"$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 @@ -4884,14 +4889,14 @@ echo "checking type of mail spool file locking" 1>&6 -echo "configure:4888: checking type of mail spool file locking" >&5 +echo "configure:4893: 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:4892: checking for $ac_func" >&5 +echo "configure:4897: 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:4923: \"$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 @@ -4996,12 +5001,12 @@ case "$opsys" in decosf*) echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6 -echo "configure:5000: checking for cma_open in -lpthreads" >&5 +echo "configure:5005: 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:5021: \"$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 @@ -5047,8 +5052,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:5052: checking whether the -xildoff compiler flag is required" >&5 +echo "configure:5058: 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; @@ -5060,7 +5066,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:5064: checking for \"-z ignore\" linker flag" >&5 +echo "configure:5070: 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 ;; @@ -5069,9 +5075,19 @@ fi fi +if test "$pdump" != "yes"; then + echo $ac_n "checking for \"-z nocombreloc\" linker flag""... $ac_c" 1>&6 +echo "configure:5081: 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:5075: checking "for specified window system"" >&5 +echo "configure:5091: checking "for specified window system"" >&5 GNOME_CONFIG=no @@ -5079,7 +5095,7 @@ if test "$with_gnome" != "no"; then echo $ac_n "checking for GNOME configuration script""... $ac_c" 1>&6 -echo "configure:5083: checking for GNOME configuration script" >&5 +echo "configure:5099: checking for GNOME configuration script" >&5 for possible in gnome-config do possible_version=`${possible} --version 2> /dev/null` @@ -5110,7 +5126,7 @@ if test "$with_gtk" != "no";then echo $ac_n "checking for GTK configuration script""... $ac_c" 1>&6 -echo "configure:5114: checking for GTK configuration script" >&5 +echo "configure:5130: checking for GTK configuration script" >&5 for possible in gtk12-config gtk14-config gtk-config do possible_version=`${possible} --version 2> /dev/null` @@ -5132,37 +5148,40 @@ if test "${GTK_CONFIG}" != "no"; then echo $ac_n "checking gtk version""... $ac_c" 1>&6 -echo "configure:5136: checking gtk version" >&5 +echo "configure:5152: 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:5141: checking gtk libs" >&5 +echo "configure:5157: 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:5147: checking gtk cflags" >&5 +echo "configure:5163: 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:5154: checking for main in -lgdk_imlib" >&5 +echo "configure:5173: 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:5185: \"$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 @@ -5184,12 +5203,12 @@ echo $ac_n "checking for Imlib_init in -lImlib""... $ac_c" 1>&6 -echo "configure:5188: checking for Imlib_init in -lImlib" >&5 +echo "configure:5207: 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:5223: \"$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 @@ -5223,10 +5242,10 @@ for ac_func in gdk_imlib_init do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5227: checking for $ac_func" >&5 +echo "configure:5246: 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:5272: \"$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 @@ -5319,22 +5338,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:5330: checking for $ac_hdr" >&5 +echo "configure:5351: 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:5338: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5359: \"$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* @@ -5365,19 +5386,19 @@ echo $ac_n "checking for main in -lxml""... $ac_c" 1>&6 -echo "configure:5369: checking for main in -lxml" >&5 +echo "configure:5390: 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:5402: \"$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 @@ -5399,19 +5420,19 @@ echo $ac_n "checking for main in -lglade""... $ac_c" 1>&6 -echo "configure:5403: checking for main in -lglade" >&5 +echo "configure:5424: 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:5436: \"$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 @@ -5433,19 +5454,19 @@ echo $ac_n "checking for main in -lglade-gnome""... $ac_c" 1>&6 -echo "configure:5437: checking for main in -lglade-gnome" >&5 +echo "configure:5458: 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:5470: \"$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 @@ -5466,7 +5487,7 @@ cat > conftest.$ac_ext < EOF @@ -5489,6 +5510,7 @@ rm -f conftest* CFLAGS="${OLD_CFLAGS}" + CPPFLAGS="${OLD_CPPFLAGS}" LDFLAGS="${OLD_LDFLAGS}" fi @@ -5524,7 +5546,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:5528: checking for X" >&5 +echo "configure:5550: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -5584,12 +5606,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:5593: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5615: \"$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* @@ -5658,14 +5680,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:5691: \"$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. @@ -5774,17 +5796,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:5778: checking whether -R must be followed by a space" >&5 +echo "configure:5800: 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:5810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else @@ -5800,14 +5822,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:5833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else @@ -5843,12 +5865,12 @@ else echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:5847: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:5869: 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:5885: \"$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 @@ -5883,12 +5905,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:5887: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:5909: 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:5925: \"$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 @@ -5928,10 +5950,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:5932: checking for gethostbyname" >&5 +echo "configure:5954: checking for gethostbyname" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5980: \"$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 @@ -5975,12 +5997,12 @@ if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:5979: checking for gethostbyname in -lnsl" >&5 +echo "configure:6001: 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:6017: \"$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 @@ -6021,10 +6043,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:6025: checking for connect" >&5 +echo "configure:6047: checking for connect" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6073: \"$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 @@ -6070,12 +6092,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:6074: checking "$xe_msg_checking"" >&5 +echo "configure:6096: 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:6112: \"$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 @@ -6110,10 +6132,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:6114: checking for remove" >&5 +echo "configure:6136: checking for remove" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6162: \"$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 @@ -6157,12 +6179,12 @@ if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:6161: checking for remove in -lposix" >&5 +echo "configure:6183: 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:6199: \"$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 @@ -6197,10 +6219,10 @@ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:6201: checking for shmat" >&5 +echo "configure:6223: checking for shmat" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6249: \"$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 @@ -6244,12 +6266,12 @@ if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:6248: checking for shmat in -lipc" >&5 +echo "configure:6270: 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:6286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6296,12 +6318,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:6300: checking "$xe_msg_checking"" >&5 +echo "configure:6322: 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:6338: \"$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 @@ -6479,7 +6501,7 @@ echo "checking for X defines extracted by xmkmf" 1>&6 -echo "configure:6483: checking for X defines extracted by xmkmf" >&5 +echo "configure:6505: checking for X defines extracted by xmkmf" >&5 rm -fr conftestdir if mkdir conftestdir; then cd conftestdir @@ -6528,15 +6550,15 @@ ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6 -echo "configure:6532: checking for X11/Intrinsic.h" >&5 +echo "configure:6554: 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:6540: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6562: \"$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* @@ -6560,12 +6582,12 @@ echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:6564: checking for XOpenDisplay in -lX11" >&5 +echo "configure:6586: 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:6602: \"$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 @@ -6601,12 +6623,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:6605: checking "$xe_msg_checking"" >&5 +echo "configure:6627: 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:6643: \"$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 @@ -6644,12 +6666,12 @@ echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6 -echo "configure:6648: checking for XShapeSelectInput in -lXext" >&5 +echo "configure:6670: 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:6686: \"$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 @@ -6683,12 +6705,12 @@ echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6 -echo "configure:6687: checking for XtOpenDisplay in -lXt" >&5 +echo "configure:6709: 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:6725: \"$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 @@ -6722,14 +6744,14 @@ echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6 -echo "configure:6726: checking the version of X11 being used" >&5 +echo "configure:6748: 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:6733: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:6755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest foobar; x11_release=$? else @@ -6760,10 +6782,10 @@ for ac_func in XConvertCase do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6764: checking for $ac_func" >&5 +echo "configure:6786: 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:6812: \"$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 @@ -6818,15 +6840,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6822: checking for $ac_hdr" >&5 +echo "configure:6844: 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:6830: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6852: \"$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* @@ -6859,10 +6881,10 @@ for ac_func in XRegisterIMInstantiateCallback do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6863: checking for $ac_func" >&5 +echo "configure:6885: 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:6911: \"$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 @@ -6913,9 +6935,9 @@ done echo $ac_n "checking for standard XRegisterIMInstantiateCallback prototype""... $ac_c" 1>&6 -echo "configure:6917: checking for standard XRegisterIMInstantiateCallback prototype" >&5 +echo "configure:6939: checking for standard XRegisterIMInstantiateCallback prototype" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6953: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -6948,12 +6970,12 @@ test -z "$with_xmu" && { echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6 -echo "configure:6952: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 +echo "configure:6974: 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:6990: \"$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 @@ -7003,19 +7025,19 @@ echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 -echo "configure:7007: checking for main in -lXbsd" >&5 +echo "configure:7029: 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:7041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7052,22 +7074,22 @@ fi if test "$with_msw" != "no"; then echo "checking for MS-Windows" 1>&6 -echo "configure:7056: checking for MS-Windows" >&5 +echo "configure:7078: checking for MS-Windows" >&5 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6 -echo "configure:7059: checking for main in -lgdi32" >&5 +echo "configure:7081: 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:7093: \"$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 @@ -7140,12 +7162,12 @@ fi fi cat > conftest.$ac_ext < int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; } EOF -if { (eval echo configure:7149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:7171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then need_event_unixoid=yes; { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_MSG_SELECT @@ -7209,15 +7231,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:7213: checking for X11/extensions/shape.h" >&5 +echo "configure:7235: 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:7221: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7243: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7269,7 +7291,7 @@ esac echo "checking for WM_COMMAND option" 1>&6 -echo "configure:7273: checking for WM_COMMAND option" >&5; +echo "configure:7295: checking for WM_COMMAND option" >&5; if test "$with_wmcommand" != "no"; then { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_WMCOMMAND @@ -7284,15 +7306,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:7288: checking for X11/Xauth.h" >&5 +echo "configure:7310: 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:7296: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7318: \"$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* @@ -7315,12 +7337,12 @@ } test -z "$with_xauth" && { echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6 -echo "configure:7319: checking for XauGetAuthByAddr in -lXau" >&5 +echo "configure:7341: 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:7357: \"$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 @@ -7376,15 +7398,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:7380: checking for ${dir}tt_c.h" >&5 +echo "configure:7402: 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:7388: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7410: \"$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* @@ -7420,12 +7442,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:7424: checking "$xe_msg_checking"" >&5 +echo "configure:7446: 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:7462: \"$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 @@ -7493,15 +7515,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:7497: checking for Dt/Dt.h" >&5 +echo "configure:7519: 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:7505: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7527: \"$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* @@ -7524,12 +7546,12 @@ } test -z "$with_cde" && { echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6 -echo "configure:7528: checking for DtDndDragStart in -lDtSvc" >&5 +echo "configure:7550: 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:7566: \"$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 @@ -7621,7 +7643,7 @@ if test "$with_dragndrop" != "no" ; then echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6 -echo "configure:7625: checking if drag and drop API is needed" >&5 +echo "configure:7647: 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 @@ -7641,18 +7663,18 @@ fi echo "checking for LDAP" 1>&6 -echo "configure:7645: checking for LDAP" >&5 +echo "configure:7667: 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:7648: checking for ldap.h" >&5 +echo "configure:7670: 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:7656: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7678: \"$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* @@ -7675,15 +7697,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:7679: checking for lber.h" >&5 +echo "configure:7701: 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:7687: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7709: \"$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* @@ -7707,12 +7729,12 @@ if test "$with_ldap" != "no"; then echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6 -echo "configure:7711: checking for ldap_search in -lldap" >&5 +echo "configure:7733: 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:7749: \"$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 @@ -7748,12 +7770,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:7752: checking "$xe_msg_checking"" >&5 +echo "configure:7774: 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:7790: \"$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 @@ -7789,12 +7811,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:7793: checking "$xe_msg_checking"" >&5 +echo "configure:7815: 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:7831: \"$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 @@ -7830,12 +7852,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:7834: checking "$xe_msg_checking"" >&5 +echo "configure:7856: 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:7872: \"$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 @@ -7897,10 +7919,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:7901: checking for $ac_func" >&5 +echo "configure:7923: 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:7949: \"$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 @@ -7954,20 +7976,20 @@ if test "$with_postgresql" != "no"; then echo "checking for PostgreSQL" 1>&6 -echo "configure:7958: checking for PostgreSQL" >&5 +echo "configure:7980: 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:7963: checking for ${header_dir}libpq-fe.h" >&5 +echo "configure:7985: 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:7971: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7993: \"$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* @@ -7991,12 +8013,12 @@ test -n "$libpq_fe_h_file" && { echo $ac_n "checking for PQconnectdb in -lpq""... $ac_c" 1>&6 -echo "configure:7995: checking for PQconnectdb in -lpq" >&5 +echo "configure:8017: 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:8033: \"$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 @@ -8040,12 +8062,12 @@ echo $ac_n "checking for PQconnectStart in -lpq""... $ac_c" 1>&6 -echo "configure:8044: checking for PQconnectStart in -lpq" >&5 +echo "configure:8066: 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:8082: \"$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 @@ -8104,15 +8126,36 @@ if test "$window_system" != "none"; then echo "checking for graphics libraries" 1>&6 -echo "configure:8108: checking for graphics libraries" >&5 +echo "configure:8130: 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:8113: checking for Xpm - no older than 3.4f" >&5 +echo "configure:8156: checking for Xpm - no older than 3.4f" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext < @@ -8121,7 +8164,7 @@ XpmIncludeVersion != XpmLibraryVersion() ? 1 : XpmIncludeVersion < 30406 ? 2 : 0 ;} EOF -if { (eval echo configure:8125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:8168: \"$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 @@ -8161,19 +8204,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:8167: checking for \"FOR_MSW\" xpm" >&5 +echo "configure:8212: 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:8222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* xpm_for_msw=no else @@ -8199,15 +8244,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:8203: checking for compface.h" >&5 +echo "configure:8248: 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:8211: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8256: \"$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* @@ -8230,12 +8275,12 @@ } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:8234: checking for UnGenFace in -lcompface" >&5 +echo "configure:8279: 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:8295: \"$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 @@ -8298,12 +8343,12 @@ if test "$with_png $with_tiff" != "no no"; then echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6 -echo "configure:8302: checking for inflate in -lc" >&5 +echo "configure:8347: 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:8363: \"$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 @@ -8333,12 +8378,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6 -echo "configure:8337: checking for inflate in -lz" >&5 +echo "configure:8382: 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:8398: \"$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 @@ -8368,12 +8413,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6 -echo "configure:8372: checking for inflate in -lgz" >&5 +echo "configure:8417: 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:8433: \"$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 @@ -8414,15 +8459,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:8418: checking for jpeglib.h" >&5 +echo "configure:8463: 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:8426: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8471: \"$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* @@ -8445,12 +8490,12 @@ } test -z "$with_jpeg" && { echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6 -echo "configure:8449: checking for jpeg_destroy_decompress in -ljpeg" >&5 +echo "configure:8494: 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:8510: \"$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 @@ -8497,10 +8542,10 @@ png_problem="" test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6 -echo "configure:8501: checking for pow" >&5 +echo "configure:8546: checking for pow" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8572: \"$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 @@ -8544,15 +8589,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:8548: checking for png.h" >&5 +echo "configure:8593: 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:8556: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8601: \"$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* @@ -8575,12 +8620,12 @@ } test -z "$with_png" && { echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6 -echo "configure:8579: checking for png_read_image in -lpng" >&5 +echo "configure:8624: 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:8640: \"$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 @@ -8614,10 +8659,10 @@ } if test -z "$with_png"; then echo $ac_n "checking for workable png version information""... $ac_c" 1>&6 -echo "configure:8618: checking for workable png version information" >&5 +echo "configure:8663: checking for workable png version information" >&5 xe_check_libs="-lpng -lz" cat > conftest.$ac_ext < int main(int c, char **v) { @@ -8625,7 +8670,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:8629: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:8674: \"$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 @@ -8668,15 +8713,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:8672: checking for tiffio.h" >&5 +echo "configure:8717: 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:8680: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8725: \"$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* @@ -8699,12 +8744,12 @@ } test -z "$with_tiff" && { echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6 -echo "configure:8703: checking for TIFFClientOpen in -ltiff" >&5 +echo "configure:8748: 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:8764: \"$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 @@ -8754,15 +8799,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:8758: checking for compface.h" >&5 +echo "configure:8803: 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:8766: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8811: \"$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* @@ -8785,12 +8830,12 @@ } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:8789: checking for UnGenFace in -lcompface" >&5 +echo "configure:8834: 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:8850: \"$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 @@ -8839,12 +8884,18 @@ if test "$with_x11" = "yes"; then - echo "checking for X11 graphics libraries" 1>&6 -echo "configure:8845: checking for X11 graphics libraries" >&5 +echo "configure:8889: checking for X11 graphics libraries" >&5 +fi +case "$with_widgets" in + "yes" | "athena") detect_athena=yes ;; + *) detect_athena=no ;; +esac + +if test "$with_x11" = "yes" -a "$detect_athena" = "yes" ; then echo "checking for the Athena widgets" 1>&6 -echo "configure:8848: checking for the Athena widgets" >&5 +echo "configure:8899: checking for the Athena widgets" >&5 case "$with_athena" in "xaw" | "") athena_variant=Xaw athena_3d=no ;; @@ -8858,12 +8909,12 @@ if test "$athena_3d" = "no"; then echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8862: checking for XawScrollbarSetThumb in -l$athena_variant" >&5 +echo "configure:8913: 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:8929: \"$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 @@ -8890,12 +8941,12 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8894: checking for threeDClassRec in -l$athena_variant" >&5 +echo "configure:8945: 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:8961: \"$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 @@ -8937,12 +8988,12 @@ else echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8941: checking for threeDClassRec in -l$athena_variant" >&5 +echo "configure:8992: 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:9008: \"$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 @@ -8971,12 +9022,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for threeDClassRec in -lXaw""... $ac_c" 1>&6 -echo "configure:8975: checking for threeDClassRec in -lXaw" >&5 +echo "configure:9026: 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:9042: \"$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 @@ -9018,15 +9069,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:9022: checking for X11/Xaw/ThreeD.h" >&5 +echo "configure:9073: 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:9030: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9081: \"$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* @@ -9046,15 +9097,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:9050: checking for X11/Xaw/XawInit.h" >&5 +echo "configure:9101: 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:9058: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9109: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9080,15 +9131,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:9084: checking for X11/$athena_variant/XawInit.h" >&5 +echo "configure:9135: 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:9092: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9143: \"$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* @@ -9105,15 +9156,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:9109: checking for X11/$athena_variant/ThreeD.h" >&5 +echo "configure:9160: 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:9117: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9168: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9141,15 +9192,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:9145: checking for $athena_variant/XawInit.h" >&5 +echo "configure:9196: 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:9153: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9204: \"$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* @@ -9166,15 +9217,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:9170: checking for $athena_variant/ThreeD.h" >&5 +echo "configure:9221: 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:9178: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9229: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9203,15 +9254,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:9207: checking for X11/Xaw3d/XawInit.h" >&5 +echo "configure:9258: 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:9215: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9266: \"$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* @@ -9228,15 +9279,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:9232: checking for X11/Xaw3d/ThreeD.h" >&5 +echo "configure:9283: 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:9240: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9291: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9268,15 +9319,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:9272: checking for Xaw3d/XawInit.h" >&5 +echo "configure:9323: 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:9280: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9331: \"$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* @@ -9293,15 +9344,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:9297: checking for Xaw3d/ThreeD.h" >&5 +echo "configure:9348: 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:9305: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9356: \"$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* @@ -9333,15 +9384,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:9337: checking for X11/Xaw/ThreeD.h" >&5 +echo "configure:9388: 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:9345: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9396: \"$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* @@ -9374,17 +9425,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:9380: checking for Xm/Xm.h" >&5 +echo "configure:9435: 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:9388: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9443: \"$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* @@ -9401,12 +9456,12 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6 -echo "configure:9405: checking for XmStringFree in -lXm" >&5 +echo "configure:9460: 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:9476: \"$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 @@ -9446,9 +9501,9 @@ if test "$have_motif" = "yes"; then echo $ac_n "checking for Lesstif""... $ac_c" 1>&6 -echo "configure:9450: checking for Lesstif" >&5 +echo "configure:9505: checking for Lesstif" >&5 cat > conftest.$ac_ext < #ifdef LESSTIF_VERSION @@ -9825,8 +9880,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\"" @@ -9843,8 +9898,8 @@ test "$with_dialogs" != "no" && extra_objs="$extra_objs dialog-x.o" && if test "$extra_verbose" = "yes"; then echo " xemacs will be linked with \"dialog-x.o\"" fi - test "$with_toolbars" != "no" && extra_objs="$extra_objs toolbar-x.o" && if test "$extra_verbose" = "yes"; then - echo " xemacs will be linked with \"toolbar-x.o\"" + test "$with_toolbars" != "no" && extra_objs="$extra_objs toolbar-common.o toolbar-x.o" && if test "$extra_verbose" = "yes"; then + echo " xemacs will be linked with \"toolbar-common.o toolbar-x.o\"" fi test "$all_widgets" != "no no no no no" && extra_objs="$extra_objs gui-x.o" && if test "$extra_verbose" = "yes"; then echo " xemacs will be linked with \"gui-x.o\"" @@ -9878,7 +9933,7 @@ if test "$with_mule" = "yes" ; then echo "checking for Mule-related features" 1>&6 -echo "configure:9882: checking for Mule-related features" >&5 +echo "configure:9937: checking for Mule-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining MULE EOF @@ -9903,15 +9958,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:9907: checking for $ac_hdr" >&5 +echo "configure:9962: 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:9915: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9970: \"$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* @@ -9942,12 +9997,12 @@ echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6 -echo "configure:9946: checking for strerror in -lintl" >&5 +echo "configure:10001: 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:10017: \"$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 @@ -9991,18 +10046,18 @@ echo "checking for Mule input methods" 1>&6 -echo "configure:9995: checking for Mule input methods" >&5 +echo "configure:10050: checking for Mule input methods" >&5 case "$with_xim" in "" | "yes" ) echo "checking for XIM" 1>&6 -echo "configure:9998: checking for XIM" >&5 +echo "configure:10053: checking for XIM" >&5 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6 -echo "configure:10001: checking for XOpenIM in -lX11" >&5 +echo "configure:10056: 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:10072: \"$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 @@ -10037,12 +10092,12 @@ if test "$have_motif $have_lesstif" = "yes no"; then echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6 -echo "configure:10041: checking for XmImMbLookupString in -lXm" >&5 +echo "configure:10096: 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:10112: \"$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 @@ -10118,15 +10173,15 @@ if test "$with_xfs" = "yes" ; then echo "checking for XFontSet" 1>&6 -echo "configure:10122: checking for XFontSet" >&5 +echo "configure:10177: checking for XFontSet" >&5 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6 -echo "configure:10125: checking for XmbDrawString in -lX11" >&5 +echo "configure:10180: 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:10196: \"$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 @@ -10177,15 +10232,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:10181: checking for wnn/jllib.h" >&5 +echo "configure:10236: 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:10189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10244: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10208,15 +10263,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:10212: checking for wnn/commonhd.h" >&5 +echo "configure:10267: 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:10220: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10275: \"$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* @@ -10241,10 +10296,10 @@ for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10245: checking for $ac_func" >&5 +echo "configure:10300: 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:10326: \"$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 @@ -10296,12 +10351,12 @@ test "$ac_cv_func_crypt" != "yes" && { echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:10300: checking for crypt in -lcrypt" >&5 +echo "configure:10355: 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:10371: \"$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 @@ -10347,12 +10402,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:10351: checking for jl_dic_list_e in -lwnn" >&5 +echo "configure:10406: 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:10422: \"$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 @@ -10381,12 +10436,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:10385: checking for jl_dic_list_e in -lwnn4" >&5 +echo "configure:10440: 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:10456: \"$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 @@ -10415,12 +10470,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:10419: checking for jl_dic_list_e in -lwnn6" >&5 +echo "configure:10474: 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:10490: \"$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 @@ -10449,12 +10504,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:10453: checking for dic_list_e in -lwnn6_fromsrc" >&5 +echo "configure:10508: 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:10524: \"$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 @@ -10513,12 +10568,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:10517: checking for jl_fi_dic_list in -l$libwnn" >&5 +echo "configure:10572: 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:10588: \"$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 @@ -10564,15 +10619,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:10568: checking for canna/jrkanji.h" >&5 +echo "configure:10623: 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:10576: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10631: \"$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* @@ -10599,15 +10654,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:10603: checking for canna/jrkanji.h" >&5 +echo "configure:10658: 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:10611: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10666: \"$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* @@ -10635,15 +10690,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:10639: checking for canna/RK.h" >&5 +echo "configure:10694: 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:10647: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10702: \"$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* @@ -10666,12 +10721,12 @@ } test -z "$with_canna" && { echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6 -echo "configure:10670: checking for RkBgnBun in -lRKC" >&5 +echo "configure:10725: 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:10741: \"$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 @@ -10705,12 +10760,12 @@ } test -z "$with_canna" && { echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6 -echo "configure:10709: checking for jrKanjiControl in -lcanna" >&5 +echo "configure:10764: 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:10780: \"$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 @@ -10770,12 +10825,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:10774: checking for layout_object_getvalue in -li18n" >&5 +echo "configure:10829: 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:10845: \"$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 @@ -10872,10 +10927,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:10876: checking for $ac_func" >&5 +echo "configure:10931: 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:10957: \"$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 @@ -10930,10 +10985,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:10934: checking for $ac_func" >&5 +echo "configure:10989: 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:11015: \"$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 @@ -10985,10 +11040,10 @@ echo $ac_n "checking for openpty""... $ac_c" 1>&6 -echo "configure:10989: checking for openpty" >&5 +echo "configure:11044: checking for openpty" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11070: \"$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 @@ -11030,12 +11085,12 @@ echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6 -echo "configure:11034: checking for openpty in -lutil" >&5 +echo "configure:11089: 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:11105: \"$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 @@ -11081,15 +11136,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11085: checking for $ac_hdr" >&5 +echo "configure:11140: 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:11093: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11148: \"$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* @@ -11126,15 +11181,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11130: checking for $ac_hdr" >&5 +echo "configure:11185: 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:11138: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11193: \"$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* @@ -11167,15 +11222,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11171: checking for $ac_hdr" >&5 +echo "configure:11226: 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:11179: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11234: \"$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* @@ -11208,15 +11263,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11212: checking for $ac_hdr" >&5 +echo "configure:11267: 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:11220: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11275: \"$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* @@ -11252,15 +11307,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11256: checking for $ac_hdr" >&5 +echo "configure:11311: 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:11264: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11319: \"$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* @@ -11293,10 +11348,10 @@ for ac_func in isastream do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11297: checking for $ac_func" >&5 +echo "configure:11352: 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:11378: \"$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 @@ -11350,15 +11405,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11354: checking for $ac_hdr" >&5 +echo "configure:11409: 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:11362: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11417: \"$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* @@ -11395,10 +11450,10 @@ for ac_func in getloadavg do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11399: checking for $ac_func" >&5 +echo "configure:11454: 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:11480: \"$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 @@ -11454,15 +11509,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11458: checking for $ac_hdr" >&5 +echo "configure:11513: 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:11466: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11521: \"$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* @@ -11498,12 +11553,12 @@ echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6 -echo "configure:11502: checking for kstat_open in -lkstat" >&5 +echo "configure:11557: 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:11573: \"$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 @@ -11549,15 +11604,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11553: checking for $ac_hdr" >&5 +echo "configure:11608: 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:11561: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11616: \"$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* @@ -11589,12 +11644,12 @@ echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6 -echo "configure:11593: checking for kvm_read in -lkvm" >&5 +echo "configure:11648: 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:11664: \"$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 @@ -11639,16 +11694,16 @@ fi echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 -echo "configure:11643: checking whether netdb declares h_errno" >&5 +echo "configure:11698: checking whether netdb declares h_errno" >&5 cat > conftest.$ac_ext < int main() { return h_errno; ; return 0; } EOF -if { (eval echo configure:11652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11707: \"$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 @@ -11668,16 +11723,16 @@ rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 -echo "configure:11672: checking for sigsetjmp" >&5 +echo "configure:11727: checking for sigsetjmp" >&5 cat > conftest.$ac_ext < int main() { sigjmp_buf bar; sigsetjmp (bar, 0); ; return 0; } EOF -if { (eval echo configure:11681: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11736: \"$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 @@ -11697,11 +11752,11 @@ rm -f conftest* echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 -echo "configure:11701: checking whether localtime caches TZ" >&5 +echo "configure:11756: checking whether localtime caches TZ" >&5 if test "$ac_cv_func_tzset" = "yes"; then cat > conftest.$ac_ext < #if STDC_HEADERS @@ -11736,7 +11791,7 @@ exit (0); } EOF -if { (eval echo configure:11740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:11795: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then emacs_cv_localtime_cache=no else @@ -11766,9 +11821,9 @@ if test "$HAVE_TIMEVAL" = "yes"; then echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6 -echo "configure:11770: checking whether gettimeofday accepts one or two arguments" >&5 +echo "configure:11825: 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:11848: \"$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 @@ -11811,19 +11866,19 @@ echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:11815: checking for inline" >&5 +echo "configure:11870: 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:11882: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -11864,17 +11919,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:11868: checking for working alloca.h" >&5 +echo "configure:11923: 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:11878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11933: \"$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 @@ -11898,10 +11953,10 @@ fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:11902: checking for alloca" >&5 +echo "configure:11957: checking for alloca" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11988: \"$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 @@ -11968,10 +12023,10 @@ echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:11972: checking whether alloca needs Cray hooks" >&5 +echo "configure:12027: checking whether alloca needs Cray hooks" >&5 cat > conftest.$ac_ext <&6 -echo "configure:11999: checking for $ac_func" >&5 +echo "configure:12054: 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:12080: \"$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 @@ -12051,10 +12106,10 @@ fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:12055: checking stack direction for C alloca" >&5 +echo "configure:12110: 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:12132: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_stack_direction=1 else @@ -12103,15 +12158,15 @@ ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 -echo "configure:12107: checking for vfork.h" >&5 +echo "configure:12162: 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:12115: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12170: \"$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* @@ -12139,10 +12194,10 @@ fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:12143: checking for working vfork" >&5 +echo "configure:12198: checking for working vfork" >&5 cat > conftest.$ac_ext < @@ -12237,7 +12292,7 @@ } } EOF -if { (eval echo configure:12241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_vfork_works=yes else @@ -12263,10 +12318,10 @@ echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 -echo "configure:12267: checking for working strcoll" >&5 +echo "configure:12322: checking for working strcoll" >&5 cat > conftest.$ac_ext < main () @@ -12276,7 +12331,7 @@ strcoll ("123", "456") >= 0); } EOF -if { (eval echo configure:12280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12335: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_strcoll_works=yes else @@ -12304,10 +12359,10 @@ for ac_func in getpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12308: checking for $ac_func" >&5 +echo "configure:12363: 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:12389: \"$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 @@ -12358,10 +12413,10 @@ done echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 -echo "configure:12362: checking whether getpgrp takes no argument" >&5 +echo "configure:12417: 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:12475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_getpgrp_void=yes else @@ -12443,10 +12498,10 @@ echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:12447: checking for working mmap" >&5 +echo "configure:12502: checking for working mmap" >&5 case "$opsys" in ultrix* ) have_mmap=no ;; *) cat > conftest.$ac_ext < #include @@ -12479,7 +12534,7 @@ return 1; } EOF -if { (eval echo configure:12483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then have_mmap=yes else @@ -12508,9 +12563,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:12512: checking for M_MMAP_THRESHOLD" >&5 +echo "configure:12567: checking for M_MMAP_THRESHOLD" >&5 cat > conftest.$ac_ext < int main() { @@ -12522,7 +12577,7 @@ ; return 0; } EOF -if { (eval echo configure:12526: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12581: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* rel_alloc=no; echo "$ac_t""yes" 1>&6; else @@ -12547,15 +12602,15 @@ ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termios.h""... $ac_c" 1>&6 -echo "configure:12551: checking for termios.h" >&5 +echo "configure:12606: 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:12559: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12614: \"$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* @@ -12598,15 +12653,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:12602: checking for termio.h" >&5 +echo "configure:12657: 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:12610: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12665: \"$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* @@ -12638,10 +12693,10 @@ echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:12642: checking for socket" >&5 +echo "configure:12697: checking for socket" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12723: \"$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 @@ -12679,15 +12734,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:12683: checking for netinet/in.h" >&5 +echo "configure:12738: 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:12691: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12746: \"$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* @@ -12704,15 +12759,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:12708: checking for arpa/inet.h" >&5 +echo "configure:12763: 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:12716: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12771: \"$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* @@ -12737,9 +12792,9 @@ } echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6 -echo "configure:12741: checking "for sun_len member in struct sockaddr_un"" >&5 +echo "configure:12796: checking "for sun_len member in struct sockaddr_un"" >&5 cat > conftest.$ac_ext < @@ -12750,7 +12805,7 @@ static struct sockaddr_un x; x.sun_len = 1; ; return 0; } EOF -if { (eval echo configure:12754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12809: \"$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 @@ -12768,9 +12823,9 @@ fi rm -f conftest* echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6 -echo "configure:12772: checking "for ip_mreq struct in netinet/in.h"" >&5 +echo "configure:12827: checking "for ip_mreq struct in netinet/in.h"" >&5 cat > conftest.$ac_ext < @@ -12780,7 +12835,7 @@ static struct ip_mreq x; ; return 0; } EOF -if { (eval echo configure:12784: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12839: \"$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 @@ -12811,10 +12866,10 @@ echo $ac_n "checking for msgget""... $ac_c" 1>&6 -echo "configure:12815: checking for msgget" >&5 +echo "configure:12870: checking for msgget" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12896: \"$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 @@ -12852,15 +12907,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:12856: checking for sys/ipc.h" >&5 +echo "configure:12911: 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:12864: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12919: \"$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* @@ -12877,15 +12932,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:12881: checking for sys/msg.h" >&5 +echo "configure:12936: 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:12889: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12944: \"$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* @@ -12923,15 +12978,15 @@ ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dirent.h""... $ac_c" 1>&6 -echo "configure:12927: checking for dirent.h" >&5 +echo "configure:12982: 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:12935: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12990: \"$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* @@ -12958,15 +13013,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:12962: checking for sys/dir.h" >&5 +echo "configure:13017: 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:12970: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13025: \"$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* @@ -12999,15 +13054,15 @@ ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for nlist.h""... $ac_c" 1>&6 -echo "configure:13003: checking for nlist.h" >&5 +echo "configure:13058: 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:13011: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13066: \"$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* @@ -13037,22 +13092,22 @@ echo "checking "for sound support"" 1>&6 -echo "configure:13041: checking "for sound support"" >&5 +echo "configure:13096: 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:13048: checking for multimedia/audio_device.h" >&5 +echo "configure:13103: 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:13056: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13111: \"$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* @@ -13100,12 +13155,12 @@ if test -z "$native_sound_lib"; then echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6 -echo "configure:13104: checking for ALopenport in -laudio" >&5 +echo "configure:13159: 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:13175: \"$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 @@ -13147,12 +13202,12 @@ if test -z "$native_sound_lib"; then echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6 -echo "configure:13151: checking for AOpenAudio in -lAlib" >&5 +echo "configure:13206: 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:13222: \"$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 @@ -13211,15 +13266,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:13215: checking for ${dir}/soundcard.h" >&5 +echo "configure:13270: 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:13223: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13278: \"$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* @@ -13273,15 +13328,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:13277: checking for audio/audiolib.h" >&5 +echo "configure:13332: 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:13285: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13340: \"$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* @@ -13299,12 +13354,12 @@ echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6 -echo "configure:13303: checking for AuOpenServer in -laudio" >&5 +echo "configure:13358: 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:13374: \"$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 @@ -13354,7 +13409,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 @@ -13385,7 +13440,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:13389: checking for $ac_word" >&5 +echo "configure:13444: 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. @@ -13414,10 +13469,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:13418: checking for esd_play_stream" >&5 +echo "configure:13473: 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:13499: \"$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 @@ -13491,7 +13546,7 @@ if test "$with_tty" = "yes" ; then echo "checking for TTY-related features" 1>&6 -echo "configure:13495: checking for TTY-related features" >&5 +echo "configure:13550: checking for TTY-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_TTY EOF @@ -13507,12 +13562,12 @@ if test -z "$with_ncurses"; then echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6 -echo "configure:13511: checking for tgetent in -lncurses" >&5 +echo "configure:13566: 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:13582: \"$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 @@ -13556,15 +13611,15 @@ ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:13560: checking for ncurses/curses.h" >&5 +echo "configure:13615: 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:13568: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13623: \"$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* @@ -13586,15 +13641,15 @@ ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6 -echo "configure:13590: checking for ncurses/term.h" >&5 +echo "configure:13645: 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:13598: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13653: \"$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* @@ -13624,15 +13679,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:13628: checking for ncurses/curses.h" >&5 +echo "configure:13683: 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:13636: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13691: \"$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* @@ -13667,12 +13722,12 @@ for lib in curses termlib termcap; do echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6 -echo "configure:13671: checking for tgetent in -l$lib" >&5 +echo "configure:13726: 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:13742: \"$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 @@ -13714,12 +13769,12 @@ else echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6 -echo "configure:13718: checking for tgetent in -lcurses" >&5 +echo "configure:13773: 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:13789: \"$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 @@ -13748,12 +13803,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6 -echo "configure:13752: checking for tgetent in -ltermcap" >&5 +echo "configure:13807: 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:13823: \"$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 @@ -13812,15 +13867,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:13816: checking for gpm.h" >&5 +echo "configure:13871: 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:13824: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13879: \"$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* @@ -13843,12 +13898,12 @@ } test -z "$with_gpm" && { echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:13847: checking for Gpm_Open in -lgpm" >&5 +echo "configure:13902: 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:13918: \"$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 @@ -13909,20 +13964,20 @@ test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \ != "no no no" && echo "checking for database support" 1>&6 -echo "configure:13913: checking for database support" >&5 +echo "configure:13968: 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:13918: checking for ndbm.h" >&5 +echo "configure:13973: 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:13926: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13981: \"$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* @@ -13952,12 +14007,12 @@ if test "$with_database_gdbm" != "no"; then echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:13956: checking for dbm_open in -lgdbm" >&5 +echo "configure:14011: 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:14027: \"$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 @@ -13996,10 +14051,10 @@ if test "$with_database_dbm" != "no"; then echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:14000: checking for dbm_open" >&5 +echo "configure:14055: 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:14081: \"$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 @@ -14041,12 +14096,12 @@ echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:14045: checking for dbm_open in -ldbm" >&5 +echo "configure:14100: 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:14116: \"$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 @@ -14098,10 +14153,10 @@ if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6 -echo "configure:14102: checking for Berkeley db.h" >&5 +echo "configure:14157: checking for Berkeley db.h" >&5 for header in "db/db.h" "db.h"; do cat > conftest.$ac_ext < @@ -14123,7 +14178,7 @@ ; return 0; } EOF -if { (eval echo configure:14127: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14182: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* db_h_file="$header"; break else @@ -14139,9 +14194,9 @@ if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6 -echo "configure:14143: checking for Berkeley DB version" >&5 +echo "configure:14198: checking for Berkeley DB version" >&5 cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 1 @@ -14153,7 +14208,7 @@ egrep "yes" >/dev/null 2>&1; then rm -rf conftest* cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 2 @@ -14180,10 +14235,10 @@ rm -f conftest* echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6 -echo "configure:14184: checking for $dbfunc" >&5 +echo "configure:14239: checking for $dbfunc" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14265: \"$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 @@ -14225,12 +14280,12 @@ echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6 -echo "configure:14229: checking for $dbfunc in -ldb" >&5 +echo "configure:14284: 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:14300: \"$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 @@ -14305,12 +14360,12 @@ if test "$with_socks" = "yes"; then echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6 -echo "configure:14309: checking for SOCKSinit in -lsocks" >&5 +echo "configure:14364: 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:14380: \"$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 @@ -14376,22 +14431,22 @@ if test "$with_modules" != "no"; then echo "checking for module support" 1>&6 -echo "configure:14380: checking for module support" >&5 +echo "configure:14435: 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:14387: checking for dlfcn.h" >&5 +echo "configure:14442: 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:14395: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14450: \"$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* @@ -14408,16 +14463,16 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6 -echo "configure:14412: checking for dlopen in -lc" >&5 +echo "configure:14467: checking for dlopen in -lc" >&5 cat > conftest.$ac_ext < int main() { dlopen ("", 0); ; return 0; } EOF -if { (eval echo configure:14421: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_dl=yes else @@ -14426,18 +14481,18 @@ rm -rf conftest* echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:14430: checking for dlopen in -ldl" >&5 +echo "configure:14485: 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:14441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_dl=yes else @@ -14466,12 +14521,12 @@ else echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:14470: checking for shl_load in -ldld" >&5 +echo "configure:14525: 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:14541: \"$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 @@ -14509,12 +14564,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6 -echo "configure:14513: checking for dld_init in -ldld" >&5 +echo "configure:14568: 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:14584: \"$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 @@ -14570,7 +14625,7 @@ xealias=$internal_configuration echo "checking how to build dynamic libraries for ${xehost}" 1>&6 -echo "configure:14574: checking how to build dynamic libraries for ${xehost}" >&5 +echo "configure:14629: checking how to build dynamic libraries for ${xehost}" >&5 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts. case "$xehost" in *-*-linux-gnu*) ;; @@ -14598,9 +14653,9 @@ XEGCC=yes else echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:14602: checking checking whether we are using GNU C" >&5 +echo "configure:14657: checking checking whether we are using GNU C" >&5 cat > conftest.$ac_ext <&6 -echo "configure:14626: checking how to produce PIC code" >&5 +echo "configure:14681: checking how to produce PIC code" >&5 wl= can_build_shared=yes @@ -14723,18 +14778,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:14727: checking if PIC flag ${dll_cflags} really works" >&5 +echo "configure:14782: 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:14793: \"$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 @@ -14765,7 +14820,7 @@ xldf= xcldf= echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6 -echo "configure:14769: checking if C compiler can produce shared libraries" >&5 +echo "configure:14824: checking if C compiler can produce shared libraries" >&5 if test "$XEGCC" = yes; then xcldf="-shared" xldf="-shared" @@ -14816,14 +14871,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:14882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cc_produces_so=yes else @@ -14848,18 +14903,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:14852: checking for ld used by GCC" >&5 +echo "configure:14907: 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 ;; "") @@ -14873,7 +14929,7 @@ esac else echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:14877: checking for GNU ld" >&5 +echo "configure:14933: checking for GNU ld" >&5 fi if test -z "$LTLD"; then @@ -14911,7 +14967,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:14915: checking if the linker is GNU ld" >&5 +echo "configure:14971: 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 @@ -14939,7 +14995,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:14943: checking whether the linker supports shared libraries" >&5 +echo "configure:14999: checking whether the linker supports shared libraries" >&5 dll_ld=$CC dll_ldflags=$LDFLAGS ld_shlibs=yes @@ -15150,10 +15206,10 @@ for ac_func in dlerror _dlerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15154: checking for $ac_func" >&5 +echo "configure:15210: 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:15236: \"$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 @@ -15215,11 +15271,11 @@ fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:15279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -15786,6 +15842,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 +} + ( @@ -15841,6 +15905,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:" @@ -15986,6 +16054,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." diff --text -u 'xemacs-21.5.4/configure.in' 'xemacs-21.5.5/configure.in' Index: ././configure.in --- ././configure.in Wed Sep 26 23:38:17 2001 +++ ././configure.in Tue Feb 5 00:44:46 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 @@ -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 @@ -783,12 +789,14 @@ "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 ;; + dnl Explicit --with-widgets on command line means 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 @@ -2163,7 +2171,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 @@ -2504,6 +2512,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 ; @@ -2525,6 +2537,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 ---------------------- @@ -2596,6 +2622,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}) @@ -2624,8 +2653,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)) @@ -2636,6 +2667,7 @@ AC_DEFINE(LIBGLADE_XML_TXTDOMAIN,1)], [AC_MSG_RESULT(no)]) CFLAGS="${OLD_CFLAGS}" + CPPFLAGS="${OLD_CPPFLAGS}" LDFLAGS="${OLD_LDFLAGS}" fi @@ -3192,9 +3224,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 @@ -3230,7 +3291,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()], @@ -3347,9 +3410,18 @@ dnl ---------------------- if test "$with_x11" = "yes"; then - AC_CHECKING(for X11 graphics libraries) +fi + +dnl We don't automatically trigger widgets if athena is present +dnl because of stability concerns. +dnl But if the user wants widgets, still offer him autodetections +case "$with_widgets" in + "yes" | "athena") detect_athena=yes ;; + *) detect_athena=no ;; +esac +if test "$with_x11" = "yes" -a "$detect_athena" = "yes" ; then AC_CHECKING(for the Athena widgets) dnl What in heck did the user actually want? @@ -3446,6 +3518,11 @@ have_xaw=no fi +else + have_xaw=no +fi dnl "$with_x11" = "yes" -a "detect_athena" = "yes" + +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)], @@ -3584,7 +3661,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 @@ -3592,7 +3669,7 @@ test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-x.o) test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-x.o) test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-x.o) - test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-x.o) + test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-common.o toolbar-x.o) test "$all_widgets" != "no no no no no" && XE_ADD_OBJS(gui-x.o) fi @@ -4782,6 +4859,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 @@ -4843,6 +4921,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:" @@ -4988,6 +5070,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." diff --text -u 'xemacs-21.5.4/configure.usage' 'xemacs-21.5.5/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.4/etc/BETA' 'xemacs-21.5.5/etc/BETA' Index: ././etc/BETA --- ././etc/BETA Thu Aug 23 06:03:16 2001 +++ ././etc/BETA Mon Feb 4 22:19:17 2002 @@ -3,51 +3,78 @@ * Introduction ============== -You are running an experimental version of XEmacs. Please do not -report problems with Beta XEmacs to comp.emacs.xemacs. Report them to -xemacs-beta@xemacs.org. - -** XEmacs Beta Mailing List -=========================== - -*** Subscribing ---------------- - -If you are not subscribed to the XEmacs beta list you should be. Send -an email message to xemacs-beta-request@xemacs.org with `subscribe' -(without the quotes) as the BODY of the message. - -*** Unsubscribing ------------------ - -To unsubscribe from the list send an email message to -xemacs-beta-request@xemacs.org with `unsubscribe' (without the quotes) -as the BODY of the message. - -*** Administrivia ------------------ - -The XEmacs beta list is managed by the Majordomo mailing list package, -and the usual Majordomo commands work. Do not send mailing list -requests to the main address (xemacs-beta@xemacs.org), always send -them to xemacs-beta-request@xemacs.org. If you have problems with the -list itself, they should be brought to the attention of the XEmacs -Mailing List manager Jason Mastaler . +You are running a potentially unstable version of XEmacs. Please do +not report problems with Beta XEmacs to comp.emacs.xemacs. Report +them to xemacs-beta@xemacs.org. + +** Mailing Lists +================ + +*** XEmacs Beta Mailing List +---------------------------- + +If you are not subscribed to the XEmacs beta list you should be. +Currently all discussion of development issues, including bug reports +and coding discussion, takes place on the XEmacs Beta mailing list. +Only patches and administrative actions regarding patches are sent +elsewhere (to the XEmacs Patches list). + +** XEmacs Patches Mailing List +============================== + +XEmacs Patches records proposed changes to XEmacs, and their +disposition. It is open subscription, but only patches and actions by +members of the XEmacs Review Board should be posted to this list. You +can follow progress of your patch by subscribing to the mailing list +or in the archives. +** List Administrivia +===================== -** Beta Release Schedule -======================== +In the descriptions below, the word LIST (all uppercase) is a +variable. Substitute "beta" or "patches" as appropriate (to get +"xemacs-beta" as the mailbox for the XEmacs Beta mailing list, or +http://www.xemacs.org/Lists/#xemacs-beta for its URL). + +The XEmacs mailing lists are managed by the Mailman mailing list +package, and the usual Mailman commands work. Do not send mailing +list requests to the main address (xemacs-LIST@xemacs.org), always +send them to xemacs-LIST-request@xemacs.org. If you have problems +with the list itself, they should be brought to the attention of the +XEmacs Mailing List manager (the same +mailbox, "list-manager", for all lists). All public mailing lists +have searchable archives. The URL is + + http://list-archive.xemacs.org/xemacs-LIST + +*** Managing your subscription via the Web +------------------------------------------ + +Subscription, unsubscription, and options (such as digests and +temporarily suspending delivery) can be accomplished via the web +interface at http://www.xemacs.org/Lists/#xemacs-LIST. + +*** Subscribing by e-mail +------------------------- -The URL ftp://ftp.xemacs.org/pub/xemacs/beta/README always contains -the best estimate of when the next beta XEmacs will be released. For -weekend betas the release time is generally in the vicinity of 2PM to -5PM US Pacific Time (Universal Time minus 8 hours). For weekday -betas, the release time is generally in the vicinity of 8PM to -Midnight US Pacific Time on the listed day. +Send an email message to xemacs-LIST-request@xemacs.org with +`subscribe' (without the quotes) as the BODY of the message. -Betas are nominally a week apart, scheduled on every Saturday. -Midweek releases are made when a serious enough problem warrants it. +*** Unsubscribing by e-mail +--------------------------- +Send an email message to xemacs-LIST-request@xemacs.org with +`unsubscribe' (without the quotes) as the BODY of the message. + +** Beta Release Schedule +======================== + +Betas are now released rather sporadically. We would like to achieve +a weekly release schedule, but personnel availability does not +permit. For access to the most recent code, use CVS (see +http://www.xemacs.org/Develop/cvsaccess.html for more information). +If you have need for FTP access, please let us know. It will make it +more likely that we release betas more often. ** Reporting Problems ===================== @@ -66,11 +93,16 @@ problem is actually occurring. 2. Attempt to recreate the problem starting with an invocation of - XEmacs with `xemacs -q -no-site-file'. Quite often, problems are - due to package interdependencies, and the like. An actual bug in - XEmacs should be reproducible in a default configuration without - loading any special packages (or the one or two specific packages - that cause the bug to appear). + XEmacs with `xemacs -q -no-site-file -no-autoloads'. Quite often, + problems are due to package interdependencies, and the like. An + actual bug in XEmacs should be reproducible in a default + configuration without loading any special packages (or the one or + two specific packages that cause the bug to appear). If you have + trouble getting anything to work at all with the above invocation, + use `xemacs -q -no-site-file' instead. If you need to load your + user init file or the site file to get the problem to occur, then + it has something to do with them, and you should try to isolate + the issue in those files. 3. A picture can be worth a thousand words. When reporting an unusual display, it is generally best to capture the problem in a @@ -84,7 +116,9 @@ ===================== In addition to the normal tar distribution, XEmacs source is now -available via CVS. Please see the URL: . +available via CVS. Please see + + http://www.xemacs.org/Develop/cvsaccess.html * Compiling Beta XEmacs ======================= @@ -136,7 +170,10 @@ --with-scrollbars=athena3d --with-dialogs=athena3d \ --with-mule --with-xfs --with-xim=xlib -Part of the configure output is a summary that looks something like: +Part of the configure output is a summary that looks something like +the following. (In XEmacs 21.1 and later, this summary is also +available as the file Installation in the top directory of your build +tree, and via the command M-x describe-installation.) uname -a: Linux altair.xemacs.org 2.0.32 #2 Sun Nov 16 18:52:14 PST 1997 i586 @@ -228,12 +265,18 @@ 5. Any other unusual items you feel should be brought to the attention of the developers. + +* Patching XEmacs +================= + ** Creating patches for submission ================================== Patches to XEmacs should be mailed to . Each patch will be reviewed by the patches review board, and will be -acked and added to the distribution, or rejected with an explanation. +acknowledged and added to the distribution, or rejected with an +explanation. Progress of the patch is tracked on the XEmacs Patches +mailing list, which is open subscription. Patches to XEmacs Lisp packages should be sent to the maintainer of the package. If the maintainer is listed as `XEmacs Development Team' @@ -242,9 +285,19 @@ Emailed patches should preferably be sent in MIME format and quoted printable encoding (if necessary). -When making patches, please use the `-u' option, or if your diff -doesn't support it, `-c'. Using ordinary (context-free) diffs are -notoriously prone to error, since line numbers tend to change when +The simplest way to create well-formed patches is to use CVS and +Didier Verna's Patcher library (available as patcher.el in the +xemacs-devel package). Patcher is new and requires some setup, but +most of the core developers are now using it for their own patches. +Patcher also can be configured to create patches for several projects, +and recognize the project from the directory it is invoked in. This +makes it a useful general tool (as long as XEmacs-style patches are +accepted at your other projects, which is likely since they conform to +the GNU standards). + +When making patches by hand, please use the `-u' option, or if your +diff doesn't support it, `-c'. Using ordinary (context-free) diffs +are notoriously prone to error, since line numbers tend to change when others make changes to the same source file. An example of the `diff' usage: @@ -262,50 +315,93 @@ hack, hack, hack.... $ diff -u lwlib/xlwmenu.c.orig lwlib/xlwmenu.c -Each patch should be accompanied by an update to the appropriate -ChangeLog file. Please don't mail patches to ChangeLog because they -have an extremely high rate of failure; just mail us the new part of -the ChangeLog you added. - Also note that if you cut & paste from an xterm to an XEmacs mail buffer you will probably lose due to tab expansion. The best thing to do is to use an XEmacs shell buffer to run the diff commands, or ... M-x cd to the appropriate directory, and issue the command `C-u M-!' from within XEmacs. -Guidelines for writing ChangeLog entries is governed by the GNU coding -standards. Please see - http://www.gnu.org/prep/standards_toc.html [Change Logs section] -for details. - Patches should be as single-minded as possible. Mammoth patches can be very difficult to place into the right slot. They are much easier to deal with when broken down into functional or conceptual chunks. The patches submitted by Kyle Jones and Hrvoje Niksic are stellar examples of how to Do The Right Thing. -** Packages directory on the FTP Site -===================================== - -The packages directory - ftp://ftp.xemacs.org/pub/xemacs/beta/xemacs-21.0/packages/ - -is divided into subdirectory by the major type of package. - -drwxr-xr-x 2 beta-f beta-f 1024 Oct 10 00:43 binary-packages -drwxr-xr-x 2 beta-f beta-f 512 Oct 10 00:44 package-sources -drwxr-xr-x 2 beta-f beta-f 512 Oct 10 00:44 utils - -** Support Utilities (utils) -============================ +Each patch should be accompanied by an update to the appropriate +ChangeLog file. Guidelines for writing ChangeLog entries is governed +by the GNU coding standards. Please see + http://www.gnu.org/prep/standards_toc.html [Change Logs section] +for details. -The utils directory contains tools to deal with current Lisp sources that -have not had yet gotten XEmacs package integration. The script `xpackage.sh' -is used with Quassia Gnus. Edit the appropriate variables at the top of -the script to reflect the local configuration and run it in the top level -directory of a Quassia Gnus source tree to install an update to Quassia Gnus. +Do not submit context diffs (either -c or -u) of ChangeLogs. Because +of the "stack" nature of ChangeLogs (new entries are always pushed on +the top), context diffs will fail to apply more often than they +succeed. Simply cutting and pasting the entry from an Emacs buffer to +the mail buffer (beware of tab expansion!) is probably easiest. The +Patcher library also will set up your ChangeLogs for you, and copy +them to the mail. Contextless unified diffs (-U 0) are also +acceptable but perhaps more trouble than they are worth. + +*** Patch discussion etiquette +------------------------------- + +If you intend a patch for _application_ to the sources as is, _always_ +post it to xemacs-patches, even if there are minor points you would +like to have discussed by others. Not doing so will resulting in +patches getting "lost". If you expect that the patch will not be +acceptable, but are using it to stimulate discussion, then don't post +to xemacs-patches. Intermediate cases are up to your judgement; +unless you're sure you'll follow up with a "real" patch, better to err +on the side of posting to xemacs-patches. + +Discussion of the _content_ of the patch (ie responses to reviewer +comments beyond "that's right, ok, I'll do it your way") should _always_ +be posted to xemacs-beta. (We may split xemacs-beta into code +discussion and stuff that is more relevant to non-developer testers at +some point, but at this point xemacs-beta is the correct place for +this.) + +If discussion results in a bright idea and you come up with a new +patch, normally you should post it to both mailing lists. The people +discussing on XEmacs Beta will want to know the outcome of the thread, +and you need to submit to XEmacs Patches as the "list of record." + +If the old patch has been applied to CVS, then just submit the new one +as usual. If it has not been applied, then it is best to submit a new +patch against CVS. If possible do this as a reply to the original +patch post, or something following it in the thread. (The point is to +get the original patch post's Message-ID in your References header.) +In this case, also use the keyword SUPERCEDES in the Subject header to +indicate that the old patch is no longer valid, and that this one +replaces it. + +These rules will result in a fair number of cross posts, but we don't +yet have a better way to handle that. + +Note: Developers should never post to xemacs-patches unless there is a +patch in the post. We plan to enforce this with an automatic filter. + +The exceptions are administrative. If you have commit authorization, +then post a short COMMIT notice to xemacs-patches when you commit to +CVS. Members of the Review Board will also post short notices of +administrative action (APPROVE, VETO, QUERY, etc) to xemacs-patches. + +* Packages +==================================== + +[Note: these instructions have been partly updated, but not carefully +reviewed in some time. Caveat tester.] + +Starting with XEmacs 21.1, much of the functionality of XEmacs has +been unbundled into "the packages." For more information about the +package system, see the Info nodes on Packages (in the XEmacs User +Manual) and on Packaging (in the Lisp Reference). + +When bootstrapping XEmacs, you may need to manually install some +packages (at least xemacs-base and efs). These packages are available +by FTP at ftp://ftp.xemacs.org/pub/xemacs/packages/. -** Binary package installation (binary-packages) +** Binary package installation ================================================ Prerequisite: XEmacs 21.0-b1. @@ -326,16 +422,15 @@ directory called `lisp-utils', the command to rebuild the auto-autoloads.el file is: -xemacs-21.0 -vanilla -batch -l autoload -f batch-update-directory lisp-utils +xemacs -vanilla -batch -l autoload -f batch-update-directory lisp-utils The command to rebuild the custom-load.el file is: -xemacs-21.0 -vanilla -batch -l cus-dep \ - -f Custom-make-dependencies lisp-utils +xemacs -vanilla -batch -l cus-dep -f Custom-make-dependencies lisp-utils To bytecompile both of these files the command is: -xemacs-21.0 -vanilla -batch -f batch-byte-compile \ +xemacs -vanilla -batch -f batch-byte-compile \ lisp-utils/auto-autoloads.el lisp-utils/custom-load.el ** Building XEmacs and XEmacs packages from scratch diff --text -u 'xemacs-21.5.4/etc/NEWS' 'xemacs-21.5.5/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 'xemacs-21.5.4/etc/ONEWS' 'xemacs-21.5.5/etc/ONEWS' Index: ././etc/ONEWS --- ././etc/ONEWS Fri Apr 13 03:20:47 2001 +++ ././etc/ONEWS Mon Jan 28 17:23:28 2002 @@ -1081,4 +1081,4 @@ * For older news and for alternate news (the ones dealing with XEmacs -19.15 and 19.16), see the file ONEWS. +19.15 and 19.16), see the file OONEWS. diff --text -u /dev/null 'xemacs-21.5.5/etc/TUTORIAL.se' Index: ././etc/TUTORIAL.se --- ././etc/TUTORIAL.se Thu Jan 1 09:00:00 1970 +++ ././etc/TUTORIAL.se Thu Feb 28 18:02:39 2002 @@ -0,0 +1,1165 @@ +Detta dokument är baserat på den engelska handledningen, som har +Copyright (c) 1985, 1996 Free Software Foundation, Inc. Se slutet av +dokumentet för villkor och förutsättningar. + +Detta är den Svenska användarhandledningen till Emacs. + +Emacs-kommandon innebär ofta användning av kontrolltangenten (oftast +märkt CTRL eller CTL) eller META-tangenten. På vissa tangentbord är +META-tangenten märkt ALT eller EDIT eller något annat. På Suns +tangentbord, till exempel, är det rutertangenten till vänster om +mellanslagstangenten. Om du inte har någon META-tangent kan du använda +ESC. Istället för att skriva META eller KONTROLL kommer vi här att +använda följande förkortningar: + + C- betyder att du skall hålla ner kontrolltangenten samtidigt + som du skriver bokstaven . Alltså betyder C-f: håll ner + kontrolltangenten och tryck f. + M- betyder att du skall hålla ned META-, EDIT- eller + ALT-tangenten samtidigt som du skriver . Om du inte har + någon META-, EDIT- eller ALT-tangent kan du trycka , + släppa tangenten och sedan trycka bokstaven . När vi + skriver avser vi ESC-tangenten. + +Viktigt: För att avsluta Emacs trycker du C-x C-c (två tecken). +Tecknen ">>" i vänstermarginalen anger att du kan prova ett +kommando. Till exempel: +<> +>> Tryck C-v (View next screen) för att hoppa till nästa skärmbild. + Prova nu. Håll ned kontrolltangenten och tryck v. + Från och med nu bör du göra detta när du är färdig med en + skärmbild. + +Notera att det är ett överlapp på två rader när du byter från +skärmbild till skärmbild. Detta är för att behålla sammanhanget när du +bläddrar framåt i filen. + +Det första du behöver veta är hur du manövrerar från plats till plats +i texten. Du har redan lärt dig hur du flyttar en skärmbild framåt, +med C-v. För att flytta dig en skärmbild bakåt trycker du M-v. (Håll +ned META-tangenten och tryck v eller tryck v om du inte har +META-, EDIT- eller ALT-tangent.) + +>> Prova att trycka M-v och C-v några gånger. + + +* SAMMANFATTNING +---------------- + +Följande kommandon är bra för att se hela skärmbilder: + + C-v Flytta en skärmbild framåt. + M-v Flytta en skärmbild bakåt. + C-l Rita om skärmen och placera texten där markören står + mitt på skärmbilden. (Det är KONTROLL-L, inte + KONTROLL-1.) + +>> Leta reda på markören och se vad som står där. Tryck sedan C-l. + Hitta markören igen och notera att det är samma text som står kring + markören nu. + + +* GRUNDLÄGGANDE MARKÖRRÖRELSER +------------------------------ + +Att flytta sig från skärmbild till skärmbild kan vara bra, men hur +förflyttar man sig till en speciell plats på skärmen? + +Det finns flera sätt att göra detta på. Det vanligaste är att använda +kommandona C-p, C-b, C-f och C-n. Vart och ett av dessa kommandon +flyttar markören en rad eller en kolumn i en bestämd riktning på +skärmen. Här visas dessa fyra kommandon och i vilken riktning de +flyttar markören: + + + Föregående rad, C-p + : + : + Bakåt, C-b .... Nuvarande markörposition .... Framåt, C-f + : + : + Nästa rad, C-n + +>> Flytta markören till linjen mitt i diagrammet genom att använda C-n + och C-p. Använd sedan C-l för att centrera diagrammet på + skärmbilden. + +Detta är säkert lite enklare att förstå om du tänker på dessa +förkortningar: P för föregående (previous), N för nästa (next), B för +bakåt (backward) och F för framåt (forward). Detta är de grundläggande +kommandona för att flytta markören och du kommer säkert att använda +dem hela tiden, så det är en stor fördel om du lär dig dem nu. + +>> Gör några C-n så att du kommer ned till den här raden. + +>> Flytta dig in i raden med hjälp av några C-f och sedan uppåt + med några C-p. Lägg märke till vad C-p gör när markören står mitt + på en rad. + +Textrader är åtskilda med radslutstecken. Den sista raden i filen +avslutas också vanligtvis med ett radslut men Emacs kräver inte att +den gör det. + +>> Prova med C-b i början av en rad. Detta gör att markören + flyttas till slutet av den tidigare raden. Detta är för att den + flyttar markören över radslutstecknet. + +C-f flyttar också över radslut, precis som C-b. + +>> Gör några fler C-b så att du får en känsla för var markören + är. Tryck sedan några C-f tills du kommer till slutet av + raden. Tryck ytterligare en C-f så att du flyttar markören till + nästa rad. + +När du flyttar markören förbi toppen eller botten av skärmbilden +kommer texten utanför skärmen att komma fram. Detta kallas "rullning" +och gör det möjligt för Emacs att flytta markören utan att den +försvinner ut ur skärmbilden. + +>> Prova att flytta markören förbi skärmbildens nederkant med hjälp av + C-n och se vad som händer. + +Om det går för sakta att flytta markören ett tecken i taget kan du +flytta den ett ord. M-f flyttar markören ett ord framåt och M-b +flyttar den ett ord bakåt. + +>> Prova några M-f och M-b. + +Om markören står mitt i ett ord kommer M-f att flytta markören till +slutet av ordet. Om du står mitt emellan två ord kommer M-f att flytta +markören till slutet av nästa ord. M-b fungerar på samma sätt men i +motsatt riktning. + +>> Tryck M-f och M-b några gånger och skifta markörposition med några + C-f och C-b så att du ser hur M-f och M-b uppför sig vid olika + placeringar av markören både i och mellan ord. + +Lägg märke till likheten mellan C-f och C-b å ena sidan och M-f och +M-b å den andra. Ofta används META-kommandon till språkrelaterade +operationer (ord, stycken, avsnitt), medan kontrollkommandon används +till grundläggande operationer som inte beror av vad man redigerar +(bokstäver, rader, etc.). + +Denna likhet finns också mellan rader och stycken: C-a och C-e flyttar +markören till början av en rad eller till slutet av en rad, medan M-a +och M-e flyttar den till början respektive slutet av ett stycke. + +>> Prova några C-a och sedan några C-e. + Prova också några M-a och sedan några M-e. + +Se hur efterföljande C-a efter varandra inte gör något, medan flera +M-a fortsätter att flytta markören till nästa stycke. Även om detta +inte verkar självklart är det ganska naturligt. + +Platsen där markören är i texten kallas också för "arbetspunkt" +(point). Eller omskrivet: Markören visar på skärmen var arbetspunkten +är i texten. + +Här är en kort sammanfattning av de enklaste markörförflyttnings- +kommandona, inklusive ord- och styckesförflyttningskommandon: + + C-f Flytta markören ett steg framåt + C-b Flytta markören ett steg bakåt + + M-f Flytta markören ett ord framåt + M-b Flytta markören ett ord bakåt + + C-n Flytta markören till nästa rad + C-p Flytta markören till föregående rad + + C-a Flytta markören till början av raden + C-e Flytta markören till slutet av raden + + M-a Flytta markören till början av meningen + M-e Flytta markören till slutet av meningen + +>> Prova alla dessa kommandon några gånger för tränings skull. + Dessa är de kommandon som används mest. + +Två andra viktiga markörrörelsekommandon är M-< (META mindre-än), som +flyttar markören till början av texten, och M-> (META större-än), som +flyttar den till slutet av texten. + +På en del tangentbord är "<" placerad över komma, så att man måste +använda skift för att få fram den. På dessa tangentbord måste man +också använda skift för att skriva M-<. Utan skifttangenten skulle det +bli M-komma. + +>> Prova M-< nu för att flytta markören till början av vägledningen. + Använd sedan C-v för att flytta markören tillbaka hit igen. + +>> Prova också M-> för att flytta markören till slutet av vägledningen. + Använd sedan M-v för att flytta markören tillbaka hit igen. + +Du kan också flytta markören med hjälp av piltangenterna, om +terminalen har piltangenter. Vi föreslår att du lär dig C-b, C-f, C-n +och C-p av tre skäl. För det första kommer de att fungera på alla +slags terminaler. För det andra kommer du att finna, när du har fått +lite träning i att använda Emacs, att det går mycket snabbare att +använda kontrollfunktionerna än piltangenterna (för att du undviker +att ändra fingersättningen). Den tredje anledningen är att när man har +lärt sig att använda kontrolltangenten blir det lättare att lära sig +de mer avancerade kontrollfunktionerna. + +De flesta kommandon i Emacs tar ett numeriskt argument och för de +flesta kommandon leder detta till att de repeteras. Ett numeriskt +argument anges genom att du skriver C-u och sedan talet, innan du +skriver kommandot. Om du har en META- (eller EDIT- eller ALT-) tangent +så finns det ett annat alternativ för att ge numeriska argument: skriv +talet medan du håller ned META-tangenten. Vi föreslår att du använder +C-u för det fungerar på alla slags terminaler. Det numeriska +argumentet kallas också för "prefixargument" eftersom det skrivs före +kommandot. + +Till exempel: C-u 8 C-f flyttar markören åtta steg framåt. + +>> Prova C-n eller C-p med ett numeriskt argument så att du + kommer så nära den här raden som möjligt med ett enda kommando. + +De flesta kommandon använder det numeriska argumentet för ett +repeterat utförande men det finns kommandon som använder det +annorlunda. Flera kommandon, men inga av dem du lärt dig hittills, +använder det som en flagga. Med ett prefixargument, och oberoende av +dess värde, gör kommandot något annat. + +C-v och M-v finns med bland dessa undantag. Om man ger ett argument +till ett av dessa kommandon kommer skärmbilden flytta sig upp eller +ned så många rader som argumentet anger, istället för så många +skärmbilder. Till exempel kommer C-u 8 C-v flytta skärmbilden 8 rader +uppåt. + +>> Prova C-u 8 C-v nu. + +Detta borde ha flyttat skärmbilden 8 rader uppåt. Om du önskar flytta +tillbaka igen är det bara att ge samma argument till M-v. + +Om du använder Emacs under ett fönstersystem, som X11 eller +MS-Windows, finns det troligen ett rektangulärt område på vänster sida +av Emacs-fönstret, en så kallad rullningslist. Genom att klicka i den +med musen kan du rulla texten. + +>> Prova att trycka med den mellersta musknappen i det utvalda området + på rullningslisten. Detta bör flytta skärmbilden till en plats i + texten beroende på var i rullningslisten du trycker. + +>> Prova att flytta musen upp och ner medan du håller ner den + mellersta musknappen. Du ser att texten rullar upp och ner beroende + på hur du för musen. + + +* MARKÖRFÖRFLYTTNINGAR PÅ EN X-TERMINAL +--------------------------------------- + +Om du sitter vid en X-terminal kommer du antagligen finna det mycket +enklare att använda piltangenterna för att flytta markören. Vänster-, +höger-, upp- och nedåt-pilarna flyttar markören i önskad riktning. De +fungerar på samma sätt som C-b, C-f, C-p och C-n men är enklare att +slå och förstå. Du kan också använda C-vänsterpil och C-högerpil för +att flytta markören över ord och C-uppåtpil och C-nedåtpil för att +flytta den över textblock. (Till exempel för att flytta förbi ett +stycke om du redigerar text.) + +Om du har tangenter märkta med HOME (eller BEGIN) och END kan du +använda dessa för att gå till början respektive slutet av raden och +C-HOME och C-END kommer att gå till början respektive slutet av +filen. Om tangentbordet har PgUp- och PgDn-tangenter kan du använda +dem för att gå upp och ner en skärmbild åt gången på samma sätt som +med M-v och C-v. + +Alla dessa kan också ta numeriska argument, som beskrivits tidigare. +Du kan också använda en genväg för att skriva in dessa argument: håll +ned CONTROL eller META tangenten och skriv in numret. Till exempel för +att gå 12 ord till höger trycker du C-1 C-2 C-högerpil. Lägg märke +till att det är mycket enkelt att skriva eftersom du inte behöver +släppa kontrolltangenten mellan tangenttryckningarna. + + +* OM EMACS HÄNGER +----------------- + +Om Emacs slutar att reagera på kommandon kan du lugnt stoppa dem genom +att trycka C-g. Du kan också använda C-g för att stoppa ett kommando +som tar för lång tid att utföra. + +Det är också möjligt att använda C-g för att avbryta ett numeriskt +argument eller början på ett kommando som du inte önskar att utföra. + +>> Skriv C-u 100 för att ge ett numeriskt argument på 100 och tryck + C-g. Tryck nu C-f. Markören skall nu flytta sig bara ett steg, för att + du avbröt argumentet med C-g. + +Om du av misstag slår blir du kvitt detta med ett C-g. + + +* SPÄRRADE KOMMANDON +-------------------- + +En del Emacs-kommandon är "spärrade" så att nybörjare inte skall +använda dem av misstag. + +Om du provar ett av dessa spärrade kommandon kommer Emacs ge ett +meddelande som berättar vilket kommando det är och kommer att fråga om +du verkligen vill fortsätta och utföra detta kommando. + +Om du verkligen önskar att utföra kommandot trycker du mellanslag som +svar på frågan. Normalt, om du inte önskar att utföra detta kommando, +svarar du "n" på frågan. + +>> Skriv C-x n p (som är ett spärrat kommando). + Skriv n som svar på frågan. + + +* FÖNSTER +--------- + +Emacs kan ha flera fönster och varje fönster kan visa sin egen text. +Lägg märke till att "fönster" i Emacs inte refererar till separata +överlappande fönster i fönstersystemet, utan till separata delar i ett +enda X-fönster.(Emacs kan också ha flera X-fönster eller "ramar" i +Emacs-terminologi. Detta beskrivs senare.) + +Vi kommer förklara senare hur man använder flera fönster. Här skall vi +förklara hur man blir av med extra fönster för att komma tillbaka till +det grundläggande läget med endast ett fönster. Det är enkelt: + + C-x 1 Ett fönster (dvs. ta bort alla andra fönster). + +Det är KONTROLL-x följt av siffran 1. C-x 1 utvidgar fönstret där +markören står så att det fyller hela skärmbilden. Alla andra fönster +tas bort. + +>> Flytta markören till den här raden och tryck C-u 0 C-l. + +(Kom ihåg att C-l rensar skärmen och mittställer raden där markören +står. Om du ger ett numeriskt argument till detta kommando betyder det +"rensa skärmen och placera raden där markören står på raden som +argumentet anger". Därför betyder C-u 0 C-l att skärmen skall rensas +och raden där markören står placeras överst.) + +>> Skriv C-x 2. + Se hur det här fönstret krymper samtidigt som ett nytt uppträder + med samma innehåll som detta. + +>> Slå C-x 1 och se hur det nya fönstret nu försvinner. + + +* SKRIVA OCH TA BORT TEXT +------------------------- + +Om du önskar att sätta in text är det bara att skriva in +texten. Tecken som du kan se, så som A, 7, *, etc. tolkas som text och +sätts in direkt. Skriv (retur-tangenten) för att sätta in en +radbrytning. + +Du kan radera det sista tecknet du skrev genom att trycka . + är en tangent på tangentbordet, som kan vara märkt "Del". I +några fall fungerar också "backsteg" som men inte alltid! + +Generellt raderar tecknet precis före den aktuella +markörspositionen. + +>> Gör detta nu: Skriv in några tecken och ta bort dem genom att + använda . Var inte rädd för att skriva i den här filen, du + kommer inte att kunna förändra originalet till vägledningen. Detta + är bara en lokal kopia. + +När en rad blir för lång för att rymmas på en skärmbredd så fortsätter +den på raden under. Ett bakstreck ("\") (eller om du kör under ett +fönstersystem, en liten böjd pil) i slutet av högermarginalen +indikerar att raden fortsätter. + +>> Skriv in lite text så att du kommer till slutet av raden och + fortsätt att skriva lite till. Du kommer då att se hur + fortsättningstecknet ser ut. + +>> Använd för att radera texten tills raden ryms på en + skärmbredd igen. Fortsättningstecknet kommer då att försvinna. + +Du kan radera radbrytning precis som andra tecken. Genom att radera +radbrytningen mellan två rader slås dessa samman till en. Om +resultatet av denna sammanslagning blir för stor för att passa inom en +skärmbredd, så kommer den att visas med ett fortsättningstecken. + +>> Flytta markören till början av en rad och tryck . + Detta kommer att klistra ihop raden med raden över. + +>> Tryck för att sätta in radbrytningen du tog bort. + +Tänk på att de flesta Emacs-kommandon kan ta numeriska argument. Detta +gäller också texttecken. Genom att repetera ett texttecken kommer det +skrivas flera gånger. + +>> Prova det nu: Skriv C-u 8 * för att sätta in ********. + +Du har nu lärt dig de mest grundläggande sätten att skriva något i +Emacs och att rätta fel. Du kan radera ord och rader också. Här är en +översikt över kommandon för radering: + + raderar tecknet som står precis före markören + C-d raderar tecknet som står precis under markören + + M- raderar ordet precis före markören + M-d raderar ordet precis efter markören + + C-k raderar från markören till slutet av raden + M-k raderar till slutet av stycket + +Lägg märke till att och C-d kontra M- och M-d följer +mönstret som började med C-f och M-f. ( är inte precis +ett kontrolltecken men låt oss inte bry oss om det.) C-k och M-k +fungerar på samma sätt som C-e och M-e (nästan). + +När du raderar mer än ett tecken åt gången kommer Emacs att spara den +borttagna texten så att du han hämta tillbaka den igen. Denna text +kallas borttagen (killed). Att få tillbaka borttagen text kallas att +hämta den (yank). Du kan antingen hämta tillbaka borttagen text till +samma plats som den blev raderad eller också kan du sätta in den på en +annan plats i texten. Du kan också hämta tillbaka den flera gånger så +att du får flera lika förekomster av den. Kommandot för att hämta +tillbaka texten är C-y. + +Skillnaden mellan att "ta bort" (killing) och "radera" (deleting) text +är att "borttagen" text kan hämtas tillbaka, medan raderad text inte +kan det. Återinsättning av borttagen text kallas "återhämtning" +(yanking). Generellt kan man säga att kommandon som tar bort fler än +ett tecken sparar undan texten (så att den kan återhämtas) medan +kommandon som bara raderar ett tecken eller tomma rader och mellanrum +inte sparar någonting (och den texten kan alltså inte återhämtas). + +>> Flytta markören till början av en rad som inte är tom. + Tryck C-k för att ta bort texten på raden. +>> Tryck C-k en gång till. Du kommer nu se att den raderar den tomma + raden som var kvar. + +Lägg märke till att ett enstaka C-k bara raderar texten på raden och +att det andra C-k raderar själva raden och flyttar upp texten på raden +under ett steg. C-k hanterar numeriska argument lite speciellt. Den +raderar så många rader OCH innehållet i dem. Detta är alltså inte bara +en repetition av kommandot. C-u 2 C-k raderar två rader samt de tomma +raderna, medan C-k två gånger inte kommer att göra det. + +Kommandot för att hämta tillbaka text är C-y. Kommandot hämtar +tillbaka den sist borttagna texten och placerar den där markören är. + +>> Prova: Gör C-y för att få tillbaka texten. + +Tänk på C-y som om du rycker, eller drar, tillbaka något som någon +tagit ifrån dig. Notera att om du gör flera C-k i rad så kommer all +bortagen text att sparas samlat så att ett C-y återhämtar alla raderna +på en gång. + +>> Prova detta. Tryck C-k ett par gånger. + +Och hämta så tillbaka igen: + +>> Tryck C-y. Flytta markören några rader ned och tryck C-y igen. + Så kopierar man text. + +Men vad gör du om du har en text du önskar att hämta tillbaka men du +har redan tagit bort något nytt? C-y skulle hämta tillbaka den senaste +texten som blev borttagen men tidigare bortagen text är inte +förlorad. Du kan få tillbaka den med kommandot M-y. Efter att du har +använt C-y för att hämta tillbaka den sist borttagna texten kommer M-y +ersätta denna text med tidigare borttagen text. Genom att göra M-y om +och om igen hämtas allt tidigare borttagen text tillbaka. När du har +nått den önskade texten behöver du inte göra något ytterligare för att +behålla den. Fortsätt bara med din redigeringen och lämna den +återtagna texten där den är. + +Om du gör M-y tillräckligt många gånger kommer du att komma tillbaka +till startpunkten (texten som sist blev borttagen). + +>> Ta bort en rad, flytta markören till en ny rad och ta bort även + denna rad. Använd C-y för att hämta tillbaka den sista raden. Tryck + M-y för att byta den mot den tidigare borttagna raden. Tryck flera + M-y och se vad du får. Fortsätt med detta tills du får tillbaka den + första raden igen och sedan några gånger till. Om du vill kan du + prova med positiva och negativa argument till M-y. + + +* ÅNGRA +------- + +Om du gör en förändring i texten och sedan ångrar dig, så kan du +upphäva ändringen med kommandot C-x u (undo). + +Normalt kommer C-x u upphäva förändringen som gjordes av det sist +utförda kommandot. Om du repeterar C-x u flera gånger kommer varje +repetition upphäva ett kommando till. + +Det finns två undantag. Kommandon som inte förändrar texten räknas +inte (detta inkluderar markörförflyttningar och bläddringskommandon), +och inskrivna enkelbokstäver blir vanligtvis grupperade i grupper om +upp till 20 tecken. Detta är för att reducera antalet C-x u som behövs +för att ångra inskriven text. + +>> Ta bort den här raden med C-k. C-x u kommer att hämta tillbaka den + igen. + +C-_ är ett alternativ till ångra-kommandot. Den fungerar på samma sätt +som C-x u men är enklare att trycka flera gånger i följd. Det +olämpliga med C-_ är att den är svår att hitta på en del tangentbord. +Det är därför vi också har C-x u. På en del terminaler kan du få fram +C-_ genom att trycka / samtidigt som Ctrl hålls nere. + +Ett numeriskt argument till C-_ eller C-x u medför repetering. + +Du kan ångra radering av text precis på samma sätt som du kan ångra +att du tagit bort text. Skillnaden mellan att ta bort och att radera +någonting påverkar endast om du kan hämta tillbaka det med C-y. För +ångerfunktionen spelar det ingen roll hur texten försvunnit. + + +* FILER +------- + +För att texten du har förändrat skall sparas permanent måste du lägga +den i en fil. Om du inte gör det kommer texten att försvinna när du +avslutar Emacs. Du lägger texten i en fil genom att först finna (find) +denna fil. Detta kallas också för att besöka filen (visit). + +Att finna en fil innebär att du ser filens innehåll i Emacs. På många +sätt är det som om du förändrar själva filen men förändringen du gör +kommer inte bli permanent förrän filen sparas (save). Detta är för att +undvika att halvförändrade filer sparas när du inte vill det. Till och +med när du sparar filen kommer Emacs att behålla originalet under ett +nytt namn, som backup, ifall du senare ångrar alltihop. + +Om du tittar nästan längst ner på skärmbilden så kommer du se en rad +som börjar och slutar med minustecken, och som innehåller texten +"--:-- TUTORIAL.se". Denna del av skärmbilden visar alltid namnet på +filen du besöker. Just nu är du inne i en fil som heter "TUTORIAL.se" +och som är en personlig kopia av vägledningen till Emacs. Vilken fil +du än är inne i så kommer filnamnet stå där. + +Kommandot för att finna filer och spara filer skiljer sig lite från +andra kommandon du har lärt dig eftersom de består av två tecken. +Bägge startar med tecknet KONTROLL-x. Det är faktisk många kommandon +som startar med KONTROLL-x och många av dem har med filer, skärmbilder +och liknande saker att göra. Dessa kommandon är två, tre eller fyra +tecken långa. + +En annan sak med kommandot för att finna filer är att du måste ange +vilket filnamn du önskar. Vi säger att kommandot "läser ett argument +från terminalen". I detta fall är argumentet namnet på filen. Efter +att du gett kommandot + + C-x C-f Finn en fil + +kommer Emacs fråga efter ett filnamn. Filnamnet du skriver syns på den +nedersta raden i skärmbilden. Denna sista rad kallas minibuffert när +den används på det här sättet. Du kan använda vanliga Emacs-kommandon +för att förändra filnamnet. + +När du skriver in filnamnet, eller något annat i minibufferten, kan du +avbryta med kommandot C-g. + +>> Skriv C-x C-f och så C-g. Detta avbryter minibufferten och + avbryter också C-x C-f kommandot som använde minibufferten. Så att + du inte finner någon fil. + +När du är färdig med att skriva filnamnet trycker du för att +utföra kommandot. Då kommer C-x C-f kommandot att börja leta fram +filen. Minibufferten försvinner när C-x C-f kommandot är färdigt. + +Efter en liten stund kommer filen upp på skärmen och du kan börja +redigera innehållet. När du vill spara filen kan du använda detta +kommando + + C-x C-s Spara fil + +Detta sparar texten på skärmen till filen. Första gången detta görs +kommer Emacs att ge originalfilen ett nytt namn så att den inte går +förlorad. Det nya filnamnet bildas genom att lägga till ett "~" i +slutet av det ursprungliga filnamnet. + +När lagringen är utförd kommer Emacs skriva ut namnet på filen som +blev sparad. Du bör spara ofta så att du inte förlorar så mycket om +systemet kraschar. + +>> Skriv C-x C-s för att spara en kopia av denna vägledning. + Detta skall leda till att "Wrote ...TUTORIAL.se" skrivs ut nederst + på skärmbilden. + +Observera: På vissa system leder C-x C-s till att skärmen låser +sig. Detta tyder på att systemet har "flödeskontroll" och att denna +har fångat C-s och inte skickat den vidare till Emacs. För att +fortsätta måste du trycka C-q. Se i så fall i avsnittet "Spontaneous +Entry to Incremental Search" i Emacs-manualen för att få tips på hur +detta kan undvikas. + +Du kan finna en existerande fil, antingen för att förändra den eller +för att titta på den. Du kan också finna en fil som inte existerar. +Det är så man skapar nya filer med Emacs: finn filen, som är tom till +att börja med, och sätt igång med att skriva texten som skall in i +filen. Först när du sparar filen kommer Emacs att verkligen skapa +filen med den text du har skrivit. Från och med detta editerar du en +fil som existerar. + + +* BUFFERTAR +----------- + +Om du finner en ny fil med C-x C-f kommer den första filen fortsätta +att vara öppen i Emacs. Du kan byta tillbaka till den genom att finna +den på nytt med C-x C-f. På så sätt kan du ha ett stort antal filer +öppna i Emacs. + +>> Skapa en fil med namnet "foo" genom att trycka C-x C-f foo . + Skriv in lite text, redigera den och spara "foo" genom att använda + C-x C-s. Skriv till slut C-x C-f TUTORIAL.se för att komma + tillbaka till den här vägledningen. + +Emacs sparar texten för varje fil i ett objekt kallat "buffert". När +du finner en ny fil skapas en ny buffert i Emacs. För att se en lista +över existerande buffertar i Emacs kan du skriva + + C-x C-b Listning av buffertar. + +>> Prova C-x C-b nu. + +Se hur varje buffert har ett namn och att de också kan ha namnet på +den fil som innehållet kommer från. En del buffertar är inte knutna +till någon fil, till exempel bufferten "*Buffer List*". Det är den +buffert som innehåller buffertlistan som skapades med C-x C-b. Vilken +text du än ser i ett Emacs-fönster så tillhör den alltid en buffert. + +>> Skriv C-x 1 för att bli kvitt buffertlistan. + +Om du ändrar texten till en fil och sedan öppnar en ny fil, så kommer +inte den första filen sparas. Förändringen ligger kvar i +bufferten. Skapande och redigering av den nya filen påverkar inte den +första filens buffert. Detta kan vara bra men betyder också att du +behöver ett lämpligt sätt att spara den första filens buffert. Det är +omständligt att flytta tillbaka till den tidigare bufferten med C-x +C-f för att sedan spara filen med C-x C-s. Därför finns kommandot + + C-x s Spara buffertar + +C-x s frågar för varje buffert med ändringar, som inte sparats, om du +vill spara eller ej. + +>> Sätt in en rad med text och spara med C-x s + Du skall nu få frågan om du önskar spara bufferten + TUTORIAL.se. Svara ja på frågan genom att trycka "y" (yes). + + +* ANVÄNDNING AV MENYER +---------------------- + +Om du använder en X-terminal kommer du säkert att lägga märke till +menyerna på toppen av skärmbilden. Via dessa menyer får du tillgång +till de mest använda Emacs-kommandona, till exempel find-file +(Open...). Detta är enklast i början, när du inte känner till alla +tangenttryckningar som skall till för varje kommando. När du lärt +känna Emacs kommer det vara lättare att använda tangentbordet. +Tangentbordskombinationen står precis efter respektive menykommando. + +Lägg märke till att det är många menykommandon som inte har någon +tangentbordskombination. Ett exempel är buffertmenyn (Buffers), som +listar alla tillgängliga buffertar. Du kan enkelt byta till en buffert +genom att välja namnet på den i buffertmenyn. + + +* ANVÄNDNING AV MUSEN +--------------------- + +När du kör Emacs under X är det möjligt att använda musen. Du kan +placera markören genom att trycka på den vänstra musknappen vid önskad +position och du kan markera text genom att hålla ned vänstra +musknappen samtidigt som du flyttar markören över texten du vill +markera. Alternativt kan du klicka med vänster musknapp i den ena +änden av texten du önskar att markera, flytta muspekaren till den +andra änden och använd skiftklick (tryck med musknappen samtidigt som +skifttangenten trycks ned) för att markera texten. + +För att ta bort den markerade texten kan du använda kommandot C-w +eller välja "Klipp" (Cut) från redigeramenyn (Edit). Lägg märke till +att dessa *inte* är likvärdiga. C-w sparar bara texten internt i Emacs +(a`la C-k, som beskrivits tidigare), medan Klipp också lägger texten i +X klippbord, där den är tillgänglig även för andra applikationer. + +För att hämta text från klippbordet kan du använda "Klistra in" +(Paste) från redigeramenyn. + +Den mellersta musknappen används vanligen för att välja saker från +skärmen. Om du till exempel går in i Info (on-line dokumentationen +till Emacs) med C-h i eller via hjälpmenyn (Help), kan du följa +länkarna genom att trycka med den mellersta musknappen. Om du skriver +in ett filnamn (till exempel efter C-x C-f) och trycker TAB för att få +fram en fillistning, så kan du avsluta filnamnet genom att trycka ned +den mellersta musknappen på filnamnet. + +Genom att trycka med höger musknapp kan du få fram en popupmeny. +Innehållet i den menyn är beroende av vilket läge du är i och +vanligtvis innehåller den några av de mest använda kommandona så att +de blir lätt tillgängliga. + +>> Tryck på höger musknapp nu. + +Du måste hålla knappen nere för att menyn skall visas. + + +* UTVIDGNING AV KOMMANDOMÄNGDEN +------------------------------- + +Det finns mycket fler Emacs-kommandon än antalet KONTROLL- eller +META-tangenter. För att komma förbi denna begränsning har Emacs ett +"X"- (eXtend) kommando. Detta finns i två varianter: + + C-x Tecken-utvidgning. Följs av ett tecken. + M-x Namngiven kommandoutvidgning. Följs av ett + kommandonamn. + +Detta är kommandon som är bra att ha men används mer sällan än de +kommandon du redan har lärt dig. Du har redan sett två av dem, C-x C-f +för finn, och C-x C-s för spara. Ett annat exempel är kommandot för +att avsluta Emacs som är C-x C-c. Var inte rädd för att förlora +förändringar du har gjort. C-x C-c erbjuder dig att spara förändringar +innan Emacs avslutas. + +C-z är kommandot för att avsluta Emacs *tillfälligt* så att du kan +återvända till samma Emacs senare. + +På system som tillåter det kommer C-z suspendera Emacs, dvs. returnera +till kommandoraden utan att avsluta Emacs. I de flesta system kan du få +tillbaka Emacs med kommandot 'fg' eller '%emacs'. + +På system som saknar suspendering startar C-z ett skal som kör under +Emacs och som ger dig chansen till att köra andra program och sedan +återgå till Emacs efteråt. Den ger ingen riktig avslutning av Emacs. I +detta fall återvänder man vanligtvis till Emacs med kommandot 'exit'. + +C-x C-c används när du skall avsluta Emacs. Det är klokt att avsluta +Emacs om den har startats av ett mail-program eller andra +applikationer eftersom det inte är säkert att de kan hantera +suspendering av Emacs. Under normala omständigheter, om du inte har +tänkt att logga ut, är det bättre att suspendera Emacs med C-z +istället för att avsluta. + +Det finns många C-x kommandon. Här är en lista över de du har lärt dig +hittills: + + C-x C-f Finn fil. + C-x C-s Spara fil. + C-x C-b Lista buffertar. + C-x C-c Avsluta Emacs. + C-x 1 Ta bort alla utom ett fönster. + C-x u Ångra. + +Namngivna utvidgade kommandon är kommandon som används mycket sällan +eller bara i vissa lägen. Ett exempel på ett sådant kommando är +replace-string, som globalt ersätter en teckensträng med en annan. När +du skriver M-x kommer Emacs visa en prompt nederst i skärmbilden med +M-x där du skall skriva in kommandot du önskar att köra, i det här +fallet "replace-string". Det är bara att skriva "repl s" och +Emacs kommer då att fylla i kommandonamnet. ( är +tabulatortangenten, som vanligtvis finns över CapsLock- eller +skifttangenten nära den vänstra kanten på tangentbordet.) Avsluta +kommandot med . + +Kommandot replace-string kräver två argument, teckensträngen som skall +ersättas och teckensträngen som den skall ersättas med. Du måste +avsluta bägge argumenten med . + +>> Flytta markören till den blanka raden två rader under denna rad. + Skriv M-x repl sförändradändrad. + + Lägg märke till hur den här raden har blivit förändrad. Du har + ersatt ordet f-ö-r-ä-n-d-r-a-d med "ändrad" på alla platser där + ordet förekom, från markören och nedåt. + + +* SPARAUTOMATIK +--------------- + +När du har gjort förändringar i en fil men inte sparat den, så kommer +ändringarna att gå förlorade om maskinen kraschar. Som ett skydd mot +detta sparar Emacs periodiskt ändringarna i en autosparfil för varje +fil du redigerar. Denna fil har ett # i början och slutet av +filnamnet. Om du till exempel har en fil med namnet "hej.c" så kommer +namnet på autosparfilen bli "#hej.c#". När du sparar filen på vanlig +sätt kommer Emacs radera autosparfilen. + +Om maskinen kraschar kan du återfå dina automatiskt sparade ändringar +genom att finna filen på vanlig sätt (filen du redigerade, inte +autosparfilen) och skriva M-x recover-file. När Emacs vill ha +bekräftelse svarar du yes för att återställa filen. + + +* EKOOMRÅDE +----------- + +Om Emacs ser att du skriver kommandon långsamt så kommer de att visas +på den nedersta raden i skärmbilden i ett område som kallas +"ekoområde" (echo area). Detta område innehåller den nedersta raden på +skärmbilden. + + +* LÄGESRADEN +------------ + +Raden precis över ekoområdet kallas "lägesrad" (modeline). Den ser +ungefär ut så här: + +--:** TUTORIAL (Fundamental)--L670--58%---------------- + +Raden innehåller information om Emacs och texten du redigerar. + +Du vet redan vad filnamnet betyder, det är den fil du har funnit. +-NN%-- visar den aktuella positionen i texten, dvs. NN procent av +texten befinner sig över toppen av skärmbilden. Om toppen av filen är +i skärmbilden kommer det stå --Top-- istället för --00%-- och om +slutet av filen är i skärmbilden kommer det stå --Bot--. Om du ser på +en fil där hela texten passar in på en sida kommer det stå --All--. + +Bokstaven L följd av siffror anger positionen på ett annat +sätt. Siffrorna visar vilken rad som markören befinner sig på. + +Stjärnorna nära början av raden visar att det har skett förändringar i +filen sedan den sist blev sparad. När du precis har öppnat en fil +kommer det inte stå något här, bara minustecken. + +Den del av lägesraden som står inom parentes visar vilket +redigeringsläge (mode) du använder. Standardläget är "Fundamental", +som du använder nu. Det är ett exempel på ett huvudläge (major mode). + +Emacs har många olika huvudlägen. Några av dem är gjorda för +redigering av olika programmeringsspråk eller typer av text, till +exempel Lisp mode och Text mode. Det kan bara vara ett huvudläge åt +gången och lägesnamnet står alltid där det står Fundamental nu. + +Varje huvudläge gör att en del kommandon uppför sig annorlunda. Det +finns till exempel kommandon för att sätta in kommentarer i programkod +och eftersom varje programmeringsspråk har sitt sätt att skriva +kommentarer på så måste de olika huvudlägena sätta in dessa +kommentarer på olika sätt. Varje huvudläge namnger ett utvidgat +kommando som används för att byte till det läget. Till exempel är M-x +fundamental-mode kommandot för att byta till huvudläget Fundamental. + +Om du skall redigera text, såsom den här filen, bör du troligen +använda Text-läge. + +>> Skriv M-x text mode. + +Inget av kommandona du har lärt dig hittills förändrar Emacs i någon +högre grad. Men lägg märke till att M-f och M-b nu behandlar +apostrofer som en del av ord. Tidigare, i Fundamental mode, behandlade +M-f och M-b apostrofer som ordavskiljare. + +Varje huvudläge gör vanligtvis små förändringar som denna och de flesta +kommandon gör samma sak i varje huvudläge, de fungerar bara lite +annorlunda. + +För att få fram dokumentationen för det läge du är i nu kan du skriva +C-h m. + +>> Använd C-u C-v så att denna rad kommer nära toppen av + skärmbilden. +>> Skriv C-h m och se hur Text-läget skiljer sig från + Fundamental-läget. +>> Tryck q för att ta bort dokumentationen från skärmbilden. + +Huvudläge kallas så för att det även finns sidolägen (minor mode). +Ett sidoläge ersätter inte ett huvudläge, utan modifierar det. Varje +sidoläge kan stängas av och på oberoende av andra sidolägen och +oberoende av huvudläget. Därför kan du använda ett sidoläge, en +kombination av flera sidolägen eller inget sidoläge alls. + +Ett bra sidoläge, speciellt för redigering av text, är +radbrytningsläget (auto-fill-mode). När detta läge är på bryter Emacs +rader mellan ord automatisk när du skriver in text så att en rad blir +för lång. + +Du kan slå på radbrytningsläget genom att skriva M-x auto fill +mode. När läget är påslaget kan du slå av det igen genom att +upprepa M-x auto fill mode. Om läget är avslaget slår +kommandot på det och vice versa. Vi säger att kommandot "växlar +läget". + +>> Skriv M-x auto fill mode nu. Skriv så in en rad med + "asdf " tills raden delar sig. Du måste sätta in blanktecken, för + Auto Fill bryter bara raden mellan ord. + +Marginalen är vanligtvis satt till 70 tecken men du kan ändra detta +genom att använda kommandot C-x f. Antalet tecken ges till kommandot +genom ett numeriskt argument. + +>> Skriv C-x f med ett argument på 20. (C-u 2 0 C-x f). Skriv sedan in + någon text och lägg märke till att Emacs bryter rader som är längre + än 20 tecken. Sätt tillbaka marginalen till 70 tecken igen, genom + att använda C-x f en gång till. + +Om du gör förändringar mitt i en rad så kommer inte sidoläget Auto +Fill att kunna omformattera raderna för dig. +För att göra detta kan du trycka M-q med markören inne i det avsnittet +du önskar att omformatera. + +>> Flytta markören in i föregående stycke och tryck M-q. + + +* SÖKNING +--------- + +Emacs kan söka efter textsträngar (grupper med sammanhängande +bokstäver eller ord) antingen framåt eller bakåt i texten. När du +söker efter text kommer markören att flytta sig till nästa plats där +teckensträngen uppträder. + +Sökmetoden i Emacs skiljer sig lite från sökmetoder i andra +redigeringsprogram genom att den är inkrementell. Detta betyder att +sökandet fortgår medan du skriver in teckensträngen du skall söka +efter. + +Kommandot för att inleda en sökning är C-s för att söka framåt och C-r +för att söka bakåt. MEN VÄNTA! Prova dem inte än. + +När du skriver C-s kommer du lägga märke till att texten "I-search" +dyker upp i eko-området. Detta säger dig att Emacs är inne i sidoläget +inkrementell sökning och väntar på att du skall skriva in det du letar +efter. avslutar sökandet. + +>> Skriv nu C-s för att starta en sökning. Skriv nu långsamt, en + bokstav i taget, ordet 'markör', och gör en paus efter varje gång + du skriver en bokstav så att du ser vad som sker med markören. Nu + har du sökt efter ordet "markör" en gång. +>> Skriv C-s en gång till för att söka efter nästa förekomst av ordet + "markör". +>> Tryck nu på fyra gånger och se hur markören flyttar sig +>> Tryck för att avsluta sökandet. + +Såg du vad som hände? Under inkrementell sökning försöker Emacs att gå +till den första förekomsten av texten som du har skrivit så långt, och +markerar träffen så att du ser var den är. För att gå till nästa +förekomst av ordet 'markör' är det bara att trycka C-s en gång till. +Om det inte finns flera förekomster kommer Emacs att pipa och meddela +att sökandet har misslyckats. C-g avbryter också sökandet. + +Observera: På vissa system gör C-s att skärmen låser sig. Detta tyder +på att systemets flödeskontroll har fångat upp C-s och inte skickat +den vidare till Emacs. För att fortsätta måste du trycka C-q. Se i så +fall avsnittet "Spontaneous Entry to Incremental Search" i +Emacs-manualen för råd om hur detta kan undvikas. + +Om du är inne i en inkrementell sökning och trycker kommer du +lägga märke till att den sista bokstaven i söksträngen blir raderad +och sökandet hoppar tillbaka till en tidigare förekomst. Om du till +exempel skriver "m" för att söka efter den första förekomsten av "m", +och sedan trycker "a" så kommer markören flytta sig till första +förekomsten av "ma". Tryck nu . Detta avlägsnar "a" från +söksträngen, och markören flyttar sig tillbaka till den första +förekomsten av "m". + +Om du är mitt i en sökning och trycker ett KONTROLL- eller META-tecken +så avbryts sökandet. Undantag är tecken som används under sökningen, +så som C-s och C-r. + +C-s startar en sökning som letar efter varje förekomst av söksträngen +EFTER markörspositionen. Om du skall söka efter en sträng tidigare i +texten måste du använda C-r. Allt vi har sagt om C-s gäller också för +C-r, bortsett från att riktningen på sökningen är den omvända. + + +* FLERA FÖNSTER +--------------- + +En av egenskaperna hos Emacs är att den kan visa mera än en buffert på +skärmen samtidig. + +>> Flytta markören till den här raden och tryck C-u 0 C-l (alltså + KONTROLL-L, inte KONTROLL-1). + +>> Skriv nu C-x 2, som leder till att skärmen delas i två + fönster. Bägge fönstren visar den här vägledningen. Markören står i + det övre fönstret. + +>> Skriv C-M-v för att rulla det nedre fönstret. + (Om du inte har META-tangenten trycker du ESC C-v.) + +>> Skriv C-x o (o för other) för att flytta markören till det + nedre fönstret. + +>> Använd C-v och M-v i det nedre fönstret för att flytta upp + och ned i texten. Fortsätt att läsa den här texten i det övre + fönstret. + +>> Skriv C-x o igen för att flytta markören tillbaka till det övre + fönstret. Markören i det övre fönstret står på samma plats som det + gjorde när du lämnade det. + +Du kan fortsätta att använda C-x o för att byta mellan de två +fönstren. Vart och ett av fönstren har sin egen markörposition men det +är bara ett av fönstren som visar den. Alla redigeringskommandon +fungerar i det fönster där markören är synlig. Vi kallar detta fönster +för det valda fönstret (selected window). + +Kommandot C-M-v är bra när du redigerar text i ett fönster och +använder det andra fönstret för referenser. Då kan du kan ha markören +i samma fönster hela tiden och du kan använda C-M-v för att flytta dig +i det andra fönstret. + +C-M-v är ett exempel på en KONTROLL-META-kombination. Om du har +META-tangenten håller du både KONTROLL och META nedtryckt samtidigt +som du trycker v. Det har ingen betydelse vilken av tangenterna +KONTROLL och META som trycks först, för bägge fungerar så att de +"modifierar" de andra tangenterna du trycker. + +Om du inte har META-tangenten och använder ESC istället är +ordningsföljden viktig. Du måste trycka ESC följt av KONTROLL-v, +KONTROLL-ESC v fungerar inte. Det är för att ESC är ett tecken i sig +och inte en äkta "modifierare". + +>> Skriv C-x 1 i det övre fönstret för att bli kvitt det nedre + fönstret. + +Om du hade skrivit C-x 1 i det nedre fönstret skulle det övre ha +försvunnit. Tänk på detta kommando som "Behåll bara ett fönster, det +som markören står i." + +Du måste inte ha samma buffert i bägge fönstren. Du kan använda C-x +C-f för att finna en ny fil i ett av fönstren samtidigt som det andra +fönstret förblir oförändrat. Du kommer att märka att fönstren är helt +oberoende. + +Här är ett annat sätt att använda två fönster till att visa två olika +filer: + +>> Skriv C-x 4 C-f följt av ett filnamn. Avsluta med . + Den nya filen kommer då att dyka upp i det nedre fönstret. + Markören flyttats också dit. + +>> Skriv C-x o för att gå tillbaka till det övre fönstret och C-x + 1 för att bli kvitt det nedre igen. + + +* REKURSIVA REDIGERINGSNIVÅER +----------------------------- + +Ibland kan du hamna i något som kallas "rekursiv redigering" +(recursive editing level). Detta indikeras med hakparenteser runt +huvudläget i lägesraden. Till exempel kan det stå [(Fundamental)] +istället för (Fundamental). + +För att komma ur rekursiv redigering trycker du ESC ESC ESC. Detta är +ett generellt brytkommando. Du kan också använda det för att bli kvitt +extra fönster och för att komma ut ur minibufferten. + +>> Skriv M-x för att komma in i minibufferten. Skriv så ESC ESC ESC + för att komma ut. + +Du kan inte använda C-g för att komma ut ur rekursiv redigering. +Detta är för att C-g används för att avbryta kommandon och argument +under rekursiv redigering. + + +* MER HJÄLP +----------- + +I denna vägledning har vi försökt inkludera precis så mycket +information att du kan börja använda Emacs. Det finns så många +möjligheter i Emacs att det skulle vara omöjligt att förklara alla +här. Men du VILL säkert lära dig mer om Emacs eftersom den har många +goda egenskaper. Emacs tillhandahåller kommandon för att läsa all +dokumentation. Dessa hjälpkommandon startas med teckenkombinationen +C-h. + +För att använda hjälpen skriver du C-h följt av ett tecken för den +hjälp du behöver. Om du verkligen är helt villrådig kan du trycka C-h +? för att Emacs skall visa vilken hjälp som finns tillgänglig. Om du +har skrivit C-h och bestämmer dig för att du inte behöver ha någon +hjälp kan du trycka C-g för att avbryta. + +(På vissa platser är C-h omkonfigurerad. Det är normalt ingen bra ide´, +så du kan på goda grunder klaga hos systemadministratören. Under +tiden, om C-h inte visar ett hjälpmeddelande längst ner på skärmen, +kan du i stället försöka med funktionstangenten F1 eller M-x +help.) + +Den mest grundläggande hjälp-funktionen är C-h c. Skriv C-h, ett "c" +och en knappsekvens. Emacs ger då en beskrivning av kommandot. + +>> Skriv C-h c C-p. + Meddelandet skall då bli något i stil med + + C-p runs the command previous-line + +Detta ger ett funktionsnamn. Funktionsnamnen används huvudsakligen för +att specialanpassa och utvidga Emacs. Men eftersom funktionerna har +beskrivande namn kan de också fungera som en enkel dokumentation, +tillräckligt för att påminna dig om kommandon du redan lärt dig. + +Flerteckenskommandon, så som C-x C-s och (om du inte har META, EDIT +eller ALT tangenten) v, är också tillåtna efter C-h c. + +För att få mer information om ett kommando kan du använda C-h k +istället för C-h c. + +>> Skriv C-h k C-p. + +Detta kommer visa funktionens dokumentation och namn i ett eget +fönster. För att avsluta hjälpfönstret kan du trycka q. Du behöver +inte göra det omedelbart. Du kan editera med hjälptexten som stöd för +att först senare ta bort fönstret med q. + +Här är fler varianter på C-h: + + C-h f Beskriv en funktion. Du skriver in funktionsnamnet. + +>> Prova att skriva C-h f previous-line. + Detta ger den information Emacs har om funktionen + som implementerar kommandot C-p. + + C-h a Apropos. Listar alla funktioner och variabler som + innehåller söksträngen. Kommandon som startas med M-x + markeras med en stjärna (*) till vänster om + funktionsnamnet. + +>> Skriv C-h a newline. + +Detta ger en lista över alla funktioner och variabler där "newline" +ingår i namnet. Du kan trycka eller klicka med den mellersta +musknappen för att hitta mer information om en funktion eller +variabel. Tryck q för att avsluta. + + +* TILL SIST +----------- + +Tänk på att använda C-x C-c för att avsluta Emacs permanent. För att +tillfälligt gå till ett skal, så att du senare kan komma tillbaka +igen, använd C-z. (Under X kommer detta att minimera Emacs.) + +Denna vägledningen är avsedd för nya användare, om det är något som är +oklart duger det inte att sitta och tycka synd om sig själv -- Skicka +ett mail och klaga! + + +* KOPIERING +----------- + +Denna vägledning härstammar från en hel rad Emacs-vägledningar och den +första skrevs av Stuart Cracraft för den ursprungliga Emacs. Ben Wing +uppdaterade vägledningen för X Windows. Martin Buchholz och Hrvoje +Niksic lade till mer ändringar för XEmacs och Mats Lidell översatte +den till Svenska. + +This version of the tutorial, like GNU Emacs, is copyrighted, and +comes with permission to distribute copies on certain conditions: + +Copyright (c) 1985, 1996 Free Software Foundation + + Permission is granted to anyone to make or distribute verbatim copies + of this document as received, in any medium, provided that the + copyright notice and permission notice are preserved, + and that the distributor grants the recipient permission + for further redistribution as permitted by this notice. + + Permission is granted to distribute modified versions + of this document, or of portions of it, + under the above conditions, provided also that they + carry prominent notices stating who last altered them. + +The conditions for copying Emacs itself are more complex, but in the +same spirit. Please read the file COPYING and then do give copies of +GNU Emacs to your friends. Help stamp out software obstructionism +("ownership") by using, writing, and sharing free software! diff --text -u /dev/null 'xemacs-21.5.5/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.4/etc/package-index.LATEST.pgp' 'xemacs-21.5.5/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.5/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.4/info/dir' 'xemacs-21.5.5/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.4/lib-src/ChangeLog' 'xemacs-21.5.5/lib-src/ChangeLog' Index: ././lib-src/ChangeLog --- ././lib-src/ChangeLog Sat Oct 27 17:12:35 2001 +++ ././lib-src/ChangeLog Tue Mar 5 23:23:36 2002 @@ -1,6 +1,37 @@ -2001-10-27 Stephen J. Turnbull +2002-03-05 Stephen J. Turnbull + + * XEmacs 21.5.5 "beets" is released. + +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 diff --text -u 'xemacs-21.5.4/lib-src/Makefile.in.in' 'xemacs-21.5.5/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.4/lib-src/etags.c' 'xemacs-21.5.5/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.4/lisp/ChangeLog' 'xemacs-21.5.5/lisp/ChangeLog' Index: ././lisp/ChangeLog --- ././lisp/ChangeLog Sat Oct 27 17:12:35 2001 +++ ././lisp/ChangeLog Tue Mar 5 23:23:36 2002 @@ -1,7 +1,361 @@ -2001-10-27 Stephen J. Turnbull +2002-03-05 Stephen J. Turnbull + + * XEmacs 21.5.5 "beets" is released. + +2002-03-05 Stephen J. Turnbull + + * toolbar.el (default-toolbar-position): but I tested it! typo fix. + +2002-03-05 Mats Lidell + + * help-nomule.el (tutorial-supported-languages): Added Swedish + tutorial. Sorted languages. + +2001-12-03 Christoph Wedler + + * minibuf.el (completing-read): Update docstring. + +2002-02-28 Stephen J. Turnbull + + * toolbar.el (toolbar-visible-p): + (toolbar-captioned-p): + Prefix * to docstring, improve line break. + (default-toolbar-position): Prefix * to docstring, improve line break. + Reconfigure frame to preserve window dimensions if toolbar is moved. + +2002-01-27 Stephen J. Turnbull + + * code-files.el (convert-mbox-coding-system): Improve comment. + (write-region): Improve docstring. Reformat to 80 columns. Add + coding-system argument to `write-region-pre-hook' call. + (write-region-pre-hook): Fix docstring to mention lockname argument. + +2002-02-11 Mike Sperber + + * info.el (Info-maybe-update-dir): Regenerate dir if we're + regenerating outdated dir files and dir is non-existent. + +2002-02-03 Adrian Aichner + + * printer.el (generic-print-region): Don't pass unwanted buffer + argument to lpr-region, as pointed out by Björn Torkelsson. + +2002-02-02 William M. Perry + + * widgets-gtk.el (gtk-widget-get-callback): New function to + support either :callback-ex or :callback in the widget functions. + (gtk-widget-instantiate-button-internal): Use it. + +2002-01-24 John Paul Wallington + + * faces.el (zmacs-region): fix typo in docstring. + +2002-01-14 Björn Torkelsson + + * menubar-items.el (default-menubar): Open URLs menubar entries + moved to mail-lib + +2002-01-16 John Paul Wallington + + * cus-start.el: customize the builtin variable + 'modifier-keys-sticky-time'. + +2002-01-09 John Paul Wallington + + * help.el (describe-mode): synched with FSF 19.34; handle nil + minor mode indicators. + +2001-12-04 Christoph Wedler + + * window.el (window-list): Deletia. A function with the same name, + which is the one used, is defined in window-xemacs.el. + (quit-window): New command from Emacs-21.1. + +2002-01-10 John Paul Wallington + + * modeline.el (abbrev-mode-line-string): add custom group keyword. + (overwrite-mode-line-string): ditto. + (auto-fill-mode-line-string): ditto. + (defining-kbd-macro-mode-line-string): ditto. + +2002-01-10 Stephen J. Turnbull + + * coding.el: Fix typo in comment. + +2002-01-10 Stephen J. Turnbull + + * mule/european.el (Latin-9): Add ISO 8859/15 support. + +2002-01-09 Simon Josefsson + + * files.el (auto-mode-alist): Support Sieve (*.siv, *.sieve). + +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: @@ -3329,7 +3683,7 @@ * gutter-items.el (make-search-dialog): Change to new callback-ex api. -2000-04-26 Bjrn Torkelsson +2000-04-26 Björn Torkelsson * help.el: (describe-installation): decode-coding-string is not defined in a non MULE environment. @@ -4205,7 +4559,7 @@ unexist function to help-map. (describe-coding-system): Don't use already assigend `C'. -2000-01-23 Bjrn Torkelsson +2000-01-23 Björn Torkelsson * info.el (Info-save-auto-generated-dir): nil -> 'never to make it work in custom. @@ -4241,7 +4595,7 @@ part of the tag entry first instead of only looking in the context area. -2000-01-23 Bjrn Torkelsson +2000-01-23 Björn Torkelsson * gutter-items.el: fixed typo(s) in customizing default-gutter-position * toobar.el: fixed typo(s) in customizing default-toolbar-position @@ -7624,7 +7978,7 @@ mswindows-make-font-bold / -bold-italic: Supplied device was not being passed into call to mswindows-find-smaller-font. -1998-09-10 Bjrn Torkelsson +1998-09-10 Björn Torkelsson * package-get.el (package-get-remote): Fix the path where to find the packages on xemacs.org. @@ -8387,7 +8741,7 @@ * sound.el: default sound-ext to .wav under mswindows, .au otherwise. load-default sounds without extensions. -1998-05-27 Bjrn Torkelsson +1998-05-27 Björn Torkelsson * menubar-items.el (default-menubar): Dim out "Submit Bug Report" if send-pr is not bound. diff --text -u 'xemacs-21.5.4/lisp/about.el' 'xemacs-21.5.5/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.4/lisp/code-files.el' 'xemacs-21.5.5/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 Feb 12 23:24:40 2002 @@ -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 @@ -197,12 +198,11 @@ ((find-coding-system codesys)) )))) -;; This is completely broken, not only in implementation (does not +;; This was completely broken, not only in implementation (does not ;; understand MIME), but in concept -- such high-level decoding should -;; be done by mail readers, not by IO code! +;; be done by mail readers, not by IO code! Removed 2000-04-18. -;(defun convert-mbox-coding-system (filename visit start end) -;... +;(defun convert-mbox-coding-system (filename visit start end) ...) (defun load (file &optional noerror nomessage nosuffix) "Execute a file of Lisp code named FILE. @@ -412,12 +412,11 @@ (defvar write-region-pre-hook nil "A special hook to decide the coding system used for writing out a file. -Before writing a file, `write-region' calls the functions on this hook -with arguments START, END, FILENAME, APPEND, VISIT, and CODING-SYSTEM, -the same as the corresponding arguments in the call to -`write-region'. +Before writing a file, `write-region' calls the functions on this hook with +arguments START, END, FILENAME, APPEND, VISIT, LOCKNAME, and CODING-SYSTEM, +the same as the corresponding arguments in the call to `write-region'. -The return value of the functions should be either +The return value of each function should be one of -- nil -- A coding system or a symbol denoting it, indicating the coding system @@ -425,7 +424,7 @@ -- A list of two elements (absolute pathname and length of data written), which is used as the return value to `write-region'. In this case, `write-region' assumes that the function has written - the file for itself and suppresses further writing. + the file, and returns. If any function returns non-nil, the remaining functions are not called.") @@ -433,13 +432,16 @@ "A hook called by `write-region' after a file has been written out. The functions on this hook are called with arguments START, END, -FILENAME, APPEND, VISIT, and CODING-SYSTEM, the same as the +FILENAME, APPEND, VISIT, LOCKNAME, and CODING-SYSTEM, the same as the corresponding arguments in the call to `write-region'.") (defun write-region (start end filename &optional append visit lockname coding-system) "Write current region into specified file. By default the file's existing contents are replaced by the specified region. -When called from a program, takes three arguments: +Call interactively, prompts for the filename. With a prefix arg, also prompts +for a coding system. + +When called from a program, takes three required arguments: START, END and FILENAME. START and END are buffer positions. Optional fourth argument APPEND if non-nil means append to existing file contents (if any). @@ -458,19 +460,19 @@ Optional seventh argument CODING-SYSTEM specifies the coding system used to encode the text when it is written out, and defaults to the value of `buffer-file-coding-system' in the current buffer. - Interactively, with a prefix arg, you will be prompted for the - coding system. See also `write-region-pre-hook' and `write-region-post-hook'." (interactive "r\nFWrite region to file: \ni\ni\ni\nZCoding-system: ") (setq coding-system (or coding-system-for-write (run-hook-with-args-until-success - 'write-region-pre-hook start end filename append visit lockname) + 'write-region-pre-hook + start end filename append visit lockname coding-system) coding-system buffer-file-coding-system (find-file-coding-system-for-write-from-filename filename) )) (if (consp coding-system) + ;; One of the `write-region-pre-hook' functions wrote the file coding-system (let ((func (coding-system-property coding-system 'pre-write-conversion))) diff --text -u 'xemacs-21.5.4/lisp/coding.el' 'xemacs-21.5.5/lisp/coding.el' Index: ././lisp/coding.el --- ././lisp/coding.el Fri Jun 1 15:30:08 2001 +++ ././lisp/coding.el Thu Jan 10 18:50:44 2002 @@ -305,4 +305,4 @@ (define-obsolete-variable-alias 'pathname-coding-system 'file-name-coding-system) -;;; mule-coding.el ends here +;;; coding.el ends here diff --text -u 'xemacs-21.5.4/lisp/cus-edit.el' 'xemacs-21.5.5/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.4/lisp/cus-face.el' 'xemacs-21.5.5/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.4/lisp/cus-start.el' 'xemacs-21.5.5/lisp/cus-start.el' Index: ././lisp/cus-start.el --- ././lisp/cus-start.el Fri Apr 13 03:21:15 2001 +++ ././lisp/cus-start.el Tue Jan 22 23:16:39 2002 @@ -114,6 +114,9 @@ :value (nil) (symbol :tag "Condition")))) + (modifier-keys-sticky-time keyboard + (choice (integer :tag "Milliseconds") + (const :tag "Unbounded" 'unbounded))) ;; buffer-local (case-fold-search matching boolean) (ctl-arrow display (choice (integer 160) diff --text -u 'xemacs-21.5.4/lisp/dialog-gtk.el' 'xemacs-21.5.5/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.4/lisp/dialog.el' 'xemacs-21.5.5/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.4/lisp/faces.el' 'xemacs-21.5.5/lisp/faces.el' Index: ././lisp/faces.el --- ././lisp/faces.el Sat May 5 07:42:01 2001 +++ ././lisp/faces.el Sun Jan 27 07:02:53 2002 @@ -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 @@ -1742,7 +1793,7 @@ (make-face 'underline "Underlined text.") (or (face-differs-from-default-p 'underline) (set-face-underline-p 'underline t 'global '(default))) -(make-face 'zmacs-region "Used on highlightes region between point and mark.") +(make-face 'zmacs-region "Used on highlighted region between point and mark.") (make-face 'isearch "Used on region matched by isearch.") (make-face 'isearch-secondary "Face to use for highlighting all matches.") (make-face 'list-mode-item-selected @@ -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.4/lisp/files.el' 'xemacs-21.5.5/lisp/files.el' Index: ././lisp/files.el --- ././lisp/files.el Mon Sep 17 16:48:36 2001 +++ ././lisp/files.el Thu Jan 10 09:24:29 2002 @@ -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) @@ -1232,6 +1232,7 @@ ;; #### The following three are Unix-specific (but do we care?) ("/app-defaults/" . xrdb-mode) ("\\.[^/]*wm2?\\(?:rc\\)?\\'" . winmgr-mode) + ("\\.si\\(v\\|eve\\)\\'" . sieve-mode) ("\\.\\(?:jpe?g\\|JPE?G\\|png\\|PNG\\|gif\\|GIF\\|tiff?\\|TIFF?\\)\\'" . image-mode) ) "Alist of filename patterns vs. corresponding major mode functions. diff --text -u 'xemacs-21.5.4/lisp/find-paths.el' 'xemacs-21.5.5/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.4/lisp/font-lock.el' 'xemacs-21.5.5/lisp/font-lock.el' Index: ././lisp/font-lock.el --- ././lisp/font-lock.el Sat Sep 29 17:02:07 2001 +++ ././lisp/font-lock.el Fri Dec 14 11:20:53 2001 @@ -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: @@ -2755,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.4/lisp/font.el' 'xemacs-21.5.5/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.4/lisp/gnuserv.el' 'xemacs-21.5.5/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.4/lisp/gtk-faces.el' 'xemacs-21.5.5/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.4/lisp/gui.el' 'xemacs-21.5.5/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.4/lisp/help-nomule.el' 'xemacs-21.5.5/lisp/help-nomule.el' Index: ././lisp/help-nomule.el --- ././lisp/help-nomule.el Fri Apr 13 03:21:27 2001 +++ ././lisp/help-nomule.el Tue Mar 5 22:21:22 2002 @@ -31,12 +31,15 @@ ;;; Code: (defconst tutorial-supported-languages - '(("French" fr iso-8859-1) + '( + ("Croatian" hr iso-8859-2) + ("French" fr iso-8859-1) ("German" de iso-8859-1) ("Norwegian" no iso-8859-1) - ("Croatian" hr iso-8859-2) ("Polish" pl iso-8859-2) - ("Romanian" ro iso-8859-2)) + ("Romanian" ro iso-8859-2) + ("Swedish" se iso-8859-1) + ) "Alist of supported languages in TUTORIAL files. Add languages here, as more are translated.") diff --text -u 'xemacs-21.5.4/lisp/help.el' 'xemacs-21.5.5/lisp/help.el' Index: ././lisp/help.el --- ././lisp/help.el Fri Jun 22 10:49:59 2001 +++ ././lisp/help.el Tue Jan 22 23:16:39 2002 @@ -538,8 +538,11 @@ (setq indicator (cdr indicator))) (while (and indicator (symbolp indicator)) (setq indicator (symbol-value indicator))) - (princ (format "%s minor mode (indicator%s):\n" - pretty-minor-mode indicator)) + (princ (format "%s minor mode (%s):\n" + pretty-minor-mode + (if indicator + (format "indicator%s" indicator) + "no indicator"))) (princ (documentation minor-mode)) (princ "\n\n----\n\n")))) (setq minor-modes (cdr minor-modes))))) diff --text -u 'xemacs-21.5.4/lisp/hyper-apropos.el' 'xemacs-21.5.5/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.4/lisp/info.el' 'xemacs-21.5.5/lisp/info.el' Index: ././lisp/info.el --- ././lisp/info.el Mon May 21 06:36:07 2001 +++ ././lisp/info.el Mon Feb 11 21:43:23 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, @@ -1089,8 +1089,8 @@ (null (Info-directory-files file 'all))) (if (not (find-buffer-visiting file)) (if (not (file-exists-p file)) - (if (or (eq Info-auto-generate-directory 'always) - (eq Info-auto-generate-directory 'if-missing)) + (if (or (memq Info-auto-generate-directory + '(always if-missing if-outdated))) (Info-build-dir-anew (file-name-directory file))) (if (or (eq Info-auto-generate-directory 'always) (and (eq Info-auto-generate-directory 'if-outdated) diff --text -u 'xemacs-21.5.4/lisp/isearch-mode.el' 'xemacs-21.5.5/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.4/lisp/keydefs.el' 'xemacs-21.5.5/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.4/lisp/menubar-items.el' 'xemacs-21.5.5/lisp/menubar-items.el' Index: ././lisp/menubar-items.el --- ././lisp/menubar-items.el Mon Aug 6 13:40:54 2001 +++ ././lisp/menubar-items.el Tue Jan 22 23:16:39 2002 @@ -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)] @@ -890,81 +898,7 @@ :style toggle :selected (and (boundp 'smtpmail-debug-info) smtpmail-debug-info) :active (and (boundp 'send-mail-function) - (eq send-mail-function 'smtpmail-send-it))] - "---" - ("%_Open URLs With" - ["%_Emacs-W3" - (customize-set-variable 'browse-url-browser-function 'browse-url-w3) - :style radio - :selected (and (boundp 'browse-url-browser-function) - (eq browse-url-browser-function 'browse-url-w3)) - :active (and (boundp 'browse-url-browser-function) - (fboundp 'browse-url-w3) - (fboundp 'w3-fetch))] - ["%_Netscape" - (customize-set-variable 'browse-url-browser-function - 'browse-url-netscape) - :style radio - :selected (and (boundp 'browse-url-browser-function) - (eq browse-url-browser-function 'browse-url-netscape)) - :active (and (boundp 'browse-url-browser-function) - (fboundp 'browse-url-netscape))] - ["%_Mosaic" - (customize-set-variable 'browse-url-browser-function - 'browse-url-mosaic) - :style radio - :selected (and (boundp 'browse-url-browser-function) - (eq browse-url-browser-function 'browse-url-mosaic)) - :active (and (boundp 'browse-url-browser-function) - (fboundp 'browse-url-mosaic))] - ["Mosaic (%_CCI)" - (customize-set-variable 'browse-url-browser-function 'browse-url-cci) - :style radio - :selected (and (boundp 'browse-url-browser-function) - (eq browse-url-browser-function 'browse-url-cci)) - :active (and (boundp 'browse-url-browser-function) - (fboundp 'browse-url-cci))] - ["%_IXI Mosaic" - (customize-set-variable 'browse-url-browser-function - 'browse-url-iximosaic) - :style radio - :selected (and (boundp 'browse-url-browser-function) - (eq browse-url-browser-function 'browse-url-iximosaic)) - :active (and (boundp 'browse-url-browser-function) - (fboundp 'browse-url-iximosaic))] - ["%_Lynx (xterm)" - (customize-set-variable 'browse-url-browser-function - 'browse-url-lynx-xterm) - :style radio - :selected (and (boundp 'browse-url-browser-function) - (eq browse-url-browser-function 'browse-url-lynx-xterm)) - :active (and (boundp 'browse-url-browser-function) - (fboundp 'browse-url-lynx-xterm))] - ["L%_ynx (xemacs)" - (customize-set-variable 'browse-url-browser-function - 'browse-url-lynx-emacs) - :style radio - :selected (and (boundp 'browse-url-browser-function) - (eq browse-url-browser-function 'browse-url-lynx-emacs)) - :active (and (boundp 'browse-url-browser-function) - (fboundp 'browse-url-lynx-emacs))] - ["%_Grail" - (customize-set-variable 'browse-url-browser-function - 'browse-url-grail) - :style radio - :selected (and (boundp 'browse-url-browser-function) - (eq browse-url-browser-function 'browse-url-grail)) - :active (and (boundp 'browse-url-browser-function) - (fboundp 'browse-url-grail))] - ["%_Kfm" - (customize-set-variable 'browse-url-browser-function - 'browse-url-kfm) - :style radio - :selected (and (boundp 'browse-url-browser-function) - (eq browse-url-browser-function 'browse-url-kfm)) - :active (and (boundp 'browse-url-browser-function) - (fboundp 'browse-url-kfm))] - )) + (eq send-mail-function 'smtpmail-send-it))]) ("%_Troubleshooting" ["%_Debug on Error" (customize-set-variable 'debug-on-error (not debug-on-error)) diff --text -u 'xemacs-21.5.4/lisp/menubar.el' 'xemacs-21.5.5/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.4/lisp/minibuf.el' 'xemacs-21.5.5/lisp/minibuf.el' Index: ././lisp/minibuf.el --- ././lisp/minibuf.el Sun May 6 17:33:36 2001 +++ ././lisp/minibuf.el Tue Mar 5 22:21:22 2002 @@ -764,14 +764,18 @@ Args: PROMPT, TABLE, PREDICATE, REQUIRE-MATCH, INITIAL-CONTENTS, HISTORY. PROMPT is a string to prompt with; normally it ends in a colon and a space. TABLE is an alist whose elements' cars are strings, or an obarray. +TABLE can also be a function to do the completion itself. PREDICATE limits completion to a subset of TABLE. -See `try-completion' for more details on completion, TABLE, and PREDICATE. +See `try-completion' and `all-completions' for more details + on completion, TABLE, and PREDICATE. + If REQUIRE-MATCH is non-nil, the user is not allowed to exit unless - the input is (or completes to) an element of TABLE or is null. - If it is also not t, Return does not exit if it does non-null completion. + the input is (or completes to) an element of TABLE or is null. + If it is also not t, Return does not exit if it does non-null completion. If INITIAL-CONTENTS is non-nil, insert it in the minibuffer initially. If it is (STRING . POSITION), the initial input is STRING, but point is placed POSITION characters into the string. + HISTORY, if non-nil, specifies a history list and optionally the initial position in the list. It can be a symbol, which is the history list variable to use, @@ -781,7 +785,9 @@ which INITIAL-CONTENTS corresponds to). If HISTORY is `t', no history will be recorded. Positions are counted starting from 1 at the beginning of the list. -DEFAULT, if non-nil, is the default value. +DEFAULT, if non-nil, will be returned when the user enters an empty + string. + Completion ignores case if the ambient value of `completion-ignore-case' is non-nil." (let ((minibuffer-completion-table table) @@ -1664,22 +1670,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 +1736,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 +1767,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.4/lisp/modeline.el' 'xemacs-21.5.5/lisp/modeline.el' Index: ././lisp/modeline.el --- ././lisp/modeline.el Sat May 5 07:42:11 2001 +++ ././lisp/modeline.el Fri Jan 11 11:55:06 2002 @@ -456,18 +456,48 @@ (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)) + :group 'abbrev-mode) + +(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)) + :group 'editing-basics) + +(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)) + :group 'fill) + +(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)) + :group 'keyboard) + ;; #### 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.4/lisp/mule/european.el' 'xemacs-21.5.5/lisp/mule/european.el' Index: ././lisp/mule/european.el --- ././lisp/mule/european.el Fri Apr 13 03:21:44 2001 +++ ././lisp/mule/european.el Thu Jan 10 18:50:47 2002 @@ -3,6 +3,7 @@ ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. ;; Copyright (C) 1997 MORIOKA Tomohiko +;; Copyright (C) 2002 Free Software Foundation ;; Keywords: multilingual, European @@ -25,7 +26,7 @@ ;;; Commentary: -;; For Europeans, five character sets ISO8859-1,2,3,4,9 are supported. +;; Support six Latin coded character sets ISO8859-1,2,3,4,9,15. ;; #### latin.el would be a better name for this file. @@ -39,6 +40,19 @@ (modify-syntax-entry ?,AW(B "_") (modify-syntax-entry ?,Aw(B "_") +;; For syntax of Latin-9 characters. +;; Based on Latin-1 and differences from Jukka Korpela +;; http://www.cs.tut.fi/~jkorpela/latin9.html +(loop for c in '(?,b&(B ?,b((B ?,b4(B ?,b8(B ?,b<(B ?,b=(B ?,b>(B) + do (modify-syntax-entry c "w")) + +(loop for c from 64 to 127 ; from ',b@(B' to ',b(B' + do (modify-syntax-entry (make-char 'latin-iso8859-1 c) "w")) + +(modify-syntax-entry (make-char 'latin-iso8859-15 32) "w") ; no-break space +(modify-syntax-entry ?,bW(B "_") +(modify-syntax-entry ?,bw(B "_") + ;; For syntax of Latin-2 (loop for c in '(?,B!(B ?,B#(B ?,B%(B ?,B&(B ?,B)(B ?,B*(B ?,B+(B ?,B,(B ?,B.(B ?,B/(B ?,B1(B ?,B3(B ?,B5(B ?,B6(B ?,B9(B ?,B:(B ?,B;(B ?,B<(B) do (modify-syntax-entry c "w")) @@ -148,6 +162,52 @@ "))) '("European")) + +;; Latin-9 (ISO-8859-15) +;; Latin-1 plus Euro, plus a few accented characters + +;; (make-charset 'latin-iso8859-15 +;; "Latin-9, aka Latin-1 with Euro etc" +;; '(short-name "Latin 9" +;; long-name "Latin-9 (typically GR of ISO 8859/15)" +;; registry "iso8859-15" +;; dimension 1 +;; columns 1 +;; chars 96 +;; final ?b ; ISO-IR-203 +;; graphic 1 +;; direction l2r)) + +(make-coding-system + 'iso-8859-15 'iso2022 + "ISO 4873 conforming 8-bit code (ASCII + Latin 9; aka Latin-1 with Euro)" + `(mnemonic "MIME/Ltn-9" ; bletch + eol-type nil + charset-g0 ascii + charset-g1 latin-iso8859-15 + charset-g2 t + charset-g3 t + )) + +(defun setup-latin9-environment () + "Set up multilingual environment (MULE) for European Latin-9 users." + (interactive) + (set-language-environment "Latin-9")) + +(set-language-info-alist + "Latin-9" '((charset ascii latin-iso8859-15) + (coding-system iso-8859-15) + (coding-priority iso-8859-15) + (input-method . "latin-1-prefix") ; FIXME!! + (sample-text + . "Hello, Hej, Tere, Hei, Bonjour, Gr,A|_(B Gott, Ciao, ,A!(BHola!, my ") + (documentation . "\ +This language environment is a generic one for Latin-9 (ISO-8859-15) +character set which supports the Euro sign and the following languages: + Danish, Dutch, English, Faeroese, Finnish, French, German, Icelandic, + Irish, Italian, Norwegian, Portuguese, Spanish, and Swedish.")) + '("European")) + ;; Latin-2 (ISO-8859-2) diff --text -u 'xemacs-21.5.4/lisp/obsolete.el' 'xemacs-21.5.5/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.4/lisp/package-get.el' 'xemacs-21.5.5/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.4/lisp/package-net.el' 'xemacs-21.5.5/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.4/lisp/packages.el' 'xemacs-21.5.5/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.4/lisp/paragraphs.el' 'xemacs-21.5.5/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.4/lisp/printer.el' 'xemacs-21.5.5/lisp/printer.el' Index: ././lisp/printer.el --- ././lisp/printer.el Sun May 20 10:17:09 2001 +++ ././lisp/printer.el Mon Feb 4 05:33:35 2002 @@ -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)) (t (error "No print support available")))) diff --text -u 'xemacs-21.5.4/lisp/rect.el' 'xemacs-21.5.5/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.4/lisp/startup.el' 'xemacs-21.5.5/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.4/lisp/toolbar-items.el' 'xemacs-21.5.5/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.4/lisp/toolbar.el' 'xemacs-21.5.5/lisp/toolbar.el' Index: ././lisp/toolbar.el --- ././lisp/toolbar.el Sat May 5 07:42:15 2001 +++ ././lisp/toolbar.el Tue Mar 5 23:15:06 2002 @@ -32,8 +32,8 @@ (defcustom toolbar-visible-p ;; added for the options menu - dverna apr. 98 (specifier-instance default-toolbar-visible-p) - "Whether the default toolbar is globally visible. This option can be -customized through the options menu." + "*Whether the default toolbar is globally visible. +This option can be customized through the options menu." :group 'display :type 'boolean :set #'(lambda (var val) @@ -43,8 +43,8 @@ (defcustom toolbar-captioned-p ;; added for the options menu - dverna apr. 98 (specifier-instance toolbar-buttons-captioned-p) - "Whether the toolbars buttons are globally captioned. This option can be -customized through the options menu." + "*Whether the toolbars buttons are globally captioned. +This option can be customized through the options menu." :group 'display :type 'boolean :set #'(lambda (var val) @@ -54,17 +54,26 @@ (defcustom default-toolbar-position ;; added for the options menu - dverna (default-toolbar-position) - "The location of the default toolbar. It can be 'top, 'bottom, 'left or -'right. This option can be customized through the options menu." + "*The location of the default toolbar: 'top, 'bottom, 'left, or 'right. +This option can be customized through the options menu." :group 'display :type '(choice (const :tag "top" top) (const :tag "bottom" bottom) (const :tag "left" left) (const :tag "right" right)) :set #'(lambda (var val) - (set-default-toolbar-position val) - (setq default-toolbar-position val)) - ) + (let* ((height (window-height)) + (hdiff (- (frame-height) height)) + (width (window-width))) + (set-default-toolbar-position val) + (setq default-toolbar-position val) + ;; needed or dimensions don't update? + (redisplay-frame) + ;; This probably only works correctly if there is only one + ;; Emacs window. If windows are split, it probably results in + ;; small adjustments in their sizes. + (set-frame-size (selected-frame) width (+ height hdiff)) + ))) (defvar toolbar-help-enabled t "If non-nil help is echoed for toolbar buttons.") diff --text -u 'xemacs-21.5.4/lisp/view-less.el' 'xemacs-21.5.5/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.4/lisp/wid-edit.el' 'xemacs-21.5.5/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.4/lisp/widgets-gtk.el' 'xemacs-21.5.5/lisp/widgets-gtk.el' Index: ././lisp/widgets-gtk.el --- ././lisp/widgets-gtk.el Wed May 9 22:43:54 2001 +++ ././lisp/widgets-gtk.el Sat Feb 2 22:39:59 2002 @@ -39,20 +39,34 @@ gtk-entry-new gtk-entry-set-text gtk-widget-set-style gtk-widget-get-style)) -(defvar foo) +(defun gtk-widget-get-callback (widget plist instance) + (let ((cb (plist-get plist :callback)) + (ex (plist-get plist :callback-ex)) + (real-cb nil)) + (cond + (ex + (gtk-signal-connect widget 'button-release-event + (lambda (widget event data) + (put widget 'last-event event))) + `(lambda (widget &rest ignored) + (funcall ,ex ,instance (get widget 'last-event)))) + (cb + `(lambda (widget &rest ignored) + (if (functionp ,real-cb) + (funcall ,real-cb) + (eval ,real-cb)))) + (t + nil)))) -(defun gtk-widget-instantiate-button-internal (plist callback) +(defun gtk-widget-instantiate-button-internal (plist instance) (let* ((type (or (plist-get plist :style) 'button)) (label (or (plist-get plist :descriptor) (symbol-name type))) (widget nil)) (case type (button (setq widget (gtk-button-new-with-label label)) - (gtk-signal-connect widget 'clicked (lambda (wid real-cb) - (if (functionp real-cb) - (funcall real-cb) - (eval real-cb))) - callback)) + (gtk-signal-connect widget 'clicked + (gtk-widget-get-callback widget plist instance))) (radio (let ((aux nil) (selected-p (plist-get plist :selected))) @@ -62,26 +76,18 @@ "bogus sibling")) (gtk-toggle-button-set-active widget (eval selected-p)) (gtk-signal-connect widget 'toggled - (lambda (wid data) - ;; data is (real-cb . sibling) - ) - (cons callback aux)))) + (gtk-widget-get-callback widget plist instance) aux))) (otherwise ;; Check boxes (setq widget (gtk-check-button-new-with-label label)) (gtk-toggle-button-set-active widget (eval (plist-get plist :selected))) (gtk-signal-connect widget 'toggled - (lambda (wid real-cb) - (if (functionp real-cb) - (funcall real-cb) - (eval real-cb))) - callback))) - + (gtk-widget-get-callback widget plist instance)))) (gtk-widget-show-all widget) widget)) -(defun gtk-widget-instantiate-notebook-internal (plist callback) +(defun gtk-widget-instantiate-notebook-internal (plist instance) (let ((widget (gtk-notebook-new)) (items (plist-get plist :items))) (while items @@ -91,13 +97,13 @@ (setq items (cdr items))) widget)) -(defun gtk-widget-instantiate-progress-internal (plist callback) +(defun gtk-widget-instantiate-progress-internal (plist instance) (let* ((adj (gtk-adjustment-new 0.0 0.0 100.0 1.0 5.0 5.0)) (widget (gtk-progress-bar-new-with-adjustment adj))) (gtk-adjustment-set-value adj (or (plist-get plist :value) 0.0)) widget)) -(defun gtk-widget-instantiate-entry-internal (plist callback) +(defun gtk-widget-instantiate-entry-internal (plist instance) (let* ((widget (gtk-entry-new)) (default (plist-get plist :descriptor))) (cond @@ -128,7 +134,7 @@ (let* ((type (aref instantiator 0)) (plist (cdr (map 'list 'identity instantiator))) (widget (funcall (or (get type 'instantiator) 'ignore) - plist (or (plist-get plist :callback) 'ignore)))) + plist instance))) (add-timeout 0.1 (lambda (obj) (gtk-widget-set-style obj (gtk-widget-get-style diff --text -u 'xemacs-21.5.4/lisp/window.el' 'xemacs-21.5.5/lisp/window.el' Index: ././lisp/window.el --- ././lisp/window.el Fri Apr 13 03:21:39 2001 +++ ././lisp/window.el Sat Jan 12 09:19:50 2002 @@ -222,7 +222,7 @@ With no argument, split equally or close to it. Both windows display the same buffer now current. -If the variable split-window-keep-point is non-nil, both new windows +If the variable `split-window-keep-point' is non-nil, both new windows will get the same value of point as the current window. This is often more convenient for editing. @@ -342,31 +342,51 @@ (kill-buffer buffer)) (error "Aborted"))) -(defun window-list (&optional minibuf which-frames which-devices) - "Return a list of existing windows. -If the optional argument MINIBUF is non-nil, then include minibuffer -windows in the result. - -By default, only the windows in the selected frame are returned. -The optional argument WHICH-FRAMES changes this behavior: -WHICH-FRAMES = `visible' means include windows on all visible frames. -WHICH-FRAMES = 0 means include windows on all visible and iconified frames. -WHICH-FRAMES = t means include windows on all frames including invisible frames. -Anything else means restrict to the selected frame. - -The optional fourth argument WHICH-DEVICES further clarifies on which -devices to search for frames as specified by WHICH-FRAMES. This value -is only meaningful if WHICH-FRAMES is non-nil. -If nil or omitted, search all devices on the selected console. -If a device, only search that device. -If a console, search all devices on that console. -If a device type, search all devices of that type. -If `window-system', search all devices on window-system consoles. -Any other non-nil value means search all devices." - (let ((wins nil)) - (walk-windows (lambda (win) - (push win wins)) - minibuf which-frames which-devices) - wins)) +(defun quit-window (&optional kill window) + "Quit the current buffer. Bury it, and maybe delete the selected frame. +\(The frame is deleted if it is contains a dedicated window for the buffer.) +With a prefix argument, kill the buffer instead. + +Noninteractively, if KILL is non-nil, then kill the current buffer, +otherwise bury it. + +If WINDOW is non-nil, it specifies a window; we delete that window, +and the buffer that is killed or buried is the one in that window." + (interactive "P") + (let ((buffer (window-buffer window)) + (frame (window-frame (or window (selected-window)))) + (window-solitary + (save-selected-window + (if window + (select-window window)) + (one-window-p t))) + window-handled) + + (save-selected-window + (if window + (select-window window)) + (or (window-minibuffer-p) + (window-dedicated-p (selected-window)) + (switch-to-buffer (other-buffer)))) + + ;; Get rid of the frame, if it has just one dedicated window + ;; and other visible frames exist. + (and (or (window-minibuffer-p) (window-dedicated-p window)) + (delq frame (visible-frame-list)) + window-solitary + (if (and (eq default-minibuffer-frame frame) + (= 1 (length (minibuffer-frame-list)))) + (setq window nil) + (delete-frame frame) + (setq window-handled t))) + + ;; Deal with the buffer. + (if kill + (kill-buffer buffer) + (bury-buffer buffer)) + + ;; Maybe get rid of the window. + (and window (not window-handled) (not window-solitary) + (delete-window window)))) ;;; window.el ends here diff --text -u 'xemacs-21.5.4/lwlib/ChangeLog' 'xemacs-21.5.5/lwlib/ChangeLog' Index: ././lwlib/ChangeLog --- ././lwlib/ChangeLog Sat Oct 27 17:12:35 2001 +++ ././lwlib/ChangeLog Tue Mar 5 23:23:36 2002 @@ -1,4 +1,12 @@ -2001-10-27 Stephen J. Turnbull +2002-03-05 Stephen J. Turnbull + + * XEmacs 21.5.5 "beets" is released. + +2001-12-19 Valdis Kletnieks + + * xlwscrollbar.c: Fix Xt translations comment. + +2002-01-08 Stephen J. Turnbull * XEmacs 21.5.4 "bamboo" is released. diff --text -u 'xemacs-21.5.4/lwlib/xlwscrollbar.c' 'xemacs-21.5.5/lwlib/xlwscrollbar.c' Index: ././lwlib/xlwscrollbar.c --- ././lwlib/xlwscrollbar.c Fri Apr 13 03:21:56 2001 +++ ././lwlib/xlwscrollbar.c Tue Mar 5 22:39:26 2002 @@ -30,7 +30,8 @@ * * Emacs*XlwScrollBar.translations: #override \n\ * : PageDownOrRight() \n\ - * : PageUpOrLeft() + * : PageUpOrLeft() \n\ + * : Release() * */ diff --text -u 'xemacs-21.5.4/man/ChangeLog' 'xemacs-21.5.5/man/ChangeLog' Index: ././man/ChangeLog --- ././man/ChangeLog Sat Oct 27 17:12:35 2001 +++ ././man/ChangeLog Tue Mar 5 23:23:36 2002 @@ -1,6 +1,149 @@ -2001-10-27 Stephen J. Turnbull +2002-03-05 Stephen J. Turnbull + + * XEmacs 21.5.5 "beets" is released. + +2002-03-01 Jeff Miller + + * lispref/packaging.texi (The User View, The Library Maintainer + View, The Package Release Engineer View): Remove apostrophes. + * lispref/lispref.texi (The User View, The Library Maintainer + View, The Package Release Engineer View): Remove apostrophes. + +2002-02-28 Stephen J. Turnbull + + * lispref/packaging.texi (The User View, The Library Maintainer + View, The Package Release Engineer View): Remove apostrophes. + +2002-02-16 Stephen J. Turnbull + + * external-widget.texi + (Example Program Using the External Client Widget): Fix braces. + From Mats Lidell . + +2002-02-14 Stephen J. Turnbull + + * external-widget.texi + (Example Program Using the External Client Widget): Fix + documentation to explain needed resource settings. + +2002-02-13 Stephen J. Turnbull + + * lispref/packaging.texi (Documenting Packages): New node. + (Makefile Variables): Fix typo per Steve Youngs. + +2002-02-09 Stephen J. Turnbull + + * external-widget.texi + (Example Program Using the External Client Widget): New node. + + * lispref/packaging.texi (Documenting Packages): New node. + +2002-01-27 Stephen J. Turnbull + + * lispref/packaging.texi (Makefile Variables): Document GENERATED + and PRELOADS. Document DATA_FILES_n and DATA_DEST_n forms. + +2002-02-06 Stephen J. Turnbull + + * xemacs-faq.texi (Q1.3.8, Q1.3.9): Unicode support via Mule-UCS. + +2001-01-24 Adrian Aichner + + * xemacs-faq.texi (Q1.0.6): Update mail-to-news gateway information. + +2002-02-04 Stephen J. Turnbull + + * xemacs/files.texi (Files): + (File Names): + Document remote file editing, refer to EFS and TRAMP. + +2002-02-04 Stephen J. Turnbull + + * xemacs-faq.texi (Q4.7.7): New FAQ on remote files. + +2002-01-24 Stephen J. Turnbull + + * xemacs-faq.texi (Q1.0.6): Update mail-to-news gateway information. + +2002-02-01 Steve Youngs + + * xemacs/packages.texi (Removing Packages): The interactive + function is 'package-get-delete-package'. + +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 diff --text -u 'xemacs-21.5.4/man/Makefile' 'xemacs-21.5.5/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.4/man/emodules.texi' 'xemacs-21.5.5/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.4/man/external-widget.texi' 'xemacs-21.5.5/man/external-widget.texi' Index: ././man/external-widget.texi --- ././man/external-widget.texi Fri Apr 13 03:22:00 2001 +++ ././man/external-widget.texi Sat Feb 16 16:25:39 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 @@ -18,6 +19,7 @@ * Using an External Client Widget:: * External Client Widget Resource Settings:: * Motif-Specific Info About the External Client Widget:: +* Example Program Using the External Client Widget:: @end menu @@ -111,7 +113,7 @@ made by parent or child widgets. -@node Motif-Specific Info About the External Client Widget, , External Client Widget Resource Settings, Top +@node Motif-Specific Info About the External Client Widget, Example Program Using the External Client Widget, External Client Widget Resource Settings, Top @chapter Motif-Specific Info About the External Client Widget By default, the external client widget has navigation type @@ -124,6 +126,85 @@ semantics of the Motif text widget. The traversal keystrokes @kbd{Ctrl-@key{TAB}} and @kbd{Shift-@key{TAB}} are silently filtered by the external client widget and are not seen by Emacs. + + +@node Example Program Using the External Client Widget, , Motif-Specific Info About the External Client Widget, Top +@chapter Example Program Using the External Client Widget + +This is a very simple program. It has some issues with exiting. +Be careful to destroy the Emacs frame in the client window before +exiting the client program. + +@example +/* + XEmacsInside.c + + Copyright (C) 2002 Free Software Foundation + + This program is part of XEmacs. XEmacs is free software. See the + file COPYING that came with XEmacs for conditions on redistribution. + + This is an example of the XEmacs external widget facility. + + It uses libextcli-Xt.a to interface to the X Toolkit Intrinsics. + + Compile with + + gcc -I/path/to/XEmacs/source/src -L/path/to/XEmacs/build/src -static \ + -lextcli_Xt -lXt -lX11 -lSM -lICE \ + -o XEmacsInside XEmacsInside.c + + Run it with the resource "*input: True" and a reasonable geometry spec. + It pops up a window, and prints a Lisp form on stdout. Eval the form + in an XEmacs configured with --external-widget. + + Written by Stephen J. Turnbull + + Based on simple_text.c from _The Motif Programming Manual_ by Heller + and Ferguson, O'Reilly. +*/ + +#include + +#include +#include +#include + +#include "ExternalClient.h" + +main (int argc, char *argv[]) +@{ + Widget toplevel, emacs; + XtAppContext app; + + XtSetLanguageProc (NULL, NULL, NULL); + + toplevel = XtVaOpenApplication (&app, "Demo", + NULL, 0, &argc, argv, + NULL, sessionShellWidgetClass, + NULL); + + emacs = XtVaCreateManagedWidget ("externalWidget", externalClientWidgetClass, + toplevel, + NULL); + + XtRealizeWidget (toplevel); + + printf ("(make-frame '(window-id \"%d\"))\n", XtWindow(emacs)); + + XtAppMainLoop (app); +@} + +/* This function doesn't belong here but somehow it's not getting resolved + from the library. */ +void +fatal (char *msg) +@{ + fprintf (stderr, "%s", msg); + exit (1); +@} +@end example + @summarycontents @contents diff --text -u 'xemacs-21.5.4/man/lispref/glyphs.texi' 'xemacs-21.5.5/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.4/man/lispref/intro.texi' 'xemacs-21.5.5/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.4/man/lispref/lispref.texi' 'xemacs-21.5.5/man/lispref/lispref.texi' Index: ././man/lispref/lispref.texi --- ././man/lispref/lispref.texi Fri Apr 13 03:22:16 2001 +++ ././man/lispref/lispref.texi Sun Mar 3 18:09:51 2002 @@ -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 View:: +* The Library Maintainer View:: +* The Package Release Engineer 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.4/man/lispref/objects.texi' 'xemacs-21.5.5/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.5/man/lispref/packaging.texi' Index: ././man/lispref/packaging.texi --- ././man/lispref/packaging.texi Thu Jan 1 09:00:00 1970 +++ ././man/lispref/packaging.texi Sun Mar 3 18:09:51 2002 @@ -0,0 +1,1320 @@ +@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. +* Documenting Packages:: Explain your package to users and hackers. +@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 View:: +* The Library Maintainer View:: +* The Package Release Engineer View:: +@end menu + + +@node The User View, The Library Maintainer View, , Package Overview +@section The User 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 View, The Package Release Engineer View, The User View, Package Overview +@section The Library Maintainer 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 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 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 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 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 View, , The Library Maintainer View, Package Overview +@subsection The Package Release Engineer 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, Documenting Packages, 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. + +@c #### This organization sucks. Should break up by component, with +@c theory of operations, example, and reference subsections. +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. + +It is important to note that the XEmacs used to compile packages is the +bare minimum: it is called with the @samp{-no-user-file -no-site-file +-no-autoloads}. This means that anything not dumped into XEmacs by +default needs to be specified in the @samp{REQUIRES} variable (for +packaged Lisp) or in some cases the @samp{PRELOADS} (autoloads used in +libraries mentioned in @samp{PRELOADS}). + +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 are explained below. + +@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 + +Preloads are loaded before @file{package-compile.el}, so the +@var{load-path} is minimal. Therefore @samp{PRELOADS} must specify a +full path to packaged Lisp. The base @var{load-path} does include the +core Lisp directory, so core libraries are found. + +@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. These files +will be copied to @samp{$(DATA_DEST)} for installation. Any directory +component of the path for a file will be stripped, so that the +file ends up in @samp{$(DATA_DEST)}, not in a subdiredtory. If there are +several destination directories, the forms @samp{$(DATA_FILES_@var{n})} +and @samp{$(DATA_DEST_@var{n})} (@var{n} may take values in 1-40) must +be used. The @xpms{} doesn't make provision for copying trees at this +time. + +@item DATA_DEST +The installation location for data files, relative to the @file{etc/} +directory of the package hierarchy. The default is currently empty, but +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. If there are several destination +directories, the form @samp{$(DATA_DEST_@var{n})} must be used. The +@xpms{} doesn't make provision for copying trees at this time. +@end table + +The following variables are defaulted by @file{Local.rules} or +@file{XEmacs.rules}. These variables often should be added to using +@samp{+=} rather than set by @samp{=} or @samp{:=}. + +@table @code +@item GENERATED +@c #### Is this correct? +A list of @file{.elc} files compiled from @file{.el} files generated by +the package build process. These files and the corresponding @file{.el} +files are copied to the installed @file{lisp} directory. Defaults to +@samp{$@{AUTOLOAD_PATH@}/auto-autoloads.elc}. Typical usage is +@example +GENERATED += $@{AUTOLOAD_PATH@}/custom-load.elc +@end example +@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 Documenting Packages, Issues, Creating Packages, Packaging +@comment node-name, next, previous, up +@cindex documenting packages +@heading Documenting Packages: + +@c #### Add a documentation section to Internals, and xref here. +Some random notes on documenting your package. + +Do write a Texinfo file. It's not that hard to do basically, and even +using the more advanced features of Texinfo soon become natural. For a +start, just grab the template @file{Samples/package.texi} from the +@xpms{} source tree, and drop your current README into the Top node. At +least this way your documentation will be accessible from the standard +Info readers. Next, try to add lots of cross-referencing and logical +markup, and then node structure. + +Address both end users and developer issues. You may not be the +maintainer forever. + +If you are maintaining a package that is part of the GNU Emacs +distribution, you'll likely find that you occasionally synchronize your +package with the GNU Emacs sources. When you synch a file, +conventionally you should place a comment just above the standard +@code{;;; Code} comment that looks like this: + +@example +;; Synched with: +;; GNU Emacs 21.1, 2002-02-08, Stephen Turnbull +@end example + +This comment is a status flag; the ChangeLog doesn't really give the +same information. + +Do maintain a detailed ChangeLog. + +@node Issues, , Documenting Packages, Packaging +@section Issues + +To be completed. + diff --text -u 'xemacs-21.5.4/man/term.texi' 'xemacs-21.5.5/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.4/man/xemacs-faq.texi' 'xemacs-21.5.5/man/xemacs-faq.texi' Index: ././man/xemacs-faq.texi --- ././man/xemacs-faq.texi Mon Sep 17 06:11:15 2001 +++ ././man/xemacs-faq.texi Thu Feb 7 01:27:06 2002 @@ -7,7 +7,7 @@ @finalout @titlepage @title XEmacs FAQ -@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2001/09/16 21:11:15 $ +@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2002/02/06 16:27:06 $ @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 @@ -125,6 +124,8 @@ * Q1.3.5:: Please explain the various input methods in MULE/XEmacs * Q1.3.6:: How do I portably code for MULE/XEmacs? * Q1.3.7:: How about Cyrillic Modes? +* Q1.3.8:: Does XEmacs support Unicode? +* Q1.3.9:: How does XEmacs display Unicode? Getting Started: * Q1.4.1:: What is an @file{init.el} or @file{.emacs} and is there a sample one? @@ -317,6 +318,7 @@ * Q4.7.4:: Problems installing AUC TeX * Q4.7.5:: Is there a reason for an Emacs package not to be included in XEmacs? * Q4.7.6:: Is there a MatLab mode? +* Q4.7.7:: Can I edit files on other hosts? The Miscellaneous Stuff @@ -486,6 +488,8 @@ * Q1.3.5:: Please explain the various input methods in MULE/XEmacs * Q1.3.6:: How do I portably code for MULE/XEmacs? * Q1.3.7:: How about Cyrillic Modes? +* Q1.3.8:: Does XEmacs support Unicode? +* Q1.3.9:: How does XEmacs display Unicode? Getting Started: * Q1.4.1:: What is an @file{init.el} or @file{.emacs} and is there a sample one? @@ -635,11 +639,13 @@ gnu.emacs.help. If you cannot post or read Usenet news, there is a corresponding mailing -list which is available. It can be subscribed to by sending a message -to @email{xemacs-request@@xemacs.org} with @samp{subscribe} in the -body of the message. Send to the list at @email{xemacs@@xemacs.org}. -list. To cancel a subscription, you @strong{must} use the -xemacs-request address. Send a message with a subject of +list @email{xemacs-news@@xemacs.org} which is available. It can be +subscribed to via the Mailman Web interface or by sending mail to to +@email{xemacs-news-request@@xemacs.org} with @samp{subscribe} in the +body of the message. See also +@uref{http://www.xemacs.org/Lists/#xemacs-news}. To cancel a +subscription, you may use the @email{xemacs-news-request@@xemacs.org} +address or the Web interface. Send a message with a subject of @samp{unsubscribe} to be removed. @node Q1.0.7, Q1.0.8, Q1.0.6, Introduction @@ -1040,7 +1046,7 @@ @end lisp @end quotation -@node Q1.3.7, Q1.4.1, Q1.3.6, Introduction +@node Q1.3.7, Q1.3.8, Q1.3.6, Introduction @unnumberedsubsec Q1.3.7: How about Cyrillic Modes? @email{ilya@@math.ohio-state.edu, Ilya Zakharevich} writes: @@ -1078,7 +1084,49 @@ XEmacs) is @uref{http://www.ibiblio.org/sergei/Software/Software.html} @end quotation -@node Q1.4.1, Q1.4.2, Q1.3.7, Introduction +@node Q1.3.8, Q1.3.9, Q1.3.7, Introduction +@unnumberedsubsec Q1.3.8: Does XEmacs support Unicode? + +Partially, as an external encoding for files, processes, and terminals. +It does not yet support Unicode fonts @ref{Q1.3.9, Does XEmacs support +Unicode Fonts?} + +To get Unicode support, you need a Mule-enabled XEmacs. Install +Mule-UCS from packages in the usual way. Put + +(require 'un-define) +(set-coding-priority-list '(utf-8)) +(set-coding-category-system 'utf-8 utf-8) + +Install standard national fonts (not Unicode fonts) for all +character sets you use. + +Mule-UCS also supports 16-bit forms of Unicode (UTF-16). It does not +support 31-bit forms of Unicode (UTF-32 or UCS-4). + +@node Q1.3.9, Q1.4.1, Q1.3.8, Introduction +@unnumberedsubsec Q1.3.9: How does XEmacs display Unicode? + +Mule doesn't have a Unicode charset internally, so there's nothing to +bind a Unicode registry to. It would not be straightforward to create, +either, because Unicode is not ISO 2022-compatible. You'd have to +translate it to multiple 96x96 pages. + +This means that Mule-UCS uses ordinary national fonts for display. This +is not really a problem, except for those languages that use the Unified +Han characters. The problem here is that Mule-UCS maps from Unicode +code points to national character sets in a deterministic way. By +default, this means that Japanese fonts are tried first, then Chinese, +then Korean. To change the priority ordering, use the command +`un-define-change-charset-order'. + +It also means you can't use Unicode fonts directly, at least not without +extreme hackery. You can run -nw with (set-terminal-coding-system +'utf-8) if you really want a Unicode font for some reason. + +Real Unicode support will be introduced in XEmacs 22.0. + +@node Q1.4.1, Q1.4.2, Q1.3.9, Introduction @unnumberedsec 1.4: Getting Started, Backing up & Recovery @unnumberedsubsec Q1.4.1: What is an @file{init.el} or @file{.emacs} and is there a sample one? @@ -3829,6 +3877,7 @@ * Q4.7.4:: Problems installing AUC TeX * Q4.7.5:: Is there a reason for an Emacs package not to be included in XEmacs? * Q4.7.6:: Is there a MatLab mode? +* Q4.7.7:: Can I edit files on other hosts? @end menu @node Q4.0.1, Q4.0.2, Subsystems, Subsystems @@ -4630,13 +4679,29 @@ appreciated. @end enumerate -@node Q4.7.6, , Q4.7.5, Subsystems +@node Q4.7.6, Q4.7.7, Q4.7.5, Subsystems @unnumberedsubsec Q4.7.5: Is there a MatLab mode? Yes, a matlab mode and other items are available at the @uref{ftp://ftp.mathworks.com/pub/contrib/emacs_add_ons, MathWorks' emacs_add_ons ftp directory}. +@node Q4.7.7, , Q4.7.6, Subsystems +@unnumberedsubsec Q4.7.7: Can I edit files on other hosts? + +Yes. Of course XEmacs can use any network file system (such as NFS or +Windows file sharing) you have available, and includes some +optimizations and safety features appropriate to those environments. + +It is also possible to transparently edit files via FTP, ssh, or rsh. That +is, XEmacs makes a local copy using the transport in the background, and +automatically refreshes the remote original from that copy when you save +it. XEmacs also is capable of doing file system manipulations like +creating and removing directories and files. The FTP interface is +provided by the standard @samp{efs} package @ref{Top, EFS, , efs}. The +ssh/rsh interface is provided by the optional @samp{tramp} package +@ref{Top, TRAMP, , tramp}. + @node Miscellaneous, MS Windows, Subsystems, Top @unnumbered 5 The Miscellaneous Stuff @@ -6602,7 +6667,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 @@ -6687,7 +6752,7 @@ 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. @@ -6707,7 +6772,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 @@ -6770,7 +6835,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.4/man/xemacs/files.texi' 'xemacs-21.5.5/man/xemacs/files.texi' Index: ././man/xemacs/files.texi --- ././man/xemacs/files.texi Fri Apr 13 03:22:27 2001 +++ ././man/xemacs/files.texi Mon Feb 4 19:13:49 2002 @@ -10,6 +10,19 @@ Emacs. Your changes appear in the file itself only when you @dfn{save} the buffer back into the file. +@cindex files, remote +@cindex remote files + Emacs is also able to handle ``remote files'' which are stored on +other hosts. Not only is Emacs somewhat aware of the special issues +involved with network file systems, but it can also use FTP and ssh (or +rsh) to make local copies of the files, and refresh them on the remote +host automatically when you save the buffer. The FTP interface is +provided by the standard @samp{efs} package @ref{Top, EFS, , efs}. The +ssh/rsh interface is provided by the optional @samp{tramp} package +@ref{Top, TRAMP, , tramp}. These packages attempt to implement all of +the operations described below, making remote file use transparent +(except for unavoidable network delays). + In addition to visiting and saving files, Emacs can delete, copy, rename, and append to files, and operate on file directories. @@ -43,6 +56,17 @@ makes it easy to operate on that file with any of the Emacs file commands. +The syntax for accessing remote files unfortunately varies depending on +the method used. The syntax for using FTP is +@samp{/@var{user}@@@var{remote-host}:@var{path-on-remote-host}}. The +syntax for using ssh is +@samp{/[@var{user}@@@var{remote-host}]@var{path-on-remote-host}}. + + In both cases the @samp{@var{user}@@} portion is optional (it defaults +to your local user name). @var{path-on-remote-host} may use the +@samp{~} notation to indicate @var{user}'s home directory on the remote +host. The default file name will reflect the remote host information. + @vindex default-directory Each buffer has a default directory, normally the same as the directory of the file visited in that buffer. When Emacs reads a file @@ -58,6 +82,10 @@ which does not specify a directory, it is short for @file{/u/rms/gnu/foo}. @samp{../.login} would stand for @file{/u/rms/.login}. @samp{new/foo} would stand for the filename @file{/u/rms/gnu/new/foo}. + + When visiting a remote file via EFS or TRAMP, the remote directory +becomes the default directory (@pxref{Visiting}) for that buffer, just +as a local directory would. @vindex default-directory-alist The variable @code{default-directory-alist} takes an alist of major diff --text -u 'xemacs-21.5.4/man/xemacs/packages.texi' 'xemacs-21.5.5/man/xemacs/packages.texi' Index: ././man/xemacs/packages.texi --- ././man/xemacs/packages.texi Thu Jul 26 11:56:47 2001 +++ ././man/xemacs/packages.texi Sat Feb 2 10:53:09 2002 @@ -392,7 +392,7 @@ No need to panic, you don't have to go through the @file{pkinfo/MANIFEST.pkgname} and manually delete the files. Instead, use -@code{M-x package-admin-delete-binary-package RET}. +@code{M-x package-get-delete-package RET}. Note that the interactive package tools included with XEmacs already do this for you. diff --text -u 'xemacs-21.5.4/man/xemacs/programs.texi' 'xemacs-21.5.5/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.4/man/xemacs/xemacs.texi' 'xemacs-21.5.5/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 /dev/null 'xemacs-21.5.5/modules/ChangeLog' Index: ././modules/ChangeLog --- ././modules/ChangeLog Thu Jan 1 09:00:00 1970 +++ ././modules/ChangeLog Tue Mar 5 23:23:36 2002 @@ -0,0 +1,9 @@ +2002-03-05 Stephen J. Turnbull + + * XEmacs 21.5.5 "beets" is released. + +2002-02-14 Sean MacLennan + + * base64/base64.c - update Bufpos => Charbpos + + diff --text -u 'xemacs-21.5.4/modules/base64/base64.c' 'xemacs-21.5.5/modules/base64/base64.c' Index: ././modules/base64/base64.c --- ././modules/base64/base64.c Fri Apr 13 03:22:34 2001 +++ ././modules/base64/base64.c Sat Feb 16 05:57:58 2002 @@ -67,7 +67,7 @@ if (BUFFERP (object)) { struct buffer *b = XBUFFER (object); - Bufpos begv, endv; + Charbpos begv, endv; /* Figure out where we need to get info from */ get_buffer_range_char (b, start, end, &begv, &endv, GB_ALLOW_NIL); @@ -257,7 +257,7 @@ if (BUFFERP (object)) { struct buffer *b = XBUFFER (object); - Bufpos begv, endv; + Charbpos begv, endv; /* Figure out where we need to get info from */ get_buffer_range_char (b, start, end, &begv, &endv, GB_ALLOW_NIL); diff --text -u 'xemacs-21.5.4/netinstall/ChangeLog' 'xemacs-21.5.5/netinstall/ChangeLog' Index: ././netinstall/ChangeLog Prereq: 1.9 --- ././netinstall/ChangeLog Sat Oct 27 17:12:35 2001 +++ ././netinstall/ChangeLog Tue Mar 5 23:23:36 2002 @@ -1,7 +1,78 @@ -2001-10-27 Stephen J. Turnbull +2002-03-05 Stephen J. Turnbull + + * XEmacs 21.5.5 "beets" is released. + +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: @@ -326,6 +397,7 @@ * all: port from cygwin setup. -%%% $Id: ChangeLog,v 1.9 2001/10/26 02:42:53 andyp Exp $ -$Revision: 1.9 $ +%%% $Id: ChangeLog,v 1.12 2002/01/08 16:49:32 stephent Exp $ +$Revision: 1.12 $ + diff --text -u 'xemacs-21.5.4/netinstall/Makefile.in.in' 'xemacs-21.5.5/netinstall/Makefile.in.in' Index: ././netinstall/Makefile.in.in --- ././netinstall/Makefile.in.in Sun Sep 9 13:37:46 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 = \ @@ -153,12 +157,16 @@ -L$(MINGW_ZLIB_DIR) -lz -lmingw32 @chmod a-x $@ -setup-bin.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-generate-bin-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." @@ -193,7 +201,7 @@ .PHONY: mostlyclean clean distclean realclean extraclean mostlyclean: - $(RM) *.o *.i core $(PROGS) + $(RM) *.o *.i *.ini core $(PROGS) clean: mostlyclean @@ -209,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 reginfo.h + mkdir.h dialog.h version.h port.h reginfo.h desktop.h dialog.o: dialog.cc win32.h dialog.h msg.h log.h diskfull.o: diskfull.cc win32.h diskfull.h download.o: download.cc win32.h resource.h msg.h ini.h dialog.h \ @@ -230,11 +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 + 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.4/netinstall/desktop.cc' 'xemacs-21.5.5/netinstall/desktop.cc' Index: ././netinstall/desktop.cc --- ././netinstall/desktop.cc Fri Oct 26 11:42:53 2001 +++ ././netinstall/desktop.cc Thu Dec 20 14:49:40 2001 @@ -41,6 +41,7 @@ #include "regedit.h" #include "port.h" #include "log.h" +#include "desktop.h" extern "C" { void make_link_2 (char *exepath, char *args, char *icon, char *lname); @@ -102,13 +103,23 @@ } static char* +find_xemacs_version () +{ + char* v = strdup (xemacs_package->info[xemacs_package->trust].version); + char* dash = strrchr (v, '-'); + if (dash) + *dash = 0; + return v; +} + +static char* find_xemacs_exe_path () { if (xemacs_package->type == TY_CYGWIN) return backslash (concat (root_dir, "/bin/", XEMACS_CYGWIN_ARCH_NAME, 0)); else return backslash (concat (root_dir, "\\XEmacs-", - xemacs_package->info[xemacs_package->trust].version, + find_xemacs_version (), "\\", XEMACS_NATIVE_ARCH_NAME, 0)); } @@ -121,7 +132,7 @@ return strdup ("runemacs.exe"); else if (xemacs_package->type == TY_CYGWIN) return backslash (concat ("xemacs-", - xemacs_package->info[xemacs_package->trust].version, + find_xemacs_version (), ".exe", 0)); else return strdup ("xemacs.exe"); @@ -220,21 +231,27 @@ } void -remove_desktop_setup() +remove_xemacs_setup() { + if (xemacs_package == 0) + return; + start_menu ("XEmacs", 0, 1, 0); - start_menu ("Uninstall XEmacs", 0, 1, 0); - start_menu (0, 0, 1, 0); desktop_icon ("XEmacs", 0, 1); - if (xemacs_package != 0) - { #define FROB(exe) remove_app_path (exe) - FROB (find_xemacs_exe_name ()); - FROB ("runemacs.exe"); - FROB ("xemacs.exe"); + FROB (find_xemacs_exe_name ()); + FROB ("runemacs.exe"); + FROB ("xemacs.exe"); #undef FROB - } +} + +void +remove_desktop_setup() +{ + remove_xemacs_setup(); + start_menu ("Uninstall XEmacs", 0, 1, 0); + start_menu (0, 0, 1, 0); } static void diff --text -u /dev/null 'xemacs-21.5.5/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.4/netinstall/install.cc' 'xemacs-21.5.5/netinstall/install.cc' Index: ././netinstall/install.cc --- ././netinstall/install.cc Fri Apr 13 03:22:48 2001 +++ ././netinstall/install.cc Thu Dec 20 14:49:40 2001 @@ -47,7 +47,7 @@ #include "reginfo.h" #include "log.h" #include "hash.h" - +#include "desktop.h" #include "port.h" static HWND ins_dialog = 0; @@ -231,6 +231,10 @@ { SetWindowText (ins_pkgname, name); SetWindowText (ins_action, "Uninstalling..."); + // remove shortcuts and registry entries + if (type != TY_GENERIC) + remove_xemacs_setup(); + if (action == ACTION_UPGRADE) log (0, "Uninstalling old %s", name); else diff --text -u 'xemacs-21.5.4/netinstall/localdir.cc' 'xemacs-21.5.5/netinstall/localdir.cc' Index: ././netinstall/localdir.cc --- ././netinstall/localdir.cc Fri Apr 13 03:22:48 2001 +++ ././netinstall/localdir.cc Tue Oct 30 14:13:28 2001 @@ -12,6 +12,7 @@ * Written by Andrej Borsenkow * 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.4/netinstall/log.cc' 'xemacs-21.5.5/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.4/netinstall/msg.cc' 'xemacs-21.5.5/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.4/netinstall/net.cc' 'xemacs-21.5.5/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.4/netinstall/res.rc' 'xemacs-21.5.5/netinstall/res.rc' Index: ././netinstall/res.rc Prereq: 1.6 --- ././netinstall/res.rc Fri Oct 26 11:42:53 2001 +++ ././netinstall/res.rc Tue Oct 30 14:13:28 2001 @@ -33,7 +33,7 @@ CAPTION "XEmacs Setup" FONT 8, "MS Sans Serif" BEGIN - PUSHBUTTON "Next >",IDOK,199,176,45,15,WS_DISABLED | WS_GROUP + PUSHBUTTON "Next >",IDOK,199,176,45,15, WS_GROUP PUSHBUTTON "Cancel",IDCANCEL,256,176,45,15 CONTROL "Download from the Internet",IDC_SOURCE_DOWNLOAD,"Button", BS_AUTORADIOBUTTON | WS_TABSTOP,127,102,152,10 @@ -516,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.6 2001/10/26 02:42:53 andyp 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.4/netinstall/resource.h' 'xemacs-21.5.5/netinstall/resource.h' Index: ././netinstall/resource.h --- ././netinstall/resource.h Fri Oct 26 11:42: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 diff --text -u 'xemacs-21.5.4/netinstall/source.cc' 'xemacs-21.5.5/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.4/netinstall/uninstall.cc' 'xemacs-21.5.5/netinstall/uninstall.cc' Index: ././netinstall/uninstall.cc --- ././netinstall/uninstall.cc Tue Sep 25 11:35:32 2001 +++ ././netinstall/uninstall.cc Thu Dec 20 14:49:40 2001 @@ -48,6 +48,7 @@ #include "reginfo.h" #include "log.h" #include "hash.h" +#include "desktop.h" #include "port.h" @@ -66,9 +67,7 @@ static int uninstall_started = 0; extern char * map_filename (char *fn, int type); -void remove_desktop_setup (); static void start_uninstall (); -extern char* find_xemacs_exe_name(); char * base (char *s); diff --text -u 'xemacs-21.5.4/netinstall/win32.h' 'xemacs-21.5.5/netinstall/win32.h' Index: ././netinstall/win32.h --- ././netinstall/win32.h Sun Sep 9 13:37:48 2001 +++ ././netinstall/win32.h Thu Dec 20 14:49:41 2001 @@ -23,14 +23,6 @@ #define NOCOMATTRIBUTE -#include - -#define WIN32_LEAN_AND_MEAN -#include - -#include -#include - /* Cope with native win32 & mingw differences. Written by F. Popineau */ #ifdef WIN32_NATIVE @@ -39,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.4/nt/ChangeLog' 'xemacs-21.5.5/nt/ChangeLog' Index: ././nt/ChangeLog --- ././nt/ChangeLog Sat Oct 27 17:12:35 2001 +++ ././nt/ChangeLog Tue Mar 5 23:23:36 2002 @@ -1,4 +1,8 @@ -2001-10-27 Stephen J. Turnbull +2002-03-05 Stephen J. Turnbull + + * XEmacs 21.5.5 "beets" is released. + +2002-01-08 Stephen J. Turnbull * XEmacs 21.5.4 "bamboo" is released. diff --text -u 'xemacs-21.5.4/nt/installer/Wise/ChangeLog' 'xemacs-21.5.5/nt/installer/Wise/ChangeLog' Index: ././nt/installer/Wise/ChangeLog --- ././nt/installer/Wise/ChangeLog Sat Oct 27 17:12:35 2001 +++ ././nt/installer/Wise/ChangeLog Tue Mar 5 23:23:36 2002 @@ -1,4 +1,8 @@ -2001-10-27 Stephen J. Turnbull +2002-03-05 Stephen J. Turnbull + + * XEmacs 21.5.5 "beets" is released. + +2002-01-08 Stephen J. Turnbull * XEmacs 21.5.4 "bamboo" is released. diff --text -u 'xemacs-21.5.4/src/.cvsignore' 'xemacs-21.5.5/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.4/src/ChangeLog' 'xemacs-21.5.5/src/ChangeLog' Index: ././src/ChangeLog --- ././src/ChangeLog Sat Oct 27 17:12:35 2001 +++ ././src/ChangeLog Tue Mar 5 23:23:36 2002 @@ -1,7 +1,290 @@ -2001-10-27 Stephen J. Turnbull +2002-03-05 Stephen J. Turnbull + + * XEmacs 21.5.5 "beets" is released. + +2002-03-04 Stephen J. Turnbull + + * fileio.c (Fwrite_region_internal): Document use of start == Qnil. + +2001-09-04 Daiki Ueno + + * insdel.c (prepare_to_modify_buffer): Don't call the function + ask-user-about-supersession-threat when CLASH_DETECTION is set. + +2002-02-13 Ben Wing + + * event-stream.c (reset_key_echo): + * event-stream.c (reset_this_command_keys): + * event-stream.c (execute_command_event): + If console is dead as a result of C-x 5 0, then post-command stuff + needs to be careful and do only non-console-specific stuff. + +2002-02-11 Mike Sperber + + * device-x.c: + (x_IO_error_handler): + (x_init_device): Temporarily keep device in static variable + `device_being_initialized' so we can recover gracefully from + internal XOpenDevice failure. (XOpenDevice is documented to + return NULL on failure, but sometimes calls the IO error handler + instead.) + +2002-02-12 Stephen J. Turnbull + + * fileio.c (Ffind_file_name_handler): Improve docstring. + +2002-01-20 Stephen J. Turnbull + + * fns.c (Fmapconcat): Improve docstring. + +2002-01-03 Eric Gillespie, Jr. + + * device-gtk.c: Add prototype for + emacs_gtk_selection_clear_event_handle. + (gtk_init_device): Call gtk_selection_add_target for CLIPBOARD + selection. Setup signal handler for "selection_clear_event" + (emacs_gtk_selection_clear_event_handle). + + * select-gtk.c (emacs_gtk_selection_clear_event_handle): Handle + other applications owning the clipboard (based on + x_handle_selection_clear). + +2002-02-02 William M. Perry + + * winslots.h: New toolbar_shadow_thickness slot. + + * toolbar.c (Vtoolbar_shadow_thickness): New specifier to control + thickness of toolbar shadows instead of relying on X resourcs. + (toolbar_shadows_changed): New function to redraw toolbars if the + thickness specifier is changed. + (specifier_vars_of_toolbar): Arrange for caching and defaults for + toolbar-shadow-thickness. + + * toolbar-x.c: Use the new redisplay-based toolbar code. + + * toolbar-common.c (__prepare_button_area): Look at + toolbar-shadow-thickness specifier instead of window-system + specific stuff. + + * gtk-xemacs.c (smash_scrollbar_specifiers): New function to set + the toolbar-shadow-thickness specifier from GTK styles. + + * frameslots.h: New toolbar_shadow_thickness slot. + + * glyphs-gtk.c (extract_xpm_color_names): Resurrect the xpm color + symbols stuff because the GTK XPM libraries do very weird things + if you don't specify the transparency at all. Reverting the patch + of 12/22/01. + +2002-01-26 Stephen J. Turnbull + + * ChangeLog (2001-09-19 Ben Wing): Entry dosed with Dramamine. + * README.integral-types: New file excised from ChangeLog. + +2002-01-19 Jan Vroonhof + + * cmdloop.c: New variable Qdisabled_command_loop. + Move Vdisabled_command_loop declaration here. + * cmdloop.c (syms_of_cmdloop): Declare Qdisabled_command_loop. + * eval.c (Fcommand_execute): Use the value of the symbol not + the value of the value as the hook to run. + * event-stream.c: Remove declaration of Vdisabled_command_loop + * lisp.h: Declare Qdisabled_command_loop + +2002-01-15 Adrian Aichner + + * event-msw.c (mswindows_wnd_proc): Add handling of WM_SHOWWINDOW + to fix problem switching between virtual desktops under virtuawin + virtual window manager. + +2002-01-10 Stephen J. Turnbull + + * mule-charset.c (global): + (syms_of_mule_charset): + (complex_vars_of_mule_charset): + Declare and initialize Vcharset_latin_iso8859_15. + + * mule-charset.h (LEADING_BYTE_OFFICIAL_1): Add LATIN_ISO8859_15. + +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 @@ -980,347 +1263,46 @@ 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. + 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 following global substitutions were made: + + Memory_Count Bytecount + Lstream_Data_Count Bytecount + Element_Count Elemcount + Hash_Code Hashcode + extcount bytecount + bufpos charbpos + bytind bytebpos + memind membpos + bufbyte intbyte + Extcount Bytecount + Bufpos Charbpos + Bytind Bytebpos + Memind Membpos + Bufbyte Intbyte + EXTCOUNT BYTECOUNT + BUFPOS CHARBPOS + BYTIND BYTEBPOS + MEMIND MEMBPOS + BUFBYTE INTBYTE + MEMORY_COUNT BYTECOUNT + LSTREAM_DATA_COUNT BYTECOUNT + ELEMENT_COUNT ELEMCOUNT + HASH_CODE HASHCODE + + This resulted in some duplications. + + * lisp.h: removed duplicate declarations of Bytecount. + + * lstream.h: removed duplicate declaration of Bytecount. + Rewrote the comment about this type. + + * dumper.c: remove duplicate case tag XD_BYTECOUNT, and the + accompanying duplicate code, from 4 switchs tatements. + + See README.integral-types in this directory for more details. 2001-09-17 Ben Wing diff --text -u /dev/null 'xemacs-21.5.5/src/README.integral-types' Index: ././src/README.integral-types --- ././src/README.integral-types Thu Jan 1 09:00:00 1970 +++ ././src/README.integral-types Sat Jan 26 01:46:26 2002 @@ -0,0 +1,349 @@ +README.integral-types + +The great integral types renaming. + +#### The content of this file was originally posted as a ChangeLog and +should be moved to the Internals manual. + +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. + diff --text -u 'xemacs-21.5.4/src/alloc.c' 'xemacs-21.5.5/src/alloc.c' Index: ././src/alloc.c --- ././src/alloc.c Thu Sep 20 15:28:48 2001 +++ ././src/alloc.c Thu Dec 20 14:49:44 2001 @@ -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) diff --text -u 'xemacs-21.5.4/src/buffer.c' 'xemacs-21.5.5/src/buffer.c' Index: ././src/buffer.c --- ././src/buffer.c Thu Sep 20 15:28:48 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)) diff --text -u 'xemacs-21.5.4/src/cmdloop.c' 'xemacs-21.5.5/src/cmdloop.c' Index: ././src/cmdloop.c --- ././src/cmdloop.c Thu May 24 16:51:03 2001 +++ ././src/cmdloop.c Wed Jan 23 05:40:02 2002 @@ -50,6 +50,8 @@ Lisp_Object Venter_window_hook, Vleave_window_hook; +Lisp_Object Qdisabled_command_hook, Vdisabled_command_hook; + /* The error handler. */ Lisp_Object Qcommand_error; @@ -606,6 +608,7 @@ void syms_of_cmdloop (void) { + DEFSYMBOL (Qdisabled_command_hook); DEFSYMBOL (Qcommand_error); DEFSYMBOL (Qreally_early_error_handler); DEFSYMBOL (Qtop_level); diff --text -u 'xemacs-21.5.4/src/config.h.in' 'xemacs-21.5.5/src/config.h.in' Index: ././src/config.h.in --- ././src/config.h.in Thu Sep 20 15:28:50 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 diff --text -u 'xemacs-21.5.4/src/console-gtk.h' 'xemacs-21.5.5/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.4/src/device-gtk.c' 'xemacs-21.5.5/src/device-gtk.c' Index: ././src/device-gtk.c --- ././src/device-gtk.c Thu May 24 16:51:05 2001 +++ ././src/device-gtk.c Fri Feb 8 22:04:21 2002 @@ -126,6 +126,9 @@ guint info, guint time_stamp, gpointer data); +extern void emacs_gtk_selection_clear_event_handle (GtkWidget *widget, + GdkEventSelection *event, + gpointer data); extern void emacs_gtk_selection_received (GtkWidget *widget, GtkSelectionData *selection_data, gpointer user_data); @@ -284,9 +287,15 @@ /* Need to set up some selection handlers */ gtk_selection_add_target (GTK_WIDGET (app_shell), GDK_SELECTION_PRIMARY, GDK_SELECTION_TYPE_STRING, 0); + gtk_selection_add_target (GTK_WIDGET (app_shell), + gdk_atom_intern("CLIPBOARD", FALSE), + GDK_SELECTION_TYPE_STRING, 0); gtk_signal_connect (GTK_OBJECT (app_shell), "selection_get", GTK_SIGNAL_FUNC (emacs_gtk_selection_handle), NULL); + gtk_signal_connect (GTK_OBJECT (app_shell), "selection_clear_event", + GTK_SIGNAL_FUNC (emacs_gtk_selection_clear_event_handle), + NULL); gtk_signal_connect (GTK_OBJECT (app_shell), "selection_received", GTK_SIGNAL_FUNC (emacs_gtk_selection_received), NULL); diff --text -u 'xemacs-21.5.4/src/device-x.c' 'xemacs-21.5.5/src/device-x.c' Index: ././src/device-x.c --- ././src/device-x.c Thu Sep 20 15:28:51 2001 +++ ././src/device-x.c Sat Feb 23 02:12:27 2002 @@ -168,6 +168,8 @@ /* initializing an X connection */ /************************************************************************/ +static struct device *device_being_initialized = NULL; + static void allocate_x_device_struct (struct device *d) { @@ -563,7 +565,9 @@ */ slow_down_interrupts (); /* May not be needed but XtOpenDisplay could not deal with signals here. */ + device_being_initialized = d; dpy = DEVICE_X_DISPLAY (d) = XOpenDisplay (disp_name); + device_being_initialized = NULL; speed_up_interrupts (); if (dpy == 0) @@ -1116,6 +1120,9 @@ /* This function can GC */ Lisp_Object dev; struct device *d = get_device_from_display_1 (disp); + + if (!d) + d = device_being_initialized; assert (d != NULL); XSETDEVICE (dev, d); diff --text -u 'xemacs-21.5.4/src/dialog-msw.c' 'xemacs-21.5.5/src/dialog-msw.c' Index: ././src/dialog-msw.c --- ././src/dialog-msw.c Thu Sep 20 15:28:52 2001 +++ ././src/dialog-msw.c Thu Dec 20 14:49:45 2001 @@ -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; @@ -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.4/src/dired.c' 'xemacs-21.5.5/src/dired.c' Index: ././src/dired.c --- ././src/dired.c Thu Sep 20 15:28:52 2001 +++ ././src/dired.c Thu Dec 20 14:49:45 2001 @@ -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,9 +910,9 @@ 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! */ diff --text -u 'xemacs-21.5.4/src/editfns.c' 'xemacs-21.5.5/src/editfns.c' Index: ././src/editfns.c --- ././src/editfns.c Thu Sep 20 15:28:53 2001 +++ ././src/editfns.c Thu Dec 20 14:49:45 2001 @@ -1176,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. @@ -1249,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, /* diff --text -u 'xemacs-21.5.4/src/eval.c' 'xemacs-21.5.5/src/eval.c' Index: ././src/eval.c --- ././src/eval.c Thu Sep 20 15:28:54 2001 +++ ././src/eval.c Wed Jan 23 05:40:02 2002 @@ -2894,7 +2894,7 @@ debug_on_next_call = 0; /* #### from FSFmacs; correct? */ if (SYMBOLP (cmd) && !NILP (Fget (cmd, Qdisabled, Qnil))) - return run_hook (Vdisabled_command_hook); + return run_hook (Qdisabled_command_hook); for (;;) { diff --text -u 'xemacs-21.5.4/src/event-msw.c' 'xemacs-21.5.5/src/event-msw.c' Index: ././src/event-msw.c --- ././src/event-msw.c Thu Sep 20 15:28:55 2001 +++ ././src/event-msw.c Sat Jan 19 03:01:04 2002 @@ -229,6 +229,7 @@ CloseHandle (s->hev_thread); CloseHandle (s->hev_caller); CloseHandle (s->hev_unsleep); + CloseHandle (s->hpipe); s->inuse_p = 0; } } @@ -2629,13 +2630,11 @@ } else if (IsWindowVisible (hwnd)) { - /* - 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; */ + /* 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 @@ -2647,6 +2646,30 @@ return DefWindowProc (hwnd, message_, wParam, lParam); } + case WM_SHOWWINDOW: + /* + The WM_SHOWWINDOW message is sent to a window when the window + is about to be hidden or shown. + APA: This message is also sent when switching to a virtual + desktop under the virtuawin virtual window manager. + + */ + { + fobj = mswindows_find_frame (hwnd); + frame = XFRAME (fobj); + if (wParam == TRUE) + { + mswindows_enqueue_magic_event (hwnd, XM_MAPFRAME); + FRAME_VISIBLE_P (frame) = 1; + } + else + { + mswindows_enqueue_magic_event (hwnd, XM_UNMAPFRAME); + FRAME_VISIBLE_P (frame) = 0; + } + } + break; + case WM_SIZE: /* We only care about this message if our size has really changed */ if (wParam==SIZE_RESTORED || wParam==SIZE_MAXIMIZED || wParam==SIZE_MINIMIZED) @@ -2700,12 +2723,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; + /* 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 (); @@ -2828,19 +2849,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 diff --text -u 'xemacs-21.5.4/src/event-stream.c' 'xemacs-21.5.5/src/event-stream.c' Index: ././src/event-stream.c --- ././src/event-stream.c Thu Sep 20 15:28:56 2001 +++ ././src/event-stream.c Sat Feb 23 02:14:00 2002 @@ -135,7 +135,7 @@ /* Non-nil disable property on a command means do not execute it; call disabled-command-hook's value instead. */ -Lisp_Object Qdisabled, Vdisabled_command_hook; +Lisp_Object Qdisabled; EXFUN (Fnext_command_event, 2); @@ -704,7 +704,8 @@ /* This function can GC */ struct frame *f = selected_frame (); - command_builder->echo_buf_index = -1; + if (command_builder) + command_builder->echo_buf_index = -1; if (remove_echo_area_echo) clear_echo_area (f, Qcommand, 0); @@ -3491,16 +3492,24 @@ void reset_this_command_keys (Lisp_Object console, int clear_echo_area_p) { - struct command_builder *command_builder = - XCOMMAND_BUILDER (XCONSOLE (console)->command_builder); + if (!NILP (console)) + { + /* console is nil if we just deleted the console as a result of C-x 5 + 0. Unfortunately things are currently in a messy situation where + some stuff is console-local and other stuff isn't, so we need to + do everything that's not console-local. */ + struct command_builder *command_builder = + XCOMMAND_BUILDER (XCONSOLE (console)->command_builder); - reset_key_echo (command_builder, clear_echo_area_p); + reset_key_echo (command_builder, clear_echo_area_p); + reset_current_events (command_builder); + } + else + reset_key_echo (0, clear_echo_area_p); deallocate_event_chain (Vthis_command_keys); Vthis_command_keys = Qnil; Vthis_command_keys_tail = Qnil; - - reset_current_events (command_builder); } static void @@ -3904,7 +3913,8 @@ post_command_hook (); - if (!NILP (con->prefix_arg)) + /* Console might have been deleted by command */ + if (CONSOLE_LIVE_P (con) && !NILP (con->prefix_arg)) { /* Commands that set the prefix arg don't update last-command, don't reset the echoing state, and don't go into keyboard macros unless @@ -3933,7 +3943,8 @@ so we don't either */ if (!is_scrollbar_event (event)) - reset_this_command_keys (make_console (con), 0); + reset_this_command_keys (CONSOLE_LIVE_P (con) ? make_console (con) + : Qnil, 0); } } @@ -4290,6 +4301,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 */ diff --text -u 'xemacs-21.5.4/src/fileio.c' 'xemacs-21.5.5/src/fileio.c' Index: ././src/fileio.c --- ././src/fileio.c Thu Sep 20 15:28:58 2001 +++ ././src/fileio.c Tue Mar 5 22:00:38 2002 @@ -296,6 +296,8 @@ any handlers that are members of `inhibit-file-name-handlers', but we still do run any other handlers. This lets handlers use the standard functions without calling themselves recursively. + +Otherwise, OPERATION is the name of a funcall'able function. */ (filename, operation)) { @@ -3112,6 +3114,11 @@ present, both functions are identical and ignore the CODESYS argument.) If support for Mule exists in this Emacs, the file is encoded according to the value of CODESYS. If this is nil, no code conversion occurs. + +As a special kludge to support auto-saving, when START is nil START and +END are set to the beginning and end, respectively, of the buffer, +regardless of any restrictions. Don't use this feature. It is documented +here because write-region handler writers need to be aware of it. */ (start, end, filename, append, visit, lockname, codesys)) { @@ -3789,8 +3796,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 diff --text -u 'xemacs-21.5.4/src/fns.c' 'xemacs-21.5.5/src/fns.c' Index: ././src/fns.c --- ././src/fns.c Thu Sep 20 15:28:59 2001 +++ ././src/fns.c Wed Feb 13 21:55:39 2002 @@ -3029,10 +3029,12 @@ } DEFUN ("mapconcat", Fmapconcat, 3, 3, 0, /* -Apply FUNCTION to each element of SEQUENCE, and concat the results as strings. -In between each pair of results, insert SEPARATOR. Thus, using " " as -SEPARATOR results in spaces between the values returned by FUNCTION. -SEQUENCE may be a list, a vector, a bit vector, or a string. +Apply FUNCTION to each element of SEQUENCE, and concat the results to a string. +Between each pair of results, insert SEPARATOR. + +Each result, and SEPARATOR, should be strings. Thus, using " " as SEPARATOR +results in spaces between the values returned by FUNCTION. SEQUENCE itself +may be a list, a vector, a bit vector, or a string. */ (function, sequence, separator)) { diff --text -u 'xemacs-21.5.4/src/frameslots.h' 'xemacs-21.5.5/src/frameslots.h' Index: ././src/frameslots.h --- ././src/frameslots.h Mon Jun 18 16:10:20 2001 +++ ././src/frameslots.h Tue Feb 5 00:44:52 2002 @@ -146,6 +146,7 @@ MARKED_SLOT (default_toolbar_height); MARKED_SLOT (default_toolbar_visible_p); MARKED_SLOT (default_toolbar_border_width); + MARKED_SLOT (toolbar_shadow_thickness); /* List of toolbar buttons of current toolbars */ MARKED_SLOT_ARRAY (toolbar_buttons, 4); diff --text -u 'xemacs-21.5.4/src/general-slots.h' 'xemacs-21.5.5/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.4/src/glyphs-gtk.c' 'xemacs-21.5.5/src/glyphs-gtk.c' Index: ././src/glyphs-gtk.c --- ././src/glyphs-gtk.c Tue Jun 5 02:00:00 2001 +++ ././src/glyphs-gtk.c Sat Feb 2 22:42:53 2002 @@ -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 @@ -1223,6 +1223,7 @@ assert (COLOR_SPECIFIERP (value)); value = Fspecifier_instance (value, domain, Qnil, Qnil); } + if (NILP (value)) continue; results = noseeum_cons (noseeum_cons (name, value), results); @@ -2019,7 +2020,7 @@ redisplay_output_subwindow */ static void gtk_map_subwindow (Lisp_Image_Instance *p, int x, int y, - struct display_glyph_area* dga) + struct display_glyph_area* dga) { assert (dga->width > 0 && dga->height > 0); @@ -2073,6 +2074,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 +2205,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.4/src/gtk-xemacs.c' 'xemacs-21.5.5/src/gtk-xemacs.c' Index: ././src/gtk-xemacs.c --- ././src/gtk-xemacs.c Fri Apr 13 03:23:53 2001 +++ ././src/gtk-xemacs.c Tue Feb 5 00:44:52 2002 @@ -199,10 +199,24 @@ Fadd_spec_to_specifier (Vscrollbar_width, make_int (vsize), frame, Qnil, Qnil); Fadd_spec_to_specifier (Vscrollbar_height, make_int (hsize), frame, Qnil, Qnil); } -#else -#define smash_scrollbar_specifiers(x,y) #endif /* HAVE_SCROLLBARS */ +#ifdef HAVE_TOOLBARS +extern Lisp_Object Vtoolbar_shadow_thickness; + +static void +smash_toolbar_specifiers(struct frame *f, GtkStyle *style) +{ + Lisp_Object frame; + GtkStyleClass *klass = (GtkStyleClass *) style->klass; + + XSETFRAME (frame,f); + + Fadd_spec_to_specifier (Vtoolbar_shadow_thickness, make_int (klass->xthickness), + Qnil, list2 (Qgtk, Qdefault), Qprepend); +} +#endif /* HAVE_TOOLBARS */ + static void gtk_xemacs_realize (GtkWidget *widget) { @@ -224,7 +238,12 @@ #if 0 smash_face_fallbacks (x->f, new_style); #endif +#ifdef HAVE_SCROLLBARS smash_scrollbar_specifiers (x->f, new_style); +#endif +#ifdef HAVE_TOOLBARS + smash_toolbar_specifiers (x->f, new_style); +#endif } } diff --text -u 'xemacs-21.5.4/src/insdel.c' 'xemacs-21.5.5/src/insdel.c' Index: ././src/insdel.c --- ././src/insdel.c Thu Sep 20 15:29:04 2001 +++ ././src/insdel.c Sat Feb 23 02:22:02 2002 @@ -2324,15 +2324,16 @@ if (!NILP (buf->filename) && lockit && BUF_SAVE_MODIFF (buf) >= BUF_MODIFF (buf)) { +#ifdef CLASH_DETECTION + if (!NILP (buf->file_truename)) + /* Make binding buffer-file-name to nil effective. */ + lock_file (buf->file_truename); +#else /* At least warn if this file has changed on disk since it was visited.*/ if (NILP (Fverify_visited_file_modtime (buffer)) && !NILP (Ffile_exists_p (buf->filename))) call1_in_buffer (buf, intern ("ask-user-about-supersession-threat"), buf->filename); -#ifdef CLASH_DETECTION - if (!NILP (buf->file_truename)) - /* Make binding buffer-file-name to nil effective. */ - lock_file (buf->file_truename); #endif /* not CLASH_DETECTION */ } UNGCPRO; diff --text -u 'xemacs-21.5.4/src/keymap.c' 'xemacs-21.5.5/src/keymap.c' Index: ././src/keymap.c --- ././src/keymap.c Thu Sep 20 15:29:04 2001 +++ ././src/keymap.c Fri Jan 4 14:16:02 2002 @@ -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; diff --text -u 'xemacs-21.5.4/src/lisp.h' 'xemacs-21.5.5/src/lisp.h' Index: ././src/lisp.h --- ././src/lisp.h Thu Sep 20 15:29:05 2001 +++ ././src/lisp.h Wed Jan 23 05:40:03 2002 @@ -2416,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); @@ -2454,6 +2457,7 @@ void buffer_insert1 (struct buffer *, Lisp_Object); 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); @@ -3253,7 +3257,7 @@ extern Lisp_Object Qcrlf, Qcurrent_menubar, Qctext; extern Lisp_Object Qcyclic_variable_indirection, Qdecode; extern Lisp_Object Qdefun, Qdevice_live_p; -extern Lisp_Object Qdim, Qdisabled, Qdisplay_table; +extern Lisp_Object Qdim, Qdisabled, Qdisabled_command_hook, Qdisplay_table; extern Lisp_Object Qdomain_error; extern Lisp_Object Qediting_error; extern Lisp_Object Qencode, Qend_of_buffer, Qend_of_file, Qend_open; diff --text -u 'xemacs-21.5.4/src/menubar-gtk.c' 'xemacs-21.5.5/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.4/src/menubar-msw.c' 'xemacs-21.5.5/src/menubar-msw.c' Index: ././src/menubar-msw.c --- ././src/menubar-msw.c Thu Sep 20 15:29:06 2001 +++ ././src/menubar-msw.c Thu Dec 20 14:49:47 2001 @@ -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.4/src/mule-charset.c' 'xemacs-21.5.5/src/mule-charset.c' Index: ././src/mule-charset.c --- ././src/mule-charset.c Thu Sep 20 15:29:08 2001 +++ ././src/mule-charset.c Thu Jan 10 18:50:50 2002 @@ -50,6 +50,7 @@ Lisp_Object Vcharset_latin_jisx0201; Lisp_Object Vcharset_cyrillic_iso8859_5; Lisp_Object Vcharset_latin_iso8859_9; +Lisp_Object Vcharset_latin_iso8859_15; Lisp_Object Vcharset_japanese_jisx0208_1978; Lisp_Object Vcharset_chinese_gb2312; Lisp_Object Vcharset_japanese_jisx0208; @@ -135,6 +136,7 @@ Qlatin_jisx0201, Qcyrillic_iso8859_5, Qlatin_iso8859_9, + Qlatin_iso8859_15, Qjapanese_jisx0208_1978, Qchinese_gb2312, Qjapanese_jisx0208, @@ -1305,6 +1307,7 @@ DEFSYMBOL (Qlatin_jisx0201); DEFSYMBOL (Qcyrillic_iso8859_5); DEFSYMBOL (Qlatin_iso8859_9); + DEFSYMBOL (Qlatin_iso8859_15); DEFSYMBOL (Qjapanese_jisx0208_1978); DEFSYMBOL (Qchinese_gb2312); DEFSYMBOL (Qjapanese_jisx0208); @@ -1476,6 +1479,15 @@ build_string ("ISO8859-9 (Latin-5)"), build_string ("ISO8859-9 (Latin-5)"), build_string ("iso8859-9")); + staticpro (&Vcharset_latin_iso8859_15); + Vcharset_latin_iso8859_15 = + make_charset (LEADING_BYTE_LATIN_ISO8859_15, Qlatin_iso8859_15, 2, + CHARSET_TYPE_96, 1, 1, 'b', + CHARSET_LEFT_TO_RIGHT, + build_string ("Latin-9"), + build_string ("ISO8859-15 (Latin-9)"), + build_string ("ISO8859-15 (Latin-9)"), + build_string ("iso8859-15")); staticpro (&Vcharset_japanese_jisx0208_1978); Vcharset_japanese_jisx0208_1978 = make_charset (LEADING_BYTE_JAPANESE_JISX0208_1978, Qjapanese_jisx0208_1978, 3, diff --text -u 'xemacs-21.5.4/src/mule-charset.h' 'xemacs-21.5.5/src/mule-charset.h' Index: ././src/mule-charset.h --- ././src/mule-charset.h Thu Sep 20 15:29:08 2001 +++ ././src/mule-charset.h Thu Jan 10 18:50:50 2002 @@ -350,12 +350,12 @@ LEADING_BYTE_KATAKANA_JISX0201, /* 0x89 Right half of JIS X0201-1976 */ LEADING_BYTE_LATIN_JISX0201, /* 0x8A Left half of JIS X0201-1976 */ LEADING_BYTE_CYRILLIC_ISO8859_5,/* 0x8B Right half of ISO 8859-5 */ - LEADING_BYTE_LATIN_ISO8859_9 /* 0x8C Right half of ISO 8859-9 */ - /* 0x8D unused */ + LEADING_BYTE_LATIN_ISO8859_9, /* 0x8C Right half of ISO 8859-9 */ + LEADING_BYTE_LATIN_ISO8859_15 /* 0x8D Right half of ISO 8859-15 */ }; #define MIN_LEADING_BYTE_OFFICIAL_1 LEADING_BYTE_LATIN_ISO8859_1 -#define MAX_LEADING_BYTE_OFFICIAL_1 LEADING_BYTE_LATIN_ISO8859_9 +#define MAX_LEADING_BYTE_OFFICIAL_1 LEADING_BYTE_LATIN_ISO8859_15 /** The following are for 2-byte characters in an official charset. **/ enum LEADING_BYTE_OFFICIAL_2 diff --text -u 'xemacs-21.5.4/src/nt.c' 'xemacs-21.5.5/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.4/src/ntheap.c' 'xemacs-21.5.5/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.4/src/process-unix.c' 'xemacs-21.5.5/src/process-unix.c' Index: ././src/process-unix.c --- ././src/process-unix.c Mon Oct 1 21:47:10 2001 +++ ././src/process-unix.c Sat Jan 5 16:33:23 2002 @@ -1584,7 +1584,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; LISP_STRING_TO_EXTERNAL (host, ext_host, Qnative); diff --text -u 'xemacs-21.5.4/src/redisplay-gtk.c' 'xemacs-21.5.5/src/redisplay-gtk.c' Index: ././src/redisplay-gtk.c --- ././src/redisplay-gtk.c Thu Sep 20 15:29:10 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++; @@ -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.4/src/scrollbar-msw.c' 'xemacs-21.5.5/src/scrollbar-msw.c' Index: ././src/scrollbar-msw.c --- ././src/scrollbar-msw.c Thu Sep 20 15:29:13 2001 +++ ././src/scrollbar-msw.c Thu Dec 20 14:49:48 2001 @@ -44,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 @@ -235,9 +236,9 @@ 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) { @@ -329,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; - Charbpos 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.4/src/search.c' 'xemacs-21.5.5/src/search.c' Index: ././src/search.c --- ././src/search.c Thu Sep 20 15:29:13 2001 +++ ././src/search.c Thu Dec 20 14:49:48 2001 @@ -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), diff --text -u 'xemacs-21.5.4/src/select-gtk.c' 'xemacs-21.5.5/src/select-gtk.c' Index: ././src/select-gtk.c --- ././src/select-gtk.c Thu Sep 20 15:29:13 2001 +++ ././src/select-gtk.c Fri Feb 8 22:04:21 2002 @@ -235,6 +235,40 @@ } +void +emacs_gtk_selection_clear_event_handle (GtkWidget *widget, + GdkEventSelection *event, + gpointer data) +{ + GdkAtom selection = event->selection; + guint32 changed_owner_time = event->time; + struct device *d = decode_gtk_device (Qnil); + + Lisp_Object selection_symbol, local_selection_time_lisp; + guint32 local_selection_time; + + selection_symbol = atom_to_symbol (d, selection); + + local_selection_time_lisp = Fget_selection_timestamp (selection_symbol); + + /* We don't own the selection, so that's fine. */ + if (NILP (local_selection_time_lisp)) + return; + + local_selection_time = *(guint32 *) XOPAQUE_DATA (local_selection_time_lisp); + + /* This SelectionClear is for a selection that we no longer own, so we can + disregard it. (That is, we have reasserted the selection since this + request was generated.) + */ + if (changed_owner_time != GDK_CURRENT_TIME && + local_selection_time > changed_owner_time) + return; + + handle_selection_clear (selection_symbol); +} + + static GtkWidget *reading_selection_reply; static GdkAtom reading_which_selection; @@ -366,7 +400,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.4/src/sysdep.c' 'xemacs-21.5.5/src/sysdep.c' Index: ././src/sysdep.c --- ././src/sysdep.c Thu Sep 20 15:29:15 2001 +++ ././src/sysdep.c Sat Jan 5 16:33:24 2002 @@ -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)) diff --text -u 'xemacs-21.5.4/src/syswindows.h' 'xemacs-21.5.5/src/syswindows.h' Index: ././src/syswindows.h --- ././src/syswindows.h Thu Sep 20 15:29:16 2001 +++ ././src/syswindows.h Tue Oct 30 14:13:31 2001 @@ -85,6 +85,7 @@ # define Status int # endif # include +# include # include # include #endif @@ -122,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; @@ -261,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 = (Intbyte *) 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) \ diff --text -u /dev/null 'xemacs-21.5.5/src/toolbar-common.c' Index: ././src/toolbar-common.c --- ././src/toolbar-common.c Thu Jan 1 09:00:00 1970 +++ ././src/toolbar-common.c Tue Feb 5 00:44:52 2002 @@ -0,0 +1,707 @@ +/* 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" + +extern Lisp_Object Vtoolbar_shadow_thickness; + +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; + int def_shadow_thickness = XINT (Fspecifier_instance(Vtoolbar_shadow_thickness, window, Qnil, Qnil)); + 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 = def_shadow_thickness; + } + else if (NILP (tb->up_glyph)) + { + shadow_thickness = 0; + } + else + { + if (tb->enabled) + { + if (tb->down) + shadow_thickness = -def_shadow_thickness; + else + shadow_thickness = def_shadow_thickness; + } + 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.5/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.4/src/toolbar-gtk.c' 'xemacs-21.5.5/src/toolbar-gtk.c' Index: ././src/toolbar-gtk.c --- ././src/toolbar-gtk.c Thu Sep 20 15:29:16 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_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; - } - - 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.4/src/toolbar-x.c' 'xemacs-21.5.5/src/toolbar-x.c' Index: ././src/toolbar-x.c --- ././src/toolbar-x.c Thu Sep 20 15:29:16 2001 +++ ././src/toolbar-x.c Tue Feb 5 00:44:52 2002 @@ -39,730 +39,16 @@ #include "toolbar.h" #include "window.h" -static void -x_draw_blank_toolbar_button (struct frame *f, int x, int y, int width, - int height, int threed, int border_width, - int vertical) -{ - struct device *d = XDEVICE (f->device); - EmacsFrame ef = (EmacsFrame) FRAME_X_TEXT_WIDGET (f); - int shadow_thickness = ef->emacs_frame.toolbar_shadow_thickness; - int sx = x, sy = y, swidth = width, sheight = height; - - Display *dpy = DEVICE_X_DISPLAY (d); - Window x_win = XtWindow (FRAME_X_TEXT_WIDGET (f)); - GC top_shadow_gc, bottom_shadow_gc, background_gc; - - background_gc = FRAME_X_TOOLBAR_BLANK_BACKGROUND_GC (f); - - if (threed) - { - top_shadow_gc = FRAME_X_TOOLBAR_TOP_SHADOW_GC (f); - bottom_shadow_gc = FRAME_X_TOOLBAR_BOTTOM_SHADOW_GC (f); - } - else - { - top_shadow_gc = background_gc; - bottom_shadow_gc = background_gc; - } - - if (vertical) - { - sx += border_width; - swidth -= 2 * border_width; - } - else - { - sy += border_width; - sheight -= 2 * border_width; - } - - /* Draw the outline. */ - x_output_shadows (f, sx, sy, swidth, sheight, top_shadow_gc, - bottom_shadow_gc, background_gc, shadow_thickness, - EDGE_ALL); - - /* Blank the middle. */ - XFillRectangle (dpy, x_win, background_gc, sx + shadow_thickness, - sy + shadow_thickness, swidth - shadow_thickness * 2, - sheight - shadow_thickness * 2); - - /* Do the border */ - XFillRectangle (dpy, x_win, background_gc, x, y, - (vertical ? border_width : width), - (vertical ? height : border_width)); - XFillRectangle (dpy, x_win, background_gc, - (vertical ? sx + swidth : x), - (vertical ? y : sy + sheight), - (vertical ? border_width : width), - (vertical ? height : border_width)); -} - -static void -x_output_toolbar_button (struct frame *f, Lisp_Object button) -{ - struct device *d = XDEVICE (f->device); - EmacsFrame ef = (EmacsFrame) FRAME_X_TEXT_WIDGET (f); - int shadow_thickness = ef->emacs_frame.toolbar_shadow_thickness; - int x_adj, y_adj, width_adj, height_adj; - - Display *dpy = DEVICE_X_DISPLAY (d); - Window x_win = XtWindow (FRAME_X_TEXT_WIDGET (f)); - GC top_shadow_gc, bottom_shadow_gc, background_gc; - Lisp_Object instance, frame, window, glyph; - struct toolbar_button *tb = XTOOLBAR_BUTTON (button); - 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) - { - top_shadow_gc = FRAME_X_TOOLBAR_BOTTOM_SHADOW_GC (f); - bottom_shadow_gc = FRAME_X_TOOLBAR_TOP_SHADOW_GC (f); - } - else - { - top_shadow_gc = FRAME_X_TOOLBAR_TOP_SHADOW_GC (f); - bottom_shadow_gc = FRAME_X_TOOLBAR_BOTTOM_SHADOW_GC (f); - } - } - else - { - top_shadow_gc = FRAME_X_TOOLBAR_BLANK_BACKGROUND_GC (f); - bottom_shadow_gc = FRAME_X_TOOLBAR_BLANK_BACKGROUND_GC (f); - } - background_gc = FRAME_X_TOOLBAR_BLANK_BACKGROUND_GC (f); - - /* Draw the outline. */ - x_output_shadows (f, tb->x + x_adj, tb->y + y_adj, - tb->width + width_adj, tb->height + height_adj, - top_shadow_gc, - bottom_shadow_gc, background_gc, shadow_thickness, - EDGE_ALL); - - /* Clear the pixmap area. */ - XFillRectangle (dpy, x_win, background_gc, tb->x + x_adj + shadow_thickness, - tb->y + y_adj + shadow_thickness, - tb->width + width_adj - shadow_thickness * 2, - tb->height + height_adj - shadow_thickness * 2); - - /* Do the border. */ - XFillRectangle (dpy, x_win, background_gc, tb->x, tb->y, - (vertical ? border_width : tb->width), - (vertical ? tb->height : border_width)); - - XFillRectangle (dpy, x_win, background_gc, - (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 = FRAME_X_TOOLBAR_PIXMAP_BACKGROUND_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); - } - - x_output_x_pixmap (f, XIMAGE_INSTANCE (instance), tb->x + x_offset, - tb->y + y_offset, 0, 0, width, height, - 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_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; - } - - x_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 -x_get_button_size (struct frame *f, Lisp_Object window, - struct toolbar_button *tb, int vert, int pos) -{ - EmacsFrame ef = (EmacsFrame) FRAME_X_TEXT_WIDGET (f); - int shadow_thickness = ef->emacs_frame.toolbar_shadow_thickness; - 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 X_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 = x_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); \ - x_draw_blank_toolbar_button (f, x, y, width, \ - height, threed, \ - border_width, vert); \ - } \ - else \ - x_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 -x_output_toolbar (struct frame *f, enum toolbar_pos pos) -{ - struct device *d = XDEVICE (f->device); - 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; - Display *dpy = DEVICE_X_DISPLAY (d); - Window x_win = XtWindow (FRAME_X_TEXT_WIDGET (f)); - GC background_gc = FRAME_X_TOOLBAR_BLANK_BACKGROUND_GC (f); - - get_toolbar_coords (f, pos, &x, &y, &bar_width, &bar_height, &vert, 1); - window = FRAME_LAST_NONMINIBUF_WINDOW (f); - - /* Do the border */ - XFillRectangle (dpy, x_win, background_gc, x, y, - (vert ? bar_width : border_width), - (vert ? border_width : bar_height)); - XFillRectangle (dpy, x_win, background_gc, - (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 = x_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. */ - X_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. - */ - x_draw_blank_toolbar_button (f, x, y, width, height, !border_width, - border_width, vert); - - if (vert) - y += height; - else - x += width; - } +#include "toolbar-common.h" - /* Loop over the right buttons, updating and outputting them. */ - X_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); - - XFlush (DEVICE_X_DISPLAY (d)); -} - -static void -x_clear_toolbar (struct frame *f, enum toolbar_pos pos, int thickness_change) -{ - Lisp_Object frame; - struct device *d = XDEVICE (f->device); - 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); - XFlush (DEVICE_X_DISPLAY (d)); -} - -static void -x_output_frame_toolbars (struct frame *f) -{ - assert (FRAME_X_P (f)); - - if (FRAME_REAL_TOP_TOOLBAR_VISIBLE (f)) - x_output_toolbar (f, TOP_TOOLBAR); - else if (f->top_toolbar_was_visible) - x_clear_toolbar (f, TOP_TOOLBAR, 0); - - if (FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f)) - x_output_toolbar (f, BOTTOM_TOOLBAR); - else if (f->bottom_toolbar_was_visible) - x_clear_toolbar (f, BOTTOM_TOOLBAR, 0); - - if (FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f)) - x_output_toolbar (f, LEFT_TOOLBAR); - else if (f->left_toolbar_was_visible) - x_clear_toolbar (f, LEFT_TOOLBAR, 0); - - if (FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f)) - x_output_toolbar (f, RIGHT_TOOLBAR); - else if (f->right_toolbar_was_visible) - x_clear_toolbar (f, RIGHT_TOOLBAR, 0); -} - -static void -x_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. */ - x_output_toolbar (f, pos); -} - -static void -x_redraw_exposed_toolbars (struct frame *f, int x, int y, int width, - int height) -{ - assert (FRAME_X_P (f)); - - if (FRAME_REAL_TOP_TOOLBAR_VISIBLE (f)) - x_redraw_exposed_toolbar (f, TOP_TOOLBAR, x, y, width, height); - - if (FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f)) - x_redraw_exposed_toolbar (f, BOTTOM_TOOLBAR, x, y, width, height); - - if (FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f)) - x_redraw_exposed_toolbar (f, LEFT_TOOLBAR, x, y, width, height); - - if (FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f)) - x_redraw_exposed_toolbar (f, RIGHT_TOOLBAR, x, y, width, height); -} - -static void -x_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 (XtIsRealized (FRAME_X_SHELL_WIDGET (f))) - x_redraw_exposed_toolbars (f, 0, 0, FRAME_PIXWIDTH (f), - FRAME_PIXHEIGHT (f)); -} - - -static void -x_initialize_frame_toolbar_gcs (struct frame *f) -{ - EmacsFrame ef = (EmacsFrame) FRAME_X_TEXT_WIDGET (f); - EmacsFramePart *efp = &(ef->emacs_frame); - XGCValues gcv; - unsigned long flags = (GCForeground | GCBackground | GCGraphicsExposures); - - /* - * If backgroundToolBarColor is specified, use it. - * Otherwise use the background resource. - */ - if (efp->background_toolbar_pixel == (Pixel) (-1)) - efp->background_toolbar_pixel = efp->background_pixel; - - /* - * #### - * If foregroundToolBarColor is specified, use it. - * Otherwise use the foreground resource. - * - * The foreground pixel is currently unused, but will likely be - * used when toolbar captions are generated by the toolbar code - * instead being incorporated into the icon image. - */ - if (efp->foreground_toolbar_pixel == (Pixel) (-1)) - efp->foreground_toolbar_pixel = efp->foreground_pixel; - - gcv.foreground = efp->background_toolbar_pixel; - gcv.background = ef->core.background_pixel; - gcv.graphics_exposures = False; - FRAME_X_TOOLBAR_BLANK_BACKGROUND_GC (f) = - XtGetGC ((Widget) ef, flags, &gcv); - - if (efp->top_toolbar_shadow_pixel == efp->bottom_toolbar_shadow_pixel) - { - efp->top_toolbar_shadow_pixel = efp->background_toolbar_pixel; - efp->bottom_toolbar_shadow_pixel = efp->background_toolbar_pixel; - } - - x_generate_shadow_pixels (f, &efp->top_toolbar_shadow_pixel, - &efp->bottom_toolbar_shadow_pixel, - efp->background_toolbar_pixel, - ef->core.background_pixel); - - gcv.foreground = efp->top_toolbar_shadow_pixel; - gcv.background = ef->core.background_pixel; - gcv.graphics_exposures = False; - flags = GCForeground | GCBackground | GCGraphicsExposures; - if (efp->top_toolbar_shadow_pixmap) - { - gcv.fill_style = FillOpaqueStippled; - gcv.stipple = efp->top_toolbar_shadow_pixmap; - flags |= GCStipple | GCFillStyle; - } - FRAME_X_TOOLBAR_TOP_SHADOW_GC (f) = XtGetGC ((Widget) ef, flags, &gcv); - - gcv.foreground = efp->bottom_toolbar_shadow_pixel; - gcv.background = ef->core.background_pixel; - gcv.graphics_exposures = False; - flags = GCForeground | GCBackground | GCGraphicsExposures; - if (efp->bottom_toolbar_shadow_pixmap) - { - gcv.fill_style = FillOpaqueStippled; - gcv.stipple = efp->bottom_toolbar_shadow_pixmap; - flags |= GCStipple | GCFillStyle; - } - FRAME_X_TOOLBAR_BOTTOM_SHADOW_GC (f) = XtGetGC ((Widget) ef, flags, &gcv); - -#ifdef HAVE_XPM - FRAME_X_TOOLBAR_PIXMAP_BACKGROUND_GC (f) = - FRAME_X_TOOLBAR_BLANK_BACKGROUND_GC (f); -#else - { - struct device *d = XDEVICE (f->device); - Display *dpy = DEVICE_X_DISPLAY (d); - - gcv.background = WhitePixelOfScreen (DefaultScreenOfDisplay (dpy)); - gcv.foreground = BlackPixelOfScreen (DefaultScreenOfDisplay (dpy)); - gcv.graphics_exposures = False; - flags = GCForeground | GCBackground | GCGraphicsExposures; - FRAME_X_TOOLBAR_PIXMAP_BACKGROUND_GC (f) = - XtGetGC ((Widget) ef, flags, &gcv); - } -#endif -} - -static void -x_release_frame_toolbar_gcs (struct frame *f) -{ - Widget ew = (Widget) FRAME_X_TEXT_WIDGET (f); - XtReleaseGC (ew, FRAME_X_TOOLBAR_BLANK_BACKGROUND_GC (f)); - /* If compiled with XPM support, this is a pointer to the same GC as - FRAME_X_BLANK_BACKGROUND_GC so we need to make sure we don't - release it twice. */ -#ifndef HAVE_XPM - XtReleaseGC (ew, FRAME_X_TOOLBAR_PIXMAP_BACKGROUND_GC (f)); -#endif - XtReleaseGC (ew, FRAME_X_TOOLBAR_TOP_SHADOW_GC (f)); - XtReleaseGC (ew, FRAME_X_TOOLBAR_BOTTOM_SHADOW_GC (f)); - - /* Seg fault if we try and use these again. */ - FRAME_X_TOOLBAR_BLANK_BACKGROUND_GC (f) = (GC) - 1; - FRAME_X_TOOLBAR_PIXMAP_BACKGROUND_GC (f) = (GC) - 1; - FRAME_X_TOOLBAR_TOP_SHADOW_GC (f) = (GC) - 1; - FRAME_X_TOOLBAR_BOTTOM_SHADOW_GC (f) = (GC) - 1; -} +/* 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 x_output_frame_toolbars common_output_frame_toolbars +#define x_output_toolbar_button common_output_toolbar_button +#define x_redraw_exposed_toolbars common_redraw_exposed_toolbars +#define x_redraw_frame_toolbars common_redraw_frame_toolbars static void x_initialize_frame_toolbars (struct frame *f) @@ -772,8 +58,6 @@ if (ef->emacs_frame.toolbar_shadow_thickness < MINIMUM_SHADOW_THICKNESS) Xt_SET_VALUE (FRAME_X_TEXT_WIDGET (f), XtNtoolBarShadowThickness, MINIMUM_SHADOW_THICKNESS); - - x_initialize_frame_toolbar_gcs (f); } /* This only calls one function but we go ahead and create this in @@ -781,7 +65,6 @@ static void x_free_frame_toolbars (struct frame *f) { - x_release_frame_toolbar_gcs (f); } diff --text -u 'xemacs-21.5.4/src/toolbar.c' 'xemacs-21.5.5/src/toolbar.c' Index: ././src/toolbar.c --- ././src/toolbar.c Fri May 25 20:27:00 2001 +++ ././src/toolbar.c Tue Feb 5 00:44:52 2002 @@ -45,6 +45,7 @@ Lisp_Object Vdefault_toolbar, Vdefault_toolbar_visible_p; Lisp_Object Vdefault_toolbar_width, Vdefault_toolbar_height; Lisp_Object Vdefault_toolbar_border_width; +Lisp_Object Vtoolbar_shadow_thickness; Lisp_Object Vdefault_toolbar_position; Lisp_Object Vtoolbar_buttons_captioned_p; @@ -1248,6 +1249,23 @@ MARK_TOOLBAR_CHANGED; } +static void +toolbar_shadows_changed (Lisp_Object specifier, struct window *w, + Lisp_Object oldval) +{ + struct frame *f = XFRAME (w->frame); + + if (!f->frame_data) + { + /* If there is not frame data yet, we need to get the hell out + ** of here. This can happen when the initial frame is being + ** created and we set our specifiers internally. + */ + return; + } + MAYBE_DEVMETH (XDEVICE (f->device), redraw_frame_toolbars, (f)); +} + void syms_of_toolbar (void) @@ -1606,6 +1624,35 @@ toolbar_geometry_changed_in_window, offsetof (struct frame, toolbar_size[RIGHT_TOOLBAR]), frame_size_slipped, 0); + + DEFVAR_SPECIFIER ("toolbar-shadow-thickness", + &Vtoolbar_shadow_thickness /* +*Width of shadows around toolbar buttons. +This is a specifier; use `set-specifier' to change it. +*/ ); + Vtoolbar_shadow_thickness = Fmake_specifier (Qnatnum); + set_specifier_caching(Vtoolbar_shadow_thickness, + offsetof (struct window, toolbar_shadow_thickness), + toolbar_shadows_changed, + 0,0, 0); + + fb = Qnil; + +#ifdef HAVE_TTY + fb = Fcons (Fcons (list1 (Qtty), Qzero), fb); +#endif +#ifdef HAVE_GTK + fb = Fcons (Fcons (list1 (Qgtk), make_int (2)), fb); +#endif +#ifdef HAVE_X_WINDOWS + fb = Fcons (Fcons (list1 (Qx), make_int (2)), fb); +#endif +#ifdef HAVE_MS_WINDOWS + fb = Fcons (Fcons (list1 (Qmswindows), make_int (2)), fb); +#endif + + if (!NILP (fb)) + set_specifier_fallback (Vtoolbar_shadow_thickness, fb); fb = Qnil; #ifdef HAVE_TTY diff --text -u 'xemacs-21.5.4/src/win32.c' 'xemacs-21.5.5/src/win32.c' Index: ././src/win32.c --- ././src/win32.c Thu Sep 20 15:29:16 2001 +++ ././src/win32.c Thu Dec 20 14:49:48 2001 @@ -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.4/src/window.c' 'xemacs-21.5.5/src/window.c' Index: ././src/window.c --- ././src/window.c Thu Sep 20 15:29:17 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; @@ -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 @@ -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)) { @@ -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.4/src/winslots.h' 'xemacs-21.5.5/src/winslots.h' Index: ././src/winslots.h --- ././src/winslots.h Mon Jun 18 16:10:32 2001 +++ ././src/winslots.h Tue Feb 5 00:44:52 2002 @@ -195,6 +195,7 @@ WINDOW_SAVED_SLOT (default_toolbar_height, EQ) WINDOW_SAVED_SLOT (default_toolbar_visible_p, EQ) WINDOW_SAVED_SLOT (default_toolbar_border_width, EQ) + WINDOW_SAVED_SLOT (toolbar_shadow_thickness, EQ) #endif /* HAVE_TOOLBARS */ /* Gutter specification for each of the four positions. diff --text -u 'xemacs-21.5.4/tests/ChangeLog' 'xemacs-21.5.5/tests/ChangeLog' Index: ././tests/ChangeLog --- ././tests/ChangeLog Sat Oct 27 17:12:35 2001 +++ ././tests/ChangeLog Tue Mar 5 23:23:37 2002 @@ -1,4 +1,8 @@ -2001-10-27 Stephen J. Turnbull +2002-03-05 Stephen J. Turnbull + + * XEmacs 21.5.5 "beets" is released. + +2002-01-08 Stephen J. Turnbull * XEmacs 21.5.4 "bamboo" is released. diff --text -u 'xemacs-21.5.4/version.sh' 'xemacs-21.5.5/version.sh' Index: ././version.sh --- ././version.sh Sat Oct 27 17:12:35 2001 +++ ././version.sh Tue Mar 5 23:23:37 2002 @@ -2,8 +2,9 @@ emacs_is_beta=t emacs_major_version=21 emacs_minor_version=5 -emacs_beta_version=4 -xemacs_codename="bamboo" +emacs_beta_version=5 +xemacs_codename="beets" +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 : Tue Mar 5 23:23:42 2002 # Generated by : makepatch 2.00_03 # Recurse directories : Yes # Excluded files : (\A|/).*\.png\Z # (\A|/).*\.bmp\Z # (\A|/)MANIFEST\Z # (\A|/)\.precious\Z # r './lisp/x-win-xfree86.elc' 1059 0 # r './lisp/x-win-sun.elc' 2555 0 # r './lisp/x-select.elc' 4094 0 # r './lisp/x-scrollbar.elc' 1770 0 # r './lisp/x-mouse.elc' 3274 0 # r './lisp/x-misc.elc' 2484 0 # r './lisp/x-iso8859-1.elc' 6548 0 # r './lisp/x-init.elc' 7600 0 # r './lisp/x-font-menu.elc' 4688 0 # r './lisp/x-faces.elc' 10846 0 # r './lisp/x-compose.elc' 11132 0 # r './lisp/window.elc' 10570 0 # r './lisp/window-xemacs.elc' 14295 0 # r './lisp/win32-native.elc' 4827 0 # r './lisp/widgets-gtk.elc' 2998 0 # r './lisp/widget.elc' 1513 0 # r './lisp/wid-edit.elc' 80364 0 # r './lisp/wid-browse.elc' 6599 0 # r './lisp/view-less.elc' 10634 0 # r './lisp/userlock.elc' 6204 0 # r './lisp/undo-stack.elc' 4299 0 # r './lisp/tty-init.elc' 2568 0 # r './lisp/toolbar.elc' 5836 0 # r './lisp/toolbar-items.elc' 14944 0 # r './lisp/text-props.elc' 7667 0 # r './lisp/text-mode.elc' 4822 0 # r './lisp/term/xterm.elc' 2514 0 # r './lisp/term/wyse50.elc' 2225 0 # r './lisp/term/vt420.elc' 685 0 # r './lisp/term/vt400.elc' 685 0 # r './lisp/term/vt320.elc' 685 0 # r './lisp/term/vt300.elc' 685 0 # r './lisp/term/vt240.elc' 685 0 # r './lisp/term/vt220.elc' 685 0 # r './lisp/term/vt201.elc' 685 0 # r './lisp/term/vt200.elc' 685 0 # r './lisp/term/vt125.elc' 613 0 # r './lisp/term/vt102.elc' 613 0 # r './lisp/term/vt100.elc' 1103 0 # r './lisp/term/vt100-led.elc' 1432 0 # r './lisp/term/vt-control.elc' 1929 0 # r './lisp/term/tvi970.elc' 2439 0 # r './lisp/term/sup-mouse.elc' 3544 0 # r './lisp/term/scoansi.elc' 3392 0 # r './lisp/term/news.elc' 1106 0 # r './lisp/term/lk201.elc' 1686 0 # r './lisp/term/linux.elc' 1033 0 # r './lisp/term/keyswap.elc' 651 0 # r './lisp/term/cygwin.elc' 615 0 # r './lisp/term/bobcat.elc' 617 0 # r './lisp/term/bg-mouse.elc' 6790 0 # r './lisp/term/apollo.elc' 657 0 # r './lisp/term/AT386.elc' 934 0 # r './lisp/syntax.elc' 8687 0 # r './lisp/symbols.elc' 2975 0 # r './lisp/symbol-syntax.elc' 1989 0 # r './lisp/subr.elc' 27684 0 # r './lisp/startup.elc' 31408 0 # r './lisp/specifier.elc' 17910 0 # r './lisp/sound.elc' 4839 0 # r './lisp/simple.elc' 113193 0 # r './lisp/shadow.elc' 4524 0 # r './lisp/setup-paths.elc' 5392 0 # r './lisp/select.elc' 17526 0 # r './lisp/scrollbar.elc' 4096 0 # r './lisp/replace.elc' 19270 0 # r './lisp/register.elc' 8507 0 # r './lisp/rect.elc' 7608 0 # r './lisp/process.elc' 13688 0 # r './lisp/printer.elc' 18823 0 # r './lisp/picture.elc' 20230 0 # r './lisp/paragraphs.elc' 9402 0 # r './lisp/page.elc' 2610 0 # r './lisp/packages.elc' 14148 0 # r './lisp/package-ui.elc' 15745 0 # r './lisp/package-net.elc' 4036 0 # r './lisp/package-info.elc' 2899 0 # r './lisp/package-get.elc' 27691 0 # r './lisp/package-admin.elc' 9844 0 # r './lisp/obsolete.elc' 12784 0 # r './lisp/objects.elc' 9138 0 # r './lisp/mwheel.elc' 2565 0 # r './lisp/multicast.elc' 2079 0 # r './lisp/mule/vietnamese.elc' 10868 0 # r './lisp/mule/viet-chars.elc' 990 0 # r './lisp/mule/thai-xtis.elc' 9100 0 # r './lisp/mule/thai-xtis-chars.elc' 846 0 # r './lisp/mule/mule-x-init.elc' 2917 0 # r './lisp/mule/mule-tty-init.elc' 1045 0 # r './lisp/mule/mule-misc.elc' 4289 0 # r './lisp/mule/mule-init.elc' 1930 0 # r './lisp/mule/mule-help.elc' 1770 0 # r './lisp/mule/mule-coding.elc' 4481 0 # r './lisp/mule/mule-cmds.elc' 26710 0 # r './lisp/mule/mule-charset.elc' 5692 0 # r './lisp/mule/mule-ccl.elc' 29005 0 # r './lisp/mule/mule-category.elc' 7557 0 # r './lisp/mule/misc-lang.elc' 1097 0 # r './lisp/mule/latin.elc' 2385 0 # r './lisp/mule/korean.elc' 2284 0 # r './lisp/mule/kinsoku.elc' 5280 0 # r './lisp/mule/japanese.elc' 4839 0 # r './lisp/mule/hebrew.elc' 1557 0 # r './lisp/mule/greek.elc' 1298 0 # r './lisp/mule/european.elc' 8624 0 # r './lisp/mule/ethiopic.elc' 1507 0 # r './lisp/mule/english.elc' 1076 0 # r './lisp/mule/cyrillic.elc' 13219 0 # r './lisp/mule/custom-load.elc' 686 0 # r './lisp/mule/custom-load.el' 190 0 # r './lisp/mule/chinese.elc' 3964 0 # r './lisp/mule/canna-leim.elc' 1132 0 # r './lisp/mule/auto-autoloads.elc' 8251 0 # r './lisp/mule/auto-autoloads.el' 7730 0 # r './lisp/mule/arabic.elc' 976 0 # r './lisp/msw-select.elc' 1027 0 # r './lisp/msw-mouse.elc' 1265 0 # r './lisp/msw-init.elc' 1567 0 # r './lisp/msw-glyphs.elc' 2260 0 # r './lisp/msw-font-menu.elc' 4298 0 # r './lisp/msw-faces.elc' 4966 0 # r './lisp/movemail.elc' 1226 0 # r './lisp/mouse.elc' 38516 0 # r './lisp/modeline.elc' 16944 0 # r './lisp/mode-motion.elc' 4280 0 # r './lisp/misc.elc' 1091 0 # r './lisp/minibuf.elc' 48682 0 # r './lisp/menubar.elc' 16170 0 # r './lisp/menubar-items.elc' 59720 0 # r './lisp/map-ynp.elc' 4670 0 # r './lisp/loadhist.elc' 3849 0 # r './lisp/loaddefs.elc' 743 0 # r './lisp/list-mode.elc' 14487 0 # r './lisp/lisp.elc' 8359 0 # r './lisp/lisp-mode.elc' 19415 0 # r './lisp/lisp-mnt.elc' 10854 0 # r './lisp/lib-complete.elc' 9164 0 # r './lisp/ldap.elc' 14093 0 # r './lisp/keymap.elc' 11908 0 # r './lisp/keydefs.elc' 12071 0 # r './lisp/itimer.elc' 21082 0 # r './lisp/itimer-autosave.elc' 2429 0 # r './lisp/iso8859-1.elc' 2158 0 # r './lisp/isearch-mode.elc' 35407 0 # r './lisp/info.elc' 66733 0 # r './lisp/indent.elc' 12179 0 # r './lisp/hyper-apropos.elc' 29578 0 # r './lisp/help.elc' 39994 0 # r './lisp/help-nomule.elc' 2613 0 # r './lisp/help-macro.elc' 3681 0 # r './lisp/hash-table.elc' 1482 0 # r './lisp/gutter.elc' 6710 0 # r './lisp/gutter-items.elc' 20016 0 # r './lisp/gui.elc' 3277 0 # r './lisp/gtk.elc' 1322 0 # r './lisp/gtk-widgets.elc' 343057 0 # r './lisp/gtk-widget-accessors.elc' 6593 0 # r './lisp/gtk-select.elc' 1726 0 # r './lisp/gtk-password-dialog.elc' 2173 0 # r './lisp/gtk-package.elc' 814 0 # r './lisp/gtk-mouse.elc' 1618 0 # r './lisp/gtk-marshal.elc' 9606 0 # r './lisp/gtk-iso8859-1.elc' 704 0 # r './lisp/gtk-init.elc' 7551 0 # r './lisp/gtk-glyphs.elc' 1473 0 # r './lisp/gtk-font-menu.elc' 4917 0 # r './lisp/gtk-file-dialog.elc' 5113 0 # r './lisp/gtk-ffi.elc' 2340 0 # r './lisp/gtk-faces.elc' 5299 0 # r './lisp/gtk-extra.elc' 10856 0 # r './lisp/gtk-compose.elc' 677 0 # r './lisp/gpm.elc' 2242 0 # r './lisp/gnuserv.elc' 25399 0 # r './lisp/gnome.elc' 1138 0 # r './lisp/gnome-widgets.elc' 70154 0 # r './lisp/glyphs.elc' 46700 0 # r './lisp/glade.elc' 6357 0 # r './lisp/generic-widgets.elc' 8462 0 # r './lisp/gdk.elc' 15869 0 # r './lisp/frame.elc' 26729 0 # r './lisp/format.elc' 21925 0 # r './lisp/fontl-hooks.elc' 2770 0 # r './lisp/font.elc' 32393 0 # r './lisp/font-menu.elc' 8442 0 # r './lisp/font-lock.elc' 67006 0 # r './lisp/float-sup.elc' 1318 0 # r './lisp/finder.elc' 10210 0 # r './lisp/find-paths.elc' 8010 0 # r './lisp/fill.elc' 19167 0 # r './lisp/files.elc' 77388 0 # r './lisp/files-nomule.elc' 3827 0 # r './lisp/faces.elc' 57681 0 # r './lisp/extents.elc' 3913 0 # r './lisp/events.elc' 4394 0 # r './lisp/etags.elc' 27394 0 # r './lisp/easymenu.elc' 6326 0 # r './lisp/dump-paths.elc' 1845 0 # r './lisp/dragdrop.elc' 11037 0 # r './lisp/disp-table.elc' 4093 0 # r './lisp/disass.elc' 4009 0 # r './lisp/dialog.elc' 20344 0 # r './lisp/dialog-items.elc' 2350 0 # r './lisp/dialog-gtk.elc' 4782 0 # r './lisp/device.elc' 5256 0 # r './lisp/derived.elc' 7926 0 # r './lisp/custom.elc' 18509 0 # r './lisp/custom-load.elc' 3996 0 # r './lisp/custom-load.el' 4546 0 # r './lisp/cus-start.elc' 4812 0 # r './lisp/cus-load.elc' 1296 0 # r './lisp/cus-file.elc' 1300 0 # r './lisp/cus-face.elc' 9337 0 # r './lisp/cus-edit.elc' 88554 0 # r './lisp/cus-dep.elc' 3326 0 # r './lisp/console.elc' 1140 0 # r './lisp/config.elc' 1530 0 # r './lisp/compat.elc' 4612 0 # r './lisp/coding.elc' 9176 0 # r './lisp/code-process.elc' 8213 0 # r './lisp/code-files.elc' 15473 0 # r './lisp/code-cmds.elc' 5126 0 # r './lisp/cmdloop.elc' 12039 0 # r './lisp/cl.elc' 16563 0 # r './lisp/cl-seq.elc' 34175 0 # r './lisp/cl-macs.elc' 92808 0 # r './lisp/cl-extra.elc' 16663 0 # r './lisp/cl-compat.elc' 3766 0 # r './lisp/check-features.elc' 1294 0 # r './lisp/callers-of-rpt.elc' 2292 0 # r './lisp/bytecomp.elc' 93432 0 # r './lisp/bytecomp-runtime.elc' 14335 0 # r './lisp/byte-optimize.elc' 24643 0 # r './lisp/build-report.elc' 12806 0 # r './lisp/buffer.elc' 2414 0 # r './lisp/buff-menu.elc' 14666 0 # r './lisp/blessmail.elc' 1129 0 # r './lisp/behavior.elc' 4087 0 # r './lisp/behavior-defs.elc' 22595 0 # r './lisp/backquote.elc' 5300 0 # r './lisp/autoload.elc' 12890 0 # r './lisp/auto-show.elc' 3761 0 # r './lisp/auto-save.elc' 10631 0 # r './lisp/auto-autoloads.elc' 97833 0 # r './lisp/auto-autoloads.el' 102822 0 # r './lisp/apropos.elc' 12531 0 # r './lisp/alist.elc' 2281 0 # r './lisp/about.elc' 74851 0 # r './lisp/abbrev.elc' 14494 0 # r './info/xemacs.info-9' 50169 0 # r './info/xemacs.info-8' 48821 0 # r './info/xemacs.info-7' 51314 0 # r './info/xemacs.info-6' 41434 0 # r './info/xemacs.info-5' 49011 0 # r './info/xemacs.info-4' 50502 0 # r './info/xemacs.info-3' 50591 0 # r './info/xemacs.info-23' 46444 0 # r './info/xemacs.info-22' 43937 0 # r './info/xemacs.info-21' 50755 0 # r './info/xemacs.info-20' 33005 0 # r './info/xemacs.info-2' 49408 0 # r './info/xemacs.info-19' 26338 0 # r './info/xemacs.info-18' 50982 0 # r './info/xemacs.info-17' 49616 0 # r './info/xemacs.info-16' 51028 0 # r './info/xemacs.info-15' 49868 0 # r './info/xemacs.info-14' 51029 0 # r './info/xemacs.info-13' 45657 0 # r './info/xemacs.info-12' 50844 0 # r './info/xemacs.info-11' 50522 0 # r './info/xemacs.info-10' 49309 0 # r './info/xemacs.info-1' 49148 0 # r './info/xemacs.info' 11919 0 # r './info/xemacs-faq.info-6' 14117 0 # r './info/xemacs-faq.info-5' 49157 0 # r './info/xemacs-faq.info-4' 49058 0 # r './info/xemacs-faq.info-3' 49857 0 # r './info/xemacs-faq.info-2' 50073 0 # r './info/xemacs-faq.info-1' 49611 0 # r './info/xemacs-faq.info' 5573 0 # r './info/widget.info' 51060 0 # r './info/texinfo.info-9' 43863 0 # r './info/texinfo.info-8' 50798 0 # r './info/texinfo.info-7' 51300 0 # r './info/texinfo.info-6' 50084 0 # r './info/texinfo.info-5' 50577 0 # r './info/texinfo.info-4' 51467 0 # r './info/texinfo.info-3' 50877 0 # r './info/texinfo.info-2' 49459 0 # r './info/texinfo.info-12' 36078 0 # r './info/texinfo.info-11' 39645 0 # r './info/texinfo.info-10' 47601 0 # r './info/texinfo.info-1' 48708 0 # r './info/texinfo.info' 10296 0 # r './info/termcap.info-3' 48715 0 # r './info/termcap.info-2' 44269 0 # r './info/termcap.info-1' 49217 0 # r './info/termcap.info' 2114 0 # r './info/term.info' 14951 0 # r './info/standards.info-4' 7795 0 # r './info/standards.info-3' 50550 0 # r './info/standards.info-2' 50664 0 # r './info/standards.info-1' 50917 0 # r './info/standards.info' 2786 0 # r './info/new-users-guide.info-3' 12914 0 # r './info/new-users-guide.info-2' 50230 0 # r './info/new-users-guide.info-1' 50521 0 # r './info/new-users-guide.info' 1926 0 # r './info/lispref.info-9' 51299 0 # r './info/lispref.info-8' 47449 0 # r './info/lispref.info-7' 51033 0 # r './info/lispref.info-6' 50774 0 # r './info/lispref.info-5' 50721 0 # r './info/lispref.info-48' 208738 0 # r './info/lispref.info-47' 16236 0 # r './info/lispref.info-46' 51585 0 # r './info/lispref.info-45' 43209 0 # r './info/lispref.info-44' 48861 0 # r './info/lispref.info-43' 46752 0 # r './info/lispref.info-42' 46742 0 # r './info/lispref.info-41' 51060 0 # r './info/lispref.info-40' 48920 0 # r './info/lispref.info-4' 52106 0 # r './info/lispref.info-39' 50920 0 # r './info/lispref.info-38' 49809 0 # r './info/lispref.info-37' 51506 0 # r './info/lispref.info-36' 48100 0 # r './info/lispref.info-35' 51043 0 # r './info/lispref.info-34' 52193 0 # r './info/lispref.info-33' 49572 0 # r './info/lispref.info-32' 50937 0 # r './info/lispref.info-31' 52356 0 # r './info/lispref.info-30' 48022 0 # r './info/lispref.info-3' 52207 0 # r './info/lispref.info-29' 50516 0 # r './info/lispref.info-28' 52318 0 # r './info/lispref.info-27' 51026 0 # r './info/lispref.info-26' 51222 0 # r './info/lispref.info-25' 51058 0 # r './info/lispref.info-24' 52027 0 # r './info/lispref.info-23' 48831 0 # r './info/lispref.info-22' 48630 0 # r './info/lispref.info-21' 51289 0 # r './info/lispref.info-20' 50394 0 # r './info/lispref.info-2' 50852 0 # r './info/lispref.info-19' 49993 0 # r './info/lispref.info-18' 49925 0 # r './info/lispref.info-17' 49837 0 # r './info/lispref.info-16' 47704 0 # r './info/lispref.info-15' 50362 0 # r './info/lispref.info-14' 51782 0 # r './info/lispref.info-13' 50225 0 # r './info/lispref.info-12' 49919 0 # r './info/lispref.info-11' 50898 0 # r './info/lispref.info-10' 51224 0 # r './info/lispref.info-1' 49117 0 # r './info/lispref.info' 28589 0 # r './info/internals.info-9' 35316 0 # r './info/internals.info-8' 50912 0 # r './info/internals.info-7' 48842 0 # r './info/internals.info-6' 48274 0 # r './info/internals.info-5' 50901 0 # r './info/internals.info-4' 44002 0 # r './info/internals.info-3' 51477 0 # r './info/internals.info-2' 50727 0 # r './info/internals.info-1' 51577 0 # r './info/internals.info' 7099 0 # r './info/info.info' 34141 0 # r './info/external-widget.info' 6096 0 # r './info/emodules.info' 42969 0 # r './info/custom.info' 13619 0 # r './info/cl.info-6' 13225 0 # r './info/cl.info-5' 43748 0 # r './info/cl.info-4' 39161 0 # r './info/cl.info-3' 49888 0 # r './info/cl.info-2' 43946 0 # r './info/cl.info-1' 46306 0 # r './info/cl.info' 3137 0 # p './CHANGES-beta' 35237 1015332285 0100644 # c './CHANGES-msw' 0 1008828489 0100644 # p './ChangeLog' 145341 1015338216 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' 460978 1015338193 0100755 # p './configure.in' 171910 1012837486 0100644 # p './configure.usage' 14983 1010215997 0100644 # p './etc/BETA' 14524 1012828757 0100644 # p './etc/NEWS' 58176 1007402569 0100644 # p './etc/ONEWS' 41836 1012206208 0100644 # c './etc/TUTORIAL.se' 0 1014886959 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' 40922 1015338216 0100644 # p './lib-src/Makefile.in.in' 12424 1008835099 0100644 # p './lib-src/etags.c' 142607 1009179896 0100644 # p './lisp/ChangeLog' 366532 1015338216 0100644 # p './lisp/about.el' 90008 1007970214 0100644 # p './lisp/code-files.el' 20233 1013523880 0100644 # p './lisp/coding.el' 10978 1010656244 0100644 # p './lisp/cus-edit.el' 124956 1008827370 0100644 # p './lisp/cus-face.el' 11478 1008827370 0100644 # p './lisp/cus-start.el' 7393 1011708999 0100644 # p './lisp/dialog-gtk.el' 9485 1008827370 0100644 # p './lisp/dialog.el' 24916 1004418807 0100644 # p './lisp/faces.el' 78338 1012082573 0100644 # p './lisp/files.el' 129745 1010622269 0100644 # p './lisp/find-paths.el' 11332 1007631350 0100644 # p './lisp/font-lock.el' 117444 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/help-nomule.el' 4177 1015334482 0100644 # p './lisp/help.el' 59588 1011708999 0100644 # p './lisp/hyper-apropos.el' 48694 1009503522 0100644 # p './lisp/info.el' 117982 1013431403 0100644 # p './lisp/isearch-mode.el' 76024 1009005658 0100644 # p './lisp/keydefs.el' 26777 1009411076 0100644 # p './lisp/menubar-items.el' 72601 1011708999 0100644 # p './lisp/menubar.el' 27503 1008827371 0100644 # p './lisp/minibuf.el' 92853 1015334482 0100644 # p './lisp/modeline.el' 26059 1010717706 0100644 # p './lisp/mule/european.el' 13332 1010656247 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 1012768415 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/toolbar.el' 8276 1015337706 0100644 # p './lisp/view-less.el' 14718 1008416794 0100644 # p './lisp/wid-edit.el' 126918 1010216000 0100644 # p './lisp/widgets-gtk.el' 4968 1012657199 0100644 # p './lisp/window.el' 15087 1010794790 0100644 # p './lwlib/ChangeLog' 22590 1015338216 0100644 # p './lwlib/xlwscrollbar.c' 52344 1015335566 0100644 # p './man/ChangeLog' 82530 1015338216 0100644 # p './man/Makefile' 7845 1008316206 0100644 # p './man/emodules.texi' 41899 1010004996 0100644 # p './man/external-widget.texi' 5623 1013844339 0100644 # p './man/lispref/glyphs.texi' 60972 1008827377 0100644 # p './man/lispref/intro.texi' 37894 1008316210 0100644 # p './man/lispref/lispref.texi' 53226 1015146591 0100644 # p './man/lispref/objects.texi' 80743 1008316210 0100644 # c './man/lispref/packaging.texi' 0 1015146591 0100644 # p './man/term.texi' 13425 1008444319 0100644 # p './man/xemacs-faq.texi' 249228 1013012826 0100644 # p './man/xemacs/files.texi' 79762 1012817629 0100644 # p './man/xemacs/packages.texi' 29798 1012614789 0100644 # p './man/xemacs/programs.texi' 85489 1008835103 0100644 # p './man/xemacs/xemacs.texi' 46821 1008444321 0100644 # c './modules/ChangeLog' 0 1015338216 0100644 # p './modules/base64/base64.c' 11851 1013806678 0100644 # p './netinstall/ChangeLog' 8760 1015338216 0100644 # p './netinstall/Makefile.in.in' 7352 1008827380 0100644 # p './netinstall/desktop.cc' 13419 1008827380 0100644 # c './netinstall/desktop.h' 0 1008827380 0100644 # p './netinstall/install.cc' 11036 1008827380 0100644 # p './netinstall/localdir.cc' 3185 1004418808 0100644 # p './netinstall/log.cc' 2526 1004418808 0100644 # p './netinstall/msg.cc' 1498 1004418808 0100644 # p './netinstall/net.cc' 3078 1004418808 0100644 # p './netinstall/res.rc' 22771 1004418808 0100644 # p './netinstall/resource.h' 5424 1004418808 0100644 # p './netinstall/source.cc' 2191 1008827380 0100644 # p './netinstall/uninstall.cc' 7830 1008827380 0100644 # p './netinstall/win32.h' 1223 1008827381 0100644 # p './nt/ChangeLog' 41207 1015338216 0100644 # p './nt/installer/Wise/ChangeLog' 480 1015338216 0100644 # p './src/.cvsignore' 225 1008716131 0100644 # p './src/ChangeLog' 468235 1015338216 0100644 # c './src/README.integral-types' 0 1011977186 0100644 # p './src/alloc.c' 119389 1008827384 0100644 # p './src/buffer.c' 103090 1008827385 0100644 # p './src/cmdloop.c' 21222 1011732002 0100644 # p './src/config.h.in' 25889 1010216003 0100644 # p './src/console-gtk.h' 8841 1009139300 0100644 # p './src/device-gtk.c' 21336 1013173461 0100644 # p './src/device-x.c' 63888 1014397947 0100644 # p './src/dialog-msw.c' 22298 1008827385 0100644 # p './src/dired.c' 29386 1008827385 0100644 # p './src/editfns.c' 80089 1008827385 0100644 # p './src/eval.c' 155784 1011732002 0100644 # p './src/event-msw.c' 119828 1011376864 0100644 # p './src/event-stream.c' 164212 1014398040 0100644 # p './src/fileio.c' 131029 1015333238 0100644 # p './src/fns.c' 108475 1013604939 0100644 # p './src/frameslots.h' 6367 1012837492 0100644 # p './src/general-slots.h' 5860 1004418810 0100644 # p './src/glyphs-gtk.c' 80499 1012657373 0100644 # p './src/gtk-xemacs.c' 10279 1012837492 0100644 # p './src/insdel.c' 97942 1014398522 0100644 # p './src/keymap.c' 133937 1010121362 0100644 # p './src/lisp.h' 120761 1011732003 0100644 # p './src/menubar-gtk.c' 35459 1009139301 0100644 # p './src/menubar-msw.c' 29514 1008827387 0100644 # p './src/mule-charset.c' 50429 1010656250 0100644 # p './src/mule-charset.h' 30725 1010656250 0100644 # p './src/nt.c' 54261 1008827387 0100644 # p './src/ntheap.c' 10362 1008827387 0100644 # p './src/process-unix.c' 59687 1010216003 0100644 # p './src/redisplay-gtk.c' 62017 1009139301 0100644 # p './src/scrollbar-msw.c' 15450 1008827388 0100644 # p './src/search.c' 91223 1008827388 0100644 # p './src/select-gtk.c' 13384 1013173461 0100644 # p './src/sysdep.c' 112952 1010216004 0100644 # p './src/syswindows.h' 9832 1004418811 0100644 # c './src/toolbar-common.c' 0 1012837492 0100644 # c './src/toolbar-common.h' 0 1009069860 0100644 # p './src/toolbar-gtk.c' 18658 1009139302 0100644 # p './src/toolbar-x.c' 23486 1012837492 0100644 # p './src/toolbar.c' 58262 1012837492 0100644 # p './src/win32.c' 14684 1008827388 0100644 # p './src/window.c' 200168 1008827388 0100644 # p './src/winslots.h' 10429 1012837492 0100644 # p './tests/ChangeLog' 11208 1015338217 0100644 # p './version.sh' 192 1015338217 0100644 #### End of ApplyPatch data #### #### End of Patch kit [created: Tue Mar 5 23:23:42 2002] #### #### Patch checksum: 26051 916058 20396 #### #### Checksum: 26478 929074 35003 ####