- local shift_old
- for _,v in ipairs(info[sid]) do
- if v[1]=='box' then
- shift_old = v[2](
- getfield(b,'width'), getfield(b, 'height'), getfield(b, 'depth'))
- break
+ local bw, bh, bd
+ = getfield(b,'width'), getfield(b, 'height'), getfield(b, 'depth')
+ local sw, sh, sd
+ = getfield(s,'width'), getfield(s, 'height'), getfield(s, 'depth')
+ -- re-calculate shift and kern
+ for i,v in ipairs(info[sid]) do
+ if getid(sl)==id_kern then
+ setfield(sl, 'kern', v[2](bw,bh,bd,sw,sh,sd) )
+ elseif getid(sl)==sid then
+ setfield(sl, 'shift', v[2](bw,bh,bd,sw,sh,sd) )