screen: Fix screen equality comparison (FS#1151)
commit0bdaed2704c3b6315366f6c1f3d098cf707febe6
authorUli Schlachter <psychon@znc.in>
Fri, 4 Oct 2013 13:24:09 +0000 (4 15:24 +0200)
committerUli Schlachter <psychon@znc.in>
Fri, 4 Oct 2013 13:24:09 +0000 (4 15:24 +0200)
tree3524793f6f759eed3aea3adc0424db8243214815
parented66fda1f1d390db18383810c6f91e5aec6ebf16
screen: Fix screen equality comparison (FS#1151)

We did some black magic which broke and was replaced with more black magic. This
now broke using screen objects as table indexes:

  $ echo 'local l, s = {}, screen[1] ; l[s] = 42 ; return l[s]' | awesome-client
  double 42
  $ echo 'local l, s = {}, screen[1] ; l[s] = 42 ; return l[screen[1]]' | awesome-client
  <no output>

Fix this by using just a single lua userdata for representing a screen object.

It would be even better if screens were allocated with lua, but that doesn't
really provide any benefits right now and would be more complicated...

Signed-off-by: Uli Schlachter <psychon@znc.in>
screen.c
screen.h