Sawfish on 64bit platforms

There is an obvious bug in "wm-spec.jl".  Obvious, yet took me some
time, so I'm writing here so there's at least a record of this, and
maybe someone will hack a solution.

The problem is that the file is using `#xffffffff' in several places,
which doesn't work on 64 bit platforms.  This shows up later as a

  *** Bad argument: #<subr make-vector>, 73786976294838206464, 1

The problem is that one of these numbers finds its way to a workspace
number, which makes sawfish want to allocate enough workspaces for 0
to that number.

1. A cheap non-solution if anyone runs into this is to edit this file
   and use `#xffffffff' instead.

2. A better solution is to have some flag (in C) that tells you if
   you're on 32 or 64, and use it.

3. A real solution is to change the functions that pull out X data and
   make them create signed numbers instead of unsigned ones.  This
   means that numbers bigger than 2147483647 cannot be used on 32bit
   platforms, but I don't expect to see any use for such number.

   Once this is done, "wm-spec.jl" should be modified to use -1, and
   everything will be fine.

(BTW, looks like this is the only place that has that literal number
around, so I don't think that anything else would need to change.)

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                         Maze is Life!

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]