When xfd(1x) was updated to support Xft and fonts w/ glyph indices > 0xffff one line was missed. In xfd.c / change_page() start is declared inline as Dimension. As such, all changes to the start glyph's index are masked & 0xffff. The attached diff corrects this by a s/Dimension/unsigned long/ on that line.
Created attachment 2790 [details] [review] xfd.c patch to not maks start glyph index AND 0xFFFF
Forgot to add: I made the diff against the version under xapps HEAD. It should apply against every version in the tree that may end up in a release....
There is one more stop in change_page() that needs updating. It has this code: if (!page || newstart != oldstart) { unsigned int row = (unsigned int) ((newstart >> 8) & 0xff); unsigned int col = (unsigned int) (newstart & 0xff); XtSetArg (arg, XtNlabel, buf); sprintf (buf, xfd_resources.start_format, newstart, row, col); row,col are still limited to < 65536. The default format string uses %d for row and col, so if row isn't masked with & 0xff it'll be almost valid. That is probably the only backward-compatable way to do it, given that the format string is done as a resource....
Created attachment 2791 [details] [review] unmask row to allow row*0xff+col == start
changed product from xapps to xorg and reassigned to owner of xorg (team I presume?)
applied to head, thanks!
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.