$NetBSD: patch-aa,v 1.4 2007/10/09 11:09:22 rillig Exp $ Handle wide signal masks. For the removal of the type casts, see patch-ak. --- Xpm.c.orig 1996-11-26 14:40:26.000000000 +0100 +++ Xpm.c 2007-10-09 12:54:37.000000000 +0200 @@ -46,7 +46,7 @@ char directory[MAXPATHLEN]; } chdir(directory); } - (PixmapNode *)PixList.first = (PixmapNode *)pixnode; + PixList.first = pixnode; pixnode->next = NULL; PixList.n_entries = 1; pixnode->filename = filename; @@ -55,18 +55,18 @@ char directory[MAXPATHLEN]; /* Is the pixmap already in the list? */ - (PixmapNode *)pixnode = (PixmapNode *)PixList.first; + pixnode = PixList.first; for(;;) { if(strncmp(filename,pixnode->filename, MAXPATHLEN) == 0) return((Pixmap *)&pixnode->pixmap); if(pixnode->next == NULL) break; - (PixmapNode *)pixnode = (PixmapNode *)pixnode->next; + pixnode = pixnode->next; } /* Didnt find the pixmap...make a new one */ - (PixmapNode *)pixnew = (void *)malloc(sizeof(PixmapNode)); + pixnew = (void *)malloc(sizeof(PixmapNode)); XGetWindowAttributes(XtDisplay(w) ,DefaultRootWindow(XtDisplay(w)),&root_att); orig_att.closeness=65536; @@ -86,7 +86,7 @@ char directory[MAXPATHLEN]; } chdir(directory); } - (PixmapNode *)pixnode->next = (PixmapNode *)pixnew; + pixnode->next = pixnew; pixnew->filename = filename; pixnew->next = NULL; return((Pixmap *)&pixnew->pixmap); @@ -105,7 +105,7 @@ XpmAttributes orig_att; char error_buf[BUFSIZ]; char directory[MAXPATHLEN]; - (PixmapNode *)pixnode = (PixmapNode *)PixList.first; + pixnode = PixList.first; for(;;) { if(strncmp(filename,pixnode->filename, MAXPATHLEN) == 0) @@ -114,7 +114,7 @@ char directory[MAXPATHLEN]; break; } if(pixnode->next == NULL) break; - (PixmapNode *)pixnode = (PixmapNode *)pixnode->next; + pixnode = pixnode->next; } if(found) { @@ -140,7 +140,7 @@ char directory[MAXPATHLEN]; } else { - (PixmapNode *)pixnew = (void *)malloc(sizeof(PixmapNode)); + pixnew = (void *)malloc(sizeof(PixmapNode)); XGetWindowAttributes(XtDisplay(w) ,DefaultRootWindow(XtDisplay(w)),&root_att); orig_att.closeness=65536; orig_att.colormap=root_att.colormap; @@ -159,7 +159,7 @@ char directory[MAXPATHLEN]; } chdir(directory); } - (PixmapNode *)pixnode->next = (PixmapNode *)pixnew; + pixnode->next = pixnew; pixnew->filename = filename; pixnew->next = NULL; return((Pixmap *)&pixnew->mask); @@ -206,9 +206,8 @@ char *soundfile; sigchld. */ new.sa_handler=SigHandle; - new.sa_mask=0; - new.sa_flags=SA_NOMASK | SA_ONESHOT; - new.sa_restorer=NULL; + (void) memset(&new.sa_mask, 0, sizeof(new.sa_mask)); + new.sa_flags=SA_NODEFER; sigaction(SIGCHLD, &new, &old); playing = 1; soundpid = fork();