Comment 2 for bug 1317825

madHamish (antoine-dymond) wrote :

work around:

$ sudo apt-get remove xfig
$ apt-get build-dep xfig

get the Trusty packages
$ wget http://archive.ubuntu.com/ubuntu/pool/universe/x/xfig/xfig_3.2.5.c-1ubuntu1.dsc
$ wget http://archive.ubuntu.com/ubuntu/pool/universe/x/xfig/xfig_3.2.5.c.orig.tar.gz
$ wget http://archive.ubuntu.com/ubuntu/pool/universe/x/xfig/xfig_3.2.5.c-1ubuntu1.debian.tar.gz
$ dpkg-source -x xfig_3.2.5.c-1ubuntu1.dsc

now time to patch the dash_dot line code
$ cd xfig-3.2.5.c/
modify w_drawprim.c as follows :
$ diff w_drawprim.c_org w_drawprim.c
1302a1303
> static unsigned char dash_list_8[8] = {255, 255, 255, 255, 255, 255, 255, 255};
1403c1404
< dash_list[op][il] = (char) 255; /* too large for X! */
---
> dash_list_8[il] = (char) 255; /* too large for X! */
1405c1406
< dash_list[op][il] = (char) round(fl[il] * style_val *
---
> dash_list_8[il] = (char) round(fl[il] * style_val *
1408c1409
< dash_list[op][il] = (char)display_zoomscale;
---
> dash_list_8[il] = (char)display_zoomscale;
1410,1411c1411,1412
< if (dash_list[op][il]==0) /* take care for rounding to zero ! */
< dash_list[op][il]=1;
---
> if (dash_list_8[il]==0) /* take care for rounding to zero ! */
> dash_list_8[il]=1;
1413c1414
< XSetDashes(tool_d, gccache[op], 0, (char *) dash_list[op], nd);
---
> XSetDashes(tool_d, gccache[op], 0, (char *) dash_list_8, nd);

build
$ xmkmf
$ make

Test it, .$/xfig and draw shapes with dash_dot styles.