Dear Sirs,

I have a problem with xlib output refering to XSetDashes. The dotted lines using 2 array length is working (eg 1,1) but when I use a longer array length it does not work (eg 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1). Then the line is showed as dash-dot and not as dot.

It used to work with CentOS but now the problem appeared after installilng fedora 26. Any clue?

This is a sample code:

#include <X11/Xlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define     DOTOK_LIST_LEN               2
#define     DOTERR_LIST_LEN             16
#define     DASH_LIST_LEN                2
#define     DASH_DOT_LIST_LEN            4

int main(void) {
   Display *d;
   Window w;
   XEvent e;
   GC     gc;
   int s;

   static char dot_ok[]={1,1};
   static char dot_err[]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
   static char dash[]={8,8};
   static char dash_dot[]={13,1,1,1};
   static char *dash_list[]={
      dot_ok,dot_err,dash,dash_dot,NULL
   };
   static int dash_list_length[]={
      DOTOK_LIST_LEN,
      DOTERR_LIST_LEN,
      DASH_LIST_LEN,
      DASH_DOT_LIST_LEN
   };

   d = XOpenDisplay(NULL);
   if (d == NULL) {
      fprintf(stderr, "Cannot open display\n");
      exit(1);
   }

   s = DefaultScreen(d);
   w = XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 300, 300, 1,
                           BlackPixel(d, s), WhitePixel(d, s));
   XSelectInput(d, w, ExposureMask | KeyPressMask);
   XMapWindow(d, w);

   gc = DefaultGC(d, s);

   while (1) {
      XNextEvent(d, &e);
      if (e.type == Expose) {
         XGCValues     values;
         int           i=0;

         values.line_style = LineOnOffDash;
         XChangeGC(d,gc,GCLineStyle,&values);

         while (dash_list[i]) {
            int step = 10*i;

XSetDashes(d,gc,0,dash_list[i],dash_list_length[i]);

            XDrawLine(d,w,gc,10+step,10,10+step,290);

            i++;
         }
      }
      if (e.type == KeyPress)
         break;
   }

   XCloseDisplay(d);
   return 0;
}

--
*Pasqual Castellón*
Vicepresident - Software Division
skype: pasqual.cadt

CADT Software & Drafting, S.L.
Sant Cugat del Vallès - Barcelona
http://www.cadt.com

Follow us on:
Facebook <http://www.facebook.com/cadtlacedesign>
Twitter <http://www.twitter.com/cadt_sd>
Instagram <http://www.instagram.com/cadt_sd>

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
X11-users mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription: 
https://lists.apple.com/mailman/options/x11-users/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to