Hello,

here are some patches that add further Xinerama support, fix a bug in ttsession so it no longer segfaults if it can't figure out the host name, and make dtksh build on FreeBSD 11 again.

Regards
Alex
>From 25de8808952fe112c09502fe9495f6af6a057878 Mon Sep 17 00:00:00 2001
From: alx <a...@fastestcode.org>
Date: Fri, 30 Dec 2016 01:21:40 +0100
Subject: [PATCH 1/5] libDtSvc: added Xinerama support to _DtMessageDialog

---
 cde/lib/DtSvc/DtUtil2/Imakefile     |  7 +++-
 cde/lib/DtSvc/DtUtil2/SharedProcs.c | 73 +++++++++++++++++++++++++++++++------
 cde/lib/DtSvc/Imakefile             | 11 ++++--
 cde/lib/DtXinerama/Imakefile        |  3 ++
 cde/lib/Imakefile                   |  4 +-
 5 files changed, 80 insertions(+), 18 deletions(-)

diff --git a/cde/lib/DtSvc/DtUtil2/Imakefile b/cde/lib/DtSvc/DtUtil2/Imakefile
index faf13469..52269944 100644
--- a/cde/lib/DtSvc/DtUtil2/Imakefile
+++ b/cde/lib/DtSvc/DtUtil2/Imakefile
@@ -10,13 +10,18 @@ XCOMM $TOG: Imakefile /main/14 1998/04/22 14:18:31 mgreess $
 
 #include <Threads.tmpl>
 
+#if CDE_USEXINERAMA
+XINOPT = -DUSE_XINERAMA
+#endif
+
 #ifndef DtSvcDefines
 # define DtSvcDefines	-DMULTIBYTE
 #endif
 DEPEND_DEFINES = $(DEPENDDEFINES)
-DEFINES = DtSvcDefines \
+DEFINES = DtSvcDefines  $(XINOPT) \
           -DCDE_INSTALLATION_TOP=\"$(CDE_INSTALLATION_TOP)\" \
           -DCDE_CONFIGURATION_TOP=\"$(CDE_CONFIGURATION_TOP)\"
+
 INCLUDES =  -I. -I../include
 
 #ifdef SunArchitecture
diff --git a/cde/lib/DtSvc/DtUtil2/SharedProcs.c b/cde/lib/DtSvc/DtUtil2/SharedProcs.c
index f6a3b371..af99b2cd 100644
--- a/cde/lib/DtSvc/DtUtil2/SharedProcs.c
+++ b/cde/lib/DtSvc/DtUtil2/SharedProcs.c
@@ -65,7 +65,9 @@
 #include <Dt/DtP.h>
 #include <Dt/Connect.h>
 #include <Dt/DtNlUtils.h>
-
+#ifdef USE_XINERAMA
+#include <DtXinerama.h>
+#endif
 #include "SharedProcs.h"
 
 
@@ -74,7 +76,8 @@
 
 
 /********    Static Function Declarations    ********/
-
+static void MessageDialogPopupCB(Widget w, XtPointer client_data,
+	XtPointer call_data);
 
 /********    End Static Function Declarations    ********/
 
@@ -247,17 +250,15 @@ _DtMessageDialog(
    else
       attributes.map_state = IsUnmapped;
 
+   /*
+    * If parent widget isn't mapped, attach a callback
+    * procedure that'll center the message dialog on screen.
+	*/
    if (attributes.map_state == IsUnmapped)
-   {
-      XtSetArg(args[0], XmNx, (WidthOfScreen(XtScreen (w)) - 350) / 2);
-      XtSetArg(args[1], XmNy, (HeightOfScreen(XtScreen (w)) - 200) / 2);
-      XtSetArg(args[2], XmNdefaultPosition, False);
-      XtSetValues(message, args, 3);
-   }
-
-
+        XtAddCallback(XtParent(message),XmNpopupCallback,
+			MessageDialogPopupCB,(XtPointer)w);
+ 
    /*  Adjust the decorations and title for the dialog shell of the dialog  */
-
    XtSetArg(args[0], XmNtitle, title);
    XtSetArg(args[1], XmNmwmFunctions, MWM_FUNC_MOVE);
    XtSetArg(args[2], XmNmwmDecorations, MWM_DECOR_BORDER | MWM_DECOR_TITLE);
@@ -365,4 +366,52 @@ _DtMessageClose(
    }
 }
 
-
+/*
+ * Center a message dialog on screen once it is managed.
+ * client_data is expected to contain the parent shell widget handle.
+ */
+static void MessageDialogPopupCB(Widget w, XtPointer client_data,
+	XtPointer call_data)
+{
+	Position msg_x, msg_y;
+	unsigned int scr_w, scr_h, off_x=0, off_y=0;
+	Dimension msg_w=0, msg_h=0;
+	Arg args[2];
+	#ifdef USE_XINERAMA
+	DtXineramaInfo_t *dt_xi;
+	#endif
+
+	msg_w=XtWidth(w);
+	msg_h=XtHeight(w);
+
+	scr_w=WidthOfScreen(XtScreen(w));
+	scr_h=HeightOfScreen(XtScreen(w));
+
+	#ifdef USE_XINERAMA
+	/* determine xinerama screen number the parent shell resides on,
+	 * and override scr_w/scr_h and off_x/off_y on success */
+	if((dt_xi=_DtXineramaInit(XtDisplay(w)))){
+		int i;
+		unsigned int pw_x=XtX((Widget)client_data);
+		unsigned int pw_y=XtY((Widget)client_data);
+
+		for(i=0; i<dt_xi->numscreens; i++){
+			unsigned int sw,sh,sx,sy;
+			_DtXineramaGetScreen(dt_xi,i,&sw,&sh,&sx,&sy);
+			if(pw_x>=sx && pw_x<(sx+sw) && pw_y>=sy && pw_y<(sy+sh)){
+				off_x=sx; off_y=sy;
+				scr_w=sw; scr_h=sh;
+				break;
+			}
+		}
+	}
+	#endif /* USE_XINERAMA */
+
+	msg_x=off_x+(scr_w-msg_w)/2;
+	msg_y=off_y+(scr_h-msg_h)/2;
+
+	XtSetArg(args[0],XmNx,msg_x);
+	XtSetArg(args[1],XmNy,msg_y);
+	XtSetValues(w,args,2);
+	XtRemoveCallback(w,XmNpopupCallback,MessageDialogPopupCB,client_data);
+}
diff --git a/cde/lib/DtSvc/Imakefile b/cde/lib/DtSvc/Imakefile
index 3585cb8b..8ec6c3bf 100644
--- a/cde/lib/DtSvc/Imakefile
+++ b/cde/lib/DtSvc/Imakefile
@@ -2,6 +2,11 @@ XCOMM $TOG: Imakefile /main/16 1998/08/10 18:02:14 mgreess $
 #define IHaveSubdirs
 #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' 'CXXDEBUGFLAGS=$(CXXDEBUGFLAGS)'
 
+#if CDE_USEXINERAMA
+XINOPT = -DUSE_XINERAMA
+XINLIB = -lDtXinerama -lXinerama
+#endif
+
 SUBDIRS = include DtUtil1 DtUtil2 DtEncap DtCodelibs DtXpm
 DONES = DtUtil1/DONE DtUtil2/DONE DtEncap/DONE DtCodelibs/DONE DtXpm/DONE
 EXTRALIBRARYDEPS = $(DONES)
@@ -24,18 +29,18 @@ DependSubdirs($(SUBDIRS))
 #ifndef DtSvcDefines
 # define DtSvcDefines	-DMULTIBYTE
 #endif
-DEFINES = DtSvcDefines
+DEFINES = DtSvcDefines $(XINOPT)
 
 INCLUDES = -I.
 
 #ifdef SharedDtSvcReqs
 #ifdef SunArchitecture
-REQUIREDLIBS = SharedDtSvcReqs
+REQUIREDLIBS = SharedDtSvcReqs $(XINLIB)
 #ifndef HasGcc2
 SHLIBLDFLAGS = -G
 #endif
 #else
-REQUIREDLIBS = SharedDtSvcReqs
+REQUIREDLIBS = SharedDtSvcReqs $(XINLIB)
 #endif
 #endif
 
diff --git a/cde/lib/DtXinerama/Imakefile b/cde/lib/DtXinerama/Imakefile
index 21837dc4..70347b43 100644
--- a/cde/lib/DtXinerama/Imakefile
+++ b/cde/lib/DtXinerama/Imakefile
@@ -39,5 +39,8 @@ OBJS = DtXinerama.o
 
 INCLUDES = -I.
 
+XCOMM -fpic is required for static libDtXinerama to link with libDtSvc properly
+CCOPTIONS += -fpic
+
 DependTarget()
 
diff --git a/cde/lib/Imakefile b/cde/lib/Imakefile
index 2d0bfac8..df37a00c 100644
--- a/cde/lib/Imakefile
+++ b/cde/lib/Imakefile
@@ -12,8 +12,8 @@ PAMDIR = pam
 PAMDIR =
 #endif
 
-SUBDIRS = $(PAMDIR) tt DtSvc DtSearch DtWidget DtHelp DtPrint DtTerm DtMrm \
-	csa $(XINDIR)
+SUBDIRS = $(XINDIR) $(PAMDIR) tt DtSvc DtSearch DtWidget DtHelp DtPrint \
+	DtTerm DtMrm csa
 
 MakeSubdirs($(SUBDIRS))
 DependSubdirs($(SUBDIRS))
-- 
2.11.0

>From 14778e5749bf58e985796e2fd1b1b9c595eb27c2 Mon Sep 17 00:00:00 2001
From: alx <a...@fastestcode.org>
Date: Fri, 30 Dec 2016 01:28:43 +0100
Subject: [PATCH 2/5] dtfile: added Xinerama support to dialog positioning
 routines

---
 cde/programs/dtfile/Encaps.c  | 58 ++++++++++++++++++++++++++++++++++++++++---
 cde/programs/dtfile/Encaps.h  |  2 +-
 cde/programs/dtfile/Imakefile |  8 ++++--
 3 files changed, 61 insertions(+), 7 deletions(-)

diff --git a/cde/programs/dtfile/Encaps.c b/cde/programs/dtfile/Encaps.c
index 5314e0e9..7bfc6550 100644
--- a/cde/programs/dtfile/Encaps.c
+++ b/cde/programs/dtfile/Encaps.c
@@ -99,7 +99,9 @@
 #include "FileMgr.h"
 #include "Main.h"
 #include "ModAttr.h"
-
+#ifdef USE_XINERAMA
+#include <DtXinerama.h>
+#endif
 
 #define MAX_NAME_LIST_SIZE	25
 #define MAX_RESOURCE_LENGTH	256
@@ -232,6 +234,10 @@ static void IntDialogPutResources(
                         char *dialogName,
                         char *base,
                         DialogResource *resource) ;
+#ifdef USE_XINERAMA
+static Boolean GetXineramaScreenDimensions(
+	Widget w,int *xorg, int *yorg, int *width,int *height);
+#endif /* USE_XINERAMA */
 
 /********    End Static Function Declarations    ********/
 
@@ -1872,6 +1878,7 @@ _DtChildPosition(
    int pWidth, myWidth, sWidth;
    enum { posRight, posBelow, posLeft, posAbove } pos;
    int space;
+   int xOrg=0, yOrg=0; /* Xinerama screen origin */
 
    /* get x, y offsets for the parent's window frame */
    extData = _XmGetWidgetExtData(parent, XmSHELL_EXTENSION);
@@ -1884,11 +1891,19 @@ _DtChildPosition(
    else
      xOffset = yOffset = 0;
 
+   #ifdef USE_XINERAMA
+   if(!GetXineramaScreenDimensions(parent,&xOrg,&yOrg,&sWidth,&sHeight)){
+      sHeight = HeightOfScreen(XtScreen(parent));
+      sWidth = WidthOfScreen(XtScreen(parent));
+   }
+   #else
    /* get size/position of screen, parent, and widget */
-   sHeight = HeightOfScreen(XtScreen(parent));;
+   sHeight = HeightOfScreen(XtScreen(parent));
    sWidth = WidthOfScreen(XtScreen(parent));
-   pX = XtX(parent) - xOffset;
-   pY = XtY(parent) - yOffset;
+   #endif /* USE_XINERAMA */
+
+   pX = XtX(parent) - xOffset - xOrg;
+   pY = XtY(parent) - yOffset - yOrg;
    pHeight = XtHeight(parent) + yOffset + xOffset;
    pWidth = XtWidth(parent) + 2*xOffset;
    myHeight = XtHeight(w) + yOffset + xOffset;
@@ -1958,6 +1973,8 @@ _DtChildPosition(
    if ((*newY >= (sHeight - 10)) || (*newY < 0))
       *newY = (sHeight - myHeight) / 2;
 
+	*newX+=xOrg;
+	*newY+=yOrg;
 }
 
 
@@ -2457,3 +2474,36 @@ _DtFreeDialog(
    }
 }
 
+#ifdef USE_XINERAMA
+/*
+ * Retrieve dimensions of the Xinerama screen the given widget resides on.
+ * Returns True on success, False otherwise.
+ */
+static Boolean GetXineramaScreenDimensions(
+	Widget w, int *org_x, int *org_y, int *s_width, int *s_height)
+{
+	DtXineramaInfo_t *dt_xi;
+	unsigned int wx, wy;
+	unsigned int i, sx, sy, sw, sh;
+
+	while(w && !XtIsShell(w)) w=XtParent (w);
+
+	wx=XtX(w);
+	wy=XtY(w);
+
+	if(!(dt_xi=_DtXineramaInit(XtDisplay(w)))) return False;
+
+	for(i=0; i<dt_xi->numscreens; i++){
+		if(!_DtXineramaGetScreen(dt_xi,i,&sw,&sh,&sx,&sy))break;
+
+		if(wx>=sx && wx<(sx+sw) && wy>=sy && wy<(sy+sh)){
+			*s_width=(int)sw;
+			*s_height=(int)sh;
+			*org_x=(int)sx;
+			*org_y=(int)sy;
+			return True;
+		}
+	}
+	return False;
+}
+#endif /* USE_XINERAMA */
diff --git a/cde/programs/dtfile/Encaps.h b/cde/programs/dtfile/Encaps.h
index 19ec4154..ebec8185 100644
--- a/cde/programs/dtfile/Encaps.h
+++ b/cde/programs/dtfile/Encaps.h
@@ -38,7 +38,7 @@
  ****************************************************************************
  ************************************<+>*************************************/
 
-#ifndef _Encapsualte_h
+#ifndef _Encapsulate_h
 #define _Encapsulate_h
 
 
diff --git a/cde/programs/dtfile/Imakefile b/cde/programs/dtfile/Imakefile
index 32f67865..88aecbdd 100644
--- a/cde/programs/dtfile/Imakefile
+++ b/cde/programs/dtfile/Imakefile
@@ -8,17 +8,21 @@ MakeSubdirs($(SUBDIRS))
 ForceSubdirs($(SUBDIRS))
 DependSubdirs($(SUBDIRS))
 
+#if CDE_USEXINERAMA
+XINOPT = -DUSE_XINERAMA
+XINLIB = -lDtXinerama -lXinerama
+#endif
 
 DEPEND_DEFINES = $(DEPENDDEFINES)
 DEFINES = -DMULTIBYTE -DSHAPE -D_ILS_MACROS -DSUN_PERF \
 	-DCDE_INSTALLATION_TOP=\"$(CDE_INSTALLATION_TOP)\" \
 	-DCDE_CONFIGURATION_TOP=\"$(CDE_CONFIGURATION_TOP)\" \
-	-DKORNSHELL=\"$(KORNSHELL)\"
+	-DKORNSHELL=\"$(KORNSHELL)\" $(XINOPT)
 
 INCLUDES = -I./dtcopy
 
 DEPLIBS = DepDtClientLibs
-LOCAL_LIBRARIES = DtClientLibs
+LOCAL_LIBRARIES = DtClientLibs $(XINLIB)
 SYS_LIBRARIES = DtClientSysLibs DtClientExtraLibs
 
 #ifdef AlphaArchitecture
-- 
2.11.0

>From 58ab0471d17e9c0526030d236473b98204417e05 Mon Sep 17 00:00:00 2001
From: alx <a...@fastestcode.org>
Date: Fri, 30 Dec 2016 01:31:09 +0100
Subject: [PATCH 3/5] dtlogin: center the mouse pointer on the login screen on
 multi-head setups

---
 cde/programs/dtlogin/vgmain.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/cde/programs/dtlogin/vgmain.c b/cde/programs/dtlogin/vgmain.c
index 91d41a7f..f26bcadc 100644
--- a/cde/programs/dtlogin/vgmain.c
+++ b/cde/programs/dtlogin/vgmain.c
@@ -1236,6 +1236,7 @@ MakeDialog( DialogType dtype )
 	xorg = yorg = 0;
       }
 				/* else, should be setup properly */
+    XWarpPointer(dpyinfo.dpy,None,dpyinfo.root,0,0,0,0,dpwidth/2,dpheight/2);
 #else  /* no Xinerama */
     dpwidth = dpyinfo.width;
     dpheight = dpyinfo.height;
-- 
2.11.0

>From 702f8e52e00ef8f73deb5cb8ad0af7561fed7119 Mon Sep 17 00:00:00 2001
From: alx <a...@fastestcode.org>
Date: Fri, 30 Dec 2016 01:35:38 +0100
Subject: [PATCH 4/5] ttsession: don't segfault if host name isn't properly set

---
 cde/lib/tt/lib/mp/mp_desktop.C | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/cde/lib/tt/lib/mp/mp_desktop.C b/cde/lib/tt/lib/mp/mp_desktop.C
index cf5a075a..36df33d2 100644
--- a/cde/lib/tt/lib/mp/mp_desktop.C
+++ b/cde/lib/tt/lib/mp/mp_desktop.C
@@ -416,7 +416,10 @@ parse_Xdisplay_string(_Tt_string display, _Tt_string &host, pid_t &svnum,_Tt_str
 	if (offset == 0) {
 
 		// use local host
-		(void)_tt_global->get_local_host(h);
+		if(!_tt_global->get_local_host(h)){
+			_tt_syslog(0,LOG_ERR,"get_local_host(): 0");
+			return 0;
+		}
 		host = h->stringaddr();
 		hostname = h->name();
 		status = 2;
@@ -427,7 +430,10 @@ parse_Xdisplay_string(_Tt_string display, _Tt_string &host, pid_t &svnum,_Tt_str
 		host = display.mid(0, offset);
 
 		if (host == "unix") {
-			(void)_tt_global->get_local_host(h);
+			if(!_tt_global->get_local_host(h)){
+				_tt_syslog(0,LOG_ERR,"get_local_host(): 0");
+				return 0;
+			}
 			host = h->stringaddr();
 			hostname = h->name();
 			status = 3;
-- 
2.11.0

>From 68518e237bcb39de94b2a2a36bc1ff7f8a2644da Mon Sep 17 00:00:00 2001
From: alx <a...@fastestcode.org>
Date: Fri, 30 Dec 2016 02:43:57 +0100
Subject: [PATCH 5/5] dtksh/sfio: resolved a naming collision on FreeBSD 11

---
 cde/programs/dtksh/ksh93/src/lib/libast/include/sfio.h   | 2 +-
 cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfclrlock.c | 4 ++--
 cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfio_t.h    | 2 +-
 cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfnew.c     | 2 +-
 cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfset.c     | 4 ++--
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/include/sfio.h b/cde/programs/dtksh/ksh93/src/lib/libast/include/sfio.h
index b9caca8f..5394d106 100644
--- a/cde/programs/dtksh/ksh93/src/lib/libast/include/sfio.h
+++ b/cde/programs/dtksh/ksh93/src/lib/libast/include/sfio.h
@@ -224,7 +224,7 @@ struct _sfio_
 #define SF_IOCHECK	0002000	/* call exceptf before doing IO		*/
 #define SF_PUBLIC	0004000	/* SF_SHARE and follow physical seek	*/
 
-#define SF_FLAGS	0005177	/* PUBLIC FLAGS PASSABLE TO SFNEW()	*/
+#define SFIO_FLAGS	0005177	/* PUBLIC FLAGS PASSABLE TO SFNEW()	*/
 #define SF_SETS		0007163	/* flags passable to sfset()		*/
 
 /* exception events: SF_NEW(0), SF_READ(1), SF_WRITE(2) and the below 	*/
diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfclrlock.c b/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfclrlock.c
index 8afa5b6a..6a8a8a1f 100644
--- a/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfclrlock.c
+++ b/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfclrlock.c
@@ -66,7 +66,7 @@ reg Sfio_t	*f;
 	f->flags &= ~(SF_ERROR|SF_EOF);
 
 	if(!(f->mode&(SF_LOCK|SF_PEEK)) )
-		return (f->flags&SF_FLAGS);
+		return (f->flags&SFIO_FLAGS);
 
 	/* clear peek locks */
 	f->mode &= ~SF_PEEK;
@@ -78,5 +78,5 @@ reg Sfio_t	*f;
 
 	f->mode &= (SF_RDWR|SF_INIT|SF_POOL|SF_PUSH|SF_SYNCED|SF_STDIO);
 
-	return _sfmode(f,0,0) < 0 ? 0 : (f->flags&SF_FLAGS);
+	return _sfmode(f,0,0) < 0 ? 0 : (f->flags&SFIO_FLAGS);
 }
diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfio_t.h b/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfio_t.h
index 1d8df2c9..5b9ed411 100644
--- a/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfio_t.h
+++ b/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfio_t.h
@@ -82,7 +82,7 @@
 	  (unsigned char*)(data),			/* endr		*/ \
 	  (unsigned char*)(data),			/* endb		*/ \
 	  (struct _sfio_*)0,				/* push		*/ \
-	  (unsigned short)((type)&SF_FLAGS),		/* flags	*/ \
+	  (unsigned short)((type)&SFIO_FLAGS),		/* flags	*/ \
 	  (short)(file),				/* file		*/ \
 	  (unsigned char*)(data),			/* data		*/ \
 	  (int)(size),					/* size		*/ \
diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfnew.c b/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfnew.c
index 95186269..ecb21aa6 100644
--- a/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfnew.c
+++ b/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfnew.c
@@ -115,7 +115,7 @@ int	flags;	/* type of file stream */
 
 	/* stream type */
 	f->mode = (flags&SF_READ) ? SF_READ : SF_WRITE;
-	f->flags = (flags&SF_FLAGS) | ((flags&SF_RDWR) == SF_RDWR ? SF_BOTH : 0);
+	f->flags = (flags&SFIO_FLAGS) | ((flags&SF_RDWR) == SF_RDWR ? SF_BOTH : 0);
 	f->flags |= (sflags&(SF_MALLOC|SF_STATIC));
 	f->file = file;
 	f->here = f->extent = 0L;
diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfset.c b/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfset.c
index a7d8122a..0ded609f 100644
--- a/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfset.c
+++ b/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfset.c
@@ -62,7 +62,7 @@ reg int		set;
 	reg int	oflags;
 
 	if(flags == 0)
-		return (f->flags&SF_FLAGS);
+		return (f->flags&SFIO_FLAGS);
 
 	if((oflags = (f->mode&SF_RDWR)) != f->mode && _sfmode(f,oflags,0) < 0)
 		return 0;
@@ -98,5 +98,5 @@ reg int		set;
 		f->flags &= ~SF_PUBLIC;
 
 	SFOPEN(f,0);
-	return (oflags&SF_FLAGS);
+	return (oflags&SFIO_FLAGS);
 }
-- 
2.11.0

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
cdesktopenv-devel mailing list
cdesktopenv-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel

Reply via email to