diff -urN dx-4.4.4/acinclude.m4 dx-4.4.4-new/acinclude.m4
--- dx-4.4.4/acinclude.m4	2018-01-16 17:19:06.000000000 -0500
+++ dx-4.4.4-new/acinclude.m4	2018-01-16 17:20:29.000000000 -0500
@@ -197,7 +197,7 @@
     ARCH=$ac_cv_dx_arch
     AC_MSG_RESULT($ARCH)
     AC_SUBST(ARCH)
-    AC_DEFINE_UNQUOTED($ARCH)
+    AC_DEFINE_UNQUOTED(dxd_archname_$ARCH)
     AC_DEFINE_UNQUOTED(DXD_ARCHNAME, "$ARCH", [define architecture name])
 ])
 
diff -urN dx-4.4.4/bin/Makefile.am dx-new/bin/Makefile.am
--- dx-4.4.4/bin/Makefile.am	2003-07-11 20:11:37.000000000 -0400
+++ dx-new/bin/Makefile.am	2011-12-04 22:58:28.000000000 -0500
@@ -1,7 +1,7 @@
 ## Process this file with automake to produce Makefile.in
 
 dxbindir = $(prefix)/dx/bin
-bindir = $(prefix)/bin
+bindir = $(exec_prefix)/bin
 
 EXTRA_SCRIPTS = mdf2c dx
 EXTRA_DIST = url_handler.sh
diff -urN dx-4.4.4/bin/dx.in dx-new/bin/dx.in
--- dx-4.4.4/bin/dx.in	2004-05-31 12:12:05.000000000 -0400
+++ dx-new/bin/dx.in	2011-12-04 22:58:28.000000000 -0500
@@ -60,10 +60,10 @@
 #
 longhelp() {
 
-if test -f "$dxroot/man/catl/dx.l" ; then
-    more "$dxroot/man/catl/dx.l"
+if test -f "$dxroot/../man/catl/dx.l" ; then
+    more "$dxroot/../man/catl/dx.l"
 else
-    echo "cannot find $dxroot/man/catl/dx.l"
+    echo "cannot find $dxroot/../man/catl/dx.l"
     echo "set the DXROOT environment variable to the root of the"
     echo "dx installation tree and try again."
 fi
diff -urN dx-4.4.4/configure.ac dx-new/configure.ac
--- dx-4.4.4/configure.ac	2006-08-21 17:56:08.000000000 -0400
+++ dx-new/configure.ac	2013-08-10 06:37:04.000000000 -0400
@@ -218,6 +218,7 @@
 dnl End of command line options configuration
 
 dnl Start DX configuration
+AC_PROG_CXX
 AC_LANG([C++])
 AC_CHECK_HEADERS(stdlib.h)
 AC_LANG([C])
@@ -505,6 +506,11 @@
     LIBS="-L$xm_libraries $LIBS"
 fi
 
+if test "$ARCH" = "macos" ; then
+   LDFLAGS="$LDFLAGS -dylib_file \
+   /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:\
+/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib"
+fi
 AC_CHECK_LIB(GL, glXGetConfig)
 AC_CHECK_LIB(GLU, gluBuild2DMipmaps)
 
@@ -677,7 +683,7 @@
     fi
 dnl -- check for unix
 else
-    AC_CHECK_LIB(df,Hopen,passed=`expr $passed + 1`,failed=`expr $failed + 1`,[ -lz -ljpeg ])
+    AC_CHECK_LIB(df,Hopen,passed=`expr $passed + 1`,failed=`expr $failed + 1`,[ -lz -ljpeg -lsz ])
     AC_MSG_CHECKING(if HDF package is complete)
     if test $passed -gt 0
     then
@@ -686,7 +692,7 @@
 	AC_MSG_RESULT(no -- some components failed test)
         have_hdf='no (failed tests)'
     else
-	LIB_HDF='-ldf'
+	LIB_HDF='-ldf -ljpeg -lsz '
 	LIBS="$LIB_HDF $LIBS"
 	FMT_LIBS="$FMT_LIBS libdf.a"
 	AC_DEFINE(HAVE_LIBDF, 1, [Define to 1 if you have the HDF libraries])
@@ -801,7 +807,14 @@
 
     failed=0;
     passed=0;
+    if test "$HAVE_MC" = "yes" ; then
+	mysave_CPPFLAGS=$CPPFLAGS
+	CPPFLAGS="`Magick-config --cppflags` $CPPFLAGS"
+    fi
     AC_CHECK_HEADER([magick/api.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`])
+    if test "$HAVE_MC" = "yes" ; then
+	CPPFLAGS=$mysave_CPPFLAGS
+    fi
 if test "$ARCH" = "intelnt" ; then
     AC_CHECK_LIB(CORE_RL_magick_,Hopen,passed=`expr $passed + 1`,failed=`expr $failed + 1`,)
     AC_MSG_CHECKING(if ImageMagick package is complete)
@@ -836,7 +849,9 @@
 
  if test "$HAVE_MC" = "yes" ; then
     LIB_MAGICK="`Magick-config --ldflags` `Magick-config --libs`"
-    AC_CHECK_LIB( Magick,GetImageInfo, passed=`expr $passed + 1`, failed=`expr $failed + 1`, [ $LIB_MAGICK ])
+    mysave_LDFLAGS=$LDFLAGS
+    LDFLAGS="$LIB_MAGICK $LDFLAGS"
+    AC_SEARCH_LIBS( GetImageInfo, , passed=`expr $passed + 1`, failed=`expr $failed + 1`)
     AC_MSG_CHECKING(if ImageMagick package is complete)
     if test $passed -gt 0
     then
diff -urN dx-4.4.4/include/Makefile.am dx-new/include/Makefile.am
--- dx-4.4.4/include/Makefile.am	2006-04-08 23:44:49.000000000 -0400
+++ dx-new/include/Makefile.am	2011-12-04 22:58:28.000000000 -0500
@@ -1,4 +1,4 @@
-dxincdir = $(prefix)/dx/include
+dxincdir = $(exec_prefix)/include
 SUBDIRS = dx
 dxinc_HEADERS = dxl.h dxstereo.h
 nodist_dxinc_HEADERS = dxconfig.h
diff -urN dx-4.4.4/include/dx/Makefile.am dx-new/include/dx/Makefile.am
--- dx-4.4.4/include/dx/Makefile.am	1999-05-25 19:35:16.000000000 -0400
+++ dx-new/include/dx/Makefile.am	2011-12-04 22:58:28.000000000 -0500
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in
 
-dxincdir = $(prefix)/dx/include/dx
+dxincdir = $(exec_prefix)/include/dx
  
 dxinc_HEADERS = \
 	UserInteractors.h advanced.h arch.h array.h arrayhandles.h \
diff -urN dx-4.4.4/man/catl/Makefile.am dx-new/man/catl/Makefile.am
--- dx-4.4.4/man/catl/Makefile.am	1999-04-05 07:56:00.000000000 -0400
+++ dx-new/man/catl/Makefile.am	2011-12-04 22:58:28.000000000 -0500
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in
 
-catdir = $(prefix)/dx/man/catl
+catdir = $(exec_prefix)/share/man/catl
 
 cat_DATA = dx.l
 EXTRA_DIST = $(cat_DATA)
diff -urN dx-4.4.4/man/manl/Makefile.am dx-new/man/manl/Makefile.am
--- dx-4.4.4/man/manl/Makefile.am	2002-05-20 00:47:06.000000000 -0400
+++ dx-new/man/manl/Makefile.am	2011-12-04 22:58:28.000000000 -0500
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in
 
-mandir = $(prefix)/dx/man
+mandir = $(exec_prefix)/share/man
 
 man_MANS = dx.l
 EXTRA_DIST = $(man_MANS)
diff -urN dx-4.4.4/src/exec/dpexec/dxmain.c dx-4.4.4-new/src/exec/dpexec/dxmain.c
--- dx-4.4.4/src/exec/dpexec/dxmain.c	2018-01-16 22:51:32.000000000 -0500
+++ dx-4.4.4-new/src/exec/dpexec/dxmain.c	2022-03-19 07:07:57.000000000 -0400
@@ -6,6 +6,7 @@
 /*    "IBM PUBLIC LICENSE - Open Visualization Data Explorer"          */
 /***********************************************************************/
 
+#include <signal.h>
 #include <dxconfig.h>
 #include <dx/dx.h>
 
@@ -2129,7 +2130,7 @@
     if ((SFILEisatty(yyin) || (_dxd_exRshInput && yyin == _dxd_exBaseFD)) &&
             !prompted && _dxf_ExGQAllDone() && !SFILECharReady(yyin)) {
         prompt = _dxf_ExPromptGet(PROMPT_ID_PROMPT);
-        printf (prompt? prompt: EX_PROMPT);
+        printf ("%s", prompt? prompt: EX_PROMPT);
         fflush (stdout);
         prompted = TRUE;
     }
@@ -2305,7 +2306,7 @@
 	_dxf_ExGQAllDone ())\
     {\
 	prompt = _dxf_ExPromptGet (PROMPT_ID_PROMPT);\
-	printf (prompt ? prompt : EX_PROMPT);\
+	printf ("%s", prompt ? prompt : EX_PROMPT);\
 	fflush (stdout);\
 	prompted = TRUE;\
     }\
diff -urN dx-4.4.4/src/exec/dpexec/lex.c dx-4.4.4-new/src/exec/dpexec/lex.c
--- dx-4.4.4/src/exec/dpexec/lex.c	2018-01-16 22:51:32.000000000 -0500
+++ dx-4.4.4-new/src/exec/dpexec/lex.c	2018-01-16 22:51:38.000000000 -0500
@@ -648,7 +648,7 @@
 		    if ((_dxd_exIsatty || _dxd_exRshInput) && !SFILECharReady(yyin))
 		    {
 			prompt = _dxf_ExPromptGet(PROMPT_ID_CPROMPT);
-			printf (prompt? prompt: EX_CPROMPT);
+			printf ("%s", prompt? prompt: EX_CPROMPT);
 			fflush (stdout);
 		    }
 		    break;
diff -urN dx-4.4.4/src/exec/dpexec/packet.c dx-new/src/exec/dpexec/packet.c
--- dx-4.4.4/src/exec/dpexec/packet.c	2006-04-27 11:34:53.000000000 -0400
+++ dx-new/src/exec/dpexec/packet.c	2011-12-05 00:26:25.000000000 -0500
@@ -143,6 +143,8 @@
 	{
 	    if (sts > 0 && (!tmpbufferused || *tmpbufferused == 0))
 	    {
+	      //see http://www.opendx.org/bugs/view.php?id=251
+	      sts=0; // MHM change in case IOCTL fails
 		if(SFILEIoctl(_dxd_exSockFD, FIONBIO, &one) >= 0)
 	        sts = writeToSFILE(_dxd_exSockFD, packet, length);
 		SFILEIoctl(_dxd_exSockFD, FIONBIO, &zero);
diff -urN dx-4.4.4/src/exec/dxmods/_compparse.c dx-new/src/exec/dxmods/_compparse.c
--- dx-4.4.4/src/exec/dxmods/_compparse.c	2005-12-30 14:28:41.000000000 -0500
+++ dx-new/src/exec/dxmods/_compparse.c	2022-03-19 07:46:29.000000000 -0400
@@ -54,7 +54,7 @@
 #define yychar  _dxfccchar
 #define yydebug _dxfccdebug
 #define yynerrs _dxfccnerrs
-
+int yyerror(char *s);
 
 /* Tokens.  */
 #ifndef YYTOKENTYPE
@@ -198,8 +198,8 @@
 
 
 /* Copy the second part of user declarations.  */
-
-
+int _dxfcclexerror(void);
+int _dxfcclex(YYSTYPE *lvalp);
 /* Line 214 of yacc.c.  */
 #line 204 "y.tab.c"
 
diff -urN dx-4.4.4/src/exec/dxmods/_im_image.c dx-new/src/exec/dxmods/_im_image.c
--- dx-4.4.4/src/exec/dxmods/_im_image.c	2006-01-05 17:55:43.000000000 -0500
+++ dx-new/src/exec/dxmods/_im_image.c	2011-12-04 22:58:28.000000000 -0500
@@ -999,8 +999,11 @@
                     /* Opacities in colormap is wrong; use direct color map */
                     if ( image->matte )
                         for ( x = 0; x < width; x++ )
-                            omap[*(indexes2++)] = ( 1.0 -
+			  {
+			    int omap_index = *(indexes2++); // if Magick has HDRI, Quantum is a float
+                            omap[(omap_index < 0 ? 0 : omap_index)] = ( 1.0 - // clamp if negative
                                                     ((float) (pixies++)->opacity) / MaxRGB );
+			  }
                 }
             } else
                 DXErrorGoto( ERROR_INTERNAL,  "unexpected image field format" );
diff -urN dx-4.4.4/src/exec/dxmods/colormap.c dx-4.4.4-new/src/exec/dxmods/colormap.c
--- dx-4.4.4/src/exec/dxmods/colormap.c	2018-01-16 22:51:32.000000000 -0500
+++ dx-4.4.4-new/src/exec/dxmods/colormap.c	2018-01-16 22:51:38.000000000 -0500
@@ -1167,7 +1167,7 @@
       if (!ei.msgbuf)
 	 return ERROR;
       ei.mp = ei.msgbuf;
-      sprintf(ei.mp,name);  while(*ei.mp) ei.mp++;
+      strcpy(ei.mp,name);  while(*ei.mp) ei.mp++;
       sprintf(ei.mp, "NULL");
       DXUIMessage(id,ei.msgbuf);
       DXFree(ei.msgbuf);
@@ -1186,9 +1186,9 @@
    ei.mp = ei.msgbuf;
    shape[0]=2;
    strcpy(ei.mp,"");
-   sprintf(ei.mp,name); while(*ei.mp) ei.mp++;
+   strcpy(ei.mp,name); while(*ei.mp) ei.mp++;
    if (num==1){
-      sprintf(ei.mp,"{"); ei.mp++;
+      strcpy(ei.mp,"{"); ei.mp++;
    }
    if (!_dxfprint_message(map,&ei,TYPE_FLOAT,1,shape,num))
      goto error;
diff -urN dx-4.4.4/src/exec/dxmods/exp_gai.c dx-4.4.4-new/src/exec/dxmods/exp_gai.c
--- dx-4.4.4/src/exec/dxmods/exp_gai.c	2018-01-16 22:51:32.000000000 -0500
+++ dx-4.4.4-new/src/exec/dxmods/exp_gai.c	2018-01-16 22:51:38.000000000 -0500
@@ -422,7 +422,7 @@
 	    if (first == ON) 
 	       first = OFF;
 	    else
-	       fprintf(h->dfp,del);
+	       fprintf(h->dfp,"%s",del);
 	    if (blank == ON) 
 	       pblank(arinfo,h);
 	    else
@@ -439,7 +439,7 @@
 	    if (first == ON) 
 	       first = OFF;
 	    else
-	       fprintf(h->dfp,del);
+	       fprintf(h->dfp,"%s",del);
 	    if (blank == ON) 
 	       pblank(arinfo,h);
 	    else
@@ -456,7 +456,7 @@
 	    if (first == ON) 
 	       first = OFF;
 	    else
-	       fprintf(h->dfp,del);
+	       fprintf(h->dfp,"%s",del);
 	    if (blank == ON) 
 	       pblank(arinfo,h);
 	    else
@@ -473,7 +473,7 @@
 	    if (first == ON) 
 	       first = OFF;
 	    else
-	       fprintf(h->dfp,del);
+	       fprintf(h->dfp,"%s",del);
 	    if (blank == ON) 
 	       pblank(arinfo,h);
 	    else
@@ -490,7 +490,7 @@
 	    if (first == ON) 
 	       first = OFF;
 	    else
-	       fprintf(h->dfp,del);
+	       fprintf(h->dfp,"%s",del);
 	    if (blank == ON) 
 	       pblank(arinfo,h);
 	    else
@@ -507,7 +507,7 @@
 	    if (first == ON) 
 	       first = OFF;
 	    else
-	       fprintf(h->dfp,del);
+	       fprintf(h->dfp,"%s",del);
 	    if (blank == ON) 
 	       pblank(arinfo,h);
 	    else
@@ -524,7 +524,7 @@
 	    if (first == ON) 
 	       first = OFF;
 	    else
-	       fprintf(h->dfp,del);
+	       fprintf(h->dfp,"%s",del);
 	    if (blank == ON) 
 	       pblank(arinfo,h);
 	    else
@@ -541,7 +541,7 @@
 	    if (first == ON) 
 	       first = OFF;
 	    else
-	       fprintf(h->dfp,del);
+	       fprintf(h->dfp,"%s",del);
 	    if (blank == ON) 
 	       pblank(arinfo,h);
 	    else
@@ -554,7 +554,7 @@
 				  arinfo->last,scratch);
 	 arinfo->last = (Pointer)nextstr;
 	 if (first == OFF)
-	    fprintf(h->dfp,del);
+	    fprintf(h->dfp,"%s",del);
 	 if (blank == ON)
 	    pblank(arinfo,h);
 	 else {
@@ -830,7 +830,7 @@
       if (rank > 0) {
 	 for (i=0; i<shape[0]; i++){
 	    if (i > 0)
-	       fprintf(h->dfp,del);
+	       fprintf(h->dfp,"%s",del);
 	    fprintf(h->dfp,"positions_cmp%d",i);
 	 }
       }
@@ -845,13 +845,13 @@
           !strcmp("positions",depon) && strcmp("invalid positions",name) 
 	  && strcmp("positions",name) ) {
 	 if (first == OFF) 
-	    fprintf(h->dfp,del);
+	    fprintf(h->dfp,"%s",del);
 	 DXGetArrayInfo((Array)a,NULL,&type,NULL,&rank,shape);
 	 /* dim = (rank < 1) ? 1 : shape[0]; */
 	 if (type != TYPE_STRING && rank > 0 && shape[0] > 1) {
 	    cmp = (char *)DXAllocate(strlen(name)+6);
 	    for (j=0; j<shape[0]; j++) {
-	       if (j > 0) fprintf(h->dfp, del);
+	       if (j > 0) fprintf(h->dfp,"%s",del);
 	       sprintf(cmp,"%s_cmp%d",name,j);
 	       pstring(h->dfp,0,0,0,cmp);
 	    }
diff -urN dx-4.4.4/src/exec/dxmods/showboundary.c dx-4.4.4-new/src/exec/dxmods/showboundary.c
--- dx-4.4.4/src/exec/dxmods/showboundary.c	2006-07-05 18:56:37.000000000 -0400
+++ dx-4.4.4-new/src/exec/dxmods/showboundary.c	2018-01-16 22:41:24.000000000 -0500
@@ -543,7 +543,7 @@
     /* 1D fail consideration. */
 
     if ( ( ERROR == ( neighbors = DXNeighbors ( object ) ) ) )
-        return ( DXGetError == ERROR_NONE ) ? object : ERROR;
+        return ( DXGetError() == ERROR_NONE ) ? object : ERROR;
 
     if ( ! DXQueryOriginalSizes ( object, NULL, &origConnections ) 
          ||
diff -urN dx-4.4.4/src/exec/libdx/lbcamera.c dx-4.4.4-new/src/exec/libdx/lbcamera.c
--- dx-4.4.4/src/exec/libdx/lbcamera.c	2006-06-27 17:30:04.000000000 -0400
+++ dx-4.4.4-new/src/exec/libdx/lbcamera.c	2018-01-16 22:23:51.000000000 -0500
@@ -28,9 +28,9 @@
 {
     Matrix t;
 
-    t.A[0][0] = p[ 0]; t.A[0][1] = p[ 1]; t.A[0][3] = p[ 2];
-    t.A[1][0] = p[ 4]; t.A[1][1] = p[ 5]; t.A[1][3] = p[ 6];
-    t.A[2][0] = p[ 8]; t.A[2][1] = p[ 9]; t.A[2][3] = p[10];
+    t.A[0][0] = p[ 0]; t.A[0][1] = p[ 1]; t.A[0][2] = p[ 2];
+    t.A[1][0] = p[ 4]; t.A[1][1] = p[ 5]; t.A[1][2] = p[ 6];
+    t.A[2][0] = p[ 8]; t.A[2][1] = p[ 9]; t.A[2][2] = p[10];
     t.b[0]    = p[12]; t.b[1]    = p[13]; t.b[2]    = p[14];
 
     c->m = c->rot = t;
diff -urN dx-4.4.4/src/uipp/base/StartWebBrowser.C dx-new/src/uipp/base/StartWebBrowser.C
--- dx-4.4.4/src/uipp/base/StartWebBrowser.C	2005-12-16 16:11:51.000000000 -0500
+++ dx-new/src/uipp/base/StartWebBrowser.C	2011-12-04 22:58:28.000000000 -0500
@@ -13,6 +13,11 @@
 #include <stdio.h>
 
 #if defined(macos)
+#define _UINT64
+#define _UINT32
+#define _UINT16
+#define _UINT8
+
 #include <ApplicationServices/ApplicationServices.h>
 #endif
 
diff -urN dx-4.4.4/src/uipp/dxl/conn.c dx-4.4.4-new/src/uipp/dxl/conn.c
--- dx-4.4.4/src/uipp/dxl/conn.c	2018-01-16 22:51:32.000000000 -0500
+++ dx-4.4.4-new/src/uipp/dxl/conn.c	2018-01-16 22:51:38.000000000 -0500
@@ -389,7 +389,7 @@
 	    char buf[2048];
 	    int n = read(err,buf,2048);
 	    buf[n] = '\0';
-	    fprintf(stderr,buf);
+	    fprintf(stderr, "%s", buf);
 	}
 #if defined(intelnt) || defined(WIN32)
     TerminateProcess(child, -1);
diff -urN dx-4.4.4/src/uipp/dxui/SelectionNode.C dx-4.4.4-new/src/uipp/dxui/SelectionNode.C
--- dx-4.4.4/src/uipp/dxui/SelectionNode.C	2018-01-16 22:51:32.000000000 -0500
+++ dx-4.4.4-new/src/uipp/dxui/SelectionNode.C	2018-01-16 22:51:38.000000000 -0500
@@ -960,7 +960,7 @@
 	ListIterator it(selection_stmts);
 	char* cp;
 	while ( (cp = (char*)it.getNext()) ) {
-	    fprintf (jf, cp);
+	    fprintf (jf, "%s", cp);
 	    delete cp;
 	}
     }
diff -urN dx-4.4.4/src/uipp/dxuilib/DXApplication.C dx-4.4.4-new/src/uipp/dxuilib/DXApplication.C
--- dx-4.4.4/src/uipp/dxuilib/DXApplication.C	2018-01-16 22:51:32.000000000 -0500
+++ dx-4.4.4-new/src/uipp/dxuilib/DXApplication.C	2018-01-16 22:51:38.000000000 -0500
@@ -2553,7 +2553,7 @@
 		const char* errmsg = 
 			GraphLayout::SetHeightPerLevel (DXApplication::resource.autoLayoutHeight);
 		if (errmsg) {
-			fprintf (stderr, errmsg);
+			fprintf (stderr, "%s", errmsg);
 			return FALSE;
 		}
 	}
@@ -2561,7 +2561,7 @@
 		const char* errmsg = 
 			GraphLayout::SetGroupSpacing (DXApplication::resource.autoLayoutGroupSpacing);
 		if (errmsg) {
-			fprintf (stderr, errmsg);
+			fprintf (stderr, "%s", errmsg);
 			return FALSE;
 		}
 	}
@@ -2569,7 +2569,7 @@
 		const char* errmsg = 
 			GraphLayout::SetNodeSpacing (DXApplication::resource.autoLayoutNodeSpacing);
 		if (errmsg) {
-			fprintf (stderr, errmsg);
+			fprintf (stderr, "%s", errmsg);
 			return FALSE;
 		}
 	}
@@ -3787,7 +3787,7 @@
     if (this->anchor)
 	InfoMessage(msg);
     else
-	fprintf(stderr,msg);
+	fprintf(stderr, "%s", msg);
 
     return NULL;
 }
@@ -5019,7 +5019,7 @@
 	fprintf (stderr, "Attempting to save any modified files.\n"
 	    "Please check saved files for integrity by reloading them.\n");
  	theDXApplication->emergencySave (msg);
- 	fprintf (stderr, msg);
+ 	fprintf (stderr, "%s", msg);
     }
 
     fprintf(stderr,"The application will now abort.\n");
@@ -5035,7 +5035,7 @@
     if (theDXApplication) {
 	char msg[4096];	
 	this->emergencySave(msg);
- 	fprintf(stderr, msg);
+ 	fprintf(stderr, "%s", msg);
     }
 
     this->IBMApplication::abortApplication();
diff -urN dx-4.4.4/src/uipp/dxuilib/net.y dx-new/src/uipp/dxuilib/net.y
--- dx-4.4.4/src/uipp/dxuilib/net.y	2002-06-13 16:56:27.000000000 -0400
+++ dx-new/src/uipp/dxuilib/net.y	2022-03-19 13:32:14.000000000 -0400
@@ -20,6 +20,7 @@
  */
 
 #include "Parse.h"
+  int yylex(void);
 
 %}
 
diff -urN dx-4.4.4/src/uipp/widgets/MultiText.c dx-new/src/uipp/widgets/MultiText.c
--- dx-4.4.4/src/uipp/widgets/MultiText.c	2002-03-25 11:42:41.000000000 -0500
+++ dx-new/src/uipp/widgets/MultiText.c	2022-03-19 07:07:17.000000000 -0400
@@ -643,6 +643,7 @@
 
 
 
+void XmRegisterConverters(void);  /* internal of libXm */
 static void
 ClassInitialize(WidgetClass wc)
 {
