changeset: 4446:c32b3d10c56b202091a1abe4ad924db6535e847b
tag: tip
user: Mike Sperber <sperber(a)deinprogramm.de>
date: Sat Apr 26 16:28:44 2008 +0200
files: src/ChangeLog src/window.c
description:
Fix problem with `resize-minibuffer-mode'.
2008-04-26 Mike Sperber <mike(a)xemacs.org>
* window.c (set_window_pixsize): Round up when we're shrinking,
down when we're growing * to make sure that pairs of grow / shrink
meant to * cancel out actually do cancel out. This fixes a
problem with `resize-minibuffer-mode' where successive grow/shrink
actions are meant to cancel out, but previously didn't.
diff -r 1d41b9bcf74f7ed4ab6e296322a182fe580a95a2 -r c32b3d10c56b202091a1abe4ad924db6535e847b src/ChangeLog
--- a/src/ChangeLog Sun Apr 13 11:18:00 2008 +0200
+++ b/src/ChangeLog Sat Apr 26 16:28:44 2008 +0200
@@ -1,3 +1,11 @@ 2008-04-05 Aidan Kehoe <kehoea@parhasa
+2008-04-26 Mike Sperber <mike(a)xemacs.org>
+
+ * window.c (set_window_pixsize): Round up when we're shrinking,
+ down when we're growing * to make sure that pairs of grow / shrink
+ meant to * cancel out actually do cancel out. This fixes a
+ problem with `resize-minibuffer-mode' where successive grow/shrink
+ actions are meant to cancel out, but previously didn't.
+
2008-04-05 Aidan Kehoe <kehoea(a)parhasard.net>
* depend:
diff -r 1d41b9bcf74f7ed4ab6e296322a182fe580a95a2 -r c32b3d10c56b202091a1abe4ad924db6535e847b src/window.c
--- a/src/window.c Sun Apr 13 11:18:00 2008 +0200
+++ b/src/window.c Sat Apr 26 16:28:44 2008 +0200
@@ -3601,7 +3601,17 @@ set_window_pixsize (Lisp_Object window,
/* All but the last window should have a height which is
a multiple of the default line height. */
if (!NILP (c->next))
- pos = (pos / line_size) * line_size;
+ {
+ /*
+ * Round up when we're shrinking, down when we're growing
+ * to make sure that pairs of grow / shrink meant to
+ * cancel out actually do cancel out.
+ */
+ if (pixel_adj_left < 0)
+ pos = ((pos + line_size -1) / line_size) * line_size;
+ else
+ pos = (pos / line_size) * line_size;
+ }
/* Avoid confusion: don't delete child if it becomes too small */
set_window_pixsize (child, pos + first - last_pos, 1, set_height);
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
I saw this fix that was posted on comp.emacs.xemacs in December 2007.
It doesn't appear to have been applied yet. It fixes a bug that I
introduced in 2002-01-16. Mea culpa!
>>>>> TheSmokeTest wrote:
TheSmokeTest> These are the results from the XEmacs Package Smoketest:
TheSmokeTest> 21.5-nomule -- errors
TheSmokeTest> 21.5-mule -- errors
TheSmokeTest> 21.4-mule -- errors
TheSmokeTest> 21.4-nomule -- errors
We have had this situation now for a while. The showstopper is that tm
requires vm-easymenu which is gone from vm. Removing the require fixes
the build (See patch below). A guick look reveals no other
dependencies to vm-easymenu so my guess is that it was only needed for
making vm happy and with vm no longer having this file it is safe to
drop the require.
Index: tm-vm.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/tm/tm-vm.el,v
retrieving revision 1.2
diff -u -r1.2 tm-vm.el
--- tm-vm.el 18 Dec 2002 23:30:33 -0000 1.2
+++ tm-vm.el 21 Apr 2008 18:47:41 -0000
@@ -39,7 +39,6 @@
(require 'tm-mail)
(require 'vm)
(require 'vm-window)
- (require 'vm-easymenu)
(require 'vm-macro))
(require 'tm-edit)
Yours
--
%% Mats
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
On Tue, Apr 22, 2008 at 5:18 PM, Robert Widhopf-Fenk <hack(a)robf.de> wrote:
> > You are the listed maintainer of VM. Your commit brought this build
> > failure into the system (are you aware of the XEmacs Smoketest?).
>
> Well I heard of them, but I had no idea where exactly to
> get reports from, but Google revealed the following to me
>
> http://labb.contactor.se/~matsl/smoketest/logs/
>
> Is there an email gateway resp. mailing list for the reports?
>
>
> > Do you have any objections to this solution? Do you have a
> > different patch to address the problem?
>
> Was there a patch in the original email?
Here's the patch in question:
Index: xemacs-packages/tm/tm-vm.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/tm/tm-vm.el,v
retrieving revision 1.2
diff -a -u -r1.2 tm-vm.el
--- xemacs-packages/tm/tm-vm.el 2002/12/18 23:30:33 1.2
+++ xemacs-packages/tm/tm-vm.el 2008/04/23 00:11:36
@@ -39,7 +39,6 @@
(require 'tm-mail)
(require 'vm)
(require 'vm-window)
- (require 'vm-easymenu)
(require 'vm-macro))
(require 'tm-edit)
Regards,
Vin Shelton
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
This is a packages patch, the Mercurial metadata are from a local repository
and should be ignored.
comparing with /Sources/packages-current-checked-out
searching for changes
changeset: 7:086e30f832e9
tag: tip
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Sun Apr 20 13:16:55 2008 +0200
summary: Support specifying bases for #'sort-regexp-fields-numerically.
diff -r 13601045291b -r 086e30f832e9 xemacs-packages/xemacs-base/ChangeLog
--- a/xemacs-packages/xemacs-base/ChangeLog Fri Apr 11 20:47:07 2008 +0200
+++ b/xemacs-packages/xemacs-base/ChangeLog Sun Apr 20 13:16:55 2008 +0200
@@ -1,3 +1,14 @@ 2008-02-25 Norbert Koch <viteno@xemacs
+2008-04-20 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * sort.el (sort-regexp-fields-numerically):
+ Support `sort-numeric-base' in #'s-r-f-n, implement the same
+ sniffing of a number's base used in #'sort-numeric-fields, correct
+ and extend the docstring (`sort-fold-case' is not used, the
+ example has been changed to one where numeric sorting is
+ relevant.
+ (sort-numeric-base):
+ Document its use in #'s-r-f-n.
+
2008-02-25 Norbert Koch <viteno(a)xemacs.org>
* Makefile (VERSION): XEmacs package 2.16 released.
diff -r 13601045291b -r 086e30f832e9 xemacs-packages/xemacs-base/sort.el
--- a/xemacs-packages/xemacs-base/sort.el Fri Apr 11 20:47:07 2008 +0200
+++ b/xemacs-packages/xemacs-base/sort.el Sun Apr 20 13:16:55 2008 +0200
@@ -274,7 +274,7 @@ the sort order."
(setq sort-fields-syntax-table table)))
(defcustom sort-numeric-base 10
- "*The default base used by `sort-numeric-fields'."
+ "*Fallback base for `sort-numeric-fields', `sort-regexp-fields-numerically'."
:group 'sort
:type 'integer)
@@ -500,21 +500,26 @@ RECORD-REGEXP specifies the textual unit
RECORD-REGEXP specifies the textual units which should be sorted.
For example, to sort lines RECORD-REGEXP would be \"^.*$\"
KEY specifies the part of each record (ie each match for RECORD-REGEXP)
- is to be used for sorting.
+ which is to be used for sorting.
If it is \"\\\\digit\" then the digit'th \"\\\\(...\\\\)\" match field from
RECORD-REGEXP is used.
If it is \"\\\\&\" then the whole record is used.
Otherwise, it is a regular-expression for which to search within the record.
If a match for KEY is not found within a record then that record is ignored.
+If the match for KEY starts with \"0x\", it specifies hexadecimal as the
+conversion base. A match for KEY starting with \"0\" is interpreted as
+octal; otherwise `sort-numeric-base' is consulted for the conversion base to
+use. You can avoid the automatic detection of a field's base by specifying
+RECORD-REGEXP appropriately; \"0*\" before the start of the KEY will prevent
+detection as octal, and including \"[^xX]\" in the group corresponding to
+KEY will prevent detection as hex.
+
With a negative prefix arg sorts in reverse order.
-The variable `sort-fold-case' determines whether alphabetic case affects
-the sort order.
-
-For example: to sort lines in the region by the first word on each line
- starting with the letter \"f\",
- RECORD-REGEXP would be \"^.*$\" and KEY would be \"\\\\=\\<f\\\\w*\\\\>\""
+For example: to sort lines in the region by the numerical value of the first
+ C hexadecimal constant,
+ RECORD-REGEXP would be \"^.*$\" and KEY would be \"0[xX][0-9A-Fa-f]+\""
;; using negative prefix arg to mean "reverse" is now inconsistent with
;; other sort-.*fields functions but then again this was before, since it
;; didn't use the magnitude of the arg to specify anything.
@@ -529,9 +534,27 @@ For example: to sort lines in the region
(read-string "Regexp specifying key within record: "
nil 'sort-regexp-history)
beg end)))
- (sort-regexp-fields reverse record-regexp key-regexp beg end
- #'(lambda (a b)
- (< (string-to-number a) (string-to-number b)))))
+ (let ((base-sniff-regexp "\\(0[xX]\\)[0-9a-fA-F]\\|\\(0\\)[0-7]"))
+ (sort-regexp-fields reverse record-regexp key-regexp beg end
+ #'(lambda (a b)
+ ;; If I replace #'< with #'max, the warning
+ ;;
+ ;; ** variable base-sniff-regexp bound but not
+ ;; referenced
+ ;;
+ ;; goes away. Byte compiler bug.
+ (< (string-to-number a
+ (if (string-match base-sniff-regexp a)
+ (cond ((match-beginning 1) 16)
+ ((match-beginning 2) 8)
+ (t sort-numeric-base))
+ sort-numeric-base))
+ (string-to-number b
+ (if (string-match base-sniff-regexp b)
+ (cond ((match-beginning 1) 16)
+ ((match-beginning 2) 8)
+ (t sort-numeric-base))
+ sort-numeric-base)))))))
(defvar sort-columns-subprocess t)
--
¿Dónde estará ahora mi sobrino Yoghurtu Nghé, que tuvo que huir
precipitadamente de la aldea por culpa de la escasez de rinocerontes?
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
The partial patch below (which is missing ChangeLog entries, due to
problems that I'm having with patcher) adds full support for building
Carbon XEmacs into our normal configure and make scripts, eliminating
the need for the script carbon/build-app.sh.
To build Carbon XEmacs, the sequence is now:
$ ./configure --prefix=$HOME/Desktop/XEmacs.app --with-carbon --without-kkcc \
--without-mc-alloc --with-mule --without-ldap --enable-error-checking=none \
--with-optimization --with-cflags-optimization=-O2
$ make
$ make install
The major user-visible change is how --prefix is interpreted when
--with-carbon is present.
In this case --prefix will refer to the top of the application bundle, rather
than the parent directory of bindir and friends. It must also end in '.app'.
This means that the user continues to specify the top of the installation tree
via --prefix, even if the underlying structure is different to a normal UNIX
install.
If there is no objection to the change in meaning of --prefix I'll
commit a complete version of this soon.
Malcolm
diff -r 622675caf330 Makefile.in.in
--- a/Makefile.in.in Sat Apr 05 14:41:43 2008 +0200
+++ b/Makefile.in.in Wed Apr 16 16:06:22 2008 +1000
@@ -94,6 +94,16 @@ PROGNAME=@PROGNAME@
PROGNAME=@PROGNAME@
## ==================== Where To Install Things ====================
+
+#ifdef HAVE_CARBON
+## Under carbon this is the top of the application bundle while prefix points
+## to the standard installation tree under
+## <carbon_prefix>/Contents/Resources.
+carbon_prefix=@carbon_prefix@
+carbon_contents=$(carbon_prefix)/Contents
+carbon_resources=$(carbon_contents)/Resources
+carbon_macos=$(carbon_contents)/MacOS
+#endif
## The default location for installation. Everything is placed in
## subdirectories of this directory. The default values for many of
@@ -388,6 +398,15 @@ install-only: ${MAKE_SUBDIR} check-featu
install: all check-features install-arch-dep install-arch-indep
+#ifdef HAVE_CARBON
+install install-only: install-carbon-app
+
+install-carbon-app: mkdir
+ $(INSTALL_DATA) $(srcdir)/carbon/Info.plist $(carbon_contents)
+ $(INSTALL_DATA) $(srcdir)/carbon/PkgInfo $(carbon_contents)
+ $(INSTALL_DATA) $(srcdir)/carbon/Emacs.icns $(carbon_resources)
+#endif
+
install-arch-dep: mkdir
for subdir in ${INSTALL_ARCH_DEP_SUBDIR}; do \
(cd ./$${subdir} && $(MAKE) $(RECURSIVE_MAKE_ARGS) install prefix=${prefix} \
@@ -411,8 +430,8 @@ install-arch-dep: mkdir
-chmod 0755 ${bindir}/${PROGNAME}
#else
# ifdef HAVE_CARBON
- ${INSTALL_PROGRAM} src/${PROGNAME} ${bindir}/../../MacOS/XEmacs
- -chmod 0755 ${bindir}/../../MacOS/XEmacs
+ ${INSTALL_PROGRAM} src/${PROGNAME} $(carbon_macos)/XEmacs
+ -chmod 0755 $(carbon_macos)/XEmacs
cd ${bindir} && $(RM) ./${PROGNAME}-${version} && ${LN_S} ../../MacOS/XEmacs ${PROGNAME}-${version}
cd ${bindir} && $(RM) ./${PROGNAME} && ${LN_S} ${PROGNAME}-${version} ./${PROGNAME}
# else
@@ -502,6 +521,9 @@ mkdir: FRC.mkdir
${mandir} ${bindir} ${datadir} ${libdir} \
#ifdef HAVE_SHLIB
${moduledir} ${sitemoduledir} \
+#endif
+#ifdef HAVE_CARBON
+ $(carbon_macos) \
#endif
${sitelispdir}
diff -r 622675caf330 carbon/Emacs.icns
Binary file carbon/Emacs.icns has changed
diff -r 622675caf330 carbon/Info.plist
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/carbon/Info.plist Wed Apr 16 16:06:22 2008 +1000
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleDocumentTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>*</string>
+ </array>
+ <key>CFBundleTypeName</key>
+ <string>All</string>
+ <key>CFBundleTypeOSTypes</key>
+ <array>
+ <string>****</string>
+ </array>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ </dict>
+ </array>
+ <key>CFBundleExecutable</key>
+ <string>XEmacs</string>
+ <key>CFBundleIconFile</key>
+ <string>Emacs.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>org.xemacs</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>EMAx</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+</dict>
+</plist>
diff -r 622675caf330 carbon/PkgInfo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/carbon/PkgInfo Wed Apr 16 16:06:22 2008 +1000
@@ -0,0 +1,1 @@
+APPLEMAx
\ No newline at end of file
diff -r 622675caf330 carbon/README
--- a/carbon/README Sat Apr 05 14:41:43 2008 +0200
+++ b/carbon/README Wed Apr 16 16:06:22 2008 +1000
@@ -4,9 +4,12 @@ Building Carbon XEmacs
Building Carbon XEmacs
----------------------
-In this directory type:
+In the top level directory of the XEmacs distribution, run the configure
+program as follows:
- sh < build-app.sh
+$ ./configure --prefix=$HOME/Desktop/XEmacs.app --with-carbon --without-kkcc --without-mc-alloc --with-mule --without-ldap --enable-error-checking=none --with-optimization --with-cflags-optimization=-O2
+$ make
+$ make install
Follow the instructions in the section "Installing Packages" below to
install additional packages.
diff -r 622675caf330 carbon/XEmacs.app/Contents/Info.plist
--- a/carbon/XEmacs.app/Contents/Info.plist Sat Apr 05 14:41:43 2008 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleDocumentTypes</key>
- <array>
- <dict>
- <key>CFBundleTypeExtensions</key>
- <array>
- <string>*</string>
- </array>
- <key>CFBundleTypeName</key>
- <string>All</string>
- <key>CFBundleTypeOSTypes</key>
- <array>
- <string>****</string>
- </array>
- <key>CFBundleTypeRole</key>
- <string>Viewer</string>
- </dict>
- </array>
- <key>CFBundleExecutable</key>
- <string>XEmacs</string>
- <key>CFBundleIconFile</key>
- <string>Emacs.icns</string>
- <key>CFBundleIdentifier</key>
- <string>org.xemacs</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleSignature</key>
- <string>EMAx</string>
- <key>CFBundleVersion</key>
- <string>1.0</string>
-</dict>
-</plist>
diff -r 622675caf330 carbon/XEmacs.app/Contents/PkgInfo
--- a/carbon/XEmacs.app/Contents/PkgInfo Sat Apr 05 14:41:43 2008 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-APPLEMAx
\ No newline at end of file
diff -r 622675caf330 carbon/XEmacs.app/Contents/Resources/Emacs.icns
Binary file carbon/XEmacs.app/Contents/Resources/Emacs.icns has changed
diff -r 622675caf330 carbon/build-app.sh
--- a/carbon/build-app.sh Sat Apr 05 14:41:43 2008 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-#!/bin/sh
-
-carbondir="`pwd`"
-
-(cd xpm; make)
-
-cd ..
-
-# It seems necessary since 21.5.27 to recompile the Lisp files or
-# otherwise functions defined for "carbon" are not included properly.
-# Doing a "make extraclean" is the easiest way to get this done.
-./configure
-make extraclean
-
-#./configure --without-kkcc --without-mc-alloc --with-carbon --with-mule --without-ldap --enable-error-checking=none --prefix=${carbondir}/XEmacs.app/Contents/Resources
-#./configure --with-dump-in-exec --with-carbon --with-mule --without-ldap --enable-error-checking=none --prefix=${carbondir}/XEmacs.app/Contents/Resources
-./configure --without-kkcc --without-mc-alloc --with-carbon --with-mule --without-ldap --enable-error-checking=none --with-optimization --with-cflags-optimization=-O2 --prefix=${carbondir}/XEmacs.app/Contents/Resources
-#./configure --with-dump-in-exec --with-carbon --with-mule --without-ldap --enable-error-checking=none --with-optimization --with-cflags-optimization=-O2 --prefix=${carbondir}/XEmacs.app/Contents/Resources
-
-mkdir -p ${carbondir}/XEmacs.app/Contents/MacOS
-make install
-
-echo
-echo "All done."
-echo
-echo "The XEmacs application bundle that is built can be found at"
-echo
-echo " ${carbondir}/XEmacs.app."
-echo
-echo "It can now be moved into any other folder (in its entirety) if"
-echo "necessary. By default, XEmacs will find packages installed in"
-echo
-echo " ~/.xemacs"
-echo
-echo "or"
-echo
-echo " XEmacs.app/Contents/Resources/share."
-echo
-echo "Packages in the second directory are moved along with the"
-echo "application bundle when it is moved."
diff -r 622675caf330 carbon/xpm/Makefile
--- a/carbon/xpm/Makefile Sat Apr 05 14:41:43 2008 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-CC = gcc
-AR = ar r
-RANLIB = ranlib
-RM = rm -f
-# on sysV, define this as cp.
-INSTALL = install -c
-MKDIRHIER = mkdir
-LN = ln -s
-CDEBUGFLAGS= -O
-
-OBJS= data.o hashtab.o misc.o parse.o Attrib.o CrDatFrI.o CrIFrBuf.o RdFToDat.o RdFToI.o Image.o Info.o
-
-CFLAGS= $(CDEBUGFLAGS) $(DEFINES) $(INCLUDES)
-
-all: libXpm.a
-
-clean:
- $(RM) *.o libXpm.a
-
-libXpm.a: $(OBJS)
- $(AR) libXpm.a $(OBJS)
- $(RANLIB) libXpm.a
-
-# Other dependencies.
-data.o: XpmI.h xpm.h
-hashtab.o: XpmI.h xpm.h
-misc.o: XpmI.h xpm.h
-parse.o: XpmI.h xpm.h
-Attrib.o: XpmI.h xpm.h
-CrDatFrI.o: XpmI.h xpm.h
-CrIFrBuf.o: XpmI.h xpm.h
-Image.o: XpmI.h xpm.h
-Info.o: XpmI.h xpm.h
-RdFToDat.o: XpmI.h xpm.h
-RdFToI.o: XpmI.h xpm.h
diff -r 622675caf330 carbon/xpm/Makefile.in.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/carbon/xpm/Makefile.in.in Wed Apr 16 16:06:22 2008 +1000
@@ -0,0 +1,72 @@
+## With the traditional VPATH setting, it is not possible to
+## simultaneously compile in-place and in another directory. The
+## mistaken definition is that *all* dependencies are searched for in
+## the VPATH directory, rather than just the dependencies that are not
+## themselves targets. Thus, if there is an up-to-date .o file in the
+## in-place location, it will not get recompiled in the not-in-place
+## location.
+
+## The GNU Make "vpath" directive continues this tradition, but at
+## least lets you restrict the classes of files that it applies to.
+## This allows us to kludge around the problem.
+
+#ifdef USE_GNU_MAKE
+vpath %.c @srcdir@
+vpath %.h @srcdir@
+#else
+VPATH=@srcdir@
+#endif
+
+CC = gcc
+AR = ar r
+RANLIB = ranlib
+RM = rm -f
+## on sysV, define this as cp.
+INSTALL = install -c
+MKDIRHIER = mkdir
+LN = ln -s
+CDEBUGFLAGS= -O
+
+OBJS= data.o hashtab.o misc.o parse.o Attrib.o CrDatFrI.o CrIFrBuf.o RdFToDat.o RdFToI.o Image.o Info.o
+
+CFLAGS= $(CDEBUGFLAGS) $(DEFINES) $(INCLUDES)
+
+all: libXpm.a
+
+.PHONY: mostlyclean clean distclean realclean extraclean
+.PHONY: distclean-noconfig realclean-noconfig extraclean-noconfig
+mostlyclean:
+ -$(RM) *.o libXpm.a
+clean: mostlyclean
+
+distclean-noconfig: clean
+
+## This is used in making a distribution.
+## Do not use it on development directories!
+distclean: distclean-noconfig
+ -$(RM) GNUmakefile Makefile Makefile.in
+realclean-noconfig: distclean-noconfig
+realclean: distclean
+extraclean-noconfig: realclean-noconfig
+ -$(RM) *~ \#*
+extraclean: realclean
+ -$(RM) *~ \#*
+
+clean mostlyclean realclean extraclean:
+
+libXpm.a: $(OBJS)
+ $(AR) libXpm.a $(OBJS)
+ $(RANLIB) libXpm.a
+
+## Other dependencies.
+data.o: XpmI.h xpm.h
+hashtab.o: XpmI.h xpm.h
+misc.o: XpmI.h xpm.h
+parse.o: XpmI.h xpm.h
+Attrib.o: XpmI.h xpm.h
+CrDatFrI.o: XpmI.h xpm.h
+CrIFrBuf.o: XpmI.h xpm.h
+Image.o: XpmI.h xpm.h
+Info.o: XpmI.h xpm.h
+RdFToDat.o: XpmI.h xpm.h
+RdFToI.o: XpmI.h xpm.h
diff -r 622675caf330 configure
--- a/configure Sat Apr 05 14:41:43 2008 +0200
+++ b/configure Wed Apr 16 16:06:22 2008 +1000
@@ -731,6 +731,7 @@ YFLAGS
YFLAGS
SET_MAKE
GTK_CONFIG
+carbon_prefix
XMKMF
X_CFLAGS
X_PRE_LIBS
@@ -16907,6 +16908,14 @@ _ACEOF
dragndrop_proto="$dragndrop_proto Carbon" && if test "$verbose" = "yes"; then echo " Appending \"Carbon\" to \$dragndrop_proto"; fi
with_dragndrop=yes
fi
+ if test `echo $prefix | sed 's/.*\(\.[^.]*\)$/\1/'` != '.app'; then
+ { { echo "$as_me:$LINENO: error: Under Carbon, the installation prefix must end in .app" >&5
+echo "$as_me: error: Under Carbon, the installation prefix must end in .app" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ carbon_prefix="${prefix}"
+ prefix="$prefix/Contents/Resources"
+
fi
fi
@@ -24055,7 +24064,8 @@ echo "${ECHO_T}" >&6; }
esac
;;
darwin*)
- if test "$with_carbon" == "yes"; then
+ if test "$with_carbon" = "yes"; then
+ MAKE_SUBDIR="carbon/xpm $MAKE_SUBDIR" && if test "$verbose" = "yes"; then echo " Prepending \"carbon/xpm\" to \$MAKE_SUBDIR"; fi
libpath_xpm="-L${srcdir}/carbon/xpm"
incpath_xpm="-I${srcdir}/carbon/xpm"
fi
@@ -24150,10 +24160,10 @@ _ACEOF
_ACEOF
LDFLAGS=""$libpath_xpm" $LDFLAGS" && if test "$verbose" = "yes"; then echo " Prepending \""$libpath_xpm"\" to \$LDFLAGS"; fi
- libs_x=""$libname_xpm" $libs_x" && if test "$verbose" = "yes"; then echo " Prepending \""$libname_xpm"\" to \$libs_x"; fi
CFLAGS=""$incpath_xpm" $CFLAGS" && if test "$verbose" = "yes"; then echo " Prepending \""$incpath_xpm"\" to \$CFLAGS"; fi
XE_CFLAGS=""$incpath_xpm" $XE_CFLAGS" && if test "$verbose" = "yes"; then echo " Prepending \""$incpath_xpm"\" to \$XE_CFLAGS"; fi
- if test "$with_carbon" != "yes"; then
+ if test "$with_carbon" != "yes"; then
+ libs_x=""$libname_xpm" $libs_x" && if test "$verbose" = "yes"; then echo " Prepending \""$libname_xpm"\" to \$libs_x"; fi
{ echo "$as_me:$LINENO: checking for \"FOR_MSW\" xpm" >&5
echo $ECHO_N "checking for \"FOR_MSW\" xpm... $ECHO_C" >&6; }
xe_check_libs="$libname_xpm"
@@ -40532,6 +40542,7 @@ YFLAGS!$YFLAGS$ac_delim
YFLAGS!$YFLAGS$ac_delim
SET_MAKE!$SET_MAKE$ac_delim
GTK_CONFIG!$GTK_CONFIG$ac_delim
+carbon_prefix!$carbon_prefix$ac_delim
XMKMF!$XMKMF$ac_delim
X_CFLAGS!$X_CFLAGS$ac_delim
X_PRE_LIBS!$X_PRE_LIBS$ac_delim
@@ -40558,7 +40569,6 @@ ldap_libs!$ldap_libs$ac_delim
ldap_libs!$ldap_libs$ac_delim
postgresql_libs!$postgresql_libs$ac_delim
lwlib_objs!$lwlib_objs$ac_delim
-canna_libs!$canna_libs$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -40600,6 +40610,7 @@ ac_delim='%!_!# '
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
+canna_libs!$canna_libs$ac_delim
ALLOCA!$ALLOCA$ac_delim
have_esd_config!$have_esd_config$ac_delim
SRC_SUBDIR_DEPS!$SRC_SUBDIR_DEPS$ac_delim
@@ -40676,7 +40687,7 @@ LTLIBOBJS!$LTLIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 74; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 75; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
diff -r 622675caf330 configure.ac
--- a/configure.ac Sat Apr 05 14:41:43 2008 +0200
+++ b/configure.ac Wed Apr 16 16:06:22 2008 +1000
@@ -3263,6 +3263,17 @@ if test "$with_carbon" != "no"; then
XE_APPEND(Carbon, dragndrop_proto)
with_dragndrop=yes
fi
+ dnl XEmacs is installed as an Application bundle, therefore the prefix
+ dnl directory must end in .app
+ if test `echo $prefix | sed ['s/.*\(\.[^.]*\)$/\1/']` != '.app'; then
+ AC_MSG_ERROR([Under Carbon, the installation prefix must end in .app])
+ fi
+ dnl Under carbon, --prefix refers to the top of the application bundle,
+ dnl while the data is installed in <prefix>/Contents/Resources. Adjust
+ dnl the value of $prefix appropriately.
+ carbon_prefix="${prefix}"
+ prefix="$prefix/Contents/Resources"
+ AC_SUBST(carbon_prefix)
fi
fi
@@ -4075,7 +4086,8 @@ if test "$window_system" != "none"; then
;;
dnl Use the mini version of Xpm in the carbon directory.
darwin*)
- if test "$with_carbon" == "yes"; then
+ if test "$with_carbon" = "yes"; then
+ XE_PREPEND(carbon/xpm, MAKE_SUBDIR)
libpath_xpm="-L${srcdir}/carbon/xpm"
incpath_xpm="-I${srcdir}/carbon/xpm"
fi
@@ -4125,11 +4137,11 @@ if test "$window_system" != "none"; then
dnl #### but doesn't actually verify this assumption.
AC_DEFINE(HAVE_XPM)
XE_PREPEND("$libpath_xpm", LDFLAGS)
- XE_PREPEND("$libname_xpm", libs_x)
XE_PREPEND("$incpath_xpm", CFLAGS)
XE_PREPEND("$incpath_xpm", XE_CFLAGS)
dnl Don't define FOR_MSW for Carbon.
- if test "$with_carbon" != "yes"; then
+ if test "$with_carbon" != "yes"; then
+ XE_PREPEND("$libname_xpm", libs_x)
AC_MSG_CHECKING([for "FOR_MSW" xpm])
xe_check_libs="$libname_xpm"
AC_LINK_IFELSE([AC_LANG_PROGRAM([],[XpmCreatePixmapFromData();])],
diff -r 622675caf330 src/Makefile.in.in
--- a/src/Makefile.in.in Sat Apr 05 14:41:43 2008 +0200
+++ b/src/Makefile.in.in Wed Apr 16 16:06:22 2008 +1000
@@ -382,7 +382,12 @@ otherrtls = $(otherobjs:.o=.c.rtl)
otherrtls = $(otherobjs:.o=.c.rtl)
othersrcs = $(otherobjs:.o=.c)
+#ifdef HAVE_CARBON
+## For carbon link with the internal copy of Xpm.
+LIBES = $(lwlib_lib) $(malloclib) $(ld_libs_all) $(lib_gcc) -L../carbon/xpm -lXpm
+#else
LIBES = $(lwlib_lib) $(malloclib) $(ld_libs_all) $(lib_gcc)
+#endif
#ifdef I18N3
mo_file = $(LIB_SRC)/emacs.mo
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
changeset: 4445:1d41b9bcf74f7ed4ab6e296322a182fe580a95a2
tag: tip
user: Mike Sperber <sperber(a)deinprogramm.de>
date: Sun Apr 13 11:18:00 2008 +0200
files: lisp/ChangeLog lisp/window-xemacs.el
description:
Add `set-window-configuration/mapping' and `save-window-excursion/mapping'.
2008-04-13 Henry S. Thompson <ht(a)inf.ed.ac.uk>, Mike Sperber <mike(a)xemacs.org>
* window-xemacs.el (save-window-excursion/mapping,
set-window-configuration/mapping): Add. These function return an
alist mapping the window objects from the original window
configuration to the window objects corresponding to them in the
restored configuration.
(set-window-configuration):
(saved-window):
(root-window->saved-window):
(really-set-window-configuration):
(restore-saved-window): Record the mapping for above functions.
diff -r 715c3ced8fa8333d59834087c41ddc5ca28edf7f -r 1d41b9bcf74f7ed4ab6e296322a182fe580a95a2 lisp/ChangeLog
--- a/lisp/ChangeLog Sat Apr 12 16:41:38 2008 +0200
+++ b/lisp/ChangeLog Sun Apr 13 11:18:00 2008 +0200
@@ -1,3 +1,16 @@ 2008-04-12 Henry S. Thompson <ht(a)inf.ed
+2008-04-13 Henry S. Thompson <ht(a)inf.ed.ac.uk>, Mike Sperber <mike(a)xemacs.org>
+
+ * window-xemacs.el (save-window-excursion/mapping,
+ set-window-configuration/mapping): Add. These function return an
+ alist mapping the window objects from the original window
+ configuration to the window objects corresponding to them in the
+ restored configuration.
+ (set-window-configuration):
+ (saved-window):
+ (root-window->saved-window):
+ (really-set-window-configuration):
+ (restore-saved-window): Record the mapping for above functions.
+
2008-04-12 Henry S. Thompson <ht(a)inf.ed.ac.uk>
* window-xemacs.el (real-split-window, real-delete-window): Define
diff -r 715c3ced8fa8333d59834087c41ddc5ca28edf7f -r 1d41b9bcf74f7ed4ab6e296322a182fe580a95a2 lisp/window-xemacs.el
--- a/lisp/window-xemacs.el Sat Apr 12 16:41:38 2008 +0200
+++ b/lisp/window-xemacs.el Sun Apr 13 11:18:00 2008 +0200
@@ -124,7 +124,8 @@ if a window manager employing virtual de
pixel-left pixel-top pixel-right pixel-bottom
hscroll modeline-hscroll
dedicatedp
- first-hchild first-vchild next-child)
+ first-hchild first-vchild next-child
+ window)
(defstruct window-configuration
frame
@@ -260,6 +261,7 @@ its value is -not- saved."
(bottom (nth 3 edges)))
(let ((saved-window
(make-saved-window
+ :window window
:currentp (eq window (selected-window (window-frame window)))
:minibufferp (eq window (minibuffer-window (window-frame window)))
:minibuffer-scrollp (eq window minibuffer-scroll-window)
@@ -290,10 +292,39 @@ its value is -not- saved."
(copy-marker (mark-marker t buffer)))))
saved-window))))
+(defmacro save-window-excursion/mapping (&rest body)
+ "Execute body, preserving window sizes and contents.
+Restores which buffer appears in which window, where display starts,
+as well as the current buffer.
+Return alist mapping old windows to new windows.
+This alist maps the originally captured windows to the windows that correspond
+to them in the restored configuration. It does not include entries for
+windows that have not changed identity.
+Does not restore the value of point in current buffer."
+ (let ((window-config (gensym 'window-config))
+ (mapping (gensym 'mapping)))
+ `(let ((,window-config (current-window-configuration))
+ (,mapping))
+ (unwind-protect
+ (progn ,@body)
+ (setq ,mapping (set-window-configuration/mapping ,window-config)))
+ ,mapping)))
+
(defun set-window-configuration (configuration)
"Set the configuration of windows and buffers as specified by CONFIGURATION.
CONFIGURATION must be a value previously returned
by `current-window-configuration'."
+ (set-window-configuration/mapping configuration)
+ nil) ; make sure nobody relies on mapping return value
+
+(defun set-window-configuration/mapping (configuration)
+ "Set the configuration of windows and buffers as specified by CONFIGURATION.
+CONFIGURATION must be a value previously returned
+by `current-window-configuration'.
+Return alist mapping old windows to new windows.
+This alist maps the originally captured windows to the windows that correspond
+to them in the restored configuration. It does not include entries for
+windows that have not changed identity."
(let ((frame (window-configuration-frame configuration)))
(if (and (frame-live-p frame)
(not (window-configuration-equal configuration
@@ -301,7 +332,8 @@ by `current-window-configuration'."
(really-set-window-configuration frame configuration))))
(defun really-set-window-configuration (frame configuration)
- "Set the window configuration CONFIGURATION on live frame FRAME."
+ "Set the window configuration CONFIGURATION on live frame FRAME.
+Return alist mapping old windows to new windows."
;; avoid potential temporary problems
(setq window-min-width 0)
(setq window-min-height 0)
@@ -332,22 +364,26 @@ by `current-window-configuration'."
;; the selected window
(select-window (minibuffer-window frame))
- (let ((window-configuration-current-window nil))
+ (let ((window-configuration-current-window nil)
+ (mapping (list nil))) ; poor man's box
+
(declare (special window-configuration-current-window))
(restore-saved-window configuration
root-window
(window-configuration-saved-root-window configuration)
- 'vertical)
+ 'vertical
+ mapping)
(if window-configuration-current-window
- (select-window window-configuration-current-window))))
-
- (setq window-min-width (window-configuration-min-width configuration))
- (setq window-min-height (window-configuration-min-height configuration))
-
- (let ((buffer (window-configuration-current-buffer configuration)))
- (if (buffer-live-p buffer)
- (set-buffer buffer)
- (set-buffer (car (buffer-list))))))
+ (select-window window-configuration-current-window))
+
+ (setq window-min-width (window-configuration-min-width configuration))
+ (setq window-min-height (window-configuration-min-height configuration))
+
+ (let ((buffer (window-configuration-current-buffer configuration)))
+ (if (buffer-live-p buffer)
+ (set-buffer buffer)
+ (set-buffer (car (buffer-list)))))
+ (car mapping))))
(defun set-window-configuration-frame-size (configuration)
"Restore the frame size of a window configuration."
@@ -381,8 +417,14 @@ by `current-window-configuration'."
((window-first-vchild window)
(window-reduce-to-one (window-first-vchild window)))))
-(defun restore-saved-window (configuration window saved-window direction)
- "Within CONFIGURATION, restore WINDOW to the state of SAVED-WINDOW."
+(defun restore-saved-window (configuration window saved-window direction mapping)
+ "Within CONFIGURATION, restore WINDOW to the state of SAVED-WINDOW.
+MAPPING is a one-element list whose element is an old-window-to-new-window
+mapping, which this function will extend."
+ (if (not (eq (saved-window-window saved-window) window))
+ (rplaca mapping
+ (cons (cons (saved-window-window saved-window) window)
+ (car mapping))))
(cond
((and (saved-window-next-child saved-window)
(not (saved-window-minibufferp (saved-window-next-child saved-window))))
@@ -395,7 +437,8 @@ by `current-window-configuration'."
(restore-saved-window configuration
(window-next-child window)
(saved-window-next-child saved-window)
- direction))
+ direction
+ mapping))
((not (saved-window-minibufferp saved-window))
(restore-saved-window-parameters configuration window saved-window)))
@@ -403,12 +446,14 @@ by `current-window-configuration'."
(restore-saved-window configuration
window
(saved-window-first-hchild saved-window)
- 'horizontal))
+ 'horizontal
+ mapping))
(if (saved-window-first-vchild saved-window)
(restore-saved-window configuration
window
(saved-window-first-vchild saved-window)
- 'vertical)))
+ 'vertical
+ mapping)))
(defun restore-saved-window-parameters (configuration window saved-window)
"Restore the window parameters stored in SAVED-WINDOW on WINDOW."
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
changeset: 4444:715c3ced8fa8333d59834087c41ddc5ca28edf7f
user: Mike Sperber <sperber(a)deinprogramm.de>
date: Sat Apr 12 16:41:38 2008 +0200
files: lisp/ChangeLog lisp/window-xemacs.el
description:
Use `real-split-window', `real-delete-window' in window-config code.
2008-04-12 Henry S. Thompson <ht(a)inf.ed.ac.uk>
* window-xemacs.el (real-split-window, real-delete-window): Define
these to the original definitions of `split-window' and
`delete-window', and use them in the window-configuration code to
make sure it doesn't get affected by advice to these functions.
diff -r e7b3a3266356537ddd9926ac0aadf7cb43a49ed6 -r 715c3ced8fa8333d59834087c41ddc5ca28edf7f lisp/ChangeLog
--- a/lisp/ChangeLog Thu Apr 10 00:31:27 2008 +0200
+++ b/lisp/ChangeLog Sat Apr 12 16:41:38 2008 +0200
@@ -1,3 +1,10 @@ 2008-04-10 Aidan Kehoe <kehoea@parhasa
+2008-04-12 Henry S. Thompson <ht(a)inf.ed.ac.uk>
+
+ * window-xemacs.el (real-split-window, real-delete-window): Define
+ these to the original definitions of `split-window' and
+ `delete-window', and use them in the window-configuration code to
+ make sure it doesn't get affected by advice to these functions.
+
2008-04-10 Aidan Kehoe <kehoea(a)parhasard.net>
* help.el (describe-function-1):
diff -r e7b3a3266356537ddd9926ac0aadf7cb43a49ed6 -r 715c3ced8fa8333d59834087c41ddc5ca28edf7f lisp/window-xemacs.el
--- a/lisp/window-xemacs.el Thu Apr 10 00:31:27 2008 +0200
+++ b/lisp/window-xemacs.el Sat Apr 12 16:41:38 2008 +0200
@@ -134,6 +134,10 @@ if a window manager employing virtual de
minibuffer-pixel-height
min-width min-height
saved-root-window)
+
+; make sure we don't get affected by harmful advice
+(fset 'real-split-window (symbol-function 'split-window))
+(fset 'real-delete-window (symbol-function 'delete-window))
(defun window-configuration-equal (conf-1 conf-2)
"Returns a boolean indicating whether the two given configurations
@@ -369,7 +373,7 @@ by `current-window-configuration'."
(while window
(if (window-live-p window)
(let ((next (window-next-child window)))
- (delete-window window)
+ (real-delete-window window)
(setq window next)))))
(cond
((window-first-hchild window)
@@ -383,9 +387,9 @@ by `current-window-configuration'."
((and (saved-window-next-child saved-window)
(not (saved-window-minibufferp (saved-window-next-child saved-window))))
(cond ((eq direction 'vertical)
- (split-window window nil nil))
+ (real-split-window window nil nil))
((eq direction 'horizontal)
- (split-window window nil t)))
+ (real-split-window window nil t)))
(if (not (saved-window-minibufferp saved-window))
(restore-saved-window-parameters configuration window saved-window))
(restore-saved-window configuration
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches