Dear Bug Team,
here is a bug report for a displaying failure for adjacent images.
Tested with XEmacs 21.4.13 for Windows (see system-infos at the end).
Please take a look at the following short example code to demonstrate
the mysterious (and IMHO wrong) behavior of inserting adjacent images.
(defun add-image-glyph-maybe (start len str image-icon)
"Add IMAGE-ICON to STR which is a string. If IMAGE-ICON is not nil and has a
value \(which must be an image in the sense of \(X)Emacs) then add this
image to STR otherwise do nothing. Always return STR."
(if (and image-icon (symbol-value image-icon))
(add-text-properties (+ start len) start
(list 'end-glyph (symbol-value image-icon)
'rear-nonsticky (list 'display)
'invisible t
'detachable t)
str))
str)
(defun demonstrate-glyph-behavior (&optional with-space-between)
"Insert in current buffer at point two images."
(interactive "P")
(let ((image-str-1 " |")
(image-str-2 "-"))
(insert (add-image-glyph-maybe 0 2 image-str-1
'klaus-xemacs-icon2))
(if with-space-between
(insert " "))
(insert (add-image-glyph-maybe 0 1 image-str-2
'klaus-xemacs-icon3))))
(defvar klaus-xemacs-icon2
(widget-glyph-find "xemacs-icon2" "icon2"))
(defvar klaus-xemacs-icon3
(widget-glyph-find "xemacs-icon3" "icon3"))
To test this just load this code and then run `demonstrate-glyph-behavior'.
If you run it with prefix-arg then the string with the first image will be
inserted, then a space and then the string with the second image - and all
is OK.
But if you run it without prefix-arg then we try to insert the two
strings with the image-properties directly one after another - so the images
should be displayed adjacently. But the effect is that klaus-xemacs-icon3 masks
klaus-xemacs-icon2. This is definitely not the desired hehavior.
Is this a bug in the image-display of XEmacs or is there something wrong in the
usage of images in the example-code above? If the latter is true, how
the code has to be changed so the adjacent images are displayed correctly?
Here is another code where widgets are used and which shows the same wrong
behavior:
(progn
(widget-insert "icon2 & icon3 on two lines (OK):\n")
(widget-create
'(list
(item :tag "icon2" :tag-glyph "xemacs-icon2")
(item :tag "icon3" :tag-glyph "xemacs-icon3")
))
(widget-insert "\nicon2 & icon3 on the same line (Failed):\n")
(widget-create
'(list
(item :format "%t" :tag "icon2" :tag-glyph
"xemacs-icon2")
(item :format "%t" :tag "icon3" :tag-glyph
"xemacs-icon3")
))
(widget-insert "\n"))
Just evaluating the above expression in the *scratch* buffer shows the
issue!
XEmacs fails to show icon2 and icon3 on the same line. It seems that
icon2 is masked by icon3.
Thanks a lot,
Klaus Berndl
================================================================
System Info to help track down this bug:
----------------------------------------
uname -a: CYGWIN_NT-5.0 TSUNAMI 1.3.20(0.73/3/2) 2003-02-08 12:10 i686 unknown unknown
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'
XEmacs 21.4.13 "Rational FORTRAN" configured for `i686-pc-cygwin'.
Compilation / Installation:
Source code location: /development/xemacs/xemacs-21.4-release
Installation prefix: /usr/local
Operating system description file: `s/cygwin32.h'
Machine description file: `m/intel386.h'
Compiler: gcc
-I/usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../include/noX
-I/usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../include/noX -g -O3 -Wall -Wno-switch
-Winline -Wmissing-prototypes -Wsign-compare -Wshadow -Wpointer-arith
Relocating allocator for buffers: no
GNU version of malloc: yes
Window System:
Compiling in support for the Microsoft window system.
Using MS-Windows menubars.
Using MS-Windows scrollbars.
Using MS-Windows dialog boxes.
Using MS-Windows native widgets.
Compiling in support for Drag'n'Drop (EXPERIMENTAL).
- Drag'n'Drop prototype: msw.
TTY:
Compiling in support for ncurses.
Images:
Compiling in support for GIF images (builtin).
Compiling in support for XPM images.
Compiling in support for PNG images.
Compiling in support for JPEG images.
Compiling in support for TIFF images.
Compiling in support for X-Face message headers.
Sound:
Compiling in support for sound (native).
Databases:
Compiling in support for GNU DBM.
Internationalization:
Compiling in support for file coding.
Mail:
Compiling in support for POP mail retrieval.
Other Features:
Inhibiting IPv6 canonicalization at startup.
Compiling in support for dynamic shared object modules.
Load-Path Lisp Shadows:
----------------------
(/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/tree-buffer
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/tree-buffer
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/silentcomp
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/silentcomp
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-winman-support
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-winman-support
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-util
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-util
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-upgrade
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-upgrade
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-tod
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-tod
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-speedbar
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-speedbar
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-navigate
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-navigate
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-mode-line
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-mode-line
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-layout
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-layout
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-layout-defs
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-layout-defs
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-jde
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-jde
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-help
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-help
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-face
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-face
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-examples
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-examples
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-eshell
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-eshell
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-cycle
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-cycle
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-create-layout
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-create-layout
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-compilation
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-compilation
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/ecb/ecb-autogen
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/ecb/ecb-autogen
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/winring
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/edit-utils/winring
/c/Programme/XEmacs/lib/xemacs/site-packages/lisp/tree-widget/tree-widget
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/jde/tree-widget
/c/Programme/XEmacs/lib/xemacs/xemacs-packages/lisp/build/build-report
/c/Programme/XEmacs/lib/xemacs-21.4.13/lisp/build-report)
Installed XEmacs Packages:
-------------------------
((zenirc:version 1.13 :type regular)
(xslt-process :version 1.11 :type regular)
(xslide :version 1.08 :type regular)
(xemacs-devel :version 1.58 :type single-file)
(xemacs-base :version 1.81 :type regular)
(x-symbol :version 1.05 :type regular)
(view-process :version 1.12 :type regular)
(vhdl :version 1.17 :type regular)
(vc-cc :version 1.21 :type regular)
(vc :version 1.37 :type regular)
(tramp :version 1.16 :type regular)
(tpu :version 1.13 :type regular)
(tooltalk :version 1.14 :type regular)
(tm :version 1.36 :type regular)
(time :version 1.13 :type regular)
(textools :version 1.14 :type regular)
(text-modes :version 1.66 :type single-file)
(texinfo :version 1.24 :type regular)
(strokes :version 1.09 :type regular)
(speedbar :version 1.26 :type regular)
(sounds-wav :version 1.11 :type regular)
(sounds-au :version 1.11 :type regular)
(sml-mode :version 0.09 :type regular)
(slider :version 1.14 :type regular)
(sh-script :version 1.17 :type regular)
(sgml :version 1.09 :type regular)
(semantic :version 1.17 :type regular)
(scheme :version 1.13 :type regular)
(sasl :version 1.13 :type regular)
(ruby-modes :version 1.01 :type regular)
(python-modes :version 1.02 :type single-file)
(psgml-dtds :version 1.02 :type regular)
(psgml :version 1.41 :type regular)
(ps-print :version 1.08 :type regular)
(prog-modes
:version
1
.89
:type
single-file)
(pgg :version 1.03 :type regular)
(perl-modes :version 1.04 :type single-file)
(pcomplete :version 1.02 :type regular)
(pcl-cvs :version 1.64 :type regular)
(pc :version 1.25 :type single-file)
(os-utils :version 1.32 :type single-file)
(ocaml :version 0.04 :type regular)
(net-utils :version 1.32 :type single-file)
(mmm-mode :version 1.0 :type regular)
(mailcrypt :version 2.12 :type regular)
(mail-lib :version 1.62 :type regular)
(jde :version 1.45 :type regular)
(ispell :version 1.24 :type regular)
(ilisp :version 1.32 :type regular)
(igrep :version 1.11 :type regular)
(idlwave :version 1.28 :type regular)
(ibuffer :version 1.08 :type regular)
(hm--html-menus :version 1.21 :type regular)
(haskell-mode :version 1.05 :type regular)
(gnus :version 1.71 :type regular)
(gnats :version 1.15 :type regular)
(fsf-compat :version 1.12 :type single-file)
(frame-icon :version 1.1 :type regular)
(fortran-modes :version 1.02 :type single-file)
(forms :version 1.14 :type regular)
(footnote :version 1.15 :type regular)
(eudc :version 1.38 :type regular)
(eterm :version 1.14 :type regular)
(ess :version 1.04 :type regular)
(eshell :version 1.05 :type regular)
(emerge :version 1.1 :type regular)
(elib :version 1.1 :type single-file)
(eieio :version 1.04 :type regular)
(efs :version 1.31 :type regular)
(edit-utils :version 2.07 :type single-file)
(ediff :version 1.47 :type regular)
(edebug :version 1.19 :type regular)
(ecb :version 1.12 :type regular)
(dired :version 1.14 :type regular)
(debug :version 1.16 :type regular)
(cc-mode :version 1.33 :type regular)
(calendar :version 1.21 :type regular)
(calc :version 1.23 :type regular)
(c-support :version 1.17 :type single-file)
(build :version 1.1 :type regular))
Installed Modules:
-----------------
Features:
--------
(mail-abbrevs xemacsbug shadow sendmail rfc822 view-less view
hyper-apropos semantic-el efs-cu ecb-layout-defs cus-edit cus-load ecb
edmacro ecb-winman-support ecb-autogen autoload ecb-tod ecb-cycle
ecb-eshell ecb-navigate ecb-help ecb-jde efc ecb-layout compile
ecb-create-layout ecb-mode-line ecb-compilation ecb-speedbar ecb-face
tree-buffer overlay semantic-load semantic-ia-sb semantic-analyze
semantic-ctxt semantic-cb eieio-base eieio-speedbar eieio-custom
wid-edit speedbar sb-image dframe eieio semantic-util-modes timer
semantic-util semantic assoc working ecb-upgrade ecb-util advice
advice-preload font-lock cus-face zenirc-autoloads
xslt-process-autoloads xslide-autoloads xemacs-devel-autoloads
xemacs-base-autoloads x-symbol-autoloads view-process-autoloads
vhdl-autoloads vc-cc-autoloads vc-autoloads tramp-autoloads
tpu-autoloads tooltalk-autoloads tm-autoloads time-autoloads
textools-autoloads text-modes-autoloads texinfo-autoloads
strokes-autoloads speedbar-autoloads sounds-wav-autoloads
sounds-au-autoloads sml-mode-autoloads slider-autoloads
sh-script-autoloads sgml-autoloads semantic-autoloads scheme-autoloads
sasl-autoloads ruby-modes-autoloads python-modes-autoloads
psgml-dtds-autoloads psgml-autoloads ps-print-autoloads
prog-modes-autoloads pgg-autoloads perl-modes-autoloads
pcomplete-autoloads pcl-cvs-autoloads pc-autoloads os-utils-autoloads
ocaml-autoloads net-utils-autoloads mmm-mode-autoloads
mailcrypt-autoloads mail-lib-autoloads jde-autoloads ispell-autoloads
ilisp-autoloads igrep-autoloads idlwave-autoloads ibuffer-autoloads
hm--html-menus-autoloads haskell-mode-autoloads gnus-autoloads
gnats-autoloads fsf-compat-autoloads frame-icon-autoloads
fortran-modes-autoloads forms-autoloads footnote-autoloads
eudc-autoloads eterm-autoloads ess-autoloads eshell-autoloads
emerge-autoloads elib-autoloads eieio-autoloads efs-autoloads
edit-utils-autoloads ediff-autoloads edebug-autoloads ecb-autoloads
dired-autoloads debug-autoloads cc-mode-autoloads calendar-autoloads
calc-autoloads c-support-autoloads build-autoloads lisp-autoloads
loadhist auto-show fontl-hooks code-cmds gutter-items menubar-items
x-menubar dragdrop mode-motion mouse itimer auto-save lisp-mode
easymenu iso8859-1 page buff-menu lib-complete help-nomule cus-file
derived frame text-props obsolete cus-start custom widget cl-extra
mini-cl cl cl-19 packages backquote very-early-lisp file-coding
mswindows-scrollbars mswindows tty-frames tty toolbar native-sound
scrollbar unix-processes multicast network-streams subprocesses
modules menu-accelerator-support menubar dbm md5 xemacs gutter tiff
png gif jpeg xface xpm xbm lisp-float-type cygwin32 dragdrop-api
dialog devices window-system base64)
Recent keystrokes:
-----------------
button1 button1up button1 button1up button1 button1up
C-end button1 button1up C-h v RET C-x 0 down down down
down down C-u M-x d e m TAB RET C-x u M-x up RET C-x
u down Sh-down Sh-down Sh-down Sh-down Sh-down up up
up up C-x C-s button1 button1up button1 button1up button1
button1up misc-user
Recent messages (most recent first):
-----------------------------------
Loading xemacsbug...done
Loading xemacsbug...
Loading view-less...done
Loading view-less...
Loading semantic-el...done
init.el:
[######################################################################################################################################]
... done
Loading semantic-el...
Loading efs-cu...done
Loading efs-cu...
There are no incompatible or renamed options!
The ECB is now activated.
Klausi: Upgrading all renamed options...curr-version: 1.97
Klausi: Upgrading all incompatible options...curr-version: 1.97
Loading customization dependencies...done
Loading customization dependencies...
Loading edmacro...done
Loading edmacro...
ECB 1.97 uses semantic 1.4.2, eieio 0.17 and speedbar 0.14beta4.
Loading advice...done
Loading advice...