From d3ae4a0ed35487fc03b40aac150f74d990ded1e3 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Tue, 3 Dec 2019 18:42:17 +0100 Subject: mi: Avoid stack smash when drawing dashed lines Backport of this xorg-xserver upstream patch: commit 20c2a3bcb11b5baf564e2c73a477ba23f5ae2b10 Author: Peter Harris Date: Mon Jul 15 19:44:29 2013 -0400 mi: Avoid stack smash when drawing dashed lines X.org Bug 54013 Reviewed-by: Adam Jackson Signed-off-by: Peter Harris --- nx-X11/programs/Xserver/mi/miwideline.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nx-X11/programs/Xserver/mi/miwideline.c b/nx-X11/programs/Xserver/mi/miwideline.c index 8d73eb979..eefed600c 100644 --- a/nx-X11/programs/Xserver/mi/miwideline.c +++ b/nx-X11/programs/Xserver/mi/miwideline.c @@ -1127,7 +1127,7 @@ miLineProjectingCap (pDrawable, pGC, pixel, spanData, face, isLeft, xorg, yorg, { int xorgi = 0, yorgi = 0; int lw; - PolyEdgeRec lefts[2], rights[2]; + PolyEdgeRec lefts[4], rights[4]; int lefty, righty, topy, bottomy; PolyEdgePtr left, right; PolyEdgePtr top, bottom; @@ -1311,7 +1311,7 @@ miWideSegment ( PolyEdgePtr top, bottom; int lefty, righty, topy, bottomy; int signdx; - PolyEdgeRec lefts[2], rights[2]; + PolyEdgeRec lefts[4], rights[4]; LineFacePtr tface; int lw = pGC->lineWidth; @@ -1713,7 +1713,7 @@ miWideDashSegment ( PolyVertexRec vertices[4]; PolyVertexRec saveRight, saveBottom; PolySlopeRec slopes[4]; - PolyEdgeRec left[2], right[2]; + PolyEdgeRec left[4], right[4]; LineFaceRec lcapFace, rcapFace; int nleft, nright; int h; -- cgit v1.2.3 From 047b7ff2179d9a56a3b42a396a830951091c6c54 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Mon, 10 Jun 2019 15:33:10 +0200 Subject: Window.c: print internal window id as well --- nx-X11/programs/Xserver/hw/nxagent/Window.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Window.c b/nx-X11/programs/Xserver/hw/nxagent/Window.c index 40af9c60e..3c582524d 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Window.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c @@ -407,7 +407,7 @@ Bool nxagentCreateWindow(WindowPtr pWin) if (nxagentReportPrivateWindowIds) { - fprintf (stderr, "NXAGENT_WINDOW_ID: PRIVATE_WINDOW,WID:[0x%x]\n", nxagentWindowPriv(pWin)->window); + fprintf(stderr, "NXAGENT_WINDOW_ID: PRIVATE_WINDOW,WID:[0x%x],INT:[0x%x]\n", nxagentWindowPriv(pWin)->window, pWin->drawable.id); } #ifdef TEST fprintf(stderr, "nxagentCreateWindow: Created new window with id [0x%x].\n", @@ -3037,7 +3037,7 @@ static void nxagentReconnectWindow(void * param0, XID param1, void * data_buffer if (nxagentReportPrivateWindowIds) { - fprintf (stderr, "NXAGENT_WINDOW_ID: PRIVATE_WINDOW,WID:[0x%x]\n", nxagentWindowPriv(pWin)->window); + fprintf(stderr, "NXAGENT_WINDOW_ID: PRIVATE_WINDOW,WID:[0x%x],INT:[0x%x]\n", nxagentWindowPriv(pWin)->window, pWin->drawable.id); } #ifdef TEST fprintf(stderr, "nxagentReconnectWindow: Created new window with id [0x%x].\n", -- cgit v1.2.3 From 3d77840c17196bc215302461d0433109c3327378 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Tue, 3 Dec 2019 18:59:11 +0100 Subject: xkbActions.c: fix formatting --- nx-X11/programs/Xserver/xkb/xkbActions.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/xkb/xkbActions.c b/nx-X11/programs/Xserver/xkb/xkbActions.c index a39e5c8f2..eadef3bee 100644 --- a/nx-X11/programs/Xserver/xkb/xkbActions.c +++ b/nx-X11/programs/Xserver/xkb/xkbActions.c @@ -84,7 +84,7 @@ XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc) void XkbFreePrivates(DeviceIntPtr device) { - if (device && + if (device && device->devPrivates && device->nPrivates > 0 && xkbDevicePrivateIndex != -1 && -- cgit v1.2.3 From e9ee5a00712ae8c64bd9f68e885fc9e1d4af1540 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Tue, 3 Dec 2019 19:02:42 +0100 Subject: xkbsrv.h: move extern XkbFreePrivates to central include file --- nx-X11/programs/Xserver/dix/devices.c | 2 -- nx-X11/programs/Xserver/include/xkbsrv.h | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/nx-X11/programs/Xserver/dix/devices.c b/nx-X11/programs/Xserver/dix/devices.c index 3dee81a25..37047a2aa 100644 --- a/nx-X11/programs/Xserver/dix/devices.c +++ b/nx-X11/programs/Xserver/dix/devices.c @@ -73,8 +73,6 @@ SOFTWARE. #include "swaprep.h" #include "dixevents.h" -extern void XkbFreePrivates(DeviceIntPtr device); - DeviceIntPtr AddInputDevice(DeviceProc deviceProc, Bool autoStart) { diff --git a/nx-X11/programs/Xserver/include/xkbsrv.h b/nx-X11/programs/Xserver/include/xkbsrv.h index a3f8718cb..bba917fd1 100644 --- a/nx-X11/programs/Xserver/include/xkbsrv.h +++ b/nx-X11/programs/Xserver/include/xkbsrv.h @@ -253,6 +253,7 @@ typedef struct /***====================================================================***/ +extern void XkbFreePrivates(DeviceIntPtr); /***====================================================================***/ -- cgit v1.2.3 From 759f89aa23d407d0ff6fe5e64f392311b025acca Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Tue, 3 Dec 2019 19:17:47 +0100 Subject: Pointer.c: use __func__ in fprintf --- nx-X11/programs/Xserver/hw/nxagent/Pointer.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Pointer.c b/nx-X11/programs/Xserver/hw/nxagent/Pointer.c index 379a19fa0..49960d78c 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Pointer.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Pointer.c @@ -87,7 +87,7 @@ void nxagentChangePointerControl(DeviceIntPtr pDev, PtrCtrl *ctrl) if (nxagentOption(DeviceControl) == True) { #ifdef TEST - fprintf(stderr, "nxagentChangePointerControl: WARNING! Propagating changes to pointer settings.\n"); + fprintf(stderr, "%s: WARNING! Propagating changes to pointer settings.\n", __func__); #endif XChangePointerControl(nxagentDisplay, True, True, @@ -97,7 +97,7 @@ void nxagentChangePointerControl(DeviceIntPtr pDev, PtrCtrl *ctrl) } #ifdef TEST - fprintf(stderr, "nxagentChangePointerControl: WARNING! Not propagating changes to pointer settings.\n"); + fprintf(stderr, "%s: WARNING! Not propagating changes to pointer settings.\n", __func__); #endif } @@ -108,7 +108,7 @@ int nxagentPointerProc(DeviceIntPtr pDev, int onoff) case DEVICE_INIT: #ifdef TEST - fprintf(stderr, "nxagentPointerProc: Called for [DEVICE_INIT].\n"); + fprintf(stderr, "%s: Called for [DEVICE_INIT].\n", __func__); #endif if (NXDisplayError(nxagentDisplay) == 1) @@ -129,7 +129,7 @@ int nxagentPointerProc(DeviceIntPtr pDev, int onoff) case DEVICE_ON: #ifdef TEST - fprintf(stderr, "nxagentPointerProc: Called for [DEVICE_ON].\n"); + fprintf(stderr, "%s: Called for [DEVICE_ON].\n", __func__); #endif if (NXDisplayError(nxagentDisplay) == 1) @@ -146,7 +146,7 @@ int nxagentPointerProc(DeviceIntPtr pDev, int onoff) case DEVICE_OFF: #ifdef TEST - fprintf(stderr, "nxagentPointerProc: Called for [DEVICE_OFF].\n"); + fprintf(stderr, "%s: Called for [DEVICE_OFF].\n", __func__); #endif if (NXDisplayError(nxagentDisplay) == 1) @@ -160,7 +160,7 @@ int nxagentPointerProc(DeviceIntPtr pDev, int onoff) case DEVICE_CLOSE: #ifdef TEST - fprintf(stderr, "nxagentPointerProc: Called for [DEVICE_CLOSE].\n"); + fprintf(stderr, "%s: Called for [DEVICE_CLOSE].\n", __func__); #endif break; @@ -174,8 +174,8 @@ void nxagentInitPointerMap(void) unsigned char pointerMap[MAXBUTTONS]; #ifdef DEBUG - fprintf(stderr, "nxagentInitPointerMap: Going to retrieve the " - "pointer map from remote display.\n"); + fprintf(stderr, "%s: Going to retrieve the " + "pointer map from remote display.\n", __func__); #endif int numButtons = XGetPointerMapping(nxagentDisplay, pointerMap, MAXBUTTONS); -- cgit v1.2.3 From 66f0a85e96c0ba70572df6afa9e6732907b478d0 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Tue, 3 Dec 2019 19:18:06 +0100 Subject: Pointer.c: code simplification --- nx-X11/programs/Xserver/hw/nxagent/Pointer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Pointer.c b/nx-X11/programs/Xserver/hw/nxagent/Pointer.c index 49960d78c..b5d47623a 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Pointer.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Pointer.c @@ -181,7 +181,7 @@ void nxagentInitPointerMap(void) int numButtons = XGetPointerMapping(nxagentDisplay, pointerMap, MAXBUTTONS); /* - * Computing revers pointer map. + * Computing reverse pointer map. */ for (int i = 1; i <= numButtons; i++) -- cgit v1.2.3 From 7c1bd6f521ee910187f61bfd354801332e4fbe60 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 25 May 2019 17:29:17 +0200 Subject: NX{mitrap,picture}.c: mark NX changes --- nx-X11/programs/Xserver/hw/nxagent/NXpicture.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXpicture.c b/nx-X11/programs/Xserver/hw/nxagent/NXpicture.c index 7ccc04bc8..159a7b55d 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXpicture.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXpicture.c @@ -215,7 +215,9 @@ AllocatePicture (ScreenPtr pScreen) ppriv->ptr = (void *)NULL; } +#ifdef NXAGENT_SERVER nxagentPicturePriv(pPicture) -> picture = 0; +#endif return pPicture; } @@ -245,13 +247,14 @@ CreatePicture (Picture pid, pPicture->format = pFormat->format | (pDrawable->bitsPerPixel << 24); if (pDrawable->type == DRAWABLE_PIXMAP) { +#ifdef NXAGENT_SERVER /* * Let picture always point to the virtual pixmap. * For sure this is not the best way to deal with * the virtual frame-buffer. */ pPicture->pDrawable = nxagentVirtualDrawable(pDrawable); - +#endif ++((PixmapPtr)pDrawable)->refcnt; pPicture->pNext = 0; } -- cgit v1.2.3 From e9ee4505aa0e159be0020035c2a2b1ad828a720e Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Tue, 3 Dec 2019 22:14:31 +0100 Subject: xkbsrv.h: drop non-existing externs --- nx-X11/programs/Xserver/include/xkbsrv.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/nx-X11/programs/Xserver/include/xkbsrv.h b/nx-X11/programs/Xserver/include/xkbsrv.h index bba917fd1..1447f5ce7 100644 --- a/nx-X11/programs/Xserver/include/xkbsrv.h +++ b/nx-X11/programs/Xserver/include/xkbsrv.h @@ -56,11 +56,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "xkbstr.h" #include "inputstr.h" -#ifdef NXAGENT_SERVER -extern char *_NXGetXkbBasePath(const char *path); -extern char *_NXGetXkbCompPath(const char *path); -#endif - typedef struct _XkbInterest { DeviceIntPtr dev; ClientPtr client; -- cgit v1.2.3 From 51e60ada36f6bd41b87d87fddb2c30b2aed74bf8 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Fri, 3 May 2019 23:50:45 +0200 Subject: NXdispatch.c: add FIXME --- nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c index 00fb4ddd8..2877d24a0 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c @@ -1140,6 +1140,8 @@ CloseDownClient(register ClientPtr client) xorg_CloseDownClient(client); } +/* FIXME: Instead of having a own function use the provided Callback + mechanism */ int InitClientPrivates(ClientPtr client) { -- cgit v1.2.3 From 2b9a6ddc2fb90ecf8f5ef0ab839345bb5916df52 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Fri, 3 May 2019 22:46:33 +0200 Subject: NXdispatch.c: cleanup ProcCloseFont() minimize differences to dix/dispatch.c --- nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c index 2877d24a0..00bd14734 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c @@ -807,7 +807,7 @@ ProcCloseFont(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pFont = (FontPtr)SecurityLookupIDByType(client, stuff->id, RT_FONT, DixDestroyAccess); - if (pFont != (FontPtr)NULL) + if ( pFont != (FontPtr)NULL) /* id was valid */ { #ifdef NXAGENT_SERVER -- cgit v1.2.3 From 25677711bb4cc0633c28a28bdc055a6b0942204e Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Tue, 3 Dec 2019 22:42:24 +0100 Subject: NXDispatch.c: mark NX changes --- nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c index 00bd14734..852715fdf 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c @@ -245,6 +245,7 @@ Dispatch(void) InitSelections(); nClients = 0; +#ifdef NXAGENT_SERVER /* * The agent initialization was successfully * completed. We can now handle our clients. @@ -269,10 +270,12 @@ Dispatch(void) #endif +#endif /* NXAGENT_SERVER */ clientReady = (int *) malloc(sizeof(int) * MaxClients); if (!clientReady) return; +#ifdef NXAGENT_SERVER #ifdef WATCH fprintf(stderr, "Dispatch: Watchpoint 12.\n"); @@ -303,6 +306,7 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio if (!(dispatchException & DE_TERMINATE)) dispatchException = 0; +#endif /* NXAGENT_SERVER */ while (!dispatchException) { @@ -312,6 +316,7 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio FlushIfCriticalOutputPending(); } +#ifdef NXAGENT_SERVER /* * Ensure we remove the splash after the timeout. * Initializing clientReady[0] to -1 will tell @@ -351,9 +356,11 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio #ifdef BLOCKS fprintf(stderr, "[End dispatch]\n"); #endif +#endif /* NXAGENT_SERVER */ nready = WaitForSomething(clientReady); +#ifdef NXAGENT_SERVER #ifdef BLOCKS fprintf(stderr, "[Begin dispatch]\n"); #endif @@ -378,6 +385,7 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio nxagentClients = nClients; #endif +#endif /* NXAGENT_SERVER */ if (nready) { @@ -423,10 +431,12 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio } /* now, finally, deal with client requests */ +#ifdef NXAGENT_SERVER #ifdef TEST fprintf(stderr, "******Dispatch: Reading request from client [%d].\n", client->index); #endif +#endif /* NXAGENT_SERVER */ result = ReadRequestFromClient(client); if (result <= 0) @@ -435,8 +445,8 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio CloseDownClient(client); break; } -#ifdef NXAGENT_SERVER +#ifdef NXAGENT_SERVER #ifdef TEST else @@ -463,10 +473,9 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio if (result > (maxBigRequestSize << 2)) result = BadLength; else -#ifdef NXAGENT_SERVER { result = (* client->requestVector[MAJOROP])(client); - +#ifdef NXAGENT_SERVER #ifdef TEST if (MAJOROP > 127) @@ -492,11 +501,8 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio */ nxagentDispatchHandler(client, client->req_len << 2, 0); - } -#else - result = (* client->requestVector[MAJOROP])(client); #endif - + } if (!SmartScheduleSignalEnable) SmartScheduleTime = GetTimeInMillis(); @@ -526,6 +532,8 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio #if defined(DDXBEFORERESET) ddxBeforeReset (); #endif + +#ifdef NXAGENT_SERVER /* FIXME: maybe move the code up to the KillAllClients() call to ddxBeforeReset? */ if ((dispatchException & DE_RESET) && (serverGeneration > nxagentMaxAllowedResets)) @@ -559,6 +567,7 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio NXShadowDestroy(); } saveAgentState("TERMINATED"); +#endif /* NXAGENT_SERVER */ KillAllClients(); free(clientReady); @@ -580,7 +589,9 @@ ProcReparentWindow(register ClientPtr client) if (!pWin) return(BadWindow); +#ifdef NXAGENT_SERVER nxagentRemoveSplashWindow(); +#endif pParent = (WindowPtr)SecurityLookupWindow(stuff->parent, client, DixWriteAccess); -- cgit v1.2.3 From bccf81ea062c6a6c4066ed5453c44b89c63f7f5f Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Tue, 3 Dec 2019 22:54:14 +0100 Subject: NXdispatch.c: port forgotten patch had been forgotten in 7a2836f8db9941aaefd88b595f43589ff513b53e --- nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c index 852715fdf..aae2b2efc 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c @@ -431,6 +431,9 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio } /* now, finally, deal with client requests */ + /* Update currentTime so request time checks, such as for input + * device grabs, are calculated correctly */ + UpdateCurrentTimeIf(); #ifdef NXAGENT_SERVER #ifdef TEST fprintf(stderr, "******Dispatch: Reading request from client [%d].\n", -- cgit v1.2.3 From 5fb7f53c6f06df54e7fb45498d697d17483565b6 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Wed, 7 Nov 2018 22:24:59 +0100 Subject: os: unifdef ISC --- nx-X11/programs/Xserver/Xext/xf86bigfont.c | 2 +- nx-X11/programs/Xserver/os/access.c | 35 ++++-------------------------- nx-X11/programs/Xserver/os/log.c | 2 -- 3 files changed, 5 insertions(+), 34 deletions(-) diff --git a/nx-X11/programs/Xserver/Xext/xf86bigfont.c b/nx-X11/programs/Xserver/Xext/xf86bigfont.c index 08ce9e5d9..352e40261 100644 --- a/nx-X11/programs/Xserver/Xext/xf86bigfont.c +++ b/nx-X11/programs/Xserver/Xext/xf86bigfont.c @@ -50,7 +50,7 @@ #ifdef SVR4 #include #endif -#if defined(ISC) || defined(__CYGWIN__) || defined(__SCO__) +#if defined(__CYGWIN__) || defined(__SCO__) #include #include #endif diff --git a/nx-X11/programs/Xserver/os/access.c b/nx-X11/programs/Xserver/os/access.c index df540e704..9497d84a7 100644 --- a/nx-X11/programs/Xserver/os/access.c +++ b/nx-X11/programs/Xserver/os/access.c @@ -80,9 +80,9 @@ SOFTWARE. #include #include -#if defined(TCPCONN) || defined(ISC) || defined(__SCO__) +#if defined(TCPCONN) || defined(__SCO__) #include -#endif /* TCPCONN || ISC || __SCO__ */ +#endif /* TCPCONN || __SCO__ */ #ifdef HAS_GETPEERUCRED # include @@ -96,10 +96,6 @@ SOFTWARE. #endif #if defined(SYSV) && defined(i386) # include -# ifdef ISC -# include -# include -# endif /* ISC */ #endif #ifdef __GNU__ #undef SIOCGIFCONF @@ -282,7 +278,7 @@ AccessUsingXdmcp (void) } -#if ((defined(SVR4) && !defined(SCO325) && !defined(sun) && !defined(NCR)) || defined(ISC)) && defined(SIOCGIFCONF) && !defined(USE_SIOCGLIFCONF) +#if ((defined(SVR4) && !defined(SCO325) && !defined(sun) && !defined(NCR))) && defined(SIOCGIFCONF) && !defined(USE_SIOCGLIFCONF) /* Deal with different SIOCGIFCONF ioctl semantics on these OSs */ @@ -299,17 +295,6 @@ ifioctl (int fd, int cmd, char *arg) { ioc.ic_len = ((struct ifconf *) arg)->ifc_len; ioc.ic_dp = ((struct ifconf *) arg)->ifc_buf; -#ifdef ISC - /* SIOCGIFCONF is somewhat brain damaged on ISC. The argument - * buffer must contain the ifconf structure as header. Ifc_req - * is also not a pointer but a one element array of ifreq - * structures. On return this array is extended by enough - * ifreq fields to hold all interfaces. The return buffer length - * is placed in the buffer header. - */ - ((struct ifconf *) ioc.ic_dp)->ifc_len = - ioc.ic_len - sizeof(struct ifconf); -#endif } else { @@ -320,20 +305,12 @@ ifioctl (int fd, int cmd, char *arg) if (ret >= 0 && cmd == SIOCGIFCONF) #ifdef SVR4 ((struct ifconf *) arg)->ifc_len = ioc.ic_len; -#endif -#ifdef ISC - { - ((struct ifconf *) arg)->ifc_len = - ((struct ifconf *)ioc.ic_dp)->ifc_len; - ((struct ifconf *) arg)->ifc_buf = - (caddr_t)((struct ifconf *)ioc.ic_dp)->ifc_req; - } #endif return(ret); } #else /* Case sun, SCO325 NCR and others */ #define ifioctl ioctl -#endif /* ((SVR4 && !sun !SCO325 !NCR) || ISC) && SIOCGIFCONF */ +#endif /* ((SVR4 && !sun !SCO325 !NCR)) && SIOCGIFCONF */ /* * DefineSelf (fd): @@ -723,11 +700,7 @@ DefineSelf (int fd) ifc.ifc_buf = bufptr; #define IFC_IOCTL_REQ SIOCGIFCONF -#ifdef ISC -#define IFC_IFC_REQ (struct ifreq *) ifc.ifc_buf -#else #define IFC_IFC_REQ ifc.ifc_req -#endif /* ISC */ #define IFC_IFC_LEN ifc.ifc_len #define IFR_IFR_ADDR ifr->ifr_addr #define IFR_IFR_NAME ifr->ifr_name diff --git a/nx-X11/programs/Xserver/os/log.c b/nx-X11/programs/Xserver/os/log.c index 0ead6e9f0..2dc5627e4 100644 --- a/nx-X11/programs/Xserver/os/log.c +++ b/nx-X11/programs/Xserver/os/log.c @@ -730,11 +730,9 @@ ErrorF(const char * f, ...) #ifndef NEED_STRERROR #ifdef SYSV -#if !defined(ISC) || defined(ISC202) || defined(ISC22) #define NEED_STRERROR #endif #endif -#endif #if defined(NEED_STRERROR) && !defined(strerror) extern char *sys_errlist[]; -- cgit v1.2.3 From 38ab9ad85948bbd475337d60138e6de60726130a Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Wed, 7 Nov 2018 22:27:49 +0100 Subject: os: unifdef __SCO__ --- nx-X11/programs/Xserver/os/access.c | 12 +++------ nx-X11/programs/Xserver/os/io.c | 2 +- nx-X11/programs/Xserver/os/osinit.c | 5 +--- nx-X11/programs/Xserver/os/utils.c | 49 ------------------------------------- 4 files changed, 6 insertions(+), 62 deletions(-) diff --git a/nx-X11/programs/Xserver/os/access.c b/nx-X11/programs/Xserver/os/access.c index 9497d84a7..f5c2d661d 100644 --- a/nx-X11/programs/Xserver/os/access.c +++ b/nx-X11/programs/Xserver/os/access.c @@ -80,9 +80,9 @@ SOFTWARE. #include #include -#if defined(TCPCONN) || defined(__SCO__) +#if defined(TCPCONN) #include -#endif /* TCPCONN || __SCO__ */ +#endif /* TCPCONN */ #ifdef HAS_GETPEERUCRED # include @@ -91,10 +91,10 @@ SOFTWARE. # endif #endif -#if defined(SVR4) || (defined(SYSV) && defined(i386)) || defined(__GNU__) +#if defined(SVR4) || (defined(SYSV) && defined(__i386__)) || defined(__GNU__) # include #endif -#if defined(SYSV) && defined(i386) +#if defined(SYSV) && defined(__i386__) # include #endif #ifdef __GNU__ @@ -154,10 +154,6 @@ SOFTWARE. #endif #endif -#ifdef __SCO__ -/* The system defined value is wrong. MAXPATHLEN is set in sco5.cf. */ -#undef PATH_MAX -#endif #define X_INCLUDE_NETDB_H #include diff --git a/nx-X11/programs/Xserver/os/io.c b/nx-X11/programs/Xserver/os/io.c index 02a47f135..847352c64 100644 --- a/nx-X11/programs/Xserver/os/io.c +++ b/nx-X11/programs/Xserver/os/io.c @@ -358,7 +358,7 @@ ReadRequestFromClient(ClientPtr client) { if ((result < 0) && ETEST(errno)) { -#if defined(SVR4) && defined(i386) && !defined(sun) +#if defined(SVR4) && defined(__i386__) && !defined(sun) if (0) #endif { diff --git a/nx-X11/programs/Xserver/os/osinit.c b/nx-X11/programs/Xserver/os/osinit.c index a660337ca..269225568 100644 --- a/nx-X11/programs/Xserver/os/osinit.c +++ b/nx-X11/programs/Xserver/os/osinit.c @@ -65,9 +65,6 @@ SOFTWARE. #endif #endif -#if defined(__SCO__) -#include -#endif #if !defined(SYSV) && !defined(WIN32) #include @@ -104,7 +101,7 @@ OsInit(void) InitNotifyFds(); -#if !defined(__SCO__) && !defined(__CYGWIN__) && !defined(__UNIXWARE__) +#if !defined(__CYGWIN__) && !defined(__UNIXWARE__) fclose(stdin); fclose(stdout); #endif diff --git a/nx-X11/programs/Xserver/os/utils.c b/nx-X11/programs/Xserver/os/utils.c index f9b06de2d..f7bce64ae 100644 --- a/nx-X11/programs/Xserver/os/utils.c +++ b/nx-X11/programs/Xserver/os/utils.c @@ -2232,52 +2232,3 @@ CheckUserAuthorization(void) #endif } -#ifdef __SCO__ -#include - -static void -lockit (int fd, short what) -{ - struct flock lck; - - lck.l_whence = 0; - lck.l_start = 0; - lck.l_len = 1; - lck.l_type = what; - - (void)fcntl (fd, F_SETLKW, &lck); -} - -/* SCO OpenServer 5 lacks pread/pwrite. Emulate them. */ -ssize_t -pread (int fd, void *buf, size_t nbytes, off_t offset) -{ - off_t saved; - ssize_t ret; - - lockit (fd, F_RDLCK); - saved = lseek (fd, 0, SEEK_CUR); - lseek (fd, offset, SEEK_SET); - ret = read (fd, buf, nbytes); - lseek (fd, saved, SEEK_SET); - lockit (fd, F_UNLCK); - - return ret; -} - -ssize_t -pwrite (int fd, const void *buf, size_t nbytes, off_t offset) -{ - off_t saved; - ssize_t ret; - - lockit (fd, F_WRLCK); - saved = lseek (fd, 0, SEEK_CUR); - lseek (fd, offset, SEEK_SET); - ret = write (fd, buf, nbytes); - lseek (fd, saved, SEEK_SET); - lockit (fd, F_UNLCK); - - return ret; -} -#endif /* __SCO__ */ -- cgit v1.2.3 From 74270d6b72f4a154c08bd37dfff92369b4b14863 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Wed, 7 Nov 2018 22:28:32 +0100 Subject: os: unifdef UNIXWARE --- nx-X11/programs/Xserver/os/osinit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/os/osinit.c b/nx-X11/programs/Xserver/os/osinit.c index 269225568..4edbb73b0 100644 --- a/nx-X11/programs/Xserver/os/osinit.c +++ b/nx-X11/programs/Xserver/os/osinit.c @@ -101,7 +101,7 @@ OsInit(void) InitNotifyFds(); -#if !defined(__CYGWIN__) && !defined(__UNIXWARE__) +#if !defined(__CYGWIN__) fclose(stdin); fclose(stdout); #endif -- cgit v1.2.3 From d409b566bdaf7d40f1697095e62b7811c793fd30 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Wed, 7 Nov 2018 22:19:17 +0100 Subject: os: unifdef WIN32 --- nx-X11/programs/Xserver/os/WaitFor.c | 48 ----------- nx-X11/programs/Xserver/os/access.c | 19 ----- nx-X11/programs/Xserver/os/auth.c | 3 - nx-X11/programs/Xserver/os/connection.c | 144 -------------------------------- nx-X11/programs/Xserver/os/io.c | 35 -------- nx-X11/programs/Xserver/os/log.c | 8 -- nx-X11/programs/Xserver/os/osdep.h | 18 ---- nx-X11/programs/Xserver/os/osinit.c | 6 +- nx-X11/programs/Xserver/os/utils.c | 19 +---- nx-X11/programs/Xserver/os/xdmcp.c | 12 --- 10 files changed, 6 insertions(+), 306 deletions(-) diff --git a/nx-X11/programs/Xserver/os/WaitFor.c b/nx-X11/programs/Xserver/os/WaitFor.c index 9db3faef1..3d53335b3 100644 --- a/nx-X11/programs/Xserver/os/WaitFor.c +++ b/nx-X11/programs/Xserver/os/WaitFor.c @@ -82,9 +82,6 @@ SOFTWARE. #include #endif -#ifdef WIN32 -#include -#endif #include /* for strings, fcntl, time */ #include #include @@ -105,22 +102,9 @@ static unsigned long startTimeInMillis; #endif -#ifdef WIN32 -/* Error codes from windows sockets differ from fileio error codes */ -#undef EINTR -#define EINTR WSAEINTR -#undef EINVAL -#define EINVAL WSAEINVAL -#undef EBADF -#define EBADF WSAENOTSOCK -/* Windows select does not set errno. Use GetErrno as wrapper for - WSAGetLastError */ -#define GetErrno WSAGetLastError -#else /* This is just a fallback to errno to hide the differences between unix and Windows in the code */ #define GetErrno() errno -#endif /* modifications by raphael */ int @@ -484,30 +468,12 @@ WaitForSomething(int *pClientsReady) if (XFD_ANYSET (&clientsReadable)) break; -#ifdef WIN32 - /* Windows keyboard and mouse events are added to the input queue - in Block- and WakupHandlers. There is no device to check if - data is ready. So check here if new input is available */ -#if defined(NX_TRANS_SOCKET) - if (*checkForInput[0] != *checkForInput[1]) - { -#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG) - fprintf(stderr, "WaitForSomething: Returning 0 because of (*checkForInput[0] != *checkForInput[1]).\n"); -#endif - return 0; - } -#else - if (*checkForInput[0] != *checkForInput[1]) - return 0; -#endif -#endif } } nready = 0; if (XFD_ANYSET (&clientsReadable)) { -#ifndef WIN32 for (i=0; i #endif -#ifdef WIN32 -#include -#endif #include #include @@ -75,7 +72,6 @@ SOFTWARE. #include "site.h" #include #include -#ifndef WIN32 #include #include #include @@ -141,7 +137,6 @@ SOFTWARE. /* #endif */ #endif -#endif /* WIN32 */ #ifndef PATH_MAX #include @@ -474,13 +469,7 @@ DefineSelf (int fd) int family; register HOST *host; -#ifndef WIN32 struct utsname name; -#else - struct { - char nodename[512]; - } name; -#endif register struct hostent *hp; @@ -504,11 +493,7 @@ DefineSelf (int fd) * uname() lets me access to the whole string (it smashes release, you * see), whereas gethostname() kindly truncates it for me. */ -#ifndef WIN32 uname(&name); -#else - gethostname(name.nodename, sizeof(name.nodename)); -#endif hp = _XGethostbyname(name.nodename, hparams); if (hp != NULL) @@ -1692,10 +1677,6 @@ ConvertAddr ( return FamilyLocal; #if defined(TCPCONN) case AF_INET: -#ifdef WIN32 - if (16777343 == *(long*)&((struct sockaddr_in *) saddr)->sin_addr) - return FamilyLocal; -#endif *len = sizeof (struct in_addr); *addr = (void *) &(((struct sockaddr_in *) saddr)->sin_addr); return FamilyInternet; diff --git a/nx-X11/programs/Xserver/os/auth.c b/nx-X11/programs/Xserver/os/auth.c index 84bc5c3c6..491b8c427 100644 --- a/nx-X11/programs/Xserver/os/auth.c +++ b/nx-X11/programs/Xserver/os/auth.c @@ -71,9 +71,6 @@ from The Open Group. #define _SECURITY_SERVER # include #endif -#ifdef WIN32 -#include -#endif struct protocol { unsigned short name_length; diff --git a/nx-X11/programs/Xserver/os/connection.c b/nx-X11/programs/Xserver/os/connection.c index c5ebeea1e..7deeec428 100644 --- a/nx-X11/programs/Xserver/os/connection.c +++ b/nx-X11/programs/Xserver/os/connection.c @@ -65,9 +65,6 @@ SOFTWARE. #include #endif -#ifdef WIN32 -#include -#endif #include #include #define XSERV_t @@ -81,7 +78,6 @@ SOFTWARE. #include #include -#ifndef WIN32 #include #if defined(TCPCONN) @@ -104,7 +100,6 @@ SOFTWARE. #endif #include -#endif /* WIN32 */ #include "misc.h" #include "osdep.h" #include @@ -155,98 +150,7 @@ int GrabInProgress = 0; static void QueueNewConnections(int curconn, int ready, void *data); -#if !defined(WIN32) int *ConnectionTranslation = NULL; -#else -/* - * On NT fds are not between 0 and MAXSOCKS, they are unrelated, and there is - * not even a known maximum value, so use something quite arbitrary for now. - * Do storage is a hash table of size 256. Collisions are handled in a linked - * list. - */ - -#undef MAXSOCKS -#define MAXSOCKS 500 -#undef MAXSELECT -#define MAXSELECT 500 -#define MAXFD 500 - -struct _ct_node { - struct _ct_node *next; - int key; - int value; -}; - -struct _ct_node *ct_head[256]; - -void InitConnectionTranslation(void) -{ - bzero(ct_head, sizeof(ct_head)); -} - -int GetConnectionTranslation(int conn) -{ - struct _ct_node *node = ct_head[conn & 0xff]; - while (node != NULL) - { - if (node->key == conn) - return node->value; - node = node->next; - } - return 0; -} - -void SetConnectionTranslation(int conn, int client) -{ - struct _ct_node **node = ct_head + (conn & 0xff); - if (client == 0) /* remove entry */ - { - while (*node != NULL) - { - if ((*node)->key == conn) - { - struct _ct_node *temp = *node; - *node = (*node)->next; - free(temp); - return; - } - node = &((*node)->next); - } - return; - } else - { - while (*node != NULL) - { - if ((*node)->key == conn) - { - (*node)->value = client; - return; - } - node = &((*node)->next); - } - *node = (struct _ct_node*)malloc(sizeof(struct _ct_node)); - (*node)->next = NULL; - (*node)->key = conn; - (*node)->value = client; - return; - } -} - -void ClearConnectionTranslation(void) -{ - unsigned i; - for (i = 0; i < 256; i++) - { - struct _ct_node *node = ct_head[i]; - while (node != NULL) - { - struct _ct_node *temp = node; - node = node->next; - free(temp); - } - } -} -#endif XtransConnInfo *ListenTransConns = NULL; int *ListenTransFds = NULL; @@ -318,11 +222,7 @@ InitConnectionLimits(void) ErrorF("InitConnectionLimits: MaxClients = %d\n", MaxClients); #endif -#if !defined(WIN32) ConnectionTranslation = (int *)xnfalloc(sizeof(int)*(lastfdesc + 1)); -#else - InitConnectionTranslation(); -#endif } /* @@ -341,7 +241,6 @@ InitConnectionLimits(void) static void InitParentProcess(void) { -#if !defined(WIN32) OsSigHandlerPtr handler; handler = OsSignal (SIGUSR1, SIG_IGN); if ( handler == SIG_IGN) @@ -357,13 +256,11 @@ InitParentProcess(void) */ ParentProcess = GetPPID (ParentProcess); #endif /* __UNIXOS2__ */ -#endif } void NotifyParentProcess(void) { -#if !defined(WIN32) if (displayfd >= 0) { #ifdef NXAGENT_SERVER if (displayfd == STDERR_FILENO) @@ -385,7 +282,6 @@ NotifyParentProcess(void) kill (ParentProcess, SIGUSR1); } } -#endif } static Bool @@ -416,11 +312,7 @@ CreateWellKnownSockets(void) FD_ZERO(&LastSelectMask); FD_ZERO(&ClientsWithInput); -#if !defined(WIN32) for (i=0; i= lastfdesc -#else - XFD_SETCOUNT(&AllClients) >= MaxClients -#endif ) return NullClient; oc = (OsCommPtr)malloc(sizeof(OsCommRec)); @@ -825,11 +711,7 @@ AllocNewConnection (XtransConnInfo trans_conn, int fd, CARD32 conn_time) } client->local = ComputeLocalClient(client); { -#if !defined(WIN32) ConnectionTranslation[fd] = client->index; -#else - SetConnectionTranslation(fd, client->index); -#endif if (GrabInProgress) { FD_SET(fd, &SavedAllClients); @@ -893,11 +775,7 @@ EstablishNewConnections(ClientPtr clientUnused, void * closure) if (newconn < lastfdesc) { int clientid; -#if !defined(WIN32) clientid = ConnectionTranslation[newconn]; -#else - clientid = GetConnectionTranslation(newconn); -#endif if (clientid && (client = clients[clientid])) CloseDownClient(client); } @@ -990,11 +868,7 @@ CloseDownFileDescriptor(OsCommPtr oc) } FreeOsBuffers(oc); free(oc); -#ifndef WIN32 ConnectionTranslation[connection] = 0; -#else - SetConnectionTranslation(connection, 0); -#endif FD_CLR(connection, &AllSockets); FD_CLR(connection, &AllClients); FD_CLR(connection, &ClientsWithInput); @@ -1023,22 +897,16 @@ CloseDownFileDescriptor(OsCommPtr oc) void CheckConnections(void) { -#ifndef WIN32 fd_mask mask; -#endif fd_set tmask; int curclient, curoff; int i; struct timeval notime; int r; -#ifdef WIN32 - fd_set savedAllClients; -#endif notime.tv_sec = 0; notime.tv_usec = 0; -#ifndef WIN32 for (i=0; i -#endif #include #define XSERV_t #define TRANS_SERVER @@ -70,9 +67,7 @@ SOFTWARE. #include #include #include -#if !defined(WIN32) #include -#endif #include #include #include "os.h" @@ -88,7 +83,6 @@ CallbackListPtr FlushCallback; /* check for both EAGAIN and EWOULDBLOCK, because some supposedly POSIX * systems are broken and return EWOULDBLOCK when they should return EAGAIN */ -#ifndef WIN32 #if defined(EAGAIN) && defined(EWOULDBLOCK) #define ETEST(err) (err == EAGAIN || err == EWOULDBLOCK) #else @@ -98,9 +92,6 @@ CallbackListPtr FlushCallback; #define ETEST(err) (err == EWOULDBLOCK) #endif #endif -#else /* WIN32 The socket errorcodes differ from the normal errors*/ -#define ETEST(err) (err == EAGAIN || err == WSAEWOULDBLOCK) -#endif Bool CriticalOutputPending; int timesThisConnection = 0; @@ -777,9 +768,6 @@ FlushAllOutput(void) OsCommPtr oc; register ClientPtr client; Bool newoutput = NewOutputPending; -#if defined(WIN32) - fd_set newOutputPending; -#endif if (!newoutput) return; @@ -792,7 +780,6 @@ FlushAllOutput(void) CriticalOutputPending = FALSE; NewOutputPending = FALSE; -#ifndef WIN32 for (base = 0; base < howmany(XFD_SETSIZE, NFDBITS); base++) { mask = OutputPending.fds_bits[ base ]; @@ -817,28 +804,6 @@ FlushAllOutput(void) (void)FlushClient(client, oc, (char *)NULL, 0); } } -#else /* WIN32 */ - FD_ZERO(&newOutputPending); - for (base = 0; base < XFD_SETCOUNT(&OutputPending); base++) - { - index = XFD_FD(&OutputPending, base); - if ((index = GetConnectionTranslation(index)) == 0) - continue; - client = clients[index]; - if (client->clientGone) - continue; - oc = (OsCommPtr)client->osPrivate; - if ( - FD_ISSET(oc->fd, &ClientsWithInput)) - { - FD_SET(oc->fd, &newOutputPending); /* set the bit again */ - NewOutputPending = TRUE; - } - else - (void)FlushClient(client, oc, (char *)NULL, 0); - } - XFD_COPYSET(&newOutputPending, &OutputPending); -#endif /* WIN32 */ } void diff --git a/nx-X11/programs/Xserver/os/log.c b/nx-X11/programs/Xserver/os/log.c index 2dc5627e4..3ec3a2779 100644 --- a/nx-X11/programs/Xserver/os/log.c +++ b/nx-X11/programs/Xserver/os/log.c @@ -117,10 +117,6 @@ OR PERFORMANCE OF THIS SOFTWARE. #include "site.h" #include "opaque.h" -#ifdef WIN32 -#include -#define getpid(x) _getpid(x) -#endif #ifdef NX_TRANS_SOCKET @@ -268,9 +264,7 @@ LogInit(const char *fname, const char *backup) if (saveBuffer && bufferSize > 0) { fwrite(saveBuffer, bufferPos, 1, logFile); fflush(logFile); -#ifndef WIN32 fsync(fileno(logFile)); -#endif } } @@ -398,10 +392,8 @@ LogVWrite(int verb, const char *f, va_list args) fwrite(tmpBuffer, len, 1, logFile); if (logFlush) { fflush(logFile); -#ifndef WIN32 if (logSync) fsync(fileno(logFile)); -#endif } } else if (needBuffer) { /* diff --git a/nx-X11/programs/Xserver/os/osdep.h b/nx-X11/programs/Xserver/os/osdep.h index 01ae7c3fb..5985cfef2 100644 --- a/nx-X11/programs/Xserver/os/osdep.h +++ b/nx-X11/programs/Xserver/os/osdep.h @@ -69,11 +69,6 @@ SOFTWARE. #undef _POSIX_SOURCE #endif #else /* X_NOT_POSIX */ -#ifdef WIN32 -#define _POSIX_ -#include -#undef _POSIX_ -#endif #endif /* X_NOT_POSIX */ #ifndef OPEN_MAX @@ -85,11 +80,7 @@ SOFTWARE. #if defined(NOFILE) && !defined(NOFILES_MAX) #define OPEN_MAX NOFILE #else -#if !defined(WIN32) #define OPEN_MAX NOFILES_MAX -#else -#define OPEN_MAX 256 -#endif #endif #endif #endif @@ -213,13 +204,7 @@ extern fd_set ClientsWriteBlocked; extern fd_set OutputPending; extern fd_set IgnoredClientsWithInput; -#ifndef WIN32 extern int *ConnectionTranslation; -#else -extern int GetConnectionTranslation(int conn); -extern void SetConnectionTranslation(int conn, int client); -extern void ClearConnectionTranslation(); -#endif extern Bool NewOutputPending; extern Bool AnyWritesPending; @@ -234,9 +219,6 @@ extern OsCommPtr AvailableInput; extern WorkQueuePtr workQueue; /* added by raphael */ -#ifdef WIN32 -typedef long int fd_mask; -#endif #define ffs mffs extern int mffs(fd_mask); diff --git a/nx-X11/programs/Xserver/os/osinit.c b/nx-X11/programs/Xserver/os/osinit.c index 4edbb73b0..823656316 100644 --- a/nx-X11/programs/Xserver/os/osinit.c +++ b/nx-X11/programs/Xserver/os/osinit.c @@ -66,7 +66,7 @@ SOFTWARE. #endif -#if !defined(SYSV) && !defined(WIN32) +#if !defined(SYSV) #include #endif @@ -131,7 +131,7 @@ OsInit(void) dup2 (fileno (err), 2); fclose (err); } -#if defined(SYSV) || defined(SVR4) || defined(WIN32) || defined(__CYGWIN__) +#if defined(SYSV) || defined(SVR4) || defined(__CYGWIN__) { static char buf[BUFSIZ]; setvbuf (stderr, buf, _IOLBF, BUFSIZ); @@ -145,7 +145,7 @@ OsInit(void) if (getpgrp () == 0) setpgid (0, 0); #else -#if !defined(SYSV) && !defined(WIN32) +#if !defined(SYSV) if (getpgrp (0) == 0) setpgrp (0, getpid ()); #endif diff --git a/nx-X11/programs/Xserver/os/utils.c b/nx-X11/programs/Xserver/os/utils.c index f7bce64ae..eed8cbf13 100644 --- a/nx-X11/programs/Xserver/os/utils.c +++ b/nx-X11/programs/Xserver/os/utils.c @@ -83,9 +83,6 @@ OR PERFORMANCE OF THIS SOFTWARE. #include #endif -#if defined(WIN32) && !defined(__CYGWIN__) -#include -#endif #include #include #include "misc.h" @@ -115,10 +112,8 @@ OR PERFORMANCE OF THIS SOFTWARE. #undef _POSIX_SOURCE #endif #endif -#ifndef WIN32 #include -#endif -#if !defined(SYSV) && !defined(WIN32) +#if !defined(SYSV) #include #endif #include @@ -132,9 +127,7 @@ OR PERFORMANCE OF THIS SOFTWARE. #include /* for malloc() */ #if defined(TCPCONN) -# ifndef WIN32 # include -# endif #endif #include "opaque.h" @@ -910,7 +903,7 @@ ProcessCommandLine(int argc, char *argv[]) #ifdef SERVER_LOCK else if ( strcmp ( argv[i], "-nolock") == 0) { -#if !defined(WIN32) && !defined(__CYGWIN__) +#if !defined(__CYGWIN__) if (getuid() != 0) ErrorF("Warning: the -nolock option can only be used by root\n"); else @@ -1230,7 +1223,7 @@ ExpandCommandLine(int *pargc, char ***pargv) { int i; -#if !defined(WIN32) && !defined(__CYGWIN__) +#if !defined(__CYGWIN__) if (getuid() != geteuid()) return; #endif @@ -1566,7 +1559,6 @@ OsReleaseSignals (void) #endif } -#if !defined(WIN32) /* * "safer" versions of system(3), popen(3) and pclose(3) which give up * all privs before running a command. @@ -1948,7 +1940,6 @@ Fclose(void * iop) #endif } -#endif /* !WIN32 */ /* @@ -1981,11 +1972,7 @@ Fclose(void * iop) /* Check args and env only if running setuid (euid == 0 && euid != uid) ? */ #ifndef CHECK_EUID -#ifndef WIN32 #define CHECK_EUID 1 -#else -#define CHECK_EUID 0 -#endif #endif /* diff --git a/nx-X11/programs/Xserver/os/xdmcp.c b/nx-X11/programs/Xserver/os/xdmcp.c index 3a077d8f4..8da1131ed 100644 --- a/nx-X11/programs/Xserver/os/xdmcp.c +++ b/nx-X11/programs/Xserver/os/xdmcp.c @@ -17,22 +17,13 @@ #include #endif -#ifdef WIN32 -#include -#define XSERV_t -#define TRANS_SERVER -#define TRANS_REOPEN -#include -#endif #include -#if !defined(WIN32) #include #include #include #include -#endif #include #include @@ -1506,9 +1497,6 @@ get_addr_by_name( struct hostent *hep; #ifdef XTHREADS_NEEDS_BYNAMEPARAMS _Xgethostbynameparams hparams; -#endif -#if defined(WIN32) && defined(TCPCONN) - _XSERVTransWSAStartup(); #endif if (!(hep = _XGethostbyname(namestr, hparams))) { -- cgit v1.2.3 From 11d9b74b61492503e6a39346b8d171d4cf18b811 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Tue, 17 Dec 2019 21:49:57 +0100 Subject: Events.c: improve debugging output Extend nxagentHandleClientMessageEvent: better debug messages, suppress warning "Invalid window in ClientMessage" for legal case. I came across this while testing some clipboard stuff. --- nx-X11/programs/Xserver/hw/nxagent/Events.c | 32 ++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Events.c b/nx-X11/programs/Xserver/hw/nxagent/Events.c index b9d3a9238..859a01bf4 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Events.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Events.c @@ -2578,11 +2578,6 @@ int nxagentHandleClientMessageEvent(XEvent *X, enum HandleEventResult *result) { *result = doNothing; - #ifdef TEST - fprintf(stderr, "%s: ClientMessage event window [%ld] with type [%ld] format [%d].\n", - __func__, X -> xclient.window, X -> xclient.message_type, X -> xclient.format); - #endif - /* * If window is 0, message_type is 0 and format is 32 then we assume * event is coming from proxy. @@ -2592,11 +2587,25 @@ int nxagentHandleClientMessageEvent(XEvent *X, enum HandleEventResult *result) X -> xclient.message_type == 0 && X -> xclient.format == 32) { + #ifdef TEST + fprintf(stderr, "%s: got nxproxy event\n", __func__); + #endif nxagentHandleProxyEvent(X); return 1; } + #ifdef TEST + char * name = XGetAtomName(nxagentDisplay, X -> xclient.message_type); + fprintf(stderr, "nxagentHandleClientMessageEvent: ClientMessage event window [0x%lx] with " + "message_type [%ld][%s] format [%d] type [%d] source_indication [%ld][%s] timestamp [%ld] " + "curwin [0x%lx].\n", X -> xclient.window, X -> xclient.message_type, name, + X -> xclient.format, X -> xclient.type, X -> xclient.data.l[0], + X -> xclient.data.l[0] == 1 ? "'application'" : X -> xclient.data.l[0] == 1 ? "'pager'" : "'none (old spec)'", + X -> xclient.data.l[1], X -> xclient.data.l[2]); + SAFE_XFree(name); + #endif + if (nxagentOption(Rootless)) { Atom message_type = nxagentRemoteToLocalAtom(X -> xclient.message_type); @@ -2611,11 +2620,20 @@ int nxagentHandleClientMessageEvent(XEvent *X, enum HandleEventResult *result) } WindowPtr pWin = nxagentWindowPtr(X -> xclient.window); - if (pWin == NULL) { + /* + * If some window on the real X server sends a + * _NET_ACTIVE_WINDOW ClientMessage to indicate the active + * window that window will be one not belonging to nxagent so + * this situation is perfectly legal. For all other situations + * we print a warning. + */ #ifdef WARNING - fprintf(stderr, "WARNING: Invalid window in ClientMessage.\n"); + if (message_type != MakeAtom("_NET_ACTIVE_WINDOW", strlen("_NET_ACTIVE_WINDOW"), False)) + { + fprintf(stderr, "WARNING: Invalid window in ClientMessage xclient.window [0x%lx].\n", X->xclient.window); + } #endif return 0; -- cgit v1.2.3 From a894fa8bd8c06280cdf47dd0d01fcbda13e0df1f Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Tue, 17 Dec 2019 23:20:03 +0100 Subject: NXproperty.c: simplify ChangeWindowProperty --- nx-X11/programs/Xserver/dix/property.c | 8 +- nx-X11/programs/Xserver/hw/nxagent/NXproperty.c | 113 +----------------------- 2 files changed, 11 insertions(+), 110 deletions(-) diff --git a/nx-X11/programs/Xserver/dix/property.c b/nx-X11/programs/Xserver/dix/property.c index 7f25a5c55..f46b53f7c 100644 --- a/nx-X11/programs/Xserver/dix/property.c +++ b/nx-X11/programs/Xserver/dix/property.c @@ -253,11 +253,18 @@ ProcChangeProperty(ClientPtr client) else return client->noClientException; } +#endif /* NXAGENT_SERVER */ int +#ifdef NXAGENT_SERVER +Xorg_ChangeWindowProperty(WindowPtr pWin, Atom property, Atom type, int format, + int mode, unsigned long len, void * value, + Bool sendevent) +#else ChangeWindowProperty(WindowPtr pWin, Atom property, Atom type, int format, int mode, unsigned long len, void * value, Bool sendevent) +#endif { PropertyPtr pProp; int sizeInBytes; @@ -367,7 +374,6 @@ ChangeWindowProperty(WindowPtr pWin, Atom property, Atom type, int format, } return(Success); } -#endif /* NXAGENT_SERVER */ int DeleteProperty(WindowPtr pWin, Atom propName) diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXproperty.c b/nx-X11/programs/Xserver/hw/nxagent/NXproperty.c index cc10ad760..dc2f5b07f 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXproperty.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXproperty.c @@ -215,16 +215,9 @@ ChangeWindowProperty(WindowPtr pWin, Atom property, Atom type, int format, int mode, unsigned long len, void * value, Bool sendevent) { - PropertyPtr pProp; - int sizeInBytes; - int totalSize; - void * data; - int copySize; - - sizeInBytes = format>>3; - totalSize = len * sizeInBytes; - - copySize = nxagentOption(CopyBufferSize); + int sizeInBytes = format>>3; + int totalSize = len * sizeInBytes; + int copySize = nxagentOption(CopyBufferSize); if (copySize != COPY_UNLIMITED && property == clientCutProperty) { @@ -236,105 +229,7 @@ ChangeWindowProperty(WindowPtr pWin, Atom property, Atom type, int format, } } - /* first see if property already exists */ - - pProp = wUserProps (pWin); - while (pProp) - { - if (pProp->propertyName == property) - break; - pProp = pProp->next; - } - if (!pProp) /* just add to list */ - { - if (!pWin->optional && !MakeWindowOptional (pWin)) - return(BadAlloc); - pProp = (PropertyPtr)malloc(sizeof(PropertyRec)); - if (!pProp) - return(BadAlloc); - data = (void *)malloc(totalSize); - if (!data && len) - { - free(pProp); - return(BadAlloc); - } - pProp->propertyName = property; - pProp->type = type; - pProp->format = format; - pProp->data = data; - if (len) - memmove((char *)data, (char *)value, totalSize); - pProp->size = len; - pProp->next = pWin->optional->userProps; - pWin->optional->userProps = pProp; - } - else - { - /* To append or prepend to a property the request format and type - must match those of the already defined property. The - existing format and type are irrelevant when using the mode - "PropModeReplace" since they will be written over. */ - - if ((format != pProp->format) && (mode != PropModeReplace)) - return(BadMatch); - if ((pProp->type != type) && (mode != PropModeReplace)) - return(BadMatch); - if (mode == PropModeReplace) - { - if (totalSize != pProp->size * (pProp->format >> 3)) - { - data = (void *)realloc(pProp->data, totalSize); - if (!data && len) - return(BadAlloc); - pProp->data = data; - } - if (len) - memmove((char *)pProp->data, (char *)value, totalSize); - pProp->size = len; - pProp->type = type; - pProp->format = format; - } - else if (len == 0) - { - /* do nothing */ - } - else if (mode == PropModeAppend) - { - data = (void *)realloc(pProp->data, - sizeInBytes * (len + pProp->size)); - if (!data) - return(BadAlloc); - pProp->data = data; - memmove(&((char *)data)[pProp->size * sizeInBytes], - (char *)value, - totalSize); - pProp->size += len; - } - else if (mode == PropModePrepend) - { - data = (void *)malloc(sizeInBytes * (len + pProp->size)); - if (!data) - return(BadAlloc); - memmove(&((char *)data)[totalSize], (char *)pProp->data, - (int)(pProp->size * sizeInBytes)); - memmove((char *)data, (char *)value, totalSize); - free(pProp->data); - pProp->data = data; - pProp->size += len; - } - } - if (sendevent) - { - xEvent event; - memset(&event, 0, sizeof(xEvent)); - event.u.u.type = PropertyNotify; - event.u.property.window = pWin->drawable.id; - event.u.property.state = PropertyNewValue; - event.u.property.atom = pProp->propertyName; - event.u.property.time = currentTime.milliseconds; - DeliverEvents(pWin, &event, 1, (WindowPtr)NULL); - } - return(Success); + return Xorg_ChangeWindowProperty(pWin, property, type, format, mode, len, value, sendevent); } /***************** -- cgit v1.2.3 From f5348bdc4a929b1455369ed1b237b82336da496a Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Wed, 18 Dec 2019 00:32:26 +0100 Subject: X.Org bug 4947/Sun bug 6646626: Xv extension not byte-swapping properly Fixes ArcticaProject/nx-libs#165 commit dfd682b582636a36345144bcf835e3ee46718d90 Author: Alan Coopersmith Date: Wed Jan 2 19:27:22 2008 -0800 X.Org bug 4947/Sun bug 6646626: Xv extension not byte-swapping properly X.Org Bugzilla #4947 Sun bug 6646626 Don't use swapped data after swapping it. When done swapping data, send the swapped data, not the address of the pointer to it, to the client. --- nx-X11/programs/Xserver/Xext/xvdisp.c | 50 +++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/nx-X11/programs/Xserver/Xext/xvdisp.c b/nx-X11/programs/Xserver/Xext/xvdisp.c index 60239b5e3..84c5defe4 100644 --- a/nx-X11/programs/Xserver/Xext/xvdisp.c +++ b/nx-X11/programs/Xserver/Xext/xvdisp.c @@ -387,6 +387,7 @@ ProcXvQueryAdaptors(ClientPtr client) xvAdaptorInfo ainfo; xvQueryAdaptorsReply rep; int totalSize, na, nf; + int nameSize; XvAdaptorPtr pa; XvFormatPtr pf; WindowPtr pWin; @@ -450,12 +451,12 @@ ProcXvQueryAdaptors(ClientPtr client) ainfo.base_id = pa->base_id; ainfo.num_ports = pa->nPorts; ainfo.type = pa->type; - ainfo.name_size = strlen(pa->name); + ainfo.name_size = nameSize = strlen(pa->name); ainfo.num_formats = pa->nFormats; _WriteAdaptorInfo(client, &ainfo); - WriteToClient(client, ainfo.name_size, pa->name); + WriteToClient(client, nameSize, pa->name); nf = pa->nFormats; pf = pa->pFormats; @@ -481,6 +482,7 @@ ProcXvQueryEncodings(ClientPtr client) xvEncodingInfo einfo; xvQueryEncodingsReply rep; int totalSize; + int nameSize; XvPortPtr pPort; int ne; XvEncodingPtr pe; @@ -525,13 +527,13 @@ ProcXvQueryEncodings(ClientPtr client) while (ne--) { einfo.encoding = pe->id; - einfo.name_size = strlen(pe->name); + einfo.name_size = nameSize = strlen(pe->name); einfo.width = pe->width; einfo.height = pe->height; einfo.rate.numerator = pe->rate.numerator; einfo.rate.denominator = pe->rate.denominator; _WriteEncodingInfo(client, &einfo); - WriteToClient(client, einfo.name_size, pe->name); + WriteToClient(client, nameSize, pe->name); pe++; } @@ -1011,19 +1013,20 @@ ProcXvQueryPortAttributes(ClientPtr client) rep.num_attributes = pPort->pAdaptor->nAttributes; rep.text_size = 0; - for(i = 0, pAtt = pPort->pAdaptor->pAttributes; - i < rep.num_attributes; i++, pAtt++) + for(i = 0, pAtt = pPort->pAdaptor->pAttributes; + i < pPort->pAdaptor->nAttributes; i++, pAtt++) { rep.text_size += (strlen(pAtt->name) + 1 + 3) & ~3L; } - rep.length = (rep.num_attributes * sz_xvAttributeInfo) + rep.text_size; + rep.length = (pPort->pAdaptor->nAttributes * sz_xvAttributeInfo) + + rep.text_size; rep.length >>= 2; _WriteQueryPortAttributesReply(client, &rep); for(i = 0, pAtt = pPort->pAdaptor->pAttributes; - i < rep.num_attributes; i++, pAtt++) + i < pPort->pAdaptor->nAttributes; i++, pAtt++) { size = strlen(pAtt->name) + 1; /* pass the NULL */ Info.flags = pAtt->flags; @@ -1233,6 +1236,7 @@ ProcXvQueryImageAttributes(ClientPtr client) XvPortPtr pPort; int *offsets; int *pitches; + int planeLength; REQUEST(xvQueryImageAttributesReq); REQUEST_SIZE_MATCH(xvQueryImageAttributesReq); @@ -1272,7 +1276,7 @@ ProcXvQueryImageAttributes(ClientPtr client) rep.type = X_Reply; rep.sequenceNumber = client->sequence; - rep.length = num_planes << 1; + rep.length = planeLength = num_planes << 1; rep.num_planes = num_planes; rep.width = width; rep.height = height; @@ -1280,8 +1284,8 @@ ProcXvQueryImageAttributes(ClientPtr client) _WriteQueryImageAttributesReply(client, &rep); if(client->swapped) - SwapLongs((CARD32*)offsets, rep.length); - WriteToClient(client, rep.length << 2, offsets); + SwapLongs((CARD32*)offsets, planeLength); + WriteToClient(client, planeLength << 2, offsets); free(offsets); @@ -1309,13 +1313,13 @@ ProcXvListImageFormats(ClientPtr client) rep.type = X_Reply; rep.sequenceNumber = client->sequence; rep.num_formats = pPort->pAdaptor->nImages; - rep.length = rep.num_formats * sz_xvImageFormatInfo >> 2; + rep.length = pPort->pAdaptor->nImages * sz_xvImageFormatInfo >> 2; _WriteListImageFormatsReply(client, &rep); pImage = pPort->pAdaptor->pImages; - - for(i = 0; i < rep.num_formats; i++, pImage++) { + + for(i = 0; i < pPort->pAdaptor->nImages; i++, pImage++) { info.id = pImage->id; info.type = pImage->type; info.byte_order = pImage->byte_order; @@ -1642,7 +1646,7 @@ SWriteQueryExtensionReply( swaps(&rep->version); swaps(&rep->revision); - WriteToClient(client, sz_xvQueryExtensionReply, &rep); + WriteToClient(client, sz_xvQueryExtensionReply, rep); return Success; } @@ -1656,7 +1660,7 @@ SWriteQueryAdaptorsReply( swapl(&rep->length); swaps(&rep->num_adaptors); - WriteToClient(client, sz_xvQueryAdaptorsReply, &rep); + WriteToClient(client, sz_xvQueryAdaptorsReply, rep); return Success; } @@ -1670,7 +1674,7 @@ SWriteQueryEncodingsReply( swapl(&rep->length); swaps(&rep->num_encodings); - WriteToClient(client, sz_xvQueryEncodingsReply, &rep); + WriteToClient(client, sz_xvQueryEncodingsReply, rep); return Success; } @@ -1765,7 +1769,7 @@ SWriteGrabPortReply( swaps(&rep->sequenceNumber); swapl(&rep->length); - WriteToClient(client, sz_xvGrabPortReply, &rep); + WriteToClient(client, sz_xvGrabPortReply, rep); return Success; } @@ -1779,7 +1783,7 @@ SWriteGetPortAttributeReply( swapl(&rep->length); swapl(&rep->value); - WriteToClient(client, sz_xvGetPortAttributeReply, &rep); + WriteToClient(client, sz_xvGetPortAttributeReply, rep); return Success; } @@ -1794,7 +1798,7 @@ SWriteQueryBestSizeReply( swaps(&rep->actual_width); swaps(&rep->actual_height); - WriteToClient(client, sz_xvQueryBestSizeReply, &rep); + WriteToClient(client, sz_xvQueryBestSizeReply, rep); return Success; } @@ -1809,7 +1813,7 @@ SWriteQueryPortAttributesReply( swapl(&rep->num_attributes); swapl(&rep->text_size); - WriteToClient(client, sz_xvQueryPortAttributesReply, &rep); + WriteToClient(client, sz_xvQueryPortAttributesReply, rep); return Success; } @@ -1826,7 +1830,7 @@ SWriteQueryImageAttributesReply( swaps(&rep->width); swaps(&rep->height); - WriteToClient(client, sz_xvQueryImageAttributesReply, &rep); + WriteToClient(client, sz_xvQueryImageAttributesReply, rep); return Success; } @@ -1841,7 +1845,7 @@ SWriteListImageFormatsReply( swapl(&rep->length); swapl(&rep->num_formats); - WriteToClient(client, sz_xvListImageFormatsReply, &rep); + WriteToClient(client, sz_xvListImageFormatsReply, rep); return Success; } -- cgit v1.2.3 From d2f694360f34cc9baaf5aec3148a7c82f3875259 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Thu, 19 Dec 2019 16:49:56 +0100 Subject: Rootless.c: fix wording --- nx-X11/programs/Xserver/hw/nxagent/Rootless.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Rootless.c b/nx-X11/programs/Xserver/hw/nxagent/Rootless.c index 86e3c9ca7..85643a853 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Rootless.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Rootless.c @@ -285,7 +285,7 @@ void nxagentRootlessRestack(unsigned long children[], unsigned int nchildren) if (!toplevel) { - /* FIXME: Is this too much and we and simply return here? */ + /* FIXME: Is this too much and we should simply return here? */ FatalError("nxagentRootlessRestack: malloc() failed."); } -- cgit v1.2.3 From aa0662bbda71c3258c80a0b5d55dd17dd376be78 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 28 Dec 2019 18:39:31 +0100 Subject: Window.c: fix comment --- nx-X11/programs/Xserver/hw/nxagent/Window.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Window.c b/nx-X11/programs/Xserver/hw/nxagent/Window.c index 3c582524d..4d9de081d 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Window.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c @@ -1228,8 +1228,8 @@ void nxagentMoveViewport(ScreenPtr pScreen, int hShift, int vShift) /* * This will update the window on the real X server by calling - * XConfigureWindow()/XMapWindow()/XLowerWindow()/XRaiseWindow() - * mask definesthe values that need to be updated, see e.g + * XConfigureWindow()/XMapWindow()/XLowerWindow()/XRaiseWindow(). + * mask defines the values that need to be updated, see e.g. * man XConfigureWindow. * * In addition to the bit flags known to Xorg it uses these -- cgit v1.2.3 From 576255425576c6ee02a18f622de47daa66ced718 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 28 Dec 2019 18:39:48 +0100 Subject: Window.c: code simplifications/scope --- nx-X11/programs/Xserver/hw/nxagent/Window.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Window.c b/nx-X11/programs/Xserver/hw/nxagent/Window.c index 4d9de081d..d60be1aa7 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Window.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c @@ -1281,35 +1281,30 @@ void nxagentConfigureWindow(WindowPtr pWin, unsigned int mask) if (mask & CWX) { valuemask |= CWX; - values.x = nxagentWindowPriv(pWin)->x = pWin->origin.x - wBorderWidth(pWin); } if (mask & CWY) { valuemask |= CWY; - values.y = nxagentWindowPriv(pWin)->y = pWin->origin.y - wBorderWidth(pWin); } if (mask & CWWidth) { valuemask |= CWWidth; - values.width = nxagentWindowPriv(pWin)->width = pWin->drawable.width; } if (mask & CWHeight) { valuemask |= CWHeight; - values.height = nxagentWindowPriv(pWin)->height = pWin->drawable.height; } if (mask & CWBorderWidth) { valuemask |= CWBorderWidth; - values.border_width = nxagentWindowPriv(pWin)->borderWidth = pWin->borderWidth; } @@ -3447,10 +3442,7 @@ void nxagentSetTopLevelEventMask(WindowPtr pWin) */ void nxagentFlushConfigureWindow(void) { - ConfiguredWindowStruct *index; - XWindowChanges changes; - - index = nxagentConfiguredWindowList; + ConfiguredWindowStruct *index = nxagentConfiguredWindowList; while (index) { @@ -3493,8 +3485,10 @@ void nxagentFlushConfigureWindow(void) if (nxagentExposeQueue.exposures[i].synchronize == 1) { - changes.x = nxagentExposeQueue.exposures[i].serial; - changes.y = -2; + XWindowChanges changes = { + .x = nxagentExposeQueue.exposures[i].serial, + .y = -2 + }; #ifdef DEBUG fprintf(stderr, "nxagentFlushConfigureWindow: Sending synch ConfigureWindow for " -- cgit v1.2.3 From c6a2fda07fbb0a18ac3c1ecb6bf96f2eea98d2c9 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 28 Dec 2019 20:00:16 +0100 Subject: Screen.c: drop variable --- nx-X11/programs/Xserver/hw/nxagent/Screen.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c index 9e4d3e433..399a3ea53 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c @@ -2570,8 +2570,6 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin) Atom nxagentShadowAtom; - int fd; - #endif #ifdef TEST @@ -2813,19 +2811,17 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin) nxagentBppShadow = 1; } -#if !defined(__CYGWIN__) +#ifndef __CYGWIN__ imageByteOrder = nxagentShadowDisplay -> byte_order; - fd = XConnectionNumber(nxagentShadowDisplay); - - nxagentShadowXConnectionNumber = fd; + nxagentShadowXConnectionNumber = XConnectionNumber(nxagentShadowDisplay); #endif #ifdef TEST fprintf(stderr, "nxagentShadowInit: Adding the X connection [%d] " - "to the device set.\n", fd); + "to the device set.\n", nxagentShadowXConnectionNumber); #endif SetNotifyFd(nxagentShadowXConnectionNumber, nxagentNotifyConnection, X_NOTIFY_READ, NULL); -- cgit v1.2.3 From a6335cf3d8b3f281944347d12a93fa38c70e8ada Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 28 Dec 2019 20:00:59 +0100 Subject: Screen.c: fix handling of NX_SHADOW atom Needs to be an XlibAtom! --- nx-X11/programs/Xserver/hw/nxagent/Screen.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c index 399a3ea53..bc998569f 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c @@ -2566,12 +2566,6 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin) XlibGC gc; XGCValues value; - #ifndef __CYGWIN32__ - - Atom nxagentShadowAtom; - - #endif - #ifdef TEST fprintf(stderr, "Info: Init shadow session. nxagentDisplayName [%s] " "nxagentDisplay [%p] nxagentShadowDisplayName [%s].\n", @@ -2627,14 +2621,13 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin) } /* - * The shadow nxagent sets the _NX_SHADOW - * property on the master X server root - * window in order to notify its presence. + * The shadow nxagent sets the _NX_SHADOW property on the master X + * server root window in order to notify its presence. */ #ifndef __CYGWIN__ - nxagentShadowAtom = XInternAtom(nxagentShadowDisplay, "_NX_SHADOW", False); + XlibAtom nxagentShadowAtom = XInternAtom(nxagentShadowDisplay, "_NX_SHADOW", False); XChangeProperty(nxagentShadowDisplay, DefaultRootWindow(nxagentShadowDisplay), nxagentShadowAtom, XA_STRING, 8, PropModeReplace, NULL, 0); -- cgit v1.2.3 From 203891d11875e0096248ad509ddd74a62096663f Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 28 Dec 2019 20:04:33 +0100 Subject: Screen.c: code simplification/scope --- nx-X11/programs/Xserver/hw/nxagent/Screen.c | 451 ++++++++++++---------------- 1 file changed, 185 insertions(+), 266 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c index bc998569f..4b9b37a7a 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c @@ -2192,19 +2192,17 @@ Bool nxagentCloseScreen(ScreenPtr pScreen) static void nxagentSetRootClip (ScreenPtr pScreen, Bool enable) { WindowPtr pWin = pScreen->root; - WindowPtr pChild; Bool WasViewable = (Bool)(pWin->viewable); Bool anyMarked = FALSE; - RegionPtr pOldClip = NULL, bsExposed; + RegionPtr pOldClip = NULL; #ifdef DO_SAVE_UNDERS Bool dosave = FALSE; #endif WindowPtr pLayerWin; - BoxRec box; if (WasViewable) { - for (pChild = pWin->firstChild; pChild; pChild = pChild->nextSib) + for (WindowPtr pChild = pWin->firstChild; pChild; pChild = pChild->nextSib) { (void) (*pScreen->MarkOverlappedWindows)(pChild, pChild, @@ -2216,9 +2214,7 @@ static void nxagentSetRootClip (ScreenPtr pScreen, Bool enable) { if (HasBorder (pWin)) { - RegionPtr borderVisible; - - borderVisible = RegionCreate(NullBox, 1); + RegionPtr borderVisible = RegionCreate(NullBox, 1); RegionSubtract(borderVisible, &pWin->borderClip, &pWin->winSize); pWin->valdata->before.borderVisible = borderVisible; @@ -2229,15 +2225,12 @@ static void nxagentSetRootClip (ScreenPtr pScreen, Bool enable) /* * Use REGION_BREAK to avoid optimizations in ValidateTree - * that assume the root borderClip can't change well, normally + * that assume the root borderClip can't change. Well, normally * it doesn't...) */ if (enable) { - box.x1 = 0; - box.y1 = 0; - box.x2 = pScreen->width; - box.y2 = pScreen->height; + BoxRec box = {.x1 = 0, .y1 = 0, .x2 = pScreen->width, .y2 = pScreen->height}; RegionInit(&pWin->winSize, &box, 1); RegionInit(&pWin->borderSize, &box, 1); if (WasViewable) @@ -2290,14 +2283,14 @@ static void nxagentSetRootClip (ScreenPtr pScreen, Bool enable) { if (!WasViewable) pOldClip = &pWin->clipList; /* a convenient empty region */ - bsExposed = (*pScreen->TranslateBackingStore) + RegionPtr bsExposed = (*pScreen->TranslateBackingStore) (pWin, 0, 0, pOldClip, pWin->drawable.x, pWin->drawable.y); if (WasViewable) RegionDestroy(pOldClip); if (bsExposed) { - RegionPtr valExposed = NullRegion; + RegionPtr valExposed = NullRegion; if (pWin->valdata) valExposed = &pWin->valdata->after.exposed; @@ -2326,15 +2319,6 @@ static void nxagentSetRootClip (ScreenPtr pScreen, Bool enable) Bool nxagentResizeScreen(ScreenPtr pScreen, int width, int height, int mmWidth, int mmHeight) { - BoxRec box; - PixmapPtr pPixmap; - char *fbBits; - - int oldWidth; - int oldHeight; - int oldMmWidth; - int oldMmHeight; - #ifdef TEST nxagentPrintAgentGeometry("Before Resize Screen", "nxagentResizeScreen:"); #endif @@ -2343,10 +2327,10 @@ Bool nxagentResizeScreen(ScreenPtr pScreen, int width, int height, * Change screen properties. */ - oldWidth = pScreen -> width; - oldHeight = pScreen -> height; - oldMmWidth = pScreen -> mmWidth; - oldMmHeight = pScreen -> mmHeight; + int oldWidth = pScreen -> width; + int oldHeight = pScreen -> height; + int oldMmWidth = pScreen -> mmWidth; + int oldMmHeight = pScreen -> mmHeight; pScreen -> width = width; pScreen -> height = height; @@ -2396,10 +2380,11 @@ Bool nxagentResizeScreen(ScreenPtr pScreen, int width, int height, pScreen -> mmWidth = mmWidth; pScreen -> mmHeight = mmHeight; - pPixmap = fbGetScreenPixmap(pScreen); + PixmapPtr pPixmap = fbGetScreenPixmap(pScreen); - if ((fbBits = realloc(pPixmap -> devPrivate.ptr, PixmapBytePad(width, pScreen->rootDepth) * - height * BitsPerPixel(pScreen->rootDepth) / 8)) == NULL) + char *fbBits = realloc(pPixmap -> devPrivate.ptr, PixmapBytePad(width, pScreen->rootDepth) * + height * BitsPerPixel(pScreen->rootDepth) / 8); + if (fbBits == NULL) { pScreen -> width = oldWidth; pScreen -> height = oldHeight; @@ -2466,10 +2451,7 @@ FIXME: We should try to restore the previously * Set properties for the agent root window. */ - box.x1 = 0; - box.y1 = 0; - box.x2 = width; - box.y2 = height; + BoxRec box = {.x1 = 0, .y1 = 0, .x2 = width, .y2 = height}; pScreen->root -> drawable.width = width; pScreen->root -> drawable.height = height; @@ -2511,9 +2493,6 @@ nxagentResizeScreenError: void nxagentShadowSetRatio(float floatXRatio, float floatYRatio) { - int intXRatio; - int intYRatio; - if (floatXRatio == 0) { floatXRatio = 1.0; @@ -2524,8 +2503,8 @@ void nxagentShadowSetRatio(float floatXRatio, float floatYRatio) floatYRatio = 1.0; } - intXRatio = floatXRatio * (1 << PRECISION); - intYRatio = floatYRatio * (1 << PRECISION); + int intXRatio = floatXRatio * (1 << PRECISION); + int intYRatio = floatYRatio * (1 << PRECISION); nxagentChangeOption(FloatXRatio, floatXRatio); nxagentChangeOption(FloatYRatio, floatYRatio); @@ -2563,8 +2542,6 @@ void nxagentShadowSetWindowOptions(void) int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin) { char *layout = NULL; - XlibGC gc; - XGCValues value; #ifdef TEST fprintf(stderr, "Info: Init shadow session. nxagentDisplayName [%s] " @@ -2677,36 +2654,12 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin) switch (DefaultVisualOfScreen(DefaultScreenOfDisplay(nxagentShadowDisplay)) -> class) { - case StaticGray: - { - className = "StaticGray"; - break; - } - case StaticColor: - { - className = "StaticColor"; - break; - } - case PseudoColor: - { - className = "PseudoColor"; - break; - } - case DirectColor: - { - className = "DirectColor"; - break; - } - case GrayScale: - { - className = "GrayScale"; - break; - } - default: - { - className = ""; - break; - } + case StaticGray: { className = "StaticGray"; break; } + case StaticColor: { className = "StaticColor"; break; } + case PseudoColor: { className = "PseudoColor"; break; } + case DirectColor: { className = "DirectColor"; break; } + case GrayScale: { className = "GrayScale"; break; } + default: { className = ""; break; } } fprintf(stderr, "nxagentShadowInit: PANIC! Cannot shadow the display. " @@ -2844,13 +2797,15 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin) * Clean up the main window. */ - value.foreground = 0x00000000; - value.background = 0x00000000; - value.plane_mask = 0xffffffff; - value.fill_style = FillSolid; + XGCValues value = { + .foreground = 0x00000000, + .background = 0x00000000, + .plane_mask = 0xffffffff, + .fill_style = FillSolid, + }; - gc = XCreateGC(nxagentDisplay, nxagentPixmap(nxagentShadowPixmapPtr), GCBackground | - GCForeground | GCFillStyle | GCPlaneMask, &value); + XlibGC gc = XCreateGC(nxagentDisplay, nxagentPixmap(nxagentShadowPixmapPtr), GCBackground | + GCForeground | GCFillStyle | GCPlaneMask, &value); XFillRectangle(nxagentDisplay, nxagentPixmap(nxagentShadowPixmapPtr), gc, 0, 0, nxagentShadowWidth, nxagentShadowHeight); @@ -2864,12 +2819,6 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin) int nxagentShadowCreateMainWindow(ScreenPtr pScreen, WindowPtr pWin, int width, int height) { - XWindowChanges changes; - Mask mask,maskb; - XID values[4], *vlist; - int error; - XID xid; - nxagentShadowWidth = width; nxagentShadowHeight = height; @@ -2915,9 +2864,9 @@ int nxagentShadowCreateMainWindow(ScreenPtr pScreen, WindowPtr pWin, int width, XFreePixmap(nxagentDisplay, nxagentPixmap(nxagentVirtualPixmap(nxagentShadowPixmapPtr))); - xid = XCreatePixmap(nxagentDisplay, nxagentDefaultWindows[0], - nxagentScale(nxagentShadowWidth, nxagentOption(XRatio)), - nxagentScale(nxagentShadowHeight, nxagentOption(YRatio)), nxagentShadowDepth); + XID xid = XCreatePixmap(nxagentDisplay, nxagentDefaultWindows[0], + nxagentScale(nxagentShadowWidth, nxagentOption(XRatio)), + nxagentScale(nxagentShadowHeight, nxagentOption(YRatio)), nxagentShadowDepth); nxagentPixmap(nxagentVirtualPixmap(nxagentShadowPixmapPtr)) = xid; @@ -2946,24 +2895,27 @@ int nxagentShadowCreateMainWindow(ScreenPtr pScreen, WindowPtr pWin, int width, #endif } - mask = CWBackPixmap | CWEventMask | CWCursor; + Mask mask = CWBackPixmap | CWEventMask | CWCursor; + Mask maskb = nxagentGetDefaultEventMask() | ResizeRedirectMask | ExposureMask; - maskb = nxagentGetDefaultEventMask(); - maskb |= ResizeRedirectMask | ExposureMask; - - vlist = values; + XID values[4]; + XID *vlist = values; *vlist++ = (XID)nxagentShadowPixmapPtr -> drawable.id; *vlist++ = (XID)maskb; *vlist = (XID)None; + int error; + nxagentShadowWindowPtr = CreateWindow(accessWindowID, pWin, 0, 0, nxagentShadowWidth, nxagentShadowHeight, 0, InputOutput, mask, (XID *)values, nxagentShadowDepth, serverClient, CopyFromParent, &error); mask = CWWidth | CWHeight; - changes.width = nxagentScale(nxagentShadowWidth, nxagentOption(XRatio)); - changes.height = nxagentScale(nxagentShadowHeight, nxagentOption(YRatio)); + XWindowChanges changes = { + .width = nxagentScale(nxagentShadowWidth, nxagentOption(XRatio)), + .height = nxagentScale(nxagentShadowHeight, nxagentOption(YRatio)) + }; XConfigureWindow(nxagentDisplay, nxagentWindow(nxagentShadowWindowPtr), mask, &changes); @@ -3027,21 +2979,10 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr unsigned char nxagentShadowDepth, int nxagentShadowWidth, int nxagentShadowHeight, char *nxagentShadowBuffer, int *changed, int *suspended) { - int x, y, y2, n, c, line; - int result; - long numRects; - unsigned int width, height, length; - char *tBuffer = NULL; - char *iBuffer, *ptBox; - BoxRec *pBox; RegionRec updateRegion; RegionRec tempRegion; - BoxRec box; - int overlap; - RegionNull(&updateRegion); - RegionNull(&tempRegion); #ifdef __CYGWIN32__ @@ -3056,22 +2997,27 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr #endif - result = NXShadowHasChanged(nxagentUserInput, NULL, suspended); + int result = NXShadowHasChanged(nxagentUserInput, NULL, suspended); *changed = result; if (result == 1) { + char *tBuffer = NULL; + char *iBuffer, *ptBox; + nxagentRemoveSplashWindow(); + long numRects; NXShadowExportChanges(&numRects, &ptBox); - pBox = (BoxRec *)ptBox; + + BoxRec *pBox = (BoxRec *)ptBox; #ifdef TEST fprintf(stderr, "nxagentShadowPoll: nRects[%ld], pBox[%p] depth[%d].\n", numRects, (void *) pBox, nxagentShadowDepth); #endif - for (n = 0; n < numRects; n++) + for (int n = 0; n < numRects; n++) { /* * The BoxRec struct defined in the Xserver has a different @@ -3079,11 +3025,11 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr * the second and third field are inverted. */ - x = pBox[n].x1; - y = pBox[n].x2; - y2 = pBox[n].y2; - width = pBox[n].y1 - pBox[n].x1;/* y1 = x2 */ - height = y2 - pBox[n].x2; /* x2 = y1 */ + int x = pBox[n].x1; + int y = pBox[n].x2; + int y2 = pBox[n].y2; + unsigned int width = pBox[n].y1 - pBox[n].x1;/* y1 = x2 */ + unsigned int height = y2 - pBox[n].x2; /* x2 = y1 */ if((x + width) > nxagentShadowWidth || (y + height) > nxagentShadowHeight) { @@ -3094,13 +3040,13 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr continue; } - line = PixmapBytePad(width, nxagentMasterDepth); + int line = PixmapBytePad(width, nxagentMasterDepth); #ifdef DEBUG fprintf(stderr, "nxagentShadowPoll: Rectangle Number[%d] - x[%d]y[%d]W[%u]H[%u].\n", n+1, x, y, width, height); #endif - length = nxagentImageLength(width, height, ZPixmap, 0, nxagentMasterDepth); + unsigned int length = nxagentImageLength(width, height, ZPixmap, 0, nxagentMasterDepth); SAFE_free(tBuffer); @@ -3117,7 +3063,7 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr iBuffer = tBuffer; - for (c = 0; c + y < y2; c++) + for (int c = 0; c + y < y2; c++) { memcpy(tBuffer, nxagentShadowBuffer + x * nxagentBppMaster + (y + c) * nxagentShadowWidth * nxagentBppMaster, line); @@ -3143,10 +3089,7 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr fbPutImage(nxagentVirtualDrawable((DrawablePtr)nxagentShadowPixmapPtr), nxagentShadowGCPtr, nxagentShadowDepth, x, y, width, height, 0, ZPixmap, tBuffer); - box.x1 = x; - box.x2 = x + width; - box.y1 = y; - box.y2 = y + height; + BoxRec box = {.x1 = x, .x2 = x + width, .y1 = y, .y2 = y + height}; RegionInit(&tempRegion, &box, 1); @@ -3154,6 +3097,7 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr RegionUninit(&tempRegion); + int overlap; RegionValidate(&updateRegion, &overlap); RegionUnion(&nxagentShadowUpdateRegion, &nxagentShadowUpdateRegion, &updateRegion); @@ -3387,43 +3331,40 @@ unsigned char fromHexNibble(char c) void nxagentPropagateArtsdProperties(ScreenPtr pScreen, char *port) { - Window rootWin; - XlibAtom atomReturnType; - XlibAtom propAtom; - int iReturnFormat; - unsigned long ulReturnItems; - unsigned long ulReturnBytesLeft; - unsigned char *pszReturnData = NULL; - int iReturn; char tchar[] = " "; /* FIXME: The port information is not used at the moment and produces a warning on recent gcc versions. Do we need such information - to run the audio forawrding? + to run the audio forwarding? char *chport; char hex[] = "0123456789abcdef"; */ - rootWin = DefaultRootWindow(nxagentDisplay); - propAtom = nxagentAtoms[4]; /* MCOPGLOBALS */ + Window rootWin = DefaultRootWindow(nxagentDisplay); + XlibAtom propAtom = nxagentAtoms[4]; /* MCOPGLOBALS */ + XlibAtom atomReturnType; + int iReturnFormat; + unsigned long ulReturnItems; + unsigned long ulReturnBytesLeft; + unsigned char *pszReturnData = NULL; /* * Get at most 64KB of data. */ - iReturn = XGetWindowProperty(nxagentDisplay, - rootWin, - propAtom, - 0, - 65536 / 4, - False, - XA_STRING, - &atomReturnType, - &iReturnFormat, - &ulReturnItems, - &ulReturnBytesLeft, - &pszReturnData); + int iReturn = XGetWindowProperty(nxagentDisplay, + rootWin, + propAtom, + 0, + 65536 / 4, + False, + XA_STRING, + &atomReturnType, + &iReturnFormat, + &ulReturnItems, + &ulReturnBytesLeft, + &pszReturnData); if (iReturn == Success && atomReturnType != None && ulReturnItems > 0 && pszReturnData != NULL) @@ -3451,72 +3392,69 @@ FIXME: The port information is not used at the moment and produces a int i, in; for (i = 0, in = 0; pszReturnData[i] != '\0'; i++) { - local_buf[in]=pszReturnData[i]; + local_buf[in] = pszReturnData[i]; - if(pszReturnData[i]==':') + if(pszReturnData[i] == ':') { i++; - while(pszReturnData[i]!='\n') + while(pszReturnData[i] != '\n') { - unsigned char h; - unsigned char l; - - h = fromHexNibble(pszReturnData[i]); + unsigned char h = fromHexNibble(pszReturnData[i]); i++; - if(pszReturnData[i]=='\0') continue; - l = fromHexNibble(pszReturnData[i]); + if (pszReturnData[i] == '\0') + continue; + unsigned char l = fromHexNibble(pszReturnData[i]); i++; if(h >= 16 || l >= 16) continue; /* - * FIXME: The array tchar[] was used uninitialized. - * It's not clear to me the original purpose of the - * piece of code using it. To be removed in future - * versions. + * FIXME: The array tchar[] was used uninitialized. It's + * not clear to me the original purpose of the piece of + * code using it. To be removed in future versions. */ - tchar[0]=tchar[1]; - tchar[1]=tchar[2]; - tchar[2]=tchar[3]; + tchar[0] = tchar[1]; + tchar[1] = tchar[2]; + tchar[2] = tchar[3]; tchar[3] = (h << 4) + l; - tchar[4]='\0'; + tchar[4] ='\0'; if (strncmp(tchar, "tcp:", 4) == 0) { - local_buf[in-7]='1'; - local_buf[in-6]=strlen(port)+47; + local_buf[in - 7] = '1'; + local_buf[in - 6] = strlen(port) + 47; in++; - local_buf[in]=pszReturnData[i-2]; + local_buf[in] = pszReturnData[i - 2]; in++; - local_buf[in]=pszReturnData[i-1]; + local_buf[in] = pszReturnData[i - 1]; /* "localhost:" */ strcat(local_buf,"6c6f63616c686f73743a"); - in+=20; + in += 20; /* FIXME: The port information is not used at the moment and produces a warning on recent gcc versions. Do we need such information to run the audio forawrding? - chport=&port[0]; + chport = &port[0]; - while(*chport!='\0') + while(*chport != '\0') { in++; - local_buf[in]=hex[(*chport >> 4) & 0xf]; + local_buf[in] = hex[(*chport >> 4) & 0xf]; in++; - local_buf[in]=hex[*chport & 0xf]; + local_buf[in] = hex[*chport & 0xf]; *chport++; } */ strcat(local_buf,"00"); - in+=2; + in += 2; - while(pszReturnData[i]!='\n') + while(pszReturnData[i] != '\n') { i++; } @@ -3524,20 +3462,20 @@ FIXME: The port information is not used at the moment and produces a else { in++; - local_buf[in]=pszReturnData[i-2]; + local_buf[in] = pszReturnData[i - 2]; in++; - local_buf[in]=pszReturnData[i-1]; + local_buf[in] = pszReturnData[i - 1]; } } in++; - local_buf[in]=pszReturnData[i]; + local_buf[in] = pszReturnData[i]; } in++; } - local_buf[in]=0; + local_buf[in] = 0; if (strlen(local_buf)) { @@ -3612,9 +3550,6 @@ Bool intersect(int ax1, int ay1, unsigned int aw, unsigned int ah, int bx1, int by1, unsigned int bw, unsigned int bh, int *x, int *y, unsigned int *w, unsigned int *h) { - int tx1, ty1, tx2, ty2, ix, iy; - unsigned int iw, ih; - int ax2 = ax1 + aw; int ay2 = ay1 + ah; int bx2 = bx1 + bw; @@ -3632,15 +3567,15 @@ Bool intersect(int ax1, int ay1, unsigned int aw, unsigned int ah, return FALSE; } - tx1 = max(ax1, bx1); - ty1 = max(ay1, by1); - tx2 = min(ax2, bx2); - ty2 = min(ay2, by2); + int tx1 = max(ax1, bx1); + int ty1 = max(ay1, by1); + int tx2 = min(ax2, bx2); + int ty2 = min(ay2, by2); - ix = tx1 - ax1; - iy = ty1 - ay1; - iw = tx2 - tx1; - ih = ty2 - ty1; + int ix = tx1 - ax1; + int iy = ty1 - ay1; + unsigned int iw = tx2 - tx1; + unsigned int ih = ty2 - ty1; /* check if the resulting rectangle is feasible */ if (iw <= 0 || ih <= 0) { @@ -3680,34 +3615,31 @@ Bool intersect_bb(int ax1, int ay1, unsigned int aw, unsigned int ah, Bool result = intersect(ax1, ay1, aw, ah, bx1, by1, bw, bh, x, y, w, h); - if (result == TRUE) { - + if (result == TRUE) + { /* * ###### The X-Coordinate ###### */ /* check if outside-left of bounding box */ - if (bx1 == bbx1 && ax1 < bbx1) { - + if (bx1 == bbx1 && ax1 < bbx1) + { *w += bbx1 - ax1; *x = 0; #ifdef DEBUG fprintf(stderr, "intersect_bb: session box is outside-left of the bounding box - width gets adapted to [%d]\n", *w); #endif - - } /* check if outside-right of bounding box */ - if (bx1 + bw == bbx2 && ax1 + aw > bbx2) { - + if (bx1 + bw == bbx2 && ax1 + aw > bbx2) + { *w += ax1 + aw - bbx2; #ifdef DEBUG fprintf(stderr, "intersect_bb: session box is outside-right of the bounding box - width gets adapted to [%d]\n", *w); #endif - } /* @@ -3715,34 +3647,31 @@ Bool intersect_bb(int ax1, int ay1, unsigned int aw, unsigned int ah, */ /* check if outside-above of bounding box */ - if (by1 == bby1 && ay1 < bby1) { - + if (by1 == bby1 && ay1 < bby1) + { *h += bby1 - ay1; *y = 0; #ifdef DEBUG fprintf(stderr, "intersect_bb: session box is outside-above of the bounding box - height gets adapted to [%d]\n", *h); #endif - } /* check if outside-below of bounding box */ - if (by1 + bh == bby2 && ay1 + ah > bby2) { - + if (by1 + bh == bby2 && ay1 + ah > bby2) + { *h += ay1 + ah - bby2; #ifdef DEBUG fprintf(stderr, "intersect_bb: session box is outside-below of the bounding box - height gets adapted to [%d]\n", *h); #endif - } - } return result; } #endif -RRModePtr nxagentRRCustomMode = NULL; +RRModePtr nxagentRRCustomMode = NULL; /* This is basically the code that was used on screen resize before @@ -3752,38 +3681,36 @@ RRModePtr nxagentRRCustomMode = NULL; void nxagentAdjustCustomMode(ScreenPtr pScreen) { rrScrPrivPtr pScrPriv = rrGetScrPriv(pScreen); - RROutputPtr output; if (pScrPriv) { - output = RRFirstOutput(pScreen); + RROutputPtr output = RRFirstOutput(pScreen); if (output && output -> crtc) { - RRCrtcPtr crtc; - char name[100]; - xRRModeInfo modeInfo; const int refresh = 60; int width = nxagentOption(Width); int height = nxagentOption(Height); - crtc = output -> crtc; + RRCrtcPtr crtc = output -> crtc; for (int c = 0; c < pScrPriv -> numCrtcs; c++) { RRCrtcSet(pScrPriv -> crtcs[c], NULL, 0, 0, RR_Rotate_0, 0, NULL); } - memset(&modeInfo, '\0', sizeof(modeInfo)); + char name[100]; sprintf(name, "%dx%d", width, height); - modeInfo.width = width; - modeInfo.height = height; - modeInfo.hTotal = width; - modeInfo.vTotal = height; - modeInfo.dotClock = ((CARD32) width * (CARD32) height * - (CARD32) refresh); - modeInfo.nameLength = strlen(name); + xRRModeInfo modeInfo = { + .width = width, + .height = height, + .hTotal = width, + .vTotal = height, + .dotClock = ((CARD32) width * (CARD32) height * + (CARD32) refresh), + .nameLength = strlen(name) + }; if (nxagentRRCustomMode != NULL) { @@ -3925,19 +3852,13 @@ void nxagentDropOutput(RROutputPtr o) int nxagentAdjustRandRXinerama(ScreenPtr pScreen) { - rrScrPrivPtr pScrPriv; - RROutputPtr output; - xRRModeInfo modeInfo; - char name[100]; - int refresh = 60; - int width = nxagentOption(Width); - int height = nxagentOption(Height); + int width = nxagentOption(Width); + int height = nxagentOption(Height); - pScrPriv = rrGetScrPriv(pScreen); + rrScrPrivPtr pScrPriv = rrGetScrPriv(pScreen); if (pScrPriv) { - int i; int number = 0; XineramaScreenInfo *screeninfo = XineramaQueryScreens(nxagentDisplay, &number); @@ -3946,7 +3867,7 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen) { #ifdef DEBUG fprintf(stderr, "nxagentAdjustRandRXinerama: XineramaQueryScreens() returned [%d] screens:\n", number); - for (int i=0; i < number; i++) { + for (int i = 0; i < number; i++) { fprintf(stderr, "nxagentAdjustRandRXinerama: screen_number [%d] x_org [%d] y_org [%d] width [%d] height [%d]\n", screeninfo[i].screen_number, screeninfo[i].x_org, screeninfo[i].y_org, screeninfo[i].width, screeninfo[i].height); } #endif @@ -3991,15 +3912,13 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen) #ifdef DEBUG fprintf(stderr, "nxagentAdjustRandRXinerama: numCrtcs [%d], numOutputs [%d]\n", pScrPriv->numCrtcs, pScrPriv->numOutputs); { - Bool rrgetinfo; - /* * Convert old RANDR 1.0 data (if any) to current structure. This * is needed once at the first run of this function. If we don't * do this here it will be done implicitly later and add mode(s) to * our crtc(s)! */ - rrgetinfo = RRGetInfo(pScreen, FALSE); + Bool rrgetinfo = RRGetInfo(pScreen, FALSE); fprintf(stderr, "nxagentAdjustRandRXinerama: RRGetInfo returned [%d]\n", rrgetinfo); } @@ -4014,7 +3933,7 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen) bbx2 = bby2 = 0; bbx1 = bby1 = INT_MAX; - for (i = 0; i < number; i++) + for (int i = 0; i < number; i++) { bbx2 = max(bbx2, screeninfo[i].x_org + screeninfo[i].width); bby2 = max(bby2, screeninfo[i].y_org + screeninfo[i].height); @@ -4059,7 +3978,7 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen) /* set gamma. Currently the only reason for doing this is preventing the xrandr command from complaining about missing gamma. */ - for (i = 0; i < pScrPriv->numCrtcs; i++) + for (int i = 0; i < pScrPriv->numCrtcs; i++) { if (pScrPriv->crtcs[i]->gammaSize == 0) { @@ -4071,19 +3990,22 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen) } /* delete superfluous non-NX outputs */ - for (i = pScrPriv->numOutputs - 1; i >= 0; i--) + for (int i = pScrPriv->numOutputs - 1; i >= 0; i--) if (strncmp(pScrPriv->outputs[i]->name, "NX", 2)) nxagentDropOutput(pScrPriv->outputs[i]); /* at this stage only NX outputs are left - we delete the superfluous ones */ - for (i = pScrPriv->numOutputs - 1; i >= number; i--) + for (int i = pScrPriv->numOutputs - 1; i >= number; i--) nxagentDropOutput(pScrPriv->outputs[i]); /* add and init outputs */ - for (i = 0; i < number; i++) + for (int i = 0; i < number; i++) { + RROutputPtr output; + if (i >= pScrPriv->numOutputs) { + char name[100]; sprintf(name, "NX%d", i+1); output = RROutputCreate(pScreen, name, strlen(name), NULL); /* will be done later @@ -4109,10 +4031,8 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen) RROutputSetPhysicalSize(output, 0, 0); } - for (i = 0; i < pScrPriv->numOutputs; i++) + for (int i = 0; i < pScrPriv->numOutputs; i++) { - Bool disable_output = FALSE; - RRModePtr mymode = NULL, prevmode = NULL; int new_x = 0; int new_y = 0; unsigned int new_w = 0; @@ -4120,22 +4040,22 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen) /* if there's no intersection disconnect the output */ #ifdef NXAGENT_RANDR_XINERAMA_CLIPPING - disable_output = !intersect(nxagentOption(X), nxagentOption(Y), - width, height, - screeninfo[i].x_org, screeninfo[i].y_org, - screeninfo[i].width, screeninfo[i].height, - &new_x, &new_y, &new_w, &new_h); + Bool disable_output = !intersect(nxagentOption(X), nxagentOption(Y), + width, height, + screeninfo[i].x_org, screeninfo[i].y_org, + screeninfo[i].width, screeninfo[i].height, + &new_x, &new_y, &new_w, &new_h); #else - disable_output = !intersect_bb(nxagentOption(X), nxagentOption(Y), - width, height, - screeninfo[i].x_org, screeninfo[i].y_org, - screeninfo[i].width, screeninfo[i].height, - bbx1, bby1, bbx2, bby2, - &new_x, &new_y, &new_w, &new_h); + Bool disable_output = !intersect_bb(nxagentOption(X), nxagentOption(Y), + width, height, + screeninfo[i].x_org, screeninfo[i].y_org, + screeninfo[i].width, screeninfo[i].height, + bbx1, bby1, bbx2, bby2, + &new_x, &new_y, &new_w, &new_h); #endif /* save previous mode */ - prevmode = pScrPriv->crtcs[i]->mode; + RRModePtr prevmode = pScrPriv->crtcs[i]->mode; #ifdef DEBUG if (prevmode) { @@ -4186,22 +4106,25 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen) RROutputSetConnection(pScrPriv->outputs[i], RR_Connected); - memset(&modeInfo, '\0', sizeof(modeInfo)); - /* avoid collisions with pre-existing default modes by using a separate namespace. If we'd simply use XxY we could not distinguish between pre-existing modes which should stay and our own modes that should be removed after use. */ + char name[100]; sprintf(name, "%s%dx%d", QUOTE(NXAGENT_RANDR_MODE_PREFIX), new_w, new_h); - modeInfo.width = new_w; - modeInfo.height = new_h; - modeInfo.hTotal = new_w; - modeInfo.vTotal = new_h; - modeInfo.dotClock = ((CARD32) new_w * (CARD32) new_h * (CARD32) refresh); - modeInfo.nameLength = strlen(name); + const int refresh = 60; + + xRRModeInfo modeInfo = { + .width = new_w, + .height = new_h, + .hTotal = new_w, + .vTotal = new_h, + .dotClock = ((CARD32) new_w * (CARD32) new_h * (CARD32) refresh), + .nameLength = strlen(name) + }; - mymode = RRModeGet(&modeInfo, name); + RRModePtr mymode = RRModeGet(&modeInfo, name); #ifdef DEBUG if (mymode) @@ -4299,8 +4222,6 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen) void nxagentSaveAreas(PixmapPtr pPixmap, RegionPtr prgnSave, int xorg, int yorg, WindowPtr pWin) { - XGCValues values = {0}; - miBSWindowPtr pBackingStore = (miBSWindowPtr) pWin -> backStorage; PixmapPtr pVirtualPixmap = nxagentVirtualPixmap(pPixmap); @@ -4312,7 +4233,7 @@ void nxagentSaveAreas(PixmapPtr pPixmap, RegionPtr prgnSave, int xorg, int yorg, fbCopyWindowProc(&pWin -> drawable, &pVirtualPixmap -> drawable, 0, RegionRects(prgnSave), RegionNumRects(prgnSave), xorg, yorg, FALSE, FALSE, 0, 0); - values.subwindow_mode = IncludeInferiors; + XGCValues values = {.subwindow_mode = IncludeInferiors}; XlibGC gc = XCreateGC(nxagentDisplay, nxagentWindow(screenInfo.screens[0]->root), GCSubwindowMode, &values); @@ -4406,8 +4327,6 @@ void nxagentSaveAreas(PixmapPtr pPixmap, RegionPtr prgnSave, int xorg, int yorg, void nxagentRestoreAreas(PixmapPtr pPixmap, RegionPtr prgnRestore, int xorg, int yorg, WindowPtr pWin) { - XGCValues values = {0}; - /* * Limit the area to restore to the * root window size. @@ -4423,7 +4342,7 @@ void nxagentRestoreAreas(PixmapPtr pPixmap, RegionPtr prgnRestore, int xorg, fbCopyWindowProc(&pVirtualPixmap -> drawable, &pWin -> drawable, 0, RegionRects(prgnRestore), RegionNumRects(prgnRestore), -xorg, -yorg, FALSE, FALSE, 0, 0); - values.subwindow_mode = ClipByChildren; + XGCValues values = {.subwindow_mode = ClipByChildren}; XlibGC gc = XCreateGC(nxagentDisplay, nxagentWindow(screenInfo.screens[0]->root), GCSubwindowMode, &values); @@ -4586,9 +4505,9 @@ void nxagentSetWMNormalHints(int screen, int width, int height) */ void nxagentSetWMNormalHintsMaxsize(ScreenPtr pScreen, int maxwidth, int maxheight) { - XSizeHints* sizeHints; + XSizeHints* sizeHints = XAllocSizeHints(); - if ((sizeHints = XAllocSizeHints())) + if (sizeHints) { sizeHints->flags = PMaxSize; sizeHints->max_width = maxwidth; -- cgit v1.2.3 From f3aca240d1bd28d87431db8b1fbcad7a3d36d648 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 28 Dec 2019 20:40:37 +0100 Subject: Image.c: code simplification/scope --- nx-X11/programs/Xserver/hw/nxagent/Image.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Image.c b/nx-X11/programs/Xserver/hw/nxagent/Image.c index 34d5cf9f9..69a51075c 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Image.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Image.c @@ -140,9 +140,7 @@ static char *nxagentImageCopy(XImage *source, XImage *destination); * expensive than a copy. */ -#define nxagentNeedCache(image, method) \ -\ - ((method) != PACK_BITMAP_16M_COLORS) +#define nxagentNeedCache(image, method) ((method) != PACK_BITMAP_16M_COLORS) /* * With the bitmap encoding, if the image is 32 bits-per-pixel the 4th @@ -276,6 +274,7 @@ int nxagentImagePad(int width, int format, int leftPad, int depth) else if (format == XYPixmap) { line = BitmapBytePad(width + leftPad); + /* FIXME: shouldn't we multiply by depth here like in nxagentImageLength? */ } else if (format == ZPixmap) { @@ -1559,7 +1558,6 @@ int nxagentScaleImage(int x, int y, unsigned xRatio, unsigned yRatio, XImage **pImage, int *scaledx, int *scaledy) { XImage *image = *pImage; - if (image == NULL) { return 0; -- cgit v1.2.3 From 2c03bd793a786004822902a04ad97f921c1380e5 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 28 Dec 2019 23:40:25 +0100 Subject: nxagent: drop CYGWIN and WIN32 defines --- nx-X11/programs/Xserver/hw/nxagent/Display.c | 1 - nx-X11/programs/Xserver/hw/nxagent/Handlers.c | 39 --------------------------- nx-X11/programs/Xserver/hw/nxagent/Options.c | 8 ------ nx-X11/programs/Xserver/hw/nxagent/Screen.c | 34 ----------------------- 4 files changed, 82 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Display.c b/nx-X11/programs/Xserver/hw/nxagent/Display.c index a93fd2418..587222da7 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Display.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c @@ -1744,7 +1744,6 @@ FIXME: Is this needed? nxagentDisplay = NULL; } - Bool nxagentMakeIcon(Display *display, Pixmap *nxIcon, Pixmap *nxMask) { char** agentIconData; diff --git a/nx-X11/programs/Xserver/hw/nxagent/Handlers.c b/nx-X11/programs/Xserver/hw/nxagent/Handlers.c index f1455b935..559eae719 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Handlers.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Handlers.c @@ -726,8 +726,6 @@ void nxagentShadowBlockHandler(void * data, struct timeval **timeout, void * mas } #endif - #ifndef __CYGWIN32__ - if (nxagentReadEvents(nxagentDisplay) > 0 || nxagentReadEvents(nxagentShadowDisplay) > 0) { @@ -745,19 +743,6 @@ void nxagentShadowBlockHandler(void * data, struct timeval **timeout, void * mas nxagentShadowAdaptToRatio(); } - #else - - if (nxagentReadEvents(nxagentDisplay) > 0) - { - #ifdef TEST - fprintf(stderr, "nxagentShadowBlockHandler: Reading X events queued.\n"); - #endif - - nxagentDispatchEvents(NULL); - } - - #endif - changed = 0; NXShadowGetScreenSize(&width_, &height_); @@ -800,26 +785,6 @@ FIXME: Must queue multiple writes and handle the events by resembling *timeout = &zero; } - #ifdef __CYGWIN32__ - - if (nxagentOption(SleepTime) > 0) { -#ifdef TEST - fprintf(stderr, "nxagentShadowBlockHandler: sleeping for %d milliseconds for slowdown.\n", - nxagentOption(SleepTime)); -#endif - usleep(nxagentOption(SleepTime) * 1000); - } -#ifdef TEST - else if (0 == nxagentOption(SleepTime)) { - fprintf(stderr, "nxagentShadowBlockHandler: not sleeping for slowdown.\n"); - } -#endif - - (*timeout) -> tv_sec = 0; - (*timeout) -> tv_usec = 50 * 1000; - - #else - if (changed == 0) { (*timeout) -> tv_sec = 0; @@ -831,8 +796,6 @@ FIXME: Must queue multiple writes and handle the events by resembling (*timeout) -> tv_usec = 0; } - #endif - nxagentPrintGeometry(); #ifdef BLOCKS @@ -857,7 +820,6 @@ void nxagentShadowWakeupHandler(void * data, int count, void * mask) if (!SmartScheduleSignalEnable) { - #ifdef DEBUG fprintf(stderr, "nxagentShadowWakeupHandler: Resetting the dispatch state after wakeup.\n"); #endif @@ -866,7 +828,6 @@ void nxagentShadowWakeupHandler(void * data, int count, void * mask) nxagentDispatch.in = nxagentBytesIn; nxagentDispatch.out = nxagentBytesOut; - } /* diff --git a/nx-X11/programs/Xserver/hw/nxagent/Options.c b/nx-X11/programs/Xserver/hw/nxagent/Options.c index 9e11dc5f2..4d5fa3e16 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Options.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Options.c @@ -107,16 +107,8 @@ void nxagentInitOptions(void) nxagentOptions.ViewportXSpan = 0; nxagentOptions.ViewportYSpan = 0; - #ifndef __CYGWIN32__ - nxagentOptions.DesktopResize = 1; - #else - - nxagentOptions.DesktopResize = 0; - - #endif - nxagentOptions.Ratio = DONT_SCALE; nxagentOptions.XRatio = DONT_SCALE; nxagentOptions.YRatio = DONT_SCALE; diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c index 4b9b37a7a..33add9cb5 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c @@ -2572,8 +2572,6 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin) nxagentShadowUid); #endif -#if !defined (__CYGWIN32__) && !defined (WIN32) - if (nxagentShadowUid != -1) { NXShadowSetDisplayUid(nxagentShadowUid); @@ -2584,8 +2582,6 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin) NXShadowDisableDamage(); } -#endif - if (NXShadowCreate(nxagentDisplay, layout, nxagentShadowDisplayName, (void *) &nxagentShadowDisplay) != 1) { @@ -2602,13 +2598,10 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin) * server root window in order to notify its presence. */ - #ifndef __CYGWIN__ - XlibAtom nxagentShadowAtom = XInternAtom(nxagentShadowDisplay, "_NX_SHADOW", False); XChangeProperty(nxagentShadowDisplay, DefaultRootWindow(nxagentShadowDisplay), nxagentShadowAtom, XA_STRING, 8, PropModeReplace, NULL, 0); - #endif if (NXShadowAddUpdaterDisplay(nxagentDisplay, &nxagentShadowWidth, &nxagentShadowHeight, &nxagentMasterDepth) == 0) @@ -2621,8 +2614,6 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin) return -1; } - #ifndef __CYGWIN32__ - if (nxagentOption(Fullscreen) == 1) { nxagentShadowSetRatio(WidthOfScreen(DefaultScreenOfDisplay(nxagentDisplay)) * 1.0 / nxagentShadowWidth, @@ -2671,8 +2662,6 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin) return -1; } - #endif - nxagentShadowDepth = pScreen -> rootDepth; switch (nxagentMasterDepth) @@ -2757,14 +2746,10 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin) nxagentBppShadow = 1; } -#ifndef __CYGWIN__ - imageByteOrder = nxagentShadowDisplay -> byte_order; nxagentShadowXConnectionNumber = XConnectionNumber(nxagentShadowDisplay); -#endif - #ifdef TEST fprintf(stderr, "nxagentShadowInit: Adding the X connection [%d] " "to the device set.\n", nxagentShadowXConnectionNumber); @@ -2985,18 +2970,6 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr RegionNull(&updateRegion); RegionNull(&tempRegion); -#ifdef __CYGWIN32__ - - if (NXShadowCaptureCursor(nxagentWindow(nxagentShadowWindowPtr), - nxagentShadowWindowPtr -> drawable.pScreen -> visuals) == -1) - { - #ifdef WARNING - fprintf(stderr, "nxagentShadowPoll: Failed to capture cursor.\n"); - #endif - } - -#endif - int result = NXShadowHasChanged(nxagentUserInput, NULL, suspended); *changed = result; @@ -3074,17 +3047,10 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr tBuffer = iBuffer; -#ifdef __CYGWIN32__ - if (nxagentBppMaster == 2) - { - NXShadowCorrectColor(length, tBuffer); - } -#else if (nxagentCheckDepth == 1) { nxagentShadowAdaptDepth(width, height, line, &tBuffer); } -#endif fbPutImage(nxagentVirtualDrawable((DrawablePtr)nxagentShadowPixmapPtr), nxagentShadowGCPtr, nxagentShadowDepth, x, y, width, height, 0, ZPixmap, tBuffer); -- cgit v1.2.3 From 662708b3d49aa2772a855a337369ed882a41da9a Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sun, 29 Dec 2019 00:45:51 +0100 Subject: drop xprint remnants: xpstubs Backport from xorg-xserver: commit 641ce9c706ce3cbf726fb3fc9623161bb96ba127 Author: George Sapountzis Date: Thu Jan 3 17:28:04 2008 +0200 drop xprint remnants: xpstubs --- nx-X11/programs/Xserver/dix/Imakefile | 7 ---- nx-X11/programs/Xserver/dix/xpstubs.c | 50 ---------------------------- nx-X11/programs/Xserver/hw/nxagent/Font.c | 3 -- nx-X11/programs/Xserver/hw/nxagent/Imakefile | 3 -- 4 files changed, 63 deletions(-) delete mode 100644 nx-X11/programs/Xserver/dix/xpstubs.c diff --git a/nx-X11/programs/Xserver/dix/Imakefile b/nx-X11/programs/Xserver/dix/Imakefile index 3cdcdd9bf..d153805df 100644 --- a/nx-X11/programs/Xserver/dix/Imakefile +++ b/nx-X11/programs/Xserver/dix/Imakefile @@ -2,9 +2,6 @@ NULL = #include -XPSRC = xpstubs.c -XPOBJ = xpstubs.o - #if !HasFfs FFS_SRC = ffs.c FFS_OBJ = ffs.o @@ -129,8 +126,6 @@ VENDOR_DEFINES = $(VENDOR_STRING) $(VENDOR_RELEASE) $(QUARTZ_DEFINES) NormalLibraryObjectRule() NormalLibraryTarget(dix,$(OBJS)) -LintLibraryTarget(dix,$(SRCS) $(XPSRC)) -NormalLintTarget($(SRCS) $(XPSRC)) SpecialCObjectRule(globals,$(ICONFIGFILES),$(SITE_DEFINES) $(EXT_DEFINES)) SpecialCObjectRule(main,$(ICONFIGFILES),$(VENDOR_DEFINES)) @@ -138,6 +133,4 @@ SpecialCObjectRule(pixmap,$(ICONFIGFILES),$(_NOOP_)) SpecialCObjectRule(privates,$(ICONFIGFILES),$(_NOOP_)) SpecialCObjectRule(window,$(ICONFIGFILES),$(QUARTZ_DEFINES)) -NormalLibraryTarget(xpstubs,$(XPOBJ)) - DependTarget() diff --git a/nx-X11/programs/Xserver/dix/xpstubs.c b/nx-X11/programs/Xserver/dix/xpstubs.c deleted file mode 100644 index f8cd207eb..000000000 --- a/nx-X11/programs/Xserver/dix/xpstubs.c +++ /dev/null @@ -1,50 +0,0 @@ -/* -Copyright 1996, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall -not be used in advertising or otherwise to promote the sale, use or -other dealings in this Software without prior written authorization -from The Open Group. -*/ - - -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#include "misc.h" -#include -extern Bool XpClientIsBitmapClient(ClientPtr client); -extern Bool XpClientIsPrintClient(ClientPtr client, FontPathElementPtr fpe); - -Bool -XpClientIsBitmapClient( - ClientPtr client) -{ - return TRUE; -} - -Bool -XpClientIsPrintClient( - ClientPtr client, - FontPathElementPtr fpe) -{ - return FALSE; -} diff --git a/nx-X11/programs/Xserver/hw/nxagent/Font.c b/nx-X11/programs/Xserver/hw/nxagent/Font.c index 93fb93295..ddae19cf0 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Font.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Font.c @@ -469,9 +469,6 @@ Bool nxagentRealizeFont(ScreenPtr pScreen, FontPtr pFont) FontSetPrivate(pFont, nxagentFontPrivateIndex, NULL); #endif /* HAS_XFONT2 */ - if (requestingClient && XpClientIsPrintClient(requestingClient, NULL)) - return True; - name_atom = MakeAtom("FONT", 4, True); value_atom = 0L; diff --git a/nx-X11/programs/Xserver/hw/nxagent/Imakefile b/nx-X11/programs/Xserver/hw/nxagent/Imakefile index b6a343e68..e37f97e84 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Imakefile +++ b/nx-X11/programs/Xserver/hw/nxagent/Imakefile @@ -59,7 +59,6 @@ SRCS = \ Composite.c \ Pixels.c \ stubs.c \ - xpstubs.c \ miinitext.c \ $(NULL) @@ -116,7 +115,6 @@ OBJS = \ Composite.o \ Pixels.o \ stubs.o \ - xpstubs.o \ miinitext.o \ $(NULL) @@ -264,7 +262,6 @@ DEFINES = \ all:: $(OBJS) LinkSourceFile(stubs.c,$(SERVERSRC)/Xi) -LinkSourceFile(xpstubs.c,$(SERVERSRC)/dix) LinkSourceFile(miinitext.c,$(SERVERSRC)/mi) SpecialCObjectRule(miinitext,$(ICONFIGFILES), $(_NOOP_)) -- cgit v1.2.3 From 12358d64a44889eef243eb316ca1ac962cca5422 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sun, 29 Dec 2019 00:48:43 +0100 Subject: nxagent: remove another xprint renmant reqeuestingClient was dropped with the XPRINT drop. Unfortunetely we are usign it in Image.c. So let's introduce nxagentRequestingClient as replacement for now. --- nx-X11/programs/Xserver/dix/dispatch.c | 2 -- nx-X11/programs/Xserver/dix/dixfonts.c | 47 +++++++++++-------------- nx-X11/programs/Xserver/dix/globals.c | 1 - nx-X11/programs/Xserver/hw/nxagent/Image.c | 3 +- nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c | 14 ++++++-- nx-X11/programs/Xserver/include/dix.h | 1 - nx-X11/programs/Xserver/mi/mibstore.c | 1 - 7 files changed, 34 insertions(+), 35 deletions(-) diff --git a/nx-X11/programs/Xserver/dix/dispatch.c b/nx-X11/programs/Xserver/dix/dispatch.c index 3ab9b2472..6c18c5b59 100644 --- a/nx-X11/programs/Xserver/dix/dispatch.c +++ b/nx-X11/programs/Xserver/dix/dispatch.c @@ -391,7 +391,6 @@ Dispatch(void) } isItTimeToYield = FALSE; - requestingClient = client; start_tick = SmartScheduleTime; while (!isItTimeToYield) { @@ -447,7 +446,6 @@ Dispatch(void) client = clients[clientReady[nready]]; if (client) client->smart_stop_tick = SmartScheduleTime; - requestingClient = NULL; } dispatchException &= ~DE_PRIORITYCHANGE; } diff --git a/nx-X11/programs/Xserver/dix/dixfonts.c b/nx-X11/programs/Xserver/dix/dixfonts.c index b16b6b2e6..f1fa53f69 100644 --- a/nx-X11/programs/Xserver/dix/dixfonts.c +++ b/nx-X11/programs/Xserver/dix/dixfonts.c @@ -2178,34 +2178,27 @@ FontResolutionPtr GetClientResolutions (int *num) #endif /* HAS_XFONT2 */ { - if (requestingClient && requestingClient->fontResFunc != NULL && - !requestingClient->clientGone) - { - return (*requestingClient->fontResFunc)(requestingClient, num); - } - else { - static struct _FontResolution res; - ScreenPtr pScreen; + static struct _FontResolution res; + ScreenPtr pScreen; - pScreen = screenInfo.screens[0]; - res.x_resolution = (pScreen->width * 25.4) / pScreen->mmWidth; - /* - * XXX - we'll want this as long as bitmap instances are prevalent - so that we can match them from scalable fonts - */ - if (res.x_resolution < 88) - res.x_resolution = 75; - else - res.x_resolution = 100; - res.y_resolution = (pScreen->height * 25.4) / pScreen->mmHeight; - if (res.y_resolution < 88) - res.y_resolution = 75; - else - res.y_resolution = 100; - res.point_size = 120; - *num = 1; - return &res; - } + pScreen = screenInfo.screens[0]; + res.x_resolution = (pScreen->width * 25.4) / pScreen->mmWidth; + /* + * XXX - we'll want this as long as bitmap instances are prevalent + so that we can match them from scalable fonts + */ + if (res.x_resolution < 88) + res.x_resolution = 75; + else + res.x_resolution = 100; + res.y_resolution = (pScreen->height * 25.4) / pScreen->mmHeight; + if (res.y_resolution < 88) + res.y_resolution = 75; + else + res.y_resolution = 100; + res.point_size = 120; + *num = 1; + return &res; } #ifndef HAS_XFONT2 diff --git a/nx-X11/programs/Xserver/dix/globals.c b/nx-X11/programs/Xserver/dix/globals.c index 8bfd84606..f192cb09c 100644 --- a/nx-X11/programs/Xserver/dix/globals.c +++ b/nx-X11/programs/Xserver/dix/globals.c @@ -141,7 +141,6 @@ Bool loadableFonts = FALSE; CursorPtr rootCursor; Bool blackRoot=FALSE; Bool whiteRoot=FALSE; -ClientPtr requestingClient; /* XXX this should be obsolete now, remove? */ TimeStamp currentTime; TimeStamp lastDeviceEventTime; diff --git a/nx-X11/programs/Xserver/hw/nxagent/Image.c b/nx-X11/programs/Xserver/hw/nxagent/Image.c index 69a51075c..ba0fe9252 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Image.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Image.c @@ -99,6 +99,7 @@ extern void nxagentBitOrderInvert(unsigned char *, int); extern void nxagentTwoByteSwap(unsigned char *, register int); extern void nxagentFourByteSwap(register unsigned char *, register int); +extern ClientPtr nxagentRequestingClient; /* * Store the last visual used to unpack the images for the given * client. @@ -1073,7 +1074,7 @@ void nxagentPutSubImage(DrawablePtr pDrawable, GCPtr pGC, int depth, /* FIXME: Should use an unpack resource here. */ - client = requestingClient; + client = nxagentRequestingClient; if (client == NULL) { diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c index aae2b2efc..e804acbd2 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c @@ -200,6 +200,12 @@ extern int nxagentMaxSelections; extern int nxOpenFont(ClientPtr, XID, Mask, unsigned, char*); + +/* + * This used to be a dix variable used only by XPRINT, so xorg dropped it. + */ +ClientPtr nxagentRequestingClient; + void InitSelections(void) { @@ -413,7 +419,9 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio } isItTimeToYield = FALSE; - requestingClient = client; +#ifdef NXAGENT_SERVER + nxagentRequestingClient = client; +#endif start_tick = SmartScheduleTime; while (!isItTimeToYield) { @@ -528,7 +536,9 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio client = clients[clientReady[nready]]; if (client) client->smart_stop_tick = SmartScheduleTime; - requestingClient = NULL; +#ifdef NXAGENT_SERVER + nxagentRequestingClient = NULL; +#endif } dispatchException &= ~DE_PRIORITYCHANGE; } diff --git a/nx-X11/programs/Xserver/include/dix.h b/nx-X11/programs/Xserver/include/dix.h index 4a57f724d..dd9dc761d 100644 --- a/nx-X11/programs/Xserver/include/dix.h +++ b/nx-X11/programs/Xserver/include/dix.h @@ -265,7 +265,6 @@ typedef struct _Client *ClientPtr; /* also in misc.h */ typedef struct _WorkQueue *WorkQueuePtr; -extern ClientPtr requestingClient; extern ClientPtr *clients; extern ClientPtr serverClient; extern int currentMaxClients; diff --git a/nx-X11/programs/Xserver/mi/mibstore.c b/nx-X11/programs/Xserver/mi/mibstore.c index 3eafac235..e31db1d93 100644 --- a/nx-X11/programs/Xserver/mi/mibstore.c +++ b/nx-X11/programs/Xserver/mi/mibstore.c @@ -57,7 +57,6 @@ implied warranty. #include "pixmapstr.h" #include #include "dixfontstr.h" -#include "dixstruct.h" /* For requestingClient */ #include "mi.h" #include "mibstorest.h" -- cgit v1.2.3 From b8b897e3f0aff790ccdd927fe1e8c79f92b49ffa Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sun, 29 Dec 2019 00:56:36 +0100 Subject: Remove the numVideoScreens xprintism. Backport of this xorg-xserver commit: commit a82e6efb7b9b2ab9a1597b002f375c5ee105e7f5 Author: Adam Jackson Date: Wed Jul 16 14:19:04 2008 -0400 Remove the numVideoScreens xprintism. This was to account for cases where you had video and print screens in the same server. Lunacy. Leave the slot in ScreenInfo, but rename it, and stop looking at it. --- nx-X11/programs/Xserver/dix/main.c | 3 --- nx-X11/programs/Xserver/include/scrnintstr.h | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/nx-X11/programs/Xserver/dix/main.c b/nx-X11/programs/Xserver/dix/main.c index d425872df..1ae51fc81 100644 --- a/nx-X11/programs/Xserver/dix/main.c +++ b/nx-X11/programs/Xserver/dix/main.c @@ -254,7 +254,6 @@ main(int argc, char *argv[], char *envp[]) SetInputCheck(&alwaysCheckForInput[0], &alwaysCheckForInput[1]); screenInfo.arraySize = MAXSCREENS; screenInfo.numScreens = 0; - screenInfo.numVideoScreens = -1; InitAtoms(); InitEvents(); @@ -280,8 +279,6 @@ main(int argc, char *argv[], char *envp[]) if (screenInfo.numScreens < 1) FatalError("no screens found"); - if (screenInfo.numVideoScreens < 0) - screenInfo.numVideoScreens = screenInfo.numScreens; InitExtensions(argc, argv); if (!InitClientPrivates(serverClient)) FatalError("failed to allocate serverClient devprivates"); diff --git a/nx-X11/programs/Xserver/include/scrnintstr.h b/nx-X11/programs/Xserver/include/scrnintstr.h index 5a3f32309..d52fb4960 100644 --- a/nx-X11/programs/Xserver/include/scrnintstr.h +++ b/nx-X11/programs/Xserver/include/scrnintstr.h @@ -743,7 +743,7 @@ typedef struct _ScreenInfo { int arraySize; int numScreens; ScreenPtr screens[MAXSCREENS]; - int numVideoScreens; + int unused; } ScreenInfo; extern ScreenInfo screenInfo; -- cgit v1.2.3 From 100b2789226fb12b61e4b6ae34074383ea24b117 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sun, 29 Dec 2019 12:45:20 +0100 Subject: Keyboard.c: fix typo --- nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index 695fce40d..4d23b4654 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -1466,7 +1466,7 @@ static void nxagentWriteKeyboardDir(void) if (keyboard_file_path) { /* - * special case: if rules is NULL create a directory insteas of + * special case: if rules is NULL create a directory instead of * a file. This is the defined method to disable x2gosetkeyboard. */ if (mkdir(keyboard_file_path, 0555) < 0) -- cgit v1.2.3 From cfa17ffac6a3e9ea0b0abeed8da06f4089432d49 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sun, 29 Dec 2019 18:40:53 +0100 Subject: Error.c: mark NX changes nxagentPrintError is derived from XlibInt.c:_XprintDefaultError. Let's add missing code and mark NX changes. --- nx-X11/programs/Xserver/hw/nxagent/Error.c | 43 +++++++++++++++++------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Error.c b/nx-X11/programs/Xserver/hw/nxagent/Error.c index ab8da2db4..add5fae85 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Error.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Error.c @@ -114,10 +114,11 @@ int nxagentErrorHandler(Display *dpy, XErrorEvent *event) return 0; } -/* copied from XlibInt.c */ -/* extension stuff roughly commented out */ -/* FIXME: why? What's wrong with printing extension stuff? - We could drop this in favour of _XprintDefaultError then! */ +/* copied from XlibInt.c:_XprintDefaultError + * We cannot use the whole function because it requires XlibInt + * internals. And we cannot call _XPrintDefaultError because it + * is not exported. + */ static int nxagentPrintError(dpy, event, fp) Display *dpy; XErrorEvent *event; @@ -126,11 +127,11 @@ static int nxagentPrintError(dpy, event, fp) char buffer[BUFSIZ]; char mesg[BUFSIZ]; char number[32]; - char *mtype = "XlibMessage"; - /* + const char *mtype = "XlibMessage"; +#ifndef NXAGENT_SERVER register _XExtension *ext = (_XExtension *)NULL; _XExtension *bext = (_XExtension *)NULL; - */ +#endif XGetErrorText(dpy, event->error_code, buffer, BUFSIZ); XGetErrorDatabaseText(dpy, mtype, "XError", "X Error", mesg, BUFSIZ); (void) fprintf(fp, "%s: %s\n ", mesg, buffer); @@ -141,14 +142,16 @@ static int nxagentPrintError(dpy, event, fp) snprintf(number, sizeof(number), "%d", event->request_code); XGetErrorDatabaseText(dpy, "XRequest", number, "", buffer, BUFSIZ); } else { - /* for (ext = dpy->ext_procs; +#ifndef NXAGENT_SERVER + for (ext = dpy->ext_procs; ext && (ext->codes.major_opcode != event->request_code); ext = ext->next) ; - if (ext) + if (ext) { strncpy(buffer, ext->name, BUFSIZ); - else - */ + buffer[BUFSIZ - 1] = '\0'; + } else +#endif buffer[0] = '\0'; } (void) fprintf(fp, " (%s)\n", buffer); @@ -157,19 +160,19 @@ static int nxagentPrintError(dpy, event, fp) mesg, BUFSIZ); fputs(" ", fp); (void) fprintf(fp, mesg, event->minor_code); - /* +#ifndef NXAGENT_SERVER if (ext) { snprintf(mesg, sizeof(mesg), "%s.%d", ext->name, event->minor_code); XGetErrorDatabaseText(dpy, "XRequest", mesg, "", buffer, BUFSIZ); (void) fprintf(fp, " (%s)", buffer); } - */ +#endif fputs("\n", fp); } if (event->error_code >= 128) { /* kludge, try to find the extension that caused it */ buffer[0] = '\0'; - /* +#ifndef NXAGENT_SERVER for (ext = dpy->ext_procs; ext; ext = ext->next) { if (ext->error_string) (*ext->error_string)(dpy, event->error_code, &ext->codes, @@ -187,7 +190,7 @@ static int nxagentPrintError(dpy, event, fp) snprintf(buffer, sizeof(buffer), "%s.%d", bext->name, event->error_code - bext->codes.first_error); else - */ +#endif strcpy(buffer, "Value"); XGetErrorDatabaseText(dpy, mtype, buffer, "", mesg, BUFSIZ); if (mesg[0]) { @@ -196,12 +199,12 @@ static int nxagentPrintError(dpy, event, fp) fputs("\n", fp); } /* let extensions try to print the values */ - /* +#ifndef NXAGENT_SERVER for (ext = dpy->ext_procs; ext; ext = ext->next) { if (ext->error_values) (*ext->error_values)(dpy, event, fp); } - */ +#endif } else if ((event->error_code == BadWindow) || (event->error_code == BadPixmap) || (event->error_code == BadCursor) || @@ -229,10 +232,12 @@ static int nxagentPrintError(dpy, event, fp) mesg, BUFSIZ); fputs(" ", fp); (void) fprintf(fp, mesg, event->serial); - /* XGetErrorDatabaseText(dpy, mtype, "CurrentSerial", "Current Serial #%d", +#ifndef NXAGENT_SERVER + XGetErrorDatabaseText(dpy, mtype, "CurrentSerial", "Current Serial #%d", mesg, BUFSIZ); fputs("\n ", fp); - (void) fprintf(fp, mesg, dpy->request); */ + (void) fprintf(fp, mesg, (unsigned long long)(X_DPY_GET_REQUEST(dpy))); +#endif fputs("\n", fp); if (event->error_code == BadImplementation) return 0; return 1; -- cgit v1.2.3 From cdd381105064f694bd55d774e45a4ec34ba22e99 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Thu, 2 Jan 2020 21:12:16 +0100 Subject: Keyboard.c: improve keyboard output --- nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index 4d23b4654..950aec839 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -567,7 +567,7 @@ XkbError: if (nxagentKeyboard[i] == '\0' || nxagentKeyboard[i + 1] == '\0' || i == 0) { - ErrorF("Warning: Wrong keyboard type: %s.\n", nxagentKeyboard); + ErrorF("Warning: Wrong keyboard type: '%s'.\n", nxagentKeyboard); goto XkbError; } -- cgit v1.2.3 From 8928048117b48f0397d939efecdefe96f247271a Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Thu, 2 Jan 2020 23:55:37 +0100 Subject: Reconnect.c: fix typos --- nx-X11/programs/Xserver/hw/nxagent/Reconnect.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c index 5ff0c6506..86d3ba502 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c @@ -666,7 +666,7 @@ Bool nxagentReconnectSession(void) } /* Re-read keystrokes definitions in case the keystrokes file has - changed while being supended */ + changed while being suspended */ nxagentInitKeystrokes(True); #ifdef NX_DEBUG_INPUT -- cgit v1.2.3 From 141d6bea5f9685d57f13294f731a7c24f9d2ed54 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Fri, 3 Jan 2020 14:06:15 +0100 Subject: Display.c: scope improvements --- nx-X11/programs/Xserver/hw/nxagent/Display.c | 56 ++++++++++++---------------- 1 file changed, 23 insertions(+), 33 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Display.c b/nx-X11/programs/Xserver/hw/nxagent/Display.c index 587222da7..abc0f7689 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Display.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c @@ -561,11 +561,6 @@ static void nxagentSigchldHandler(int signal) Display *nxagentInternalOpenDisplay(char *display) { - struct sigaction oldAction; - struct sigaction newAction; - - int result; - /* * Stop the smart schedule timer since it uses SIGALRM as we do. */ @@ -583,12 +578,17 @@ FIXME: Should print a warning if the user tries to let the agent explanation for the error to the user. */ - newAction.sa_handler = nxagentRejectConnection; + struct sigaction newAction = { + .sa_handler = nxagentRejectConnection + }; sigfillset(&newAction.sa_mask); newAction.sa_flags = 0; + int result; + struct sigaction oldAction; + while (((result = sigaction(SIGALRM, &newAction, &oldAction)) == -1) && (errno == EINTR)); @@ -925,8 +925,6 @@ void nxagentInstallSignalHandlers(void) struct sigaction newAction; - int result; - /* * By default nxcomp installs its signal handlers. We need to * ensure that SIGUSR1 and SIGUSR2 are ignored if the NX transport @@ -939,6 +937,8 @@ void nxagentInstallSignalHandlers(void) newAction.sa_flags = 0; + int result; + while (((result = sigaction(SIGUSR1, &newAction, NULL)) == -1) && (errno == EINTR)); @@ -1054,12 +1054,6 @@ void nxagentPostInstallSignalHandlers(void) void nxagentResetSignalHandlers(void) { - struct sigaction newAction; - - int result; - - memset(&newAction, 0, sizeof(newAction)); - /* * Reset the signal handlers to a well known state. */ @@ -1074,10 +1068,13 @@ void nxagentResetSignalHandlers(void) nxagentStopTimer(); - newAction.sa_handler = SIG_DFL; + struct sigaction newAction = { + .sa_handler = SIG_DFL + }; sigfillset(&newAction.sa_mask); + int result; while (((result = sigaction(SIGALRM, &newAction, NULL)) == -1) && (errno == EINTR)); @@ -1100,12 +1097,9 @@ void nxagentOpenDisplay(int argc, char *argv[]) return; #ifdef NXAGENT_TIMESTAMP - startTime = GetTimeInMillis(); - fprintf(stderr, "Display: Opening the display on real X server with time [%d] ms.\n", GetTimeInMillis() - startTime); - #endif /* @@ -1175,10 +1169,8 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio #endif #ifdef NXAGENT_TIMESTAMP - fprintf(stderr, "Display: Display on real X server opened with time [%d] ms.\n", GetTimeInMillis() - startTime); - #endif nxagentUseNXTrans = @@ -1397,10 +1389,8 @@ N/A #endif #ifdef NXAGENT_TIMESTAMP - fprintf(stderr, "Display: Open of the display finished with time [%d] ms.\n", GetTimeInMillis() - startTime); - #endif if (nxagentOption(Persistent)) @@ -1435,10 +1425,11 @@ void nxagentSetDefaultVisual(void) } else { - XVisualInfo vi = {0}; + XVisualInfo vi = { + .visualid = XVisualIDFromVisual(DefaultVisual(nxagentDisplay, + DefaultScreen(nxagentDisplay))) + }; - vi.visualid = XVisualIDFromVisual(DefaultVisual(nxagentDisplay, - DefaultScreen(nxagentDisplay))); nxagentDefaultVisualIndex = 0; for (int i = 0; i < nxagentNumVisuals; i++) @@ -1453,14 +1444,13 @@ void nxagentSetDefaultVisual(void) void nxagentInitVisuals(void) { + long mask = VisualScreenMask; XVisualInfo vi = { .screen = DefaultScreen(nxagentDisplay), - .depth = DefaultDepth(nxagentDisplay, DefaultScreen(nxagentDisplay)), + .depth = DefaultDepth(nxagentDisplay, DefaultScreen(nxagentDisplay)) }; - long mask = VisualScreenMask; int viNumList; XVisualInfo *viList = XGetVisualInfo(nxagentDisplay, mask, &vi, &viNumList); - nxagentVisuals = (XVisualInfo *) malloc(viNumList * sizeof(XVisualInfo)); nxagentNumVisuals = 0; @@ -1566,7 +1556,6 @@ XXX: Some X server doesn't list 1 among available depths... if (nxagentDepths[j] == i) { depth = i; - break; } } @@ -1751,7 +1740,7 @@ Bool nxagentMakeIcon(Display *display, Pixmap *nxIcon, Pixmap *nxMask) /* * selecting x2go icon when running as X2Go agent */ - if(nxagentX2go) + if (nxagentX2go) { agentIconData = x2goagentIconData; } @@ -2249,6 +2238,9 @@ static int nxagentInitAndCheckVisuals(int flexibility) { /* FIXME: does this also need work? */ + bool matched; + bool compatible = true; + long viMask = VisualScreenMask; XVisualInfo viTemplate = { .screen = DefaultScreen(nxagentDisplay), @@ -2259,8 +2251,6 @@ static int nxagentInitAndCheckVisuals(int flexibility) XVisualInfo *newVisuals = malloc(sizeof(XVisualInfo) * nxagentNumVisuals); - bool compatible = true; - for (int i = 0; i < nxagentNumVisuals; i++) { bool matched = false; @@ -2472,7 +2462,7 @@ Bool nxagentReconnectDisplay(void *p0) nxagentNumDefaultColormaps = nxagentNumVisuals; nxagentDefaultColormaps = (Colormap *) realloc(nxagentDefaultColormaps, - nxagentNumDefaultColormaps * sizeof(Colormap)); + nxagentNumDefaultColormaps * sizeof(Colormap)); if (nxagentDefaultColormaps == NULL) { -- cgit v1.2.3 From 52cefdd7e4b61e052d8254781e64366ab63ca54a Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Fri, 3 Jan 2020 14:06:31 +0100 Subject: Display.c: reformat some comments --- nx-X11/programs/Xserver/hw/nxagent/Display.c | 82 +++++++++++++++------------- 1 file changed, 43 insertions(+), 39 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Display.c b/nx-X11/programs/Xserver/hw/nxagent/Display.c index abc0f7689..1eacd3315 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Display.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c @@ -1088,7 +1088,6 @@ void nxagentResetSignalHandlers(void) */ nxagentInitTimer(); - } void nxagentOpenDisplay(int argc, char *argv[]) @@ -1899,14 +1898,15 @@ static int nxagentCheckForDefaultDepthCompatibility(void) /* * Depending on the (reconnect) tolerance checks value, this * function checks stricter or looser: - * - Strict means that the old and new default depth values must - * match exactly. - * - Safe or Risky means that the default depth values might - * differ, but the new default depth value must be at least as - * high as the former default depth value. This is recommended, - * because it allows clients with a higher default depth value - * to still connect, but not lose functionality. - * - Bypass means that all of these checks are essentially + * - "Strict" means that the old and new default depth values + * must match exactly. + * - "Safe" or "Risky" means that the default depth values might differ, + * but the new default depth value must be at least as + * high as the former default depth value. This is + * recommended, because it allows clients with a + * higher default depth value to still connect, but + * not lose functionality. + * - "Bypass" means that all of these checks are essentially * deactivated. This is probably a very bad idea. */ @@ -1958,17 +1958,19 @@ static int nxagentCheckForDepthsCompatibility(void) /* * Depending on the (reconnect) tolerance checks value, this * function checks stricter or looser: - * - Strict means that the number of old and new depths must match - * exactly and every old depth value must be available in the - * new depth array. - * - Safe means that the number of depths might diverge, but all - * former depth must also be included in the new depth - * array. This is recommended, because it allows clients with - * more depths to still connect, but not lose functionality. - * - Risky means that the new depths array is allowed to be - * smaller than the old depths array, but at least one depth - * value must be included in both. This is potentially unsafe. - * - Bypass or higher means that all of these checks are + * - "Strict" means that the number of old and new depths must + * match exactly and every old depth value must be + * available in the new depth array. + * - "Safe" means that the number of depths might diverge, + * but all former depth must also be included in the + * new depth array. This is recommended, because + * it allows clients with more depths to still + * connect, but not lose functionality. + * - "Risky" means that the new depths array is allowed to be + * smaller than the old depths array, but at least + * one depth value must be included in both. + * This is potentially unsafe. + * - "Bypass" or higher means that all of these checks are * essentially deactivated. This is a very bad idea. */ @@ -2009,12 +2011,12 @@ static int nxagentCheckForDepthsCompatibility(void) /* * By now the tolerance is either: - * - Strict and both depth numbers match - * - Safe and: + * - "Strict" and both depth numbers match + * - "Safe" and: * o the number of old and new depths matches exactly, or * o the number of old depths is lower than the number * of new depths - * - Risky + * - "Risky" */ bool compatible = true; @@ -2110,19 +2112,21 @@ static int nxagentCheckForPixmapFormatsCompatibility(void) /* * Depending on the (reconnect) tolerance checks value, this * function checks stricter or looser: - * - Strict means that the number of internal and external pixmap - * formats must match exactly and every internal pixmap format - * must be available in the external pixmap format array. - * - Safe means that the number of pixmap formats might diverge, - * but all internal pixmap formats must also be included in the - * external pixmap formats array. This is recommended, because - * it allows clients with more pixmap formats to still connect, + * - "Strict" means that the number of internal and external + * pixmap formats must match exactly and every + * internal pixmap format must be available in the + * external pixmap format array. + * - "Safe" means that the number of pixmap formats might + * diverge, but all internal pixmap formats must + * also be included in the external pixmap formats + * array. This is recommended, because it allows + * clients with more pixmap formats to still connect, * but not lose functionality. - * - Risky means that the internal pixmap formats array is allowed - * to be smaller than the external pixmap formats array, but at - * least one pixmap format must be included in both. This is - * potentially unsafe. - * - Bypass or higher means that all of these checks are + * - "Risky" means that the internal pixmap formats array is + * allowed to be smaller than the external pixmap + * formats array, but at least one pixmap format must + * be included in both. This is potentially unsafe. + * - "Bypass" or higher means that all of these checks are * essentially deactivated. This is a very bad idea. */ @@ -2161,13 +2165,13 @@ static int nxagentCheckForPixmapFormatsCompatibility(void) /* * By now the tolerance is either: - * - Strict - * - Safe and: + * - "Strict" + * - "Safe" and: * o the number of internal and external pixmap formats * matches exactly, or * o the number of external pixmap formats is higher than * the number of internal pixmap formats, - * - Risky + * - "Risky" */ bool compatible = true; @@ -2592,7 +2596,7 @@ Bool nxagentReconnectDisplay(void *p0) useXpmIcon = nxagentMakeIcon(nxagentDisplay, &nxagentIconPixmap, &nxagentIconShape); /* - * All went fine. We can continue handling our clients. + * Everything went fine. We can continue handling our clients. */ reconnectDisplayState = EVERYTHING_DONE; -- cgit v1.2.3 From 14aab54f471169a73ec8df956793d9169f96ac2d Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 4 Jan 2020 15:17:26 +0100 Subject: Init.h: Fix superfluous space --- nx-X11/programs/Xserver/hw/nxagent/Init.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Init.h b/nx-X11/programs/Xserver/hw/nxagent/Init.h index 1bea17600..246f600cf 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Init.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Init.h @@ -45,7 +45,7 @@ extern int nxagentDoFullGeneration; extern int nxagentBackingStore; extern int nxagentSaveUnder; -extern int nxagentX2go; +extern int nxagentX2go; void checkX2goAgent(void); extern ServerGrabInfoRec nxagentGrabServerInfo; -- cgit v1.2.3 From e276b23b39258e692bebb04c4f892cf6437ed022 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 4 Jan 2020 15:33:27 +0100 Subject: Keystroke.c: fix formatting of keystrokes used the wrong macro for length determination --- nx-X11/programs/Xserver/hw/nxagent/Keystroke.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c b/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c index b6d8f5817..ea139b10f 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c @@ -432,7 +432,7 @@ void nxagentDumpKeystrokes(void) { int maxlen = 0; for (int i = 0; nxagentSpecialKeystrokeNames[i]; i++) - maxlen = min(maxlen, strlen(nxagentSpecialKeystrokeNames[i])); + maxlen = max(maxlen, strlen(nxagentSpecialKeystrokeNames[i])); fprintf(stderr, "Currently known keystrokes:\n"); -- cgit v1.2.3 From 4b9466ff5c031ba2076cba20b41fb26787338dbe Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 4 Jan 2020 15:41:25 +0100 Subject: Events.c: pass a Boolean to nxagentSwitchFullscreen --- nx-X11/programs/Xserver/hw/nxagent/Events.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Events.c b/nx-X11/programs/Xserver/hw/nxagent/Events.c index 859a01bf4..597359cf1 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Events.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Events.c @@ -2197,7 +2197,7 @@ FIXME: Don't enqueue the KeyRelease event if the key was not already { if (nxagentOption(AllScreens) == 0 && nxagentOption(Fullscreen) == 1) { - nxagentSwitchFullscreen(pScreen, 0); + nxagentSwitchFullscreen(pScreen, False); } else { -- cgit v1.2.3 From 209c8d8c5d71ebdc4390059c5e4378a0d60ef368 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 4 Jan 2020 16:22:24 +0100 Subject: Screen.c: harmonize size/wmhints code --- nx-X11/programs/Xserver/hw/nxagent/Screen.c | 32 ++++++++++------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c index 33add9cb5..2ed7d9593 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c @@ -454,8 +454,6 @@ Window nxagentCreateIconWindow(void) */ XSizeHints* sizeHints = XAllocSizeHints(); - XWMHints* wmHints = XAllocWMHints();; - if (sizeHints) { sizeHints->flags = PMinSize | PMaxSize; @@ -463,27 +461,23 @@ Window nxagentCreateIconWindow(void) sizeHints->min_height = sizeHints->max_height = 1; } + XWMHints* wmHints = XAllocWMHints();; if (wmHints) { - wmHints->flags = IconPixmapHint | IconMaskHint; + wmHints->flags = StateHint | IconPixmapHint; wmHints->initial_state = IconicState; wmHints->icon_pixmap = nxagentIconPixmap; if (useXpmIcon) { + wmHints->flags |= IconMaskHint; wmHints->icon_mask = nxagentIconShape; - wmHints->flags = IconPixmapHint | IconMaskHint; - } - else - { - wmHints->flags = StateHint | IconPixmapHint; } } - char *window_name = nxagentWindowName; Xutf8SetWMProperties(nxagentDisplay, w, - window_name, window_name, - NULL , 0 , sizeHints, wmHints, NULL); + nxagentWindowName, nxagentWindowName, + NULL , 0 , sizeHints, wmHints, NULL); SAFE_XFree(sizeHints); SAFE_XFree(wmHints); @@ -1901,10 +1895,8 @@ N/A XSelectInput(nxagentDisplay, nxagentFullscreenWindow, mask); } - XSizeHints* sizeHints; - XWMHints* wmHints; - - if ((sizeHints = XAllocSizeHints())) + XSizeHints* sizeHints = XAllocSizeHints(); + if (sizeHints) { sizeHints->flags = PPosition | PMinSize | PMaxSize; sizeHints->x = nxagentOption(X) + POSITION_OFFSET; @@ -1932,18 +1924,16 @@ N/A sizeHints->flags |= USSize; } - if ((wmHints = XAllocWMHints())) + XWMHints* wmHints = XAllocWMHints(); + if (wmHints) { + wmHints->flags = IconPixmapHint; wmHints->icon_pixmap = nxagentIconPixmap; if (useXpmIcon) { + wmHints->flags |= IconMaskHint; wmHints->icon_mask = nxagentIconShape; - wmHints->flags = IconPixmapHint | IconMaskHint; - } - else - { - wmHints->flags = IconPixmapHint; } } -- cgit v1.2.3 From 61619be524b0606d54099a8e8bf2a8c36fcb4fe0 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 4 Jan 2020 17:10:01 +0100 Subject: Display.c: add a describing comment for nxagentDisplayErrorPredicate --- nx-X11/programs/Xserver/hw/nxagent/Display.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Display.c b/nx-X11/programs/Xserver/hw/nxagent/Display.c index 1eacd3315..66562a926 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Display.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c @@ -754,6 +754,20 @@ static void nxagentDisplayFlushHandler(Display *display, int length) } } +/* + * From the changelog for nx-X11-3.0.0-4: + * "Added the _NXDisplayErrorPredicate function in XlibInt.c. It is + * actually a pointer to a function called whenever Xlib is going to + * perform a network operation. If the function returns true, the + * call will be aborted and Xlib will return the control to the ap- + * plication. It is up to the application to set the XlibDisplayIO- + * Error flag after the _NXDisplayErrorPredicate returns true. The + * function can be used to activate additional checks, besides the + * normal failures detected by Xlib on the display socket. For exam- + * ple, the application can set the funciton to verify if an inter- + * rupt was received or if any other event occurred mandating the + + end of the session." + */ static int nxagentDisplayErrorPredicate(Display *display, int error) { #ifdef TEST -- cgit v1.2.3 From bf958eced2f6e4d114488761a41fc2a6c42ac0cb Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 4 Jan 2020 18:30:23 +0100 Subject: Image.c: undo wrong string replacement nxagentBitmapBitOrder nxagentBitmapBitOrder never existed and should really be BitmapBitOrder. It was accidently replaced in 523009b96bd2e479c9823267bc060f8e5b0516e8 --- nx-X11/programs/Xserver/hw/nxagent/Image.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Image.c b/nx-X11/programs/Xserver/hw/nxagent/Image.c index ba0fe9252..9e50b5d60 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Image.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Image.c @@ -1093,7 +1093,7 @@ FIXME: Should use an unpack resource here. #ifdef TEST fprintf(stderr, "nxagentPutSubImage: Display image order is [%d] bitmap order is [%d].\n", - ImageByteOrder(nxagentDisplay), nxagentBitmapBitOrder(nxagentDisplay)); + ImageByteOrder(nxagentDisplay), BitmapBitOrder(nxagentDisplay)); #endif /* -- cgit v1.2.3 From bf9b70d7bc6437d6c4ce6500928b3724a64c6a5b Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sun, 5 Jan 2020 23:49:12 +0100 Subject: Display.c: Fix broken code in TEST case --- nx-X11/programs/Xserver/hw/nxagent/Display.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Display.c b/nx-X11/programs/Xserver/hw/nxagent/Display.c index 66562a926..dad6bfb2b 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Display.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c @@ -1779,8 +1779,7 @@ Bool nxagentMakeIcon(Display *display, Pixmap *nxIcon, Pixmap *nxMask) else { #ifdef TEST - fprintf(stderr, "%s: Xpm operation failed with error '%s'.\n", __func__, - XpmGetErrorString(status)); + fprintf(stderr, "%s: Xpm operation failed.\n", __func__); #endif return False; -- cgit v1.2.3 From d2ac4ce3567042f4187969e119836a37730b5b83 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Mon, 16 Dec 2019 18:50:17 +0100 Subject: Atoms.c: describe atoms usage --- nx-X11/programs/Xserver/hw/nxagent/Atoms.c | 55 ++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 11 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Atoms.c b/nx-X11/programs/Xserver/hw/nxagent/Atoms.c index 4e9b7fb1f..e45fa4b3a 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Atoms.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Atoms.c @@ -75,25 +75,58 @@ Atom nxagentAtoms[NXAGENT_NUMBER_OF_ATOMS]; static char *nxagentAtomNames[NXAGENT_NUMBER_OF_ATOMS + 1] = { - "NX_IDENTITY", /* 0 */ - "WM_PROTOCOLS", /* 1 */ - "WM_DELETE_WINDOW", /* 2 */ - "WM_NX_READY", /* 3 */ - "MCOPGLOBALS", /* 4 */ - "NX_CUT_BUFFER_SERVER", /* 5 */ - /* Unfortunately we cannot rename this to NX_SELTRANS_TO_AGENT + "NX_IDENTITY", /* 0 */ + /* NX_IDENTITY was used in earlier nx versions to communicate + the version to NXwin. Got dropped between nxagent 1.5.0-45 + and 1.5.0-112. */ + "WM_PROTOCOLS", /* 1 */ + /* standard ICCCM Atom */ + "WM_DELETE_WINDOW", /* 2 */ + /* standard ICCCM Atom */ + "WM_NX_READY", /* 3 */ + /* nxagent takes the ownership of the selection with this name + to signal the nxclient (or any other watching program) + it is ready. */ + "MCOPGLOBALS", /* 4 */ + /* used for artsd support. */ + "NX_CUT_BUFFER_SERVER", /* 5 */ + /* this is the name of a property on nxagent's window on the + real X server. This property is used for passing clipboard + content from clients of the real X server to nxagent's clients + + Unfortunately we cannot rename this to NX_SELTRANS_TO_AGENT because nomachine's nxclient is depending on this selection */ - "TARGETS", /* 6 */ - "TEXT", /* 7 */ - "NX_AGENT_SIGNATURE", /* 8 */ - "NXDARWIN", /* 9 */ + + "TARGETS", /* 6 */ + /* used to request a list of supported data formats from the + selection owner. Standard ICCCM Atom */ + "TEXT", /* 7 */ + /* one of the supported data formats for selections. Standard + ICCCM Atom */ + "NX_AGENT_SIGNATURE", /* 8 */ + /* this is used to set a property on nxagent's window if nxagent + is started with the fullscreen option set. Unsure, what this + is used for. */ + "NXDARWIN", /* 9 */ + /* this was an Atom in nxdarwin, nomachine's X server for MacOS. */ "CLIPBOARD", /* 10 */ + /* Atom for the clipboard selection. PRIMARY is fixed in X11 but + CLIPBOARD is not. Standard ICCCM Atom. */ "TIMESTAMP", /* 11 */ + /* used to request the time a selection has been owned. Standard + ICCCM Atom */ "UTF8_STRING", /* 12 */ + /* one of the supported data formats for selections. Standard + ICCCM Atom */ "_NET_WM_STATE", /* 13 */ + /* standard ICCCM Atom */ "_NET_WM_STATE_FULLSCREEN", /* 14 */ + /* standard ICCCM Atom */ "NX_SELTRANS_FROM_AGENT", /* 15 */ + /* this is the name of a property on nxagent's window on the real + X server. This property is used for passing clipboard content + from nxagent's clients to clients on the real X server */ "COMPOUND_TEXT", /* 16 */ NULL, NULL -- cgit v1.2.3 From cf8797c3c0e9623e5092a2c9f5ea7cb31bc11657 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Mon, 16 Dec 2019 18:50:17 +0100 Subject: Atoms.c: describe atoms usage --- nx-X11/programs/Xserver/hw/nxagent/Atoms.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Atoms.c b/nx-X11/programs/Xserver/hw/nxagent/Atoms.c index e45fa4b3a..af6260d15 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Atoms.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Atoms.c @@ -128,6 +128,8 @@ static char *nxagentAtomNames[NXAGENT_NUMBER_OF_ATOMS + 1] = X server. This property is used for passing clipboard content from nxagent's clients to clients on the real X server */ "COMPOUND_TEXT", /* 16 */ + /* one of the supported data formats for selections. Standard + ICCCM Atom */ NULL, NULL }; -- cgit v1.2.3