Subject: Re: bug#36337: 26.1; XBM images are sometimes not displayed correctly

From: Eli Zaretskii <[email-masked]>
Date: Fri, 28 Jun 2019 10:57:56 +0300

> From: Pip Cet <[email-masked]>
> Date: Sun, 23 Jun 2019 19:16:04 +0000
> Cc: [email-masked], [email-masked]
> 
> > Or maybe we should have a variant of make-bool-vector that accepts 2
> > dimension s instead of just one?
> 
> I don't really see how that would be generally useful, to be honest.

For one, it would be useful in this particular case.  Or would you
rather require the width of XBM be an integral multiple of 8?

> In fact, I just played around with removing bool vector support
> entirely.
> 
> > > (However, do we want to encourage people to use bool vectors?)
> > Why not?
> 
> We seem to lack even very basic functions for interacting with bool
> vectors, and hardly anyone appears to be using them. Even the :stipple
> face property doesn't. Emacs starts up fine with bool vector support
> removed. We can use vectors of nil/t (in most cases) or unibyte
> strings or bignums (which have arbitrary size limits now, but
> bigbignums would be just a few lines of code, I think).
> 
> And people _think_ bool vectors have a natural presentation as bytes,
> but they don't, because some people start with the most significant
> bit.
> 
> So I just don't see where bool vectors fit in.

I'm sorry, but I object to removing a feature that has been with us
since Emacs 19, for which we installed new operations just recently in
Emacs 24.  Emacs is too stable a program to remove such basic features
because we cannot immediately see where they fit in.  Please consider
them as "fitting in" by definition; we can only remove them if there
are very good _positive_ reasons for removal, not because we cannot
find reasons _not_ to remove them.

> > Evidently, it's convenient in this particular use case.
> 
> Is the convenience worth a thousand lines of code (much of it C) and
> documentation?

Not necessarily; it might mean that the proposed solution is not the
best one.

What you propose is not what I think I had in mind.  I meant to extend
make-bool-vector (or make a new function, if extending proves
inconvenient or inelegant) that generates a bool-vector given 2
dimensions, not one.  Then such vectors could be used to create XBM
images of arbitrary dimensions.  We could even call this new function
something like make-xbm-data or somesuch, if its utility is limited to
XBM images.

Thanks.