Compare commits
No commits in common. "c8" and "c10s" have entirely different histories.
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
SOURCES/motif-2.3.4-src.tgz
|
|
@ -1,54 +0,0 @@
|
|||||||
From 591ae206f83a359a590090524c286cb03e5c2494 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
|
||||||
Date: Tue, 6 Sep 2022 17:39:19 +0200
|
|
||||||
Subject: [PATCH] EditresCom: Fix build with modern systems.
|
|
||||||
|
|
||||||
The code in _XtGetStringValues() depends on the LONG_BIT define.
|
|
||||||
|
|
||||||
However, modern system require -D_XOPEN_SOURCE to set LONG_BIT, so with
|
|
||||||
the current code as it is, LONG_BIT is not defined (from limits.h) and
|
|
||||||
the build wrongly assumes this is a 32bit build.
|
|
||||||
|
|
||||||
Unfortunately, defining _XOPEN_SOURCE to have LONG_BIT set would disable
|
|
||||||
the definition of caddr_t, a deprecated definition inherited from BSD,
|
|
||||||
so we also need to replace that with a simple cast to (long *).
|
|
||||||
|
|
||||||
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
|
|
||||||
---
|
|
||||||
lib/Xm/EditresCom.c | 6 +++++-
|
|
||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/Xm/EditresCom.c b/lib/Xm/EditresCom.c
|
|
||||||
index 4114ff8b..c93d6844 100644
|
|
||||||
--- a/lib/Xm/EditresCom.c
|
|
||||||
+++ b/lib/Xm/EditresCom.c
|
|
||||||
@@ -43,6 +43,9 @@ in this Software without prior written authorization from the X Consortium.
|
|
||||||
#include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifndef _XOPEN_SOURCE
|
|
||||||
+#define _XOPEN_SOURCE 700
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#include <X11/IntrinsicP.h> /* To get into the composite and core widget
|
|
||||||
structures. */
|
|
||||||
@@ -59,6 +62,7 @@ in this Software without prior written authorization from the X Consortium.
|
|
||||||
#include <X11/Xmd.h>
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
+#include <limits.h>
|
|
||||||
|
|
||||||
#define _XEditResPutBool _XEditResPut8
|
|
||||||
#define _XEditResPutResourceType _XEditResPut8
|
|
||||||
@@ -1608,7 +1612,7 @@ _XtGetStringValues(Widget w, Arg *warg, int numargs)
|
|
||||||
old_handler = XtAppSetWarningMsgHandler(XtWidgetToApplicationContext(w),
|
|
||||||
EditResCvtWarningHandler);
|
|
||||||
from.size = res->resource_size;
|
|
||||||
- from.addr = (caddr_t)&value;
|
|
||||||
+ from.addr = (void *)&value;
|
|
||||||
to.addr = NULL;
|
|
||||||
to.size = 0;
|
|
||||||
to_color.addr = NULL;
|
|
||||||
--
|
|
||||||
2.37.3
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
From 2fa554b01ef6079a9b35df9332bdc4f139ed67e0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
||||||
Date: Sat, 29 Apr 2023 17:50:39 -0700
|
|
||||||
Subject: [PATCH] Fix CVE-2023-43788: Out of bounds read in
|
|
||||||
XpmCreateXpmImageFromBuffer
|
|
||||||
|
|
||||||
When the test case for CVE-2022-46285 was run with the Address Sanitizer
|
|
||||||
enabled, it found an out-of-bounds read in ParseComment() when reading
|
|
||||||
from a memory buffer instead of a file, as it continued to look for the
|
|
||||||
closing comment marker past the end of the buffer.
|
|
||||||
|
|
||||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
||||||
---
|
|
||||||
lib/Xm/Xpmdata.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/Xm/Xpmdata.c b/lib/Xm/Xpmdata.c
|
|
||||||
index 7524e65..0b0f1f3 100644
|
|
||||||
--- a/lib/Xm/Xpmdata.c
|
|
||||||
+++ b/lib/Xm/Xpmdata.c
|
|
||||||
@@ -108,7 +108,7 @@ ParseComment(xpmData *data)
|
|
||||||
n++;
|
|
||||||
s2++;
|
|
||||||
} while (c == *s2 && *s2 != '\0' && c);
|
|
||||||
- if (*s2 == '\0') {
|
|
||||||
+ if (*s2 == '\0' || c == '\0') {
|
|
||||||
/* this is the end of the comment */
|
|
||||||
notend = 0;
|
|
||||||
mdata->cptr--;
|
|
||||||
--
|
|
||||||
2.41.0
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
|||||||
From 7e21cb63b9a1ca760a06cc4cd9b19bbc3fcd8f51 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
||||||
Date: Sat, 29 Apr 2023 18:30:34 -0700
|
|
||||||
Subject: [PATCH] Fix CVE-2023-43789: Out of bounds read on XPM with corrupted
|
|
||||||
colormap
|
|
||||||
|
|
||||||
Found with clang's libfuzzer
|
|
||||||
|
|
||||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
||||||
---
|
|
||||||
lib/Xm/Xpmdata.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/Xm/Xpmdata.c b/lib/Xm/Xpmdata.c
|
|
||||||
index 0b0f1f3..6e87455 100644
|
|
||||||
--- a/lib/Xm/Xpmdata.c
|
|
||||||
+++ b/lib/Xm/Xpmdata.c
|
|
||||||
@@ -259,13 +259,13 @@ xpmNextWord(
|
|
||||||
int c;
|
|
||||||
|
|
||||||
if (!mdata->type || mdata->type == XPMBUFFER) {
|
|
||||||
- while (isspace(c = *mdata->cptr) && c != mdata->Eos)
|
|
||||||
+ while ((c = *mdata->cptr) && isspace(c) && (c != mdata->Eos))
|
|
||||||
mdata->cptr++;
|
|
||||||
do {
|
|
||||||
c = *mdata->cptr++;
|
|
||||||
*buf++ = c;
|
|
||||||
n++;
|
|
||||||
- } while (!isspace(c) && c != mdata->Eos && n < buflen);
|
|
||||||
+ } while (c && !isspace(c) && (c != mdata->Eos) && (n < buflen));
|
|
||||||
n--;
|
|
||||||
mdata->cptr--;
|
|
||||||
} else {
|
|
||||||
--
|
|
||||||
2.41.0
|
|
||||||
|
|
@ -1,815 +0,0 @@
|
|||||||
From 4783fb4cec8624311bb87b2eb4a2ac94a5c7d849 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Petr=20=C5=A0abata?= <contyk@redhat.com>
|
|
||||||
Date: Thu, 8 Jun 2017 12:12:04 +0200
|
|
||||||
Subject: [PATCH] Fix issues with -Werror=format-security
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Signed-off-by: Petr Šabata <contyk@redhat.com>
|
|
||||||
---
|
|
||||||
lib/Mrm/Mrmhier.c | 4 +-
|
|
||||||
lib/Mrm/Mrmicon.c | 4 +-
|
|
||||||
lib/Mrm/Mrmlread.c | 2 +-
|
|
||||||
lib/Mrm/Mrmwcrw.c | 4 +-
|
|
||||||
tools/wml/wmldbcreate.c | 2 +-
|
|
||||||
tools/wml/wmlouth.c | 128 ++++++++++++++++++++++++------------------------
|
|
||||||
tools/wml/wmloutkey.c | 10 ++--
|
|
||||||
tools/wml/wmloutmm.c | 16 +++---
|
|
||||||
tools/wml/wmlresolve.c | 26 +++++-----
|
|
||||||
9 files changed, 98 insertions(+), 98 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/Mrm/Mrmhier.c b/lib/Mrm/Mrmhier.c
|
|
||||||
index 2712742..2a8703c 100644
|
|
||||||
--- a/lib/Mrm/Mrmhier.c
|
|
||||||
+++ b/lib/Mrm/Mrmhier.c
|
|
||||||
@@ -264,10 +264,10 @@ Urm__OpenHierarchy (MrmCount num_files,
|
|
||||||
case MrmSUCCESS:
|
|
||||||
break;
|
|
||||||
case MrmNOT_VALID:
|
|
||||||
- sprintf (err_stg, _MrmMMsg_0113);
|
|
||||||
+ sprintf (err_stg, "%s", _MrmMMsg_0113);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
- sprintf (err_stg, _MrmMMsg_0114);
|
|
||||||
+ sprintf (err_stg, "%s", _MrmMMsg_0114);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/lib/Mrm/Mrmicon.c b/lib/Mrm/Mrmicon.c
|
|
||||||
index 95d4086..191e2d2 100644
|
|
||||||
--- a/lib/Mrm/Mrmicon.c
|
|
||||||
+++ b/lib/Mrm/Mrmicon.c
|
|
||||||
@@ -1176,7 +1176,7 @@ Urm__RealizeColorTable (Screen *screen,
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
- sprintf(err_msg, _MrmMMsg_0040);
|
|
||||||
+ sprintf(err_msg, "%s", _MrmMMsg_0040);
|
|
||||||
return Urm__UT_Error ("Urm__RelizeColorTable",
|
|
||||||
err_msg, NULL, NULL, MrmFAILURE) ;
|
|
||||||
}
|
|
||||||
@@ -1252,7 +1252,7 @@ Urm__RealizeColorTable (Screen *screen,
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
result = MrmFAILURE;
|
|
||||||
- sprintf (err_msg, _MrmMMsg_0040);
|
|
||||||
+ sprintf (err_msg, "%s", _MrmMMsg_0040);
|
|
||||||
Urm__UT_Error ("Urm__RelizeColorTable",
|
|
||||||
err_msg, NULL, NULL, MrmFAILURE) ;
|
|
||||||
}
|
|
||||||
diff --git a/lib/Mrm/Mrmlread.c b/lib/Mrm/Mrmlread.c
|
|
||||||
index c2fd94c..be433a3 100644
|
|
||||||
--- a/lib/Mrm/Mrmlread.c
|
|
||||||
+++ b/lib/Mrm/Mrmlread.c
|
|
||||||
@@ -698,7 +698,7 @@ MrmFetchColorLiteral (MrmHierarchy hierarchy_id,
|
|
||||||
XBlackPixelOfScreen(XDefaultScreenOfDisplay(display)));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
- sprintf(err_msg, _MrmMMsg_0040);
|
|
||||||
+ sprintf(err_msg, "%s", _MrmMMsg_0040);
|
|
||||||
result = Urm__UT_Error ("MrmFetchColorLiteral",
|
|
||||||
err_msg, NULL, NULL, MrmFAILURE) ;
|
|
||||||
_MrmAppUnlock(app);
|
|
||||||
diff --git a/lib/Mrm/Mrmwcrw.c b/lib/Mrm/Mrmwcrw.c
|
|
||||||
index fe3db52..3c5857f 100644
|
|
||||||
--- a/lib/Mrm/Mrmwcrw.c
|
|
||||||
+++ b/lib/Mrm/Mrmwcrw.c
|
|
||||||
@@ -1390,7 +1390,7 @@ Urm__CW_CreateArglist (Widget parent,
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
- sprintf (err_msg, _MrmMMsg_0040);
|
|
||||||
+ sprintf (err_msg, "%s", _MrmMMsg_0040);
|
|
||||||
result = Urm__UT_Error ("Urm__CW_ConvertValue",
|
|
||||||
err_msg, NULL, NULL, MrmFAILURE) ;
|
|
||||||
};
|
|
||||||
@@ -2426,7 +2426,7 @@ Urm__CW_ConvertValue (Widget parent,
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
- sprintf(err_msg, _MrmMMsg_0040);
|
|
||||||
+ sprintf(err_msg, "%s", _MrmMMsg_0040);
|
|
||||||
return Urm__UT_Error ("Urm__CW_ConvertValue",
|
|
||||||
err_msg, NULL, NULL, MrmFAILURE) ;
|
|
||||||
};
|
|
||||||
diff --git a/tools/wml/wmldbcreate.c b/tools/wml/wmldbcreate.c
|
|
||||||
index 07c0a3c..6de585a 100644
|
|
||||||
--- a/tools/wml/wmldbcreate.c
|
|
||||||
+++ b/tools/wml/wmldbcreate.c
|
|
||||||
@@ -425,7 +425,7 @@ int table_id;
|
|
||||||
{
|
|
||||||
fprintf (afile, "%d, ", entry_vec[j]);
|
|
||||||
}
|
|
||||||
- fprintf (afile, "\n");
|
|
||||||
+ fprintf (afile, "%s", "\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/tools/wml/wmlouth.c b/tools/wml/wmlouth.c
|
|
||||||
index d2330e3..a52843f 100644
|
|
||||||
--- a/tools/wml/wmlouth.c
|
|
||||||
+++ b/tools/wml/wmlouth.c
|
|
||||||
@@ -225,12 +225,12 @@ if ( outfil == (FILE *) NULL )
|
|
||||||
printf ("\nCouldn't open UilSymGen.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Write the sym_k..._object literals
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -244,7 +244,7 @@ for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
|
|
||||||
/*
|
|
||||||
* Define the sym_k_..._reason literals
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned3);
|
|
||||||
+fprintf (outfil, "%s", canned3);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_reason_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
resobj = (WmlResourceDefPtr) wml_obj_reason_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -258,7 +258,7 @@ for ( ndx=0 ; ndx<wml_obj_reason_ptr->cnt ; ndx++ )
|
|
||||||
/*
|
|
||||||
* Define the sym_k_..._arg literals
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned4);
|
|
||||||
+fprintf (outfil, "%s", canned4);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -272,7 +272,7 @@ for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
|
|
||||||
/*
|
|
||||||
* Define the sym_k_..._enumset structs and literals
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned5);
|
|
||||||
+fprintf (outfil, "%s", canned5);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_enumset_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
enumsetobj = (WmlEnumSetDefPtr) wml_obj_enumset_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -286,7 +286,7 @@ for ( ndx=0 ; ndx<wml_obj_enumset_ptr->cnt ; ndx++ )
|
|
||||||
/*
|
|
||||||
* Define the sym_k_..._enumval literals
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned6);
|
|
||||||
+fprintf (outfil, "%s", canned6);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_enumval_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
enumvalobj = (WmlEnumValueDefPtr) wml_obj_enumval_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -301,7 +301,7 @@ for ( ndx=0 ; ndx<wml_obj_enumval_ptr->cnt ; ndx++ )
|
|
||||||
* Define the sym_k_..._charsize literals
|
|
||||||
* Define the sym_k_..._charset literals
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned7);
|
|
||||||
+fprintf (outfil, "%s", canned7);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
charsetobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -315,7 +315,7 @@ for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
|
|
||||||
/*
|
|
||||||
* Define the sym_k_..._child literals
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned8);
|
|
||||||
+fprintf (outfil, "%s", canned8);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_child_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
childobj = (WmlChildDefPtr) wml_obj_child_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -379,12 +379,12 @@ if ( outfil == (FILE *) NULL )
|
|
||||||
printf ("\nCouldn't open UilSymChCL.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Create table entries, similar to writing sym_k...
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_child_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
childobj = (WmlChildDefPtr) wml_obj_child_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -392,7 +392,7 @@ for ( ndx=0 ; ndx<wml_obj_child_ptr->cnt ; ndx++ )
|
|
||||||
fprintf (outfil, " sym_k_%s_object,\n",
|
|
||||||
classobj->tkname);
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned1a);
|
|
||||||
+fprintf (outfil, "%s", canned1a);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* close the output file
|
|
||||||
@@ -446,12 +446,12 @@ if ( outfil == (FILE *) NULL )
|
|
||||||
printf ("\nCouldn't open UilSymArTy.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Create table entries, similar to writing sym_k...
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -459,7 +459,7 @@ for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
|
|
||||||
fprintf (outfil, " sym_k_%s_value,\n",
|
|
||||||
datobj->tkname);
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned1a);
|
|
||||||
+fprintf (outfil, "%s", canned1a);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* close the output file
|
|
||||||
@@ -509,19 +509,19 @@ if ( outfil == (FILE *) NULL )
|
|
||||||
printf ("\nCouldn't open UilSymRArg.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Create table entries, similar to writing sym_k...
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
|
|
||||||
fprintf (outfil, " %d,\n",
|
|
||||||
resobj->related_code);
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned1a);
|
|
||||||
+fprintf (outfil, "%s", canned1a);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* close the output file
|
|
||||||
@@ -621,12 +621,12 @@ if ( outfil == (FILE *) NULL )
|
|
||||||
printf ("\nCouldn't open UilUrmClas.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Write entries for widgets
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -637,7 +637,7 @@ for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
|
|
||||||
else
|
|
||||||
fprintf (outfil, " \"%s\",\t\n", synobj->convfunc);
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned2);
|
|
||||||
+fprintf (outfil, "%s", canned2);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Write entries for gadget variants of widget classes
|
|
||||||
@@ -661,7 +661,7 @@ for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
|
|
||||||
synobj->name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned3);
|
|
||||||
+fprintf (outfil, "%s", canned3);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Write entries for non-dialog widgets
|
|
||||||
@@ -685,7 +685,7 @@ for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
|
|
||||||
synobj->name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned4);
|
|
||||||
+fprintf (outfil, "%s", canned4);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Write entries for the resource a widget's controls map to
|
|
||||||
@@ -701,7 +701,7 @@ for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
|
|
||||||
else
|
|
||||||
fprintf (outfil, " sym_k_%s_arg,\n", mapresobj->tkname);
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned5);
|
|
||||||
+fprintf (outfil, "%s", canned5);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Write entries for arguments
|
|
||||||
@@ -714,7 +714,7 @@ for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
|
|
||||||
fprintf (outfil, " %s,\n",
|
|
||||||
synres->resliteral);
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned6);
|
|
||||||
+fprintf (outfil, "%s", canned6);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Write entries for reasons
|
|
||||||
@@ -727,7 +727,7 @@ for ( ndx=0 ; ndx<wml_obj_reason_ptr->cnt ; ndx++ )
|
|
||||||
fprintf (outfil, " %s,\n",
|
|
||||||
synres->resliteral);
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned7);
|
|
||||||
+fprintf (outfil, "%s", canned7);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* close the output file
|
|
||||||
@@ -781,13 +781,13 @@ if ( outfil == (FILE *) NULL )
|
|
||||||
printf ("\nCouldn't open UilConst.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Process the arguments in code order. We start with 1, and write out
|
|
||||||
* the mask after processing 8 codes.
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
strcpy (maskbuf, "0");
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
@@ -805,7 +805,7 @@ for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
|
|
||||||
}
|
|
||||||
if ( bitno != 8 )
|
|
||||||
fprintf (outfil, "%s", maskbuf);
|
|
||||||
-fprintf (outfil, canned1a);
|
|
||||||
+fprintf (outfil, "%s", canned1a);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* close the output file
|
|
||||||
@@ -878,8 +878,8 @@ if ( outfil == (FILE *) NULL )
|
|
||||||
printf ("\nCouldn't open UilSymReas.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Generate the bit vectors for each class. Outer loop on the reason code,
|
|
||||||
@@ -919,19 +919,19 @@ for ( resndx=0 ; resndx<wml_obj_reason_ptr->cnt ; resndx++ )
|
|
||||||
if ( itemno != 0 )
|
|
||||||
fprintf (outfil, "%s 0};\n", maskbuf);
|
|
||||||
else
|
|
||||||
- fprintf (outfil, "};\n");
|
|
||||||
+ fprintf (outfil, "%s", "};\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Write the vector of vectors.
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned2);
|
|
||||||
+fprintf (outfil, "%s", canned2);
|
|
||||||
for ( resndx=0 ; resndx<wml_obj_reason_ptr->cnt ; resndx++ )
|
|
||||||
{
|
|
||||||
resobj = (WmlResourceDefPtr) wml_obj_reason_ptr->hvec[resndx].objptr;
|
|
||||||
fprintf (outfil, " reason_class_vec%d,\n", resobj->sym_code);
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned3);
|
|
||||||
+fprintf (outfil, "%s", canned3);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* close the output file
|
|
||||||
@@ -1004,8 +1004,8 @@ if ( outfil == (FILE *) NULL )
|
|
||||||
printf ("\nCouldn't open UilSymArTa.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Generate the bit vectors for each class. Outer loop on the argument code,
|
|
||||||
@@ -1045,19 +1045,19 @@ for ( resndx=0 ; resndx<wml_obj_arg_ptr->cnt ; resndx++ )
|
|
||||||
if ( itemno != 0 )
|
|
||||||
fprintf (outfil, "%s 0};\n", maskbuf);
|
|
||||||
else
|
|
||||||
- fprintf (outfil, "};\n");
|
|
||||||
+ fprintf (outfil, "%s", "};\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Write the vector of vectors.
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned2);
|
|
||||||
+fprintf (outfil, "%s", canned2);
|
|
||||||
for ( resndx=0 ; resndx<wml_obj_arg_ptr->cnt ; resndx++ )
|
|
||||||
{
|
|
||||||
resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[resndx].objptr;
|
|
||||||
fprintf (outfil, " arg_class_vec%d,\n", resobj->sym_code);
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned3);
|
|
||||||
+fprintf (outfil, "%s", canned3);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* close the output file
|
|
||||||
@@ -1129,8 +1129,8 @@ if ( outfil == (FILE *) NULL )
|
|
||||||
printf ("\nCouldn't open UilSymChTa.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Generate the bit vectors for each class. Outer loop on the child code,
|
|
||||||
@@ -1168,19 +1168,19 @@ for ( childndx=0 ; childndx<wml_obj_child_ptr->cnt ; childndx++ )
|
|
||||||
if ( itemno != 0 )
|
|
||||||
fprintf (outfil, "%s 0};\n", maskbuf);
|
|
||||||
else
|
|
||||||
- fprintf (outfil, "};\n");
|
|
||||||
+ fprintf (outfil, "%s", "};\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Write the vector of vectors.
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned2);
|
|
||||||
+fprintf (outfil, "%s", canned2);
|
|
||||||
for ( childndx=0 ; childndx<wml_obj_child_ptr->cnt ; childndx++ )
|
|
||||||
{
|
|
||||||
childobj = (WmlChildDefPtr) wml_obj_child_ptr->hvec[childndx].objptr;
|
|
||||||
fprintf (outfil, " child_class_vec%d,\n", childobj->sym_code);
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned3);
|
|
||||||
+fprintf (outfil, "%s", canned3);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* close the output file
|
|
||||||
@@ -1251,8 +1251,8 @@ if ( outfil == (FILE *) NULL )
|
|
||||||
printf ("\nCouldn't open UilSymCtl.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Generate the bit vectors for each class. Outer loop on the class code,
|
|
||||||
@@ -1290,19 +1290,19 @@ for ( ctlndx=0 ; ctlndx<wml_obj_class_ptr->cnt ; ctlndx++ )
|
|
||||||
if ( itemno != 0 )
|
|
||||||
fprintf (outfil, "%s 0};\n", maskbuf);
|
|
||||||
else
|
|
||||||
- fprintf (outfil, "};\n");
|
|
||||||
+ fprintf (outfil, "%s", "};\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Write the vector of vectors.
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned2);
|
|
||||||
+fprintf (outfil, "%s", canned2);
|
|
||||||
for ( ctlndx=0 ; ctlndx<wml_obj_class_ptr->cnt ; ctlndx++ )
|
|
||||||
{
|
|
||||||
clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ctlndx].objptr;
|
|
||||||
fprintf (outfil, " object_class_vec%d,\n", clsobj->sym_code);
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned3);
|
|
||||||
+fprintf (outfil, "%s", canned3);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* close the output file
|
|
||||||
@@ -1438,7 +1438,7 @@ if ( outfil == (FILE *) NULL )
|
|
||||||
printf ("\nCouldn't open UilSymNam.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Write entries for widgets
|
|
||||||
@@ -1517,7 +1517,7 @@ for ( ndx=0 ; ndx<wml_obj_child_ptr->cnt ; ndx++ )
|
|
||||||
fprintf (outfil, " \"%s\",\n",
|
|
||||||
synch->name);
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned7);
|
|
||||||
+fprintf (outfil, "%s", canned7);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* close the output file
|
|
||||||
@@ -1621,12 +1621,12 @@ if ( outfil == (FILE *) NULL )
|
|
||||||
printf ("\nCouldn't open UilSymEnum.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Generate the enumeration value vectors for each enumeration set.
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_enumset_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
enumsetobj = (WmlEnumSetDefPtr) wml_obj_enumset_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -1637,13 +1637,13 @@ for ( ndx=0 ; ndx<wml_obj_enumset_ptr->cnt ; ndx++ )
|
|
||||||
fprintf (outfil, " %d,\n",
|
|
||||||
evobj->sym_code);
|
|
||||||
}
|
|
||||||
- fprintf (outfil, " };\n");
|
|
||||||
+ fprintf (outfil, "%s", " };\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Generate the enumeration set tables
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned3);
|
|
||||||
+fprintf (outfil, "%s", canned3);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_enumset_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
enumsetobj = (WmlEnumSetDefPtr) wml_obj_enumset_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -1655,7 +1655,7 @@ for ( ndx=0 ; ndx<wml_obj_enumset_ptr->cnt ; ndx++ )
|
|
||||||
/*
|
|
||||||
* Create enumset table entries for arguments, similar to writing sym_k...
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned4);
|
|
||||||
+fprintf (outfil, "%s", canned4);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -1669,13 +1669,13 @@ for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
|
|
||||||
/*
|
|
||||||
* Create the enumval values table.
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned5);
|
|
||||||
+fprintf (outfil, "%s", canned5);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_enumval_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
evobj = (WmlEnumValueDefPtr) wml_obj_enumval_ptr->hvec[ndx].objptr;
|
|
||||||
fprintf (outfil, " %s,\n", evobj->syndef->enumlit);
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned5a);
|
|
||||||
+fprintf (outfil, "%s", canned5a);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* close the output file
|
|
||||||
@@ -1813,12 +1813,12 @@ if ( outfil == (FILE *) NULL )
|
|
||||||
printf ("\nCouldn't open UilSymCSet.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Generate the standards name table
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -1836,7 +1836,7 @@ for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
|
|
||||||
/*
|
|
||||||
* Generate the writing direction table
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned2);
|
|
||||||
+fprintf (outfil, "%s", canned2);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -1858,7 +1858,7 @@ for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
|
|
||||||
/*
|
|
||||||
* Generate the parsing direction table
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned3);
|
|
||||||
+fprintf (outfil, "%s", canned3);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -1880,7 +1880,7 @@ for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
|
|
||||||
/*
|
|
||||||
* Generate the character size table
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned4);
|
|
||||||
+fprintf (outfil, "%s", canned4);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -1906,7 +1906,7 @@ for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
|
|
||||||
/*
|
|
||||||
* Generate the $LANG name recognition table
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned5);
|
|
||||||
+fprintf (outfil, "%s", canned5);
|
|
||||||
lang_max = 0;
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
@@ -1936,7 +1936,7 @@ for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
|
|
||||||
/*
|
|
||||||
* Generate the $LANG code lookup table, in upper case
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned6);
|
|
||||||
+fprintf (outfil, "%s", canned6);
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
|
|
||||||
diff --git a/tools/wml/wmloutkey.c b/tools/wml/wmloutkey.c
|
|
||||||
index af42f22..4c14728 100644
|
|
||||||
--- a/tools/wml/wmloutkey.c
|
|
||||||
+++ b/tools/wml/wmloutkey.c
|
|
||||||
@@ -574,16 +574,16 @@ if ( outfil == NULL )
|
|
||||||
printf ("\nCouldn't open UilKeyTab.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Print the case sensitive and insensitive tables
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
wmlOutputUilKeyTabBody (outfil, wml_tok_sens_ptr, &maxlen, &maxkey);
|
|
||||||
fprintf (outfil, canned2, maxlen, maxkey);
|
|
||||||
wmlOutputUilKeyTabBody (outfil, wml_tok_insens_ptr, &maxlen, &maxkey);
|
|
||||||
-fprintf (outfil, canned3);
|
|
||||||
+fprintf (outfil, "%s", canned3);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* close the output file
|
|
||||||
@@ -812,8 +812,8 @@ if ( outfil == NULL )
|
|
||||||
printf ("\nCouldn't open UilTokName.h");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned_warn);
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned_warn);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Print the token name entries
|
|
||||||
diff --git a/tools/wml/wmloutmm.c b/tools/wml/wmloutmm.c
|
|
||||||
index 84a97bb..dc8ec09 100644
|
|
||||||
--- a/tools/wml/wmloutmm.c
|
|
||||||
+++ b/tools/wml/wmloutmm.c
|
|
||||||
@@ -209,9 +209,9 @@ int ctlndx; /* to access ordered vector */
|
|
||||||
/*
|
|
||||||
* Write out header information
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, canned1);
|
|
||||||
+fprintf (outfil, "%s", canned1);
|
|
||||||
fprintf (outfil, "%s\n", name);
|
|
||||||
-fprintf (outfil, canned2);
|
|
||||||
+fprintf (outfil, "%s", canned2);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Alphabetize the controls, reason, and argument lists
|
|
||||||
@@ -264,7 +264,7 @@ while ( ctlref != NULL )
|
|
||||||
rsnndx = 0;
|
|
||||||
ctlndx = 0;
|
|
||||||
if ( mm_ctl_ptr->cnt == 0 )
|
|
||||||
- fprintf (outfil, "No children are supported");
|
|
||||||
+ fprintf (outfil, "%s", "No children are supported");
|
|
||||||
while ( rsnndx<mm_rsn_ptr->cnt || ctlndx<mm_ctl_ptr->cnt )
|
|
||||||
{
|
|
||||||
if ( ctlndx < mm_ctl_ptr->cnt )
|
|
||||||
@@ -275,7 +275,7 @@ while ( rsnndx<mm_rsn_ptr->cnt || ctlndx<mm_ctl_ptr->cnt )
|
|
||||||
ctlndx += 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
- fprintf (outfil, "@");
|
|
||||||
+ fprintf (outfil, "%s", "@");
|
|
||||||
|
|
||||||
if ( rsnndx < mm_rsn_ptr->cnt )
|
|
||||||
{
|
|
||||||
@@ -285,9 +285,9 @@ while ( rsnndx<mm_rsn_ptr->cnt || ctlndx<mm_ctl_ptr->cnt )
|
|
||||||
rsnndx += 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
- fprintf (outfil, "\n");
|
|
||||||
+ fprintf (outfil, "%s", "\n");
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned3);
|
|
||||||
+fprintf (outfil, "%s", canned3);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Write out the argument table
|
|
||||||
@@ -319,11 +319,11 @@ while ( argndx < mm_arg_ptr->cnt )
|
|
||||||
argref->act_resource->syndef->dflt);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
- fprintf (outfil, " \n");
|
|
||||||
+ fprintf (outfil, "%s", " \n");
|
|
||||||
}
|
|
||||||
argndx += 1;
|
|
||||||
}
|
|
||||||
-fprintf (outfil, canned4);
|
|
||||||
+fprintf (outfil, "%s", canned4);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/tools/wml/wmlresolve.c b/tools/wml/wmlresolve.c
|
|
||||||
index 464ef29..3b8642c 100644
|
|
||||||
--- a/tools/wml/wmlresolve.c
|
|
||||||
+++ b/tools/wml/wmlresolve.c
|
|
||||||
@@ -1340,7 +1340,7 @@ for ( ndx=0 ; ndx<wml_obj_allclass_ptr->cnt ; ndx++ )
|
|
||||||
/*
|
|
||||||
* close the output file
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, "\n\n");
|
|
||||||
+fprintf (outfil, "%s", "\n\n");
|
|
||||||
printf ("\nCreated report file wml.report");
|
|
||||||
fclose (outfil);
|
|
||||||
|
|
||||||
@@ -1369,14 +1369,14 @@ fprintf (outfil, "\n\n\nClass %s:", synobj->name);
|
|
||||||
switch ( synobj->type )
|
|
||||||
{
|
|
||||||
case WmlClassTypeMetaclass:
|
|
||||||
- fprintf (outfil, "\n Type: Metaclass\t");
|
|
||||||
+ fprintf (outfil, "%s", "\n Type: Metaclass\t");
|
|
||||||
if ( synobj->superclass != NULL )
|
|
||||||
fprintf (outfil, "Superclass: %s\t", synobj->superclass);
|
|
||||||
if ( synobj->parentclass != NULL )
|
|
||||||
fprintf (outfil, "Parentclass: %s\t", synobj->parentclass);
|
|
||||||
break;
|
|
||||||
case WmlClassTypeWidget:
|
|
||||||
- fprintf (outfil, "\n Type: Widget\t");
|
|
||||||
+ fprintf (outfil, "%s", "\n Type: Widget\t");
|
|
||||||
if ( synobj->superclass != NULL )
|
|
||||||
fprintf (outfil, "Superclass: %s\t", synobj->superclass);
|
|
||||||
if ( synobj->parentclass != NULL )
|
|
||||||
@@ -1388,7 +1388,7 @@ switch ( synobj->type )
|
|
||||||
fprintf (outfil, "Convenience function: %s", synobj->convfunc);
|
|
||||||
break;
|
|
||||||
case WmlClassTypeGadget:
|
|
||||||
- fprintf (outfil, "\n Type: Gadget\t");
|
|
||||||
+ fprintf (outfil, "%s", "\n Type: Gadget\t");
|
|
||||||
if ( synobj->superclass != NULL )
|
|
||||||
fprintf (outfil, "Superclass: %s\t", synobj->superclass);
|
|
||||||
if ( synobj->parentclass != NULL )
|
|
||||||
@@ -1414,19 +1414,19 @@ if ( clsobj->nondialog != NULL )
|
|
||||||
* is intended to match the way resources are printed in the toolkit manual,
|
|
||||||
* so that checking is as easy as possible.
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, "\n Arguments:");
|
|
||||||
+fprintf (outfil, "%s", "\n Arguments:");
|
|
||||||
wmlResolvePrintClassArgs (outfil, clsobj);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Print the reasons valid in the class
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, "\n Reasons:");
|
|
||||||
+fprintf (outfil, "%s", "\n Reasons:");
|
|
||||||
wmlResolvePrintClassReasons (outfil, clsobj);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Print the controls valid in the class
|
|
||||||
*/
|
|
||||||
-fprintf (outfil, "\n Controls:");
|
|
||||||
+fprintf (outfil, "%s", "\n Controls:");
|
|
||||||
for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
|
|
||||||
{
|
|
||||||
ctrlobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
|
|
||||||
@@ -1512,10 +1512,10 @@ for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
|
|
||||||
switch ( resref->exclude )
|
|
||||||
{
|
|
||||||
case WmlAttributeTrue:
|
|
||||||
- fprintf (outfil, "\n\tExclude = True;");
|
|
||||||
+ fprintf (outfil, "%s", "\n\tExclude = True;");
|
|
||||||
break;
|
|
||||||
case WmlAttributeFalse:
|
|
||||||
- fprintf (outfil, "\n\tExclude = False;");
|
|
||||||
+ fprintf (outfil, "%s", "\n\tExclude = False;");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if ( resref->dflt != NULL )
|
|
||||||
@@ -1558,10 +1558,10 @@ if ( constr )
|
|
||||||
switch ( resref->exclude )
|
|
||||||
{
|
|
||||||
case WmlAttributeTrue:
|
|
||||||
- fprintf (outfil, "\n\tExclude = True;");
|
|
||||||
+ fprintf (outfil, "%s", "\n\tExclude = True;");
|
|
||||||
break;
|
|
||||||
case WmlAttributeFalse:
|
|
||||||
- fprintf (outfil, "\n\tExclude = False;");
|
|
||||||
+ fprintf (outfil, "%s", "\n\tExclude = False;");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if ( resref->dflt != NULL )
|
|
||||||
@@ -1632,10 +1632,10 @@ for ( ndx=0 ; ndx<wml_obj_reason_ptr->cnt ; ndx++ )
|
|
||||||
switch ( resref->exclude )
|
|
||||||
{
|
|
||||||
case WmlAttributeTrue:
|
|
||||||
- fprintf (outfil, "\n\tExclude = True;");
|
|
||||||
+ fprintf (outfil, "%s", "\n\tExclude = True;");
|
|
||||||
break;
|
|
||||||
case WmlAttributeFalse:
|
|
||||||
- fprintf (outfil, "\n\tExclude = False;");
|
|
||||||
+ fprintf (outfil, "%s", "\n\tExclude = False;");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
resobj->ref_ptr = NULL;
|
|
||||||
--
|
|
||||||
2.13.0
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
|||||||
diff -up openmotif-2.3.3/configure.ac.bindings openmotif-2.3.3/configure.ac
|
|
||||||
--- openmotif-2.3.3/configure.ac.bindings 2009-10-27 17:10:23.000000000 +0100
|
|
||||||
+++ openmotif-2.3.3/configure.ac 2010-03-19 11:12:39.000000000 +0100
|
|
||||||
@@ -185,7 +185,7 @@ AC_SUBST(MWMRCDIR)
|
|
||||||
INCDIR="${includedir}/X11"
|
|
||||||
AC_SUBST(INCDIR)
|
|
||||||
|
|
||||||
-XMBINDDIR_FALLBACK="${libdir}/X11/bindings"
|
|
||||||
+XMBINDDIR_FALLBACK="${datadir}/X11/bindings"
|
|
||||||
AC_SUBST(XMBINDDIR_FALLBACK)
|
|
||||||
|
|
||||||
RM="rm -f"
|
|
||||||
diff -up openmotif-2.3.3/doc/man/man3/VirtualBindings.3.bindings openmotif-2.3.3/doc/man/man3/VirtualBindings.3
|
|
||||||
--- openmotif-2.3.3/doc/man/man3/VirtualBindings.3.bindings 2005-07-20 13:47:21.000000000 +0200
|
|
||||||
+++ openmotif-2.3.3/doc/man/man3/VirtualBindings.3 2010-03-19 11:11:42.000000000 +0100
|
|
||||||
@@ -90,7 +90,7 @@ bindings contained in that file\&.
|
|
||||||
If it has found no bindings, Motif next looks for the file
|
|
||||||
\fBxmbind\&.alias\fP in the directory specified by the environment
|
|
||||||
variable \fBXMBINDDIR\fP, if \fBXMBINDDIR\fP is set, or in the directory
|
|
||||||
-\fB/usr/lib/Xm/bindings\fP if \fBXMBINDDIR\fP is not set\&.
|
|
||||||
+\fB/usr/share/X11/bindings\fP if \fBXMBINDDIR\fP is not set\&.
|
|
||||||
If this file exists Motif searches it for a pathname associated with the
|
|
||||||
vendor string or with the vendor string and vendor release\&.
|
|
||||||
If it finds such a pathname and if that file exists, Motif loads the
|
|
||||||
diff -up openmotif-2.3.3/lib/Xm/XmosP.h.bindings openmotif-2.3.3/lib/Xm/XmosP.h
|
|
||||||
--- openmotif-2.3.3/lib/Xm/XmosP.h.bindings 2002-06-17 22:36:30.000000000 +0200
|
|
||||||
+++ openmotif-2.3.3/lib/Xm/XmosP.h 2010-03-19 11:11:42.000000000 +0100
|
|
||||||
@@ -188,7 +188,7 @@ extern "C" {
|
|
||||||
|
|
||||||
#define XMBINDDIR "XMBINDDIR"
|
|
||||||
#ifndef XMBINDDIR_FALLBACK
|
|
||||||
-#define XMBINDDIR_FALLBACK "/usr/lib/Xm/bindings"
|
|
||||||
+#define XMBINDDIR_FALLBACK "/usr/share/X11/bindings"
|
|
||||||
#endif
|
|
||||||
#define XMBINDFILE "xmbind.alias"
|
|
||||||
#define MOTIFBIND ".motifbind"
|
|
@ -1,449 +0,0 @@
|
|||||||
commit 88bdce139baf89839b6e13d698576fc56211e845
|
|
||||||
Author: Oleksiy Chernyavskyy <ochern@ics.com>
|
|
||||||
Date: Wed Mar 16 00:46:49 2016 +0200
|
|
||||||
|
|
||||||
Reimplemented bugfix 1565
|
|
||||||
|
|
||||||
Signed-off-by: Oleksiy Chernyavskyy <ochern@ics.com>
|
|
||||||
|
|
||||||
diff --git a/lib/Xm/ComboBox.c b/lib/Xm/ComboBox.c
|
|
||||||
index 1472e45..cf507da 100644
|
|
||||||
--- a/lib/Xm/ComboBox.c
|
|
||||||
+++ b/lib/Xm/ComboBox.c
|
|
||||||
@@ -3164,6 +3164,9 @@ CreatePulldown(Widget parent,
|
|
||||||
Arg args[4];
|
|
||||||
ArgList merged_args;
|
|
||||||
Cardinal n;
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ XmGrabShellWidget grabsh;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
n = 0;
|
|
||||||
XtSetArg(args[n], XmNlayoutDirection, LayoutM(parent)), n++;
|
|
||||||
@@ -3175,6 +3178,11 @@ CreatePulldown(Widget parent,
|
|
||||||
merged_args, n + *num_args);
|
|
||||||
XtFree((char*)merged_args);
|
|
||||||
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ grabsh = (XmGrabShellWidget) shell;
|
|
||||||
+ grabsh->grab_shell.set_input_focus = False;
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
return shell;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/lib/Xm/DropDown.c b/lib/Xm/DropDown.c
|
|
||||||
index 37fec03..5cd15ca 100644
|
|
||||||
--- a/lib/Xm/DropDown.c
|
|
||||||
+++ b/lib/Xm/DropDown.c
|
|
||||||
@@ -2027,6 +2027,9 @@ CreatePopup(Widget w, ArgList args, Cardinal num_args)
|
|
||||||
Arg *new_list, largs[10];
|
|
||||||
Cardinal num_largs;
|
|
||||||
Widget sb;
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ XmGrabShellWidget grabsh;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
num_largs = 0;
|
|
||||||
XtSetArg(largs[num_largs], XmNoverrideRedirect, True); num_largs++;
|
|
||||||
@@ -2040,6 +2043,10 @@ CreatePopup(Widget w, ArgList args, Cardinal num_args)
|
|
||||||
xmGrabShellWidgetClass, w,
|
|
||||||
new_list,
|
|
||||||
num_largs + num_args);
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ grabsh = (XmGrabShellWidget) XmDropDown_popup_shell(cbw);
|
|
||||||
+ grabsh->grab_shell.set_input_focus = False;
|
|
||||||
+#endif
|
|
||||||
XtFree((char *) new_list);
|
|
||||||
|
|
||||||
#ifdef FIX_1446
|
|
||||||
diff --git a/lib/Xm/GrabShell.c b/lib/Xm/GrabShell.c
|
|
||||||
index 88f3154..af13e0b 100644
|
|
||||||
--- a/lib/Xm/GrabShell.c
|
|
||||||
+++ b/lib/Xm/GrabShell.c
|
|
||||||
@@ -283,6 +283,10 @@ Initialize(Widget req, /* unused */
|
|
||||||
|
|
||||||
/* CR 9920: Popdown may be requested before MapNotify. */
|
|
||||||
grabsh->grab_shell.mapped = False;
|
|
||||||
+
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ grabsh->grab_shell.set_input_focus = True;
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -395,8 +399,16 @@ MapNotifyHandler(Widget shell, XtPointer client_data,
|
|
||||||
XGetInputFocus(XtDisplay(shell), &grabshell->grab_shell.old_focus,
|
|
||||||
&grabshell->grab_shell.old_revert_to);
|
|
||||||
old_handler = XSetErrorHandler(IgnoreXErrors);
|
|
||||||
- XSetInputFocus(XtDisplay(shell), XtWindow(shell), RevertToParent, time);
|
|
||||||
- XSync(XtDisplay(shell), False);
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ if (! grabshell->grab_shell.set_input_focus) {
|
|
||||||
+ XmForceGrabKeyboard(shell, time);
|
|
||||||
+ } else {
|
|
||||||
+#endif
|
|
||||||
+ XSetInputFocus(XtDisplay(shell), XtWindow(shell), RevertToParent, time);
|
|
||||||
+ XSync(XtDisplay(shell), False);
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
XSetErrorHandler(old_handler);
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/lib/Xm/GrabShellP.h b/lib/Xm/GrabShellP.h
|
|
||||||
index 92fe508..025f001 100644
|
|
||||||
--- a/lib/Xm/GrabShellP.h
|
|
||||||
+++ b/lib/Xm/GrabShellP.h
|
|
||||||
@@ -30,6 +30,7 @@
|
|
||||||
#include <Xm/GrabShell.h>
|
|
||||||
#include <Xm/XmP.h>
|
|
||||||
#include <X11/ShellP.h>
|
|
||||||
+#include "XmI.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
@@ -55,6 +56,9 @@ typedef struct
|
|
||||||
Boolean mapped;
|
|
||||||
Window old_focus;
|
|
||||||
int old_revert_to;
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ Boolean set_input_focus;
|
|
||||||
+#endif
|
|
||||||
} XmGrabShellPart;
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/lib/Xm/MenuShell.c b/lib/Xm/MenuShell.c
|
|
||||||
index 2ed3dd8..9887087 100644
|
|
||||||
--- a/lib/Xm/MenuShell.c
|
|
||||||
+++ b/lib/Xm/MenuShell.c
|
|
||||||
@@ -1514,9 +1514,7 @@ ChangeManaged(
|
|
||||||
|
|
||||||
/** the real grab ***/
|
|
||||||
_XmMenuGrabKeyboardAndPointer((Widget)rowcol, _time);
|
|
||||||
-#ifndef FIX_1565
|
|
||||||
_XmMenuFocus(XtParent(rowcol), XmMENU_BEGIN, _time);
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
/* To support menu replay, keep the pointer in sync mode */
|
|
||||||
XAllowEvents(XtDisplay(rowcol), SyncPointer, CurrentTime);
|
|
||||||
diff --git a/lib/Xm/MenuUtil.c b/lib/Xm/MenuUtil.c
|
|
||||||
index 1d88390..2fb6a27 100644
|
|
||||||
--- a/lib/Xm/MenuUtil.c
|
|
||||||
+++ b/lib/Xm/MenuUtil.c
|
|
||||||
@@ -1053,11 +1053,7 @@ _XmMenuGrabKeyboardAndPointer(
|
|
||||||
|
|
||||||
register int status =
|
|
||||||
(_XmGrabKeyboard(widget,
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- False,
|
|
||||||
-#else
|
|
||||||
True,
|
|
||||||
-#endif
|
|
||||||
GrabModeSync,
|
|
||||||
GrabModeAsync,
|
|
||||||
time) != GrabSuccess);
|
|
||||||
diff --git a/lib/Xm/RCMenu.c b/lib/Xm/RCMenu.c
|
|
||||||
index 2c698d4..8b156da 100644
|
|
||||||
--- a/lib/Xm/RCMenu.c
|
|
||||||
+++ b/lib/Xm/RCMenu.c
|
|
||||||
@@ -85,6 +85,9 @@ static char *rcsid = "$TOG: RCMenu.c /main/25 1999/05/24 18:06:57 samborn $";
|
|
||||||
#include "TraversalI.h"
|
|
||||||
#include "UniqueEvnI.h"
|
|
||||||
#include "VendorSI.h"
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+#include <Xm/GrabShell.h>
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#define FIX_1535
|
|
||||||
|
|
||||||
@@ -943,6 +946,13 @@ _XmMenuFocus(
|
|
||||||
XmMenuState mst = _XmGetMenuState((Widget)w);
|
|
||||||
Window tmpWindow;
|
|
||||||
int tmpRevert;
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ Widget shell;
|
|
||||||
+
|
|
||||||
+ shell = w;
|
|
||||||
+ while (! XtIsSubclass(shell, shellWidgetClass))
|
|
||||||
+ shell = XtParent(shell);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
if (_time == CurrentTime)
|
|
||||||
_time = XtLastTimestampProcessed(XtDisplay(w));
|
|
||||||
@@ -983,6 +993,11 @@ _XmMenuFocus(
|
|
||||||
shell.popped_up))
|
|
||||||
**/
|
|
||||||
{
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ if (XtIsSubclass(shell, xmGrabShellWidgetClass) || XtIsSubclass(shell, xmMenuShellWidgetClass))
|
|
||||||
+ XmForceGrabKeyboard(w, _time);
|
|
||||||
+ else
|
|
||||||
+#endif
|
|
||||||
SetInputFocus(XtDisplay(w), mst->RC_menuFocus.oldFocus,
|
|
||||||
mst->RC_menuFocus.oldRevert,
|
|
||||||
mst->RC_menuFocus.oldTime);
|
|
||||||
@@ -996,6 +1011,11 @@ _XmMenuFocus(
|
|
||||||
*/
|
|
||||||
else
|
|
||||||
{
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ if (XtIsSubclass(shell, xmGrabShellWidgetClass) || XtIsSubclass(shell, xmMenuShellWidgetClass))
|
|
||||||
+ XmForceGrabKeyboard(w, _time);
|
|
||||||
+ else
|
|
||||||
+#endif
|
|
||||||
SetInputFocus(XtDisplay(w), mst->RC_menuFocus.oldFocus,
|
|
||||||
mst->RC_menuFocus.oldRevert,
|
|
||||||
mst->RC_menuFocus.oldTime);
|
|
||||||
@@ -1014,6 +1034,11 @@ _XmMenuFocus(
|
|
||||||
RC_menuFocus.oldFocus);
|
|
||||||
mst->RC_menuFocus.oldTime = _time - 1;
|
|
||||||
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ if (XtIsSubclass(shell, xmGrabShellWidgetClass) || XtIsSubclass(shell, xmMenuShellWidgetClass))
|
|
||||||
+ XmForceGrabKeyboard(w, _time);
|
|
||||||
+ else
|
|
||||||
+#endif
|
|
||||||
SetInputFocus(XtDisplay(w), XtWindow(w), mst->RC_menuFocus.oldRevert,
|
|
||||||
mst->RC_menuFocus.oldTime);
|
|
||||||
|
|
||||||
@@ -1027,6 +1052,11 @@ _XmMenuFocus(
|
|
||||||
XGetInputFocus(XtDisplay(w), &tmpWindow, &tmpRevert);
|
|
||||||
if (tmpWindow != XtWindow(w))
|
|
||||||
{
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ if (XtIsSubclass(shell, xmGrabShellWidgetClass) || XtIsSubclass(shell, xmMenuShellWidgetClass))
|
|
||||||
+ XmForceGrabKeyboard(w, _time);
|
|
||||||
+ else
|
|
||||||
+#endif
|
|
||||||
SetInputFocus(XtDisplay(w), XtWindow(w), tmpRevert, _time);
|
|
||||||
|
|
||||||
mst->RC_menuFocus.oldRevert = tmpRevert;
|
|
||||||
@@ -1048,6 +1078,11 @@ _XmMenuFocus(
|
|
||||||
|
|
||||||
break;
|
|
||||||
case XmMENU_MIDDLE:
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ if (XtIsSubclass(shell, xmGrabShellWidgetClass) || XtIsSubclass(shell, xmMenuShellWidgetClass))
|
|
||||||
+ XmForceGrabKeyboard(w, _time);
|
|
||||||
+ else
|
|
||||||
+#endif
|
|
||||||
SetInputFocus(XtDisplay(w), XtWindow(w),
|
|
||||||
mst->RC_menuFocus.oldRevert,
|
|
||||||
mst->RC_menuFocus.oldTime);
|
|
||||||
@@ -1062,6 +1097,11 @@ _XmMenuFocus(
|
|
||||||
if ((tmpWindow != XtWindow(w)) &&
|
|
||||||
(_time > mst->RC_menuFocus.oldTime))
|
|
||||||
{
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+ if (XtIsSubclass(shell, xmGrabShellWidgetClass) || XtIsSubclass(shell, xmMenuShellWidgetClass))
|
|
||||||
+ XmForceGrabKeyboard(w, _time);
|
|
||||||
+ else
|
|
||||||
+#endif
|
|
||||||
SetInputFocus(XtDisplay(w), XtWindow(w), tmpRevert, _time);
|
|
||||||
|
|
||||||
mst->RC_menuFocus.oldRevert = tmpRevert;
|
|
||||||
diff --git a/lib/Xm/Xm.c b/lib/Xm/Xm.c
|
|
||||||
index 3dfd794..45d48b6 100644
|
|
||||||
--- a/lib/Xm/Xm.c
|
|
||||||
+++ b/lib/Xm/Xm.c
|
|
||||||
@@ -40,6 +40,10 @@
|
|
||||||
#ifdef FIX_345
|
|
||||||
#include <X11/keysym.h>
|
|
||||||
#endif
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+#include <Xm/GrabShell.h>
|
|
||||||
+#include <Xm/MenuShell.h>
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
@@ -530,3 +534,173 @@ _XmAssignInsensitiveColor(Widget w)
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
+
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+
|
|
||||||
+typedef struct _GrabData GrabData;
|
|
||||||
+struct _GrabData {
|
|
||||||
+ Widget w;
|
|
||||||
+ GrabData *next;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static void _XmSendFocusEvent(Widget child, int type);
|
|
||||||
+static void _XmStartDispatcher(Display *display);
|
|
||||||
+static Boolean _XmEventDispatcher(XEvent *event);
|
|
||||||
+static void UnmapHandler(Widget w, XtPointer client_data, XEvent *event, Boolean *cont);
|
|
||||||
+static Boolean _UngrabKeyboard(Widget w);
|
|
||||||
+
|
|
||||||
+static GrabData *grabw_top = NULL;
|
|
||||||
+static int xm_dispatcher_on = 0;
|
|
||||||
+static XtEventDispatchProc saved_dispatcher_proc = NULL;
|
|
||||||
+static XtEventDispatchProc xt_dispatcher_proc = NULL;
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ XmForceGrabKeyboard function is defined to be a substitutor of XSetInputFocus calls
|
|
||||||
+ for popup and pulldown menus that should grab keyboard focus yet main window at the
|
|
||||||
+ same time should visually stay in focus for window manager. This resolves focus flip
|
|
||||||
+ issue when popup or pulldown menu is raised. ~ochern
|
|
||||||
+ */
|
|
||||||
+void XmForceGrabKeyboard(Widget w, Time time)
|
|
||||||
+{
|
|
||||||
+ GrabData *grabw;
|
|
||||||
+
|
|
||||||
+ if (!w)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ while (! XtIsSubclass(w, shellWidgetClass))
|
|
||||||
+ w = XtParent(w);
|
|
||||||
+
|
|
||||||
+ if (! (XtIsSubclass(w, xmGrabShellWidgetClass) || XtIsSubclass(w, xmMenuShellWidgetClass)))
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ _XmStartDispatcher(XtDisplay(w));
|
|
||||||
+
|
|
||||||
+ _UngrabKeyboard(w);
|
|
||||||
+
|
|
||||||
+ grabw = (GrabData *) XtMalloc(sizeof(GrabData));
|
|
||||||
+ grabw->w = w;
|
|
||||||
+ _XmProcessLock();
|
|
||||||
+ grabw->next = grabw_top;
|
|
||||||
+ grabw_top = grabw;
|
|
||||||
+ _XmProcessUnlock();
|
|
||||||
+
|
|
||||||
+ XtInsertEventHandler(w, StructureNotifyMask, False, UnmapHandler, NULL, XtListHead);
|
|
||||||
+
|
|
||||||
+ _XmSendFocusEvent(w, FocusIn);
|
|
||||||
+
|
|
||||||
+ /* Following the XSetInputFocus behaviour we force sending FocusOut (see XGrabKeyboard(3))
|
|
||||||
+ event to a previous keyboard holder */
|
|
||||||
+ XtGrabKeyboard(w, True, GrabModeAsync, GrabModeAsync, time);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void _XmStartDispatcher(Display *display)
|
|
||||||
+{
|
|
||||||
+ if (!display)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ _XmProcessLock();
|
|
||||||
+
|
|
||||||
+ if (xm_dispatcher_on) {
|
|
||||||
+ _XmProcessUnlock();
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ saved_dispatcher_proc = XtSetEventDispatcher(display, KeyPress, _XmEventDispatcher);
|
|
||||||
+ if (! xt_dispatcher_proc)
|
|
||||||
+ xt_dispatcher_proc = saved_dispatcher_proc;
|
|
||||||
+ XtSetEventDispatcher(display, KeyRelease, _XmEventDispatcher);
|
|
||||||
+ xm_dispatcher_on = 1;
|
|
||||||
+
|
|
||||||
+ _XmProcessUnlock();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static Boolean _XmEventDispatcher(XEvent *event)
|
|
||||||
+{
|
|
||||||
+ _XmProcessLock();
|
|
||||||
+ if (grabw_top) {
|
|
||||||
+ if (event->type == KeyPress || event->type == KeyRelease)
|
|
||||||
+ event->xany.window = XtWindow(grabw_top->w);
|
|
||||||
+ }
|
|
||||||
+ _XmProcessUnlock();
|
|
||||||
+
|
|
||||||
+ if (saved_dispatcher_proc) {
|
|
||||||
+ return (*saved_dispatcher_proc)(event);
|
|
||||||
+ } else if (xt_dispatcher_proc) {
|
|
||||||
+ return (*xt_dispatcher_proc)(event);
|
|
||||||
+ } else {
|
|
||||||
+ if (grabw_top)
|
|
||||||
+ XtSetEventDispatcher(XtDisplay(grabw_top->w), event->type, NULL);
|
|
||||||
+ return XtDispatchEvent(event);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void UnmapHandler(Widget w, XtPointer client_data, XEvent *event, Boolean *cont)
|
|
||||||
+{
|
|
||||||
+ if (event->type == UnmapNotify)
|
|
||||||
+ _UngrabKeyboard(w);
|
|
||||||
+ if (! grabw_top) {
|
|
||||||
+ XtSetEventDispatcher(XtDisplay(w), KeyPress, saved_dispatcher_proc);
|
|
||||||
+ XtSetEventDispatcher(XtDisplay(w), KeyRelease, saved_dispatcher_proc);
|
|
||||||
+ xm_dispatcher_on = 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* we do not call XtUngrabKeyboard since X server automatically performs an
|
|
||||||
+ UngrabKeyboard request if the event window for an active keyboard grab becomes
|
|
||||||
+ not viewable. ~ochern */
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static Boolean _UngrabKeyboard(Widget w)
|
|
||||||
+{
|
|
||||||
+ GrabData *grabw, *grabw_prev;
|
|
||||||
+
|
|
||||||
+ _XmProcessLock();
|
|
||||||
+ if (! grabw_top) {
|
|
||||||
+ _XmProcessUnlock();
|
|
||||||
+ return False;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ grabw = grabw_top;
|
|
||||||
+ grabw_prev = NULL;
|
|
||||||
+ while(grabw && grabw->w != w) {
|
|
||||||
+ grabw_prev = grabw;
|
|
||||||
+ grabw = grabw->next;
|
|
||||||
+ }
|
|
||||||
+ if (grabw) {
|
|
||||||
+ if (grabw_prev)
|
|
||||||
+ grabw_prev->next = grabw->next;
|
|
||||||
+ else
|
|
||||||
+ grabw_top = grabw->next;
|
|
||||||
+ XtFree((char*) grabw);
|
|
||||||
+
|
|
||||||
+ _XmProcessUnlock();
|
|
||||||
+ return True;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ _XmProcessUnlock();
|
|
||||||
+ return False;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void _XmSendFocusEvent(Widget child, int type)
|
|
||||||
+{
|
|
||||||
+ child = XtIsWidget(child) ? child : _XtWindowedAncestor(child);
|
|
||||||
+ if (XtIsSensitive(child) && !child->core.being_destroyed
|
|
||||||
+ && XtIsRealized(child) && (XtBuildEventMask(child) & FocusChangeMask))
|
|
||||||
+ {
|
|
||||||
+ XFocusChangeEvent event;
|
|
||||||
+ Display* dpy = XtDisplay (child);
|
|
||||||
+
|
|
||||||
+ event.type = type;
|
|
||||||
+ event.serial = LastKnownRequestProcessed(dpy);
|
|
||||||
+ event.send_event = True;
|
|
||||||
+ event.display = dpy;
|
|
||||||
+ event.window = XtWindow(child);
|
|
||||||
+ event.mode = NotifyNormal;
|
|
||||||
+ event.detail = NotifyAncestor;
|
|
||||||
+ if (XFilterEvent((XEvent*)&event, XtWindow(child)))
|
|
||||||
+ return;
|
|
||||||
+ XtDispatchEventToWidget(child, (XEvent*)&event);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
diff --git a/lib/Xm/XmI.h b/lib/Xm/XmI.h
|
|
||||||
index b4420d3..c2b819e 100644
|
|
||||||
--- a/lib/Xm/XmI.h
|
|
||||||
+++ b/lib/Xm/XmI.h
|
|
||||||
@@ -242,7 +242,9 @@ extern Boolean _XmIsISO10646(Display *dpy,
|
|
||||||
extern XChar2b* _XmUtf8ToUcs2(char *draw_text,
|
|
||||||
size_t seg_len,
|
|
||||||
size_t *ret_str_len);
|
|
||||||
-
|
|
||||||
+#ifdef FIX_1565
|
|
||||||
+extern void XmForceGrabKeyboard(Widget w, Time time);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/******** End Private Function Declarations ********/
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
|||||||
diff -up openmotif-2.3.3/clients/mwm/WmResParse.c.mwmrc_dir openmotif-2.3.3/clients/mwm/WmResParse.c
|
|
||||||
--- openmotif-2.3.3/clients/mwm/WmResParse.c.mwmrc_dir 2009-06-22 23:51:51.000000000 +0200
|
|
||||||
+++ openmotif-2.3.3/clients/mwm/WmResParse.c 2010-03-23 13:37:03.000000000 +0100
|
|
||||||
@@ -2403,7 +2403,7 @@ FILE *FopenConfigFile (void)
|
|
||||||
#endif /* PANELIST */
|
|
||||||
|
|
||||||
#ifndef MWMRCDIR
|
|
||||||
-#define MWMRCDIR "/usr/lib/X11"
|
|
||||||
+#define MWMRCDIR "/etc/X11/mwm"
|
|
||||||
#endif
|
|
||||||
if (LANG != NULL)
|
|
||||||
{
|
|
||||||
diff -up openmotif-2.3.3/configure.ac.mwmrc_dir openmotif-2.3.3/configure.ac
|
|
||||||
--- openmotif-2.3.3/configure.ac.mwmrc_dir 2009-10-27 17:10:23.000000000 +0100
|
|
||||||
+++ openmotif-2.3.3/configure.ac 2010-03-23 13:38:33.000000000 +0100
|
|
||||||
@@ -179,7 +179,7 @@ AC_SUBST(CDE_CONFIGURATION_TOP)
|
|
||||||
LIBDIR="${libdir}/X11"
|
|
||||||
AC_SUBST(LIBDIR)
|
|
||||||
|
|
||||||
-MWMRCDIR="${libdir}/X11"
|
|
||||||
+MWMRCDIR="/etc/X11/mwm"
|
|
||||||
AC_SUBST(MWMRCDIR)
|
|
||||||
|
|
||||||
INCDIR="${includedir}/X11"
|
|
||||||
diff -up openmotif-2.3.3/doc/man/man1/mwm.1.mwmrc_dir openmotif-2.3.3/doc/man/man1/mwm.1
|
|
||||||
--- openmotif-2.3.3/doc/man/man1/mwm.1.mwmrc_dir 2002-01-05 16:21:11.000000000 +0100
|
|
||||||
+++ openmotif-2.3.3/doc/man/man1/mwm.1 2010-03-23 13:37:03.000000000 +0100
|
|
||||||
@@ -678,8 +678,8 @@ is set, \fBmwm\fP looks for \fI$HOME/$LA
|
|
||||||
\fB$HOME\fP/\fBconfigFile\fP\&. If the \fIconfigFile\fP pathname does not begin with "~/" or "/", \fBmwm\fP considers it to be relative to the current working directory\&. If
|
|
||||||
the \fIconfigFile\fP resource is not specified
|
|
||||||
or if that file does not exist, \fBmwm\fP uses several default
|
|
||||||
-paths to find a configuration file\&. The order of the search is shown below: \fB/usr/X11R6/lib/X11/$LANG/system\&.mwmrc\fP\(dg
|
|
||||||
-\fB/usr/X11R6/lib/X11/system\&.mwmrc\fP\(dg Paths marked with \&'\(dg\&' are
|
|
||||||
+paths to find a configuration file\&. The order of the search is shown below: \fB/etc/X11/mwm/$LANG/system\&.mwmrc\fP\(dg
|
|
||||||
+\fB/etc/X11/mwm/system\&.mwmrc\fP\(dg Paths marked with \&'\(dg\&' are
|
|
||||||
implementation dependent\&.
|
|
||||||
.IP "\fIdeiconifyKeyFocus\fP\ (class\ \fIDeiconifyKeyFocus\fP)" 10
|
|
||||||
This resource applies only when the keyboard input focus policy is explicit\&.
|
|
||||||
@@ -1344,9 +1344,9 @@ the shell to use when executing commands
|
|
||||||
function\&.
|
|
||||||
.SS "Files"
|
|
||||||
.PP
|
|
||||||
-\fB/usr/X11R6/lib/X11/$LANG/system\&.mwmrc\fP
|
|
||||||
+\fB/etc/X11/mwm/$LANG/system\&.mwmrc\fP
|
|
||||||
.PP
|
|
||||||
-\fB/usr/X11R6/lib/X11/system\&.mwmrc\fP
|
|
||||||
+\fB/etc/X11/mwm/system\&.mwmrc\fP
|
|
||||||
.PP
|
|
||||||
\fB/usr/X11R6/lib/X11/app-defaults/Mwm\fP
|
|
||||||
.PP
|
|
||||||
diff -up openmotif-2.3.3/doc/man/man4/mwmrc.4.mwmrc_dir openmotif-2.3.3/doc/man/man4/mwmrc.4
|
|
||||||
--- openmotif-2.3.3/doc/man/man4/mwmrc.4.mwmrc_dir 2002-01-05 16:21:12.000000000 +0100
|
|
||||||
+++ openmotif-2.3.3/doc/man/man4/mwmrc.4 2010-03-23 13:37:03.000000000 +0100
|
|
||||||
@@ -57,7 +57,7 @@ file that controls much of the behavior
|
|
||||||
It contains descriptions of resources that cannot easily be
|
|
||||||
written using standard X Window System, Version 11 resource syntax\&. The resource
|
|
||||||
description file contains entries that are referred to by X resources in
|
|
||||||
-defaults files (for example, \fB/usr/X11R6/lib/X11/app-defaults/Mwm\fP)
|
|
||||||
+defaults files (for example, \fB/usr/share/X11/app-defaults/Mwm\fP)
|
|
||||||
or in the \fBRESOURCE_MANAGER\fP property on the
|
|
||||||
root window\&. For example, the resource description file enables you to specify
|
|
||||||
different types of window menus; however, an X resource is used to specify
|
|
||||||
@@ -72,8 +72,8 @@ on a per-user basis:
|
|
||||||
.nf
|
|
||||||
\f(CW$HOME/$LANG/\&.mwmrc
|
|
||||||
$HOME/\&.mwmrc
|
|
||||||
-/usr/X11R6/lib/X11/$LANG/system\&.mwmrc
|
|
||||||
-/usr/X11R6/lib/X11/system\&.mwmrc\fR
|
|
||||||
+/etc/X11/mwm/$LANG/system\&.mwmrc
|
|
||||||
+/etc/X11/mwm/system\&.mwmrc\fR
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
.PP
|
|
||||||
@@ -84,7 +84,7 @@ resource\&. The following shows how a di
|
|
||||||
be specified from the command line:
|
|
||||||
.PP
|
|
||||||
.nf
|
|
||||||
-\f(CW/usr/X11R6/bin/X11/mwm -xrm "mwm*configFile: mymwmrc"\fR
|
|
||||||
+\f(CW/usr/bin/mwm -xrm "mwm*configFile: mymwmrc"\fR
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
.SS "Resource Types"
|
|
||||||
@@ -626,8 +626,8 @@ is not what you expect\&.
|
|
||||||
.nf
|
|
||||||
\fB$HOME/$LANG/\&.mwmrc
|
|
||||||
$HOME/\&.mwmrc
|
|
||||||
-/usr/X11R6/lib/X11/$LANG/system\&.mwmrc
|
|
||||||
-/usr/X11R6/lib/X11/system\&.mwmrc\fP
|
|
||||||
+/etc/X11/mwm/$LANG/system\&.mwmrc
|
|
||||||
+/etc/X11/mwm/system\&.mwmrc\fP
|
|
||||||
.fi
|
|
||||||
.SH "RELATED INFORMATION"
|
|
||||||
.PP
|
|
@ -1,13 +0,0 @@
|
|||||||
diff -up openmotif-2.3.3/Makefile.am.no_demos openmotif-2.3.3/Makefile.am
|
|
||||||
--- openmotif-2.3.3/Makefile.am.no_demos 2008-09-19 16:38:05.000000000 +0200
|
|
||||||
+++ openmotif-2.3.3/Makefile.am 2010-03-23 13:53:13.000000000 +0100
|
|
||||||
@@ -29,7 +29,7 @@ SUBDIRS = bindings bitmaps \
|
|
||||||
include \
|
|
||||||
tools \
|
|
||||||
clients \
|
|
||||||
- doc \
|
|
||||||
- demos
|
|
||||||
+ doc
|
|
||||||
+
|
|
||||||
AUTOMAKE_OPTIONS = 1.4
|
|
||||||
ACLOCAL_AMFLAGS = -I .
|
|
@ -1,39 +0,0 @@
|
|||||||
commit 33e0b7fd58ec8ce9fd23d3a66a91e9b4b7c2b928
|
|
||||||
Author: Oleksiy Chernyavskyy <ochern@ics.com>
|
|
||||||
Date: Fri Jun 10 23:15:00 2016 +0300
|
|
||||||
|
|
||||||
bug 1654 fix
|
|
||||||
|
|
||||||
diff --git a/lib/Xm/LabelG.c b/lib/Xm/LabelG.c
|
|
||||||
index b674041..726b095 100644
|
|
||||||
--- a/lib/Xm/LabelG.c
|
|
||||||
+++ b/lib/Xm/LabelG.c
|
|
||||||
@@ -35,6 +35,7 @@ static char rcsid[] = "$TOG: LabelG.c /main/24 1999/01/26 15:31:18 mgreess $"
|
|
||||||
#include <config.h>
|
|
||||||
#endif
|
|
||||||
#define FIX_1517
|
|
||||||
+#define FIX_1654
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
@@ -2352,12 +2353,20 @@ LRectangle *background_box)
|
|
||||||
if (LabG_StringRect(lw).width < availW - marginal_width)
|
|
||||||
width = LabG_StringRect(lw).width;
|
|
||||||
else
|
|
||||||
+#ifdef FIX_1654
|
|
||||||
+ width = availW - marginal_width;
|
|
||||||
+#else
|
|
||||||
width = availW - marginal_width - x;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
if (LabG_StringRect(lw).height < availH - marginal_height)
|
|
||||||
height = LabG_StringRect(lw).height;
|
|
||||||
else
|
|
||||||
+#ifdef FIX_1654
|
|
||||||
+ height = availH - marginal_height;
|
|
||||||
+#else
|
|
||||||
height = availH - marginal_height - y;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
XFillRectangle(XtDisplay(lw), XtWindow(lw), LabG_BackgroundGC(lw),
|
|
||||||
x, y, width, height);
|
|
@ -1,104 +0,0 @@
|
|||||||
From 6aff3a819cb69235594124d7b252d1ee8c04f2b0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mykola Vshyvkov <mvshyvk@softserveinc.com>
|
|
||||||
Date: Wed, 21 Aug 2013 11:49:00 +0300
|
|
||||||
Subject: [PATCH] Fixed bug #1612 (Label size computed wrong within a Form).
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/Xm/Form.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
|
|
||||||
1 file changed, 56 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/Xm/Form.c b/lib/Xm/Form.c
|
|
||||||
index 74140af8..b95a7b1a 100644
|
|
||||||
--- a/lib/Xm/Form.c
|
|
||||||
+++ b/lib/Xm/Form.c
|
|
||||||
@@ -50,6 +50,7 @@ static char rcsid[] = "$TOG: Form.c /main/19 1998/03/25 12:24:56 csn $"
|
|
||||||
#include "GMUtilsI.h"
|
|
||||||
|
|
||||||
#define FIX_1299
|
|
||||||
+#define FIX_1612
|
|
||||||
|
|
||||||
#define MESSAGE1 _XmMMsgForm_0000
|
|
||||||
#define MESSAGE5 _XmMMsgForm_0002
|
|
||||||
@@ -285,6 +286,12 @@ static int GetFormOffset(
|
|
||||||
XmFormWidget fw,
|
|
||||||
int which,
|
|
||||||
XmFormAttachment a) ;
|
|
||||||
+#ifdef FIX_1612
|
|
||||||
+static Boolean IsWidgetAttachedOneHorizontalSide(
|
|
||||||
+ Widget w);
|
|
||||||
+static Boolean IsWidgetAttachedOneVerticalSide(
|
|
||||||
+ Widget w);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/******** End Static Function Declarations ********/
|
|
||||||
|
|
||||||
@@ -1083,13 +1090,21 @@ GeometryManager(
|
|
||||||
} else {
|
|
||||||
/* the size the Form wants for the kid request is bigger than
|
|
||||||
its current or proposed size, return No to the kid */
|
|
||||||
-
|
|
||||||
/* backup the original Form size first */
|
|
||||||
fw->core.width = orig_form_width ;
|
|
||||||
fw->core.height = orig_form_height;
|
|
||||||
-
|
|
||||||
/* we haden't changed anything else, just return No */
|
|
||||||
reply = XtGeometryNo;
|
|
||||||
+
|
|
||||||
+#ifdef FIX_1612
|
|
||||||
+ if (((IsWidgetAttachedOneHorizontalSide(w)) &&
|
|
||||||
+ (desired->request_mode & CWWidth)) ||
|
|
||||||
+ ((IsWidgetAttachedOneVerticalSide(w)) &&
|
|
||||||
+ (desired->request_mode & CWHeight)))
|
|
||||||
+ { PlaceChildren (fw, w, desired);
|
|
||||||
+ reply = XtGeometryYes;
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
/* ok, we got a Yes form the Form's parent, let's relayout
|
|
||||||
@@ -3477,3 +3492,42 @@ XmCreateFormDialog(
|
|
||||||
return XmeCreateClassDialog (xmFormWidgetClass,
|
|
||||||
parent, name, arglist, argcount) ;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#ifdef FIX_1612
|
|
||||||
+/************************************************************************
|
|
||||||
+ *
|
|
||||||
+ * IsWidgetAttachedOneHorizontalSide
|
|
||||||
+ * Checking the attachments of widget in horizontal direction.
|
|
||||||
+ * Returns True if only one (left or right) side of widget is attached
|
|
||||||
+ *
|
|
||||||
+ ************************************************************************/
|
|
||||||
+static Boolean IsWidgetAttachedOneHorizontalSide(Widget w)
|
|
||||||
+ { if (w != NULL)
|
|
||||||
+ { XmFormConstraint c = GetFormConstraint(w);
|
|
||||||
+ if (((c->att[LEFT].type == XmATTACH_NONE) &&
|
|
||||||
+ (c->att[RIGHT].type != XmATTACH_NONE)) ||
|
|
||||||
+ ((c->att[LEFT].type != XmATTACH_NONE) &&
|
|
||||||
+ (c->att[RIGHT].type == XmATTACH_NONE)))
|
|
||||||
+ return True;
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+ return False;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+static Boolean IsWidgetAttachedOneVerticalSide(Widget w)
|
|
||||||
+ { if (w != NULL)
|
|
||||||
+ { XmFormConstraint c = GetFormConstraint(w);
|
|
||||||
+ if (((c->att[TOP].type == XmATTACH_NONE) &&
|
|
||||||
+ (c->att[BOTTOM].type != XmATTACH_NONE)) ||
|
|
||||||
+ ((c->att[TOP].type != XmATTACH_NONE) &&
|
|
||||||
+ (c->att[BOTTOM].type == XmATTACH_NONE)))
|
|
||||||
+ return True;
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+ return False;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+#endif
|
|
||||||
--
|
|
||||||
2.14.3
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
From e5c51cda449ea3544fddcdb84c6809757477035b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Oleksiy Chernyavskyy <ochern@ics.com>
|
|
||||||
Date: Tue, 22 Aug 2017 03:27:36 +0300
|
|
||||||
Subject: [PATCH] Fixed bug 1660
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/Xm/TextF.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/Xm/TextF.c b/lib/Xm/TextF.c
|
|
||||||
index 3323d2bd..f66076da 100644
|
|
||||||
--- a/lib/Xm/TextF.c
|
|
||||||
+++ b/lib/Xm/TextF.c
|
|
||||||
@@ -1768,8 +1768,8 @@ PaintCursor(XmTextFieldWidget tf)
|
|
||||||
}
|
|
||||||
if (cursor_width > 0 && cursor_height > 0)
|
|
||||||
XCopyArea(XtDisplay(tf), tf->text.ibeam_off, XtWindow(tf),
|
|
||||||
- tf->text.save_gc, 0, 0, cursor_width,
|
|
||||||
- cursor_height, x, y);
|
|
||||||
+ tf->text.save_gc, src_x, 0, cursor_width,
|
|
||||||
+ cursor_height, x, y);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.13.5
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
|||||||
--- openmotif/clients/uil/Makefile.am.uil_lib 2003-12-16 13:41:53.000000000 +0100
|
|
||||||
+++ openmotif/clients/uil/Makefile.am 2003-12-16 13:41:55.000000000 +0100
|
|
||||||
@@ -13,7 +13,7 @@
|
|
||||||
|
|
||||||
libUil_la_LIBADD = UilParser.lo ../../lib/Mrm/libMrm.la ../../lib/Xm/libXm.la
|
|
||||||
|
|
||||||
-uil_LDADD = ../../lib/Mrm/libMrm.la ../../lib/Xm/libXm.la
|
|
||||||
+uil_LDADD = libUil.la ../../lib/Mrm/libMrm.la ../../lib/Xm/libXm.la
|
|
||||||
|
|
||||||
INCLUDES = -DINCDIR=\"@INCDIR@\" \
|
|
||||||
-DLIBDIR=\"@LIBDIR@\" \
|
|
||||||
@@ -42,7 +42,7 @@
|
|
||||||
UilLstMac.c UilSemVal.c UilSemCSet.c UilDB.c
|
|
||||||
|
|
||||||
SRCS = $(COMMON_SRC)
|
|
||||||
-SRCS2 = $(COMMON_SRC) UilMain.c
|
|
||||||
+SRCS2 = UilMain.c
|
|
||||||
|
|
||||||
HEADERS_1 = Uil.h UilSymGl.h UilSymDef.h \
|
|
||||||
UilDef.h XmAppl.uil
|
|
@ -1,47 +0,0 @@
|
|||||||
--- openmotif-2.3.0/doc/man/man1/mwm.1.no_X11R6 2005-12-09 15:08:21.000000000 +0100
|
|
||||||
+++ openmotif-2.3.0/doc/man/man1/mwm.1 2005-12-09 15:09:06.000000000 +0100
|
|
||||||
@@ -366,7 +366,7 @@
|
|
||||||
database\&. This database is built from the following sources\&. They are listed
|
|
||||||
in order of precedence, low to high:
|
|
||||||
.PP
|
|
||||||
-\fB/usr/X11R6/lib/X11/app-defaults/Mwm\fP
|
|
||||||
+\fB/usr/share/X11/app-defaults/Mwm\fP
|
|
||||||
.PP
|
|
||||||
\fB$HOME/Mwm\fP
|
|
||||||
.PP
|
|
||||||
@@ -376,7 +376,7 @@
|
|
||||||
.PP
|
|
||||||
\fBmwm\fP command line options
|
|
||||||
.PP
|
|
||||||
-The file names \fB/usr/X11R6/lib/X11/app-defaults/Mwm\fP and \fB$HOME/Mwm\fP represent customary locations for these files\&. The actual
|
|
||||||
+The file names \fB/usr/share/X11/app-defaults/Mwm\fP and \fB$HOME/Mwm\fP represent customary locations for these files\&. The actual
|
|
||||||
location of the system-wide class resource file may depend on the \fBXFILESEARCHPATH\fP environment variable and the
|
|
||||||
current language environment\&. The actual location of the user-specific class
|
|
||||||
resource file may depend on the \fBXUSERFILESEARCHPATH\fP and \fBXAPPLRESDIR\fP
|
|
||||||
@@ -595,7 +595,7 @@
|
|
||||||
NameClassValue TypeDefault
|
|
||||||
autoKeyFocusAutoKeyFocusT/FT
|
|
||||||
autoRaiseDelayAutoRaiseDelaymillisec500
|
|
||||||
-bitmap-Bitmap-directory/usr/X11R6/include-
|
|
||||||
+bitmap-Bitmap-directory/usr/include-
|
|
||||||
DirectoryDirectory/X11/bitmaps
|
|
||||||
clientAutoPlaceClientAutoPlaceT/FT
|
|
||||||
colormapFocus-ColormapFocus-stringkeyboard
|
|
||||||
@@ -650,7 +650,7 @@
|
|
||||||
This resource identifies a directory to be searched for bitmaps referenced
|
|
||||||
by \fBmwm\fP resources\&. This directory is searched if a bitmap
|
|
||||||
is specified without an absolute pathname\&. The default value for this resource
|
|
||||||
-is \fB/usr/X11R6/include/X11/bitmaps\fP\&. The directory \fB/usr/X11R6/include/X11/bitmaps\fP
|
|
||||||
+is \fB/usr/include/X11/bitmaps\fP\&. The directory \fB/usr/include/X11/bitmaps\fP
|
|
||||||
represents the customary locations for this directory\&. The actual
|
|
||||||
location of this directory may vary on some systems\&. If the bitmap is not
|
|
||||||
found in the specified directory, \fBXBMLANGPATH\fP is searched\&.
|
|
||||||
@@ -1348,7 +1348,7 @@
|
|
||||||
.PP
|
|
||||||
\fB/etc/X11/mwm/system\&.mwmrc\fP
|
|
||||||
.PP
|
|
||||||
-\fB/usr/X11R6/lib/X11/app-defaults/Mwm\fP
|
|
||||||
+\fB/usr/share/X11/app-defaults/Mwm\fP
|
|
||||||
.PP
|
|
||||||
\fB$HOME/Mwm\fP
|
|
||||||
.PP
|
|
@ -1,22 +0,0 @@
|
|||||||
--- openmotif-2.3.0/lib/Xm/ColorS.c.rgbtxt 2004-07-07 14:24:07.000000000 +0200
|
|
||||||
+++ openmotif-2.3.0/lib/Xm/ColorS.c 2005-12-02 13:26:11.000000000 +0100
|
|
||||||
@@ -131,7 +131,7 @@
|
|
||||||
{
|
|
||||||
XmNrgbFile, XmCString, XmRString,
|
|
||||||
sizeof(String), XtOffsetOf(XmColorSelectorRec, cs.rgb_file),
|
|
||||||
- XmRString, (XtPointer) "/usr/lib/X11/rgb.txt"
|
|
||||||
+ XmRString, (XtPointer) "/usr/share/X11/rgb.txt"
|
|
||||||
},
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
--- openmotif-2.3.0/doc/man/man3/XmColorSelector.3.rgbtxt 2002-01-17 21:32:48.000000000 +0100
|
|
||||||
+++ openmotif-2.3.0/doc/man/man3/XmColorSelector.3 2005-12-02 13:25:26.000000000 +0100
|
|
||||||
@@ -34,7 +34,7 @@
|
|
||||||
noCellError%NoCellError%XmString%"No Color Cell
|
|
||||||
%%% Available"
|
|
||||||
redSliderLabel%SliderLabel%XmString%"Red"
|
|
||||||
-rgbFile%String%String%/usr/lib/X11/rgb.txt
|
|
||||||
+rgbFile%String%String%/usr/share/X11/rgb.txt
|
|
||||||
sliderTogLabel%TogLabel%XmString%"Color Sliders"
|
|
||||||
.TE
|
|
||||||
.PP
|
|
@ -1,11 +0,0 @@
|
|||||||
--- openmotif-2.3.1-old/clients/mwm/WmWinConf.c 2002-01-11 02:25:38.000000000 +0530
|
|
||||||
+++ openmotif-2.3.1-old/clients/mwm/WmWinConf.c 2013-08-23 12:47:45.000000000 +0530
|
|
||||||
@@ -1512,7 +1512,7 @@ DrawSegments (Display *dpy, Window win,
|
|
||||||
*************************************<->***********************************/
|
|
||||||
void MoveOutline (int x, int y, unsigned int width, unsigned int height)
|
|
||||||
{
|
|
||||||
- if (wmGD.freezeOnConfig)
|
|
||||||
+ if (wmGD.freezeOnConfig || !wmGD.pActiveSD->moveOpaque)
|
|
||||||
{
|
|
||||||
DrawOutline (x, y, width, height);
|
|
||||||
}
|
|
@ -1,427 +0,0 @@
|
|||||||
From 18de86345d5e455b815fe0395d2992b9a2f1195f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Oleksiy Chernyavskyy <ochern@ics.com>
|
|
||||||
Date: Tue, 28 Mar 2017 01:11:59 +0300
|
|
||||||
Subject: [PATCH] removed bugfix 1565. See details on
|
|
||||||
http://bugs.motifzone.net/show_bug.cgi?id=1565
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/Xm/ComboBox.c | 8 ---
|
|
||||||
lib/Xm/DropDown.c | 7 ---
|
|
||||||
lib/Xm/GrabShell.c | 15 +----
|
|
||||||
lib/Xm/GrabShellP.h | 3 -
|
|
||||||
lib/Xm/RCMenu.c | 40 ------------
|
|
||||||
lib/Xm/Xm.c | 173 ----------------------------------------------------
|
|
||||||
lib/Xm/XmI.h | 4 --
|
|
||||||
7 files changed, 2 insertions(+), 248 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/Xm/ComboBox.c b/lib/Xm/ComboBox.c
|
|
||||||
index cf507da4..1472e458 100644
|
|
||||||
--- a/lib/Xm/ComboBox.c
|
|
||||||
+++ b/lib/Xm/ComboBox.c
|
|
||||||
@@ -3164,9 +3164,6 @@ CreatePulldown(Widget parent,
|
|
||||||
Arg args[4];
|
|
||||||
ArgList merged_args;
|
|
||||||
Cardinal n;
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- XmGrabShellWidget grabsh;
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
n = 0;
|
|
||||||
XtSetArg(args[n], XmNlayoutDirection, LayoutM(parent)), n++;
|
|
||||||
@@ -3178,11 +3175,6 @@ CreatePulldown(Widget parent,
|
|
||||||
merged_args, n + *num_args);
|
|
||||||
XtFree((char*)merged_args);
|
|
||||||
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- grabsh = (XmGrabShellWidget) shell;
|
|
||||||
- grabsh->grab_shell.set_input_focus = False;
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
return shell;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/lib/Xm/DropDown.c b/lib/Xm/DropDown.c
|
|
||||||
index 5cd15cae..37fec03f 100644
|
|
||||||
--- a/lib/Xm/DropDown.c
|
|
||||||
+++ b/lib/Xm/DropDown.c
|
|
||||||
@@ -2027,9 +2027,6 @@ CreatePopup(Widget w, ArgList args, Cardinal num_args)
|
|
||||||
Arg *new_list, largs[10];
|
|
||||||
Cardinal num_largs;
|
|
||||||
Widget sb;
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- XmGrabShellWidget grabsh;
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
num_largs = 0;
|
|
||||||
XtSetArg(largs[num_largs], XmNoverrideRedirect, True); num_largs++;
|
|
||||||
@@ -2043,10 +2040,6 @@ CreatePopup(Widget w, ArgList args, Cardinal num_args)
|
|
||||||
xmGrabShellWidgetClass, w,
|
|
||||||
new_list,
|
|
||||||
num_largs + num_args);
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- grabsh = (XmGrabShellWidget) XmDropDown_popup_shell(cbw);
|
|
||||||
- grabsh->grab_shell.set_input_focus = False;
|
|
||||||
-#endif
|
|
||||||
XtFree((char *) new_list);
|
|
||||||
|
|
||||||
#ifdef FIX_1446
|
|
||||||
diff --git a/lib/Xm/GrabShell.c b/lib/Xm/GrabShell.c
|
|
||||||
index af13e0b7..a73f7cb9 100644
|
|
||||||
--- a/lib/Xm/GrabShell.c
|
|
||||||
+++ b/lib/Xm/GrabShell.c
|
|
||||||
@@ -284,9 +284,6 @@ Initialize(Widget req, /* unused */
|
|
||||||
/* CR 9920: Popdown may be requested before MapNotify. */
|
|
||||||
grabsh->grab_shell.mapped = False;
|
|
||||||
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- grabsh->grab_shell.set_input_focus = True;
|
|
||||||
-#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -399,16 +396,8 @@ MapNotifyHandler(Widget shell, XtPointer client_data,
|
|
||||||
XGetInputFocus(XtDisplay(shell), &grabshell->grab_shell.old_focus,
|
|
||||||
&grabshell->grab_shell.old_revert_to);
|
|
||||||
old_handler = XSetErrorHandler(IgnoreXErrors);
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- if (! grabshell->grab_shell.set_input_focus) {
|
|
||||||
- XmForceGrabKeyboard(shell, time);
|
|
||||||
- } else {
|
|
||||||
-#endif
|
|
||||||
- XSetInputFocus(XtDisplay(shell), XtWindow(shell), RevertToParent, time);
|
|
||||||
- XSync(XtDisplay(shell), False);
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- }
|
|
||||||
-#endif
|
|
||||||
+ XSetInputFocus(XtDisplay(shell), XtWindow(shell), RevertToParent, time);
|
|
||||||
+ XSync(XtDisplay(shell), False);
|
|
||||||
XSetErrorHandler(old_handler);
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/lib/Xm/GrabShellP.h b/lib/Xm/GrabShellP.h
|
|
||||||
index 025f0015..e2585540 100644
|
|
||||||
--- a/lib/Xm/GrabShellP.h
|
|
||||||
+++ b/lib/Xm/GrabShellP.h
|
|
||||||
@@ -56,9 +56,6 @@ typedef struct
|
|
||||||
Boolean mapped;
|
|
||||||
Window old_focus;
|
|
||||||
int old_revert_to;
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- Boolean set_input_focus;
|
|
||||||
-#endif
|
|
||||||
} XmGrabShellPart;
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/lib/Xm/RCMenu.c b/lib/Xm/RCMenu.c
|
|
||||||
index 8b156da5..2c698d4f 100644
|
|
||||||
--- a/lib/Xm/RCMenu.c
|
|
||||||
+++ b/lib/Xm/RCMenu.c
|
|
||||||
@@ -85,9 +85,6 @@ static char *rcsid = "$TOG: RCMenu.c /main/25 1999/05/24 18:06:57 samborn $";
|
|
||||||
#include "TraversalI.h"
|
|
||||||
#include "UniqueEvnI.h"
|
|
||||||
#include "VendorSI.h"
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
-#include <Xm/GrabShell.h>
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
#define FIX_1535
|
|
||||||
|
|
||||||
@@ -946,13 +943,6 @@ _XmMenuFocus(
|
|
||||||
XmMenuState mst = _XmGetMenuState((Widget)w);
|
|
||||||
Window tmpWindow;
|
|
||||||
int tmpRevert;
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- Widget shell;
|
|
||||||
-
|
|
||||||
- shell = w;
|
|
||||||
- while (! XtIsSubclass(shell, shellWidgetClass))
|
|
||||||
- shell = XtParent(shell);
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
if (_time == CurrentTime)
|
|
||||||
_time = XtLastTimestampProcessed(XtDisplay(w));
|
|
||||||
@@ -993,11 +983,6 @@ _XmMenuFocus(
|
|
||||||
shell.popped_up))
|
|
||||||
**/
|
|
||||||
{
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- if (XtIsSubclass(shell, xmGrabShellWidgetClass) || XtIsSubclass(shell, xmMenuShellWidgetClass))
|
|
||||||
- XmForceGrabKeyboard(w, _time);
|
|
||||||
- else
|
|
||||||
-#endif
|
|
||||||
SetInputFocus(XtDisplay(w), mst->RC_menuFocus.oldFocus,
|
|
||||||
mst->RC_menuFocus.oldRevert,
|
|
||||||
mst->RC_menuFocus.oldTime);
|
|
||||||
@@ -1011,11 +996,6 @@ _XmMenuFocus(
|
|
||||||
*/
|
|
||||||
else
|
|
||||||
{
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- if (XtIsSubclass(shell, xmGrabShellWidgetClass) || XtIsSubclass(shell, xmMenuShellWidgetClass))
|
|
||||||
- XmForceGrabKeyboard(w, _time);
|
|
||||||
- else
|
|
||||||
-#endif
|
|
||||||
SetInputFocus(XtDisplay(w), mst->RC_menuFocus.oldFocus,
|
|
||||||
mst->RC_menuFocus.oldRevert,
|
|
||||||
mst->RC_menuFocus.oldTime);
|
|
||||||
@@ -1034,11 +1014,6 @@ _XmMenuFocus(
|
|
||||||
RC_menuFocus.oldFocus);
|
|
||||||
mst->RC_menuFocus.oldTime = _time - 1;
|
|
||||||
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- if (XtIsSubclass(shell, xmGrabShellWidgetClass) || XtIsSubclass(shell, xmMenuShellWidgetClass))
|
|
||||||
- XmForceGrabKeyboard(w, _time);
|
|
||||||
- else
|
|
||||||
-#endif
|
|
||||||
SetInputFocus(XtDisplay(w), XtWindow(w), mst->RC_menuFocus.oldRevert,
|
|
||||||
mst->RC_menuFocus.oldTime);
|
|
||||||
|
|
||||||
@@ -1052,11 +1027,6 @@ _XmMenuFocus(
|
|
||||||
XGetInputFocus(XtDisplay(w), &tmpWindow, &tmpRevert);
|
|
||||||
if (tmpWindow != XtWindow(w))
|
|
||||||
{
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- if (XtIsSubclass(shell, xmGrabShellWidgetClass) || XtIsSubclass(shell, xmMenuShellWidgetClass))
|
|
||||||
- XmForceGrabKeyboard(w, _time);
|
|
||||||
- else
|
|
||||||
-#endif
|
|
||||||
SetInputFocus(XtDisplay(w), XtWindow(w), tmpRevert, _time);
|
|
||||||
|
|
||||||
mst->RC_menuFocus.oldRevert = tmpRevert;
|
|
||||||
@@ -1078,11 +1048,6 @@ _XmMenuFocus(
|
|
||||||
|
|
||||||
break;
|
|
||||||
case XmMENU_MIDDLE:
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- if (XtIsSubclass(shell, xmGrabShellWidgetClass) || XtIsSubclass(shell, xmMenuShellWidgetClass))
|
|
||||||
- XmForceGrabKeyboard(w, _time);
|
|
||||||
- else
|
|
||||||
-#endif
|
|
||||||
SetInputFocus(XtDisplay(w), XtWindow(w),
|
|
||||||
mst->RC_menuFocus.oldRevert,
|
|
||||||
mst->RC_menuFocus.oldTime);
|
|
||||||
@@ -1097,11 +1062,6 @@ _XmMenuFocus(
|
|
||||||
if ((tmpWindow != XtWindow(w)) &&
|
|
||||||
(_time > mst->RC_menuFocus.oldTime))
|
|
||||||
{
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
- if (XtIsSubclass(shell, xmGrabShellWidgetClass) || XtIsSubclass(shell, xmMenuShellWidgetClass))
|
|
||||||
- XmForceGrabKeyboard(w, _time);
|
|
||||||
- else
|
|
||||||
-#endif
|
|
||||||
SetInputFocus(XtDisplay(w), XtWindow(w), tmpRevert, _time);
|
|
||||||
|
|
||||||
mst->RC_menuFocus.oldRevert = tmpRevert;
|
|
||||||
diff --git a/lib/Xm/Xm.c b/lib/Xm/Xm.c
|
|
||||||
index 45d48b61..657f9041 100644
|
|
||||||
--- a/lib/Xm/Xm.c
|
|
||||||
+++ b/lib/Xm/Xm.c
|
|
||||||
@@ -40,10 +40,6 @@
|
|
||||||
#ifdef FIX_345
|
|
||||||
#include <X11/keysym.h>
|
|
||||||
#endif
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
-#include <Xm/GrabShell.h>
|
|
||||||
-#include <Xm/MenuShell.h>
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
@@ -535,172 +531,3 @@ _XmAssignInsensitiveColor(Widget w)
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
-
|
|
||||||
-typedef struct _GrabData GrabData;
|
|
||||||
-struct _GrabData {
|
|
||||||
- Widget w;
|
|
||||||
- GrabData *next;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-static void _XmSendFocusEvent(Widget child, int type);
|
|
||||||
-static void _XmStartDispatcher(Display *display);
|
|
||||||
-static Boolean _XmEventDispatcher(XEvent *event);
|
|
||||||
-static void UnmapHandler(Widget w, XtPointer client_data, XEvent *event, Boolean *cont);
|
|
||||||
-static Boolean _UngrabKeyboard(Widget w);
|
|
||||||
-
|
|
||||||
-static GrabData *grabw_top = NULL;
|
|
||||||
-static int xm_dispatcher_on = 0;
|
|
||||||
-static XtEventDispatchProc saved_dispatcher_proc = NULL;
|
|
||||||
-static XtEventDispatchProc xt_dispatcher_proc = NULL;
|
|
||||||
-
|
|
||||||
-/*
|
|
||||||
- XmForceGrabKeyboard function is defined to be a substitutor of XSetInputFocus calls
|
|
||||||
- for popup and pulldown menus that should grab keyboard focus yet main window at the
|
|
||||||
- same time should visually stay in focus for window manager. This resolves focus flip
|
|
||||||
- issue when popup or pulldown menu is raised. ~ochern
|
|
||||||
- */
|
|
||||||
-void XmForceGrabKeyboard(Widget w, Time time)
|
|
||||||
-{
|
|
||||||
- GrabData *grabw;
|
|
||||||
-
|
|
||||||
- if (!w)
|
|
||||||
- return;
|
|
||||||
-
|
|
||||||
- while (! XtIsSubclass(w, shellWidgetClass))
|
|
||||||
- w = XtParent(w);
|
|
||||||
-
|
|
||||||
- if (! (XtIsSubclass(w, xmGrabShellWidgetClass) || XtIsSubclass(w, xmMenuShellWidgetClass)))
|
|
||||||
- return;
|
|
||||||
-
|
|
||||||
- _XmStartDispatcher(XtDisplay(w));
|
|
||||||
-
|
|
||||||
- _UngrabKeyboard(w);
|
|
||||||
-
|
|
||||||
- grabw = (GrabData *) XtMalloc(sizeof(GrabData));
|
|
||||||
- grabw->w = w;
|
|
||||||
- _XmProcessLock();
|
|
||||||
- grabw->next = grabw_top;
|
|
||||||
- grabw_top = grabw;
|
|
||||||
- _XmProcessUnlock();
|
|
||||||
-
|
|
||||||
- XtInsertEventHandler(w, StructureNotifyMask, False, UnmapHandler, NULL, XtListHead);
|
|
||||||
-
|
|
||||||
- _XmSendFocusEvent(w, FocusIn);
|
|
||||||
-
|
|
||||||
- /* Following the XSetInputFocus behaviour we force sending FocusOut (see XGrabKeyboard(3))
|
|
||||||
- event to a previous keyboard holder */
|
|
||||||
- XtGrabKeyboard(w, True, GrabModeAsync, GrabModeAsync, time);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static void _XmStartDispatcher(Display *display)
|
|
||||||
-{
|
|
||||||
- if (!display)
|
|
||||||
- return;
|
|
||||||
-
|
|
||||||
- _XmProcessLock();
|
|
||||||
-
|
|
||||||
- if (xm_dispatcher_on) {
|
|
||||||
- _XmProcessUnlock();
|
|
||||||
- return;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- saved_dispatcher_proc = XtSetEventDispatcher(display, KeyPress, _XmEventDispatcher);
|
|
||||||
- if (! xt_dispatcher_proc)
|
|
||||||
- xt_dispatcher_proc = saved_dispatcher_proc;
|
|
||||||
- XtSetEventDispatcher(display, KeyRelease, _XmEventDispatcher);
|
|
||||||
- xm_dispatcher_on = 1;
|
|
||||||
-
|
|
||||||
- _XmProcessUnlock();
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static Boolean _XmEventDispatcher(XEvent *event)
|
|
||||||
-{
|
|
||||||
- _XmProcessLock();
|
|
||||||
- if (grabw_top) {
|
|
||||||
- if (event->type == KeyPress || event->type == KeyRelease)
|
|
||||||
- event->xany.window = XtWindow(grabw_top->w);
|
|
||||||
- }
|
|
||||||
- _XmProcessUnlock();
|
|
||||||
-
|
|
||||||
- if (saved_dispatcher_proc) {
|
|
||||||
- return (*saved_dispatcher_proc)(event);
|
|
||||||
- } else if (xt_dispatcher_proc) {
|
|
||||||
- return (*xt_dispatcher_proc)(event);
|
|
||||||
- } else {
|
|
||||||
- if (grabw_top)
|
|
||||||
- XtSetEventDispatcher(XtDisplay(grabw_top->w), event->type, NULL);
|
|
||||||
- return XtDispatchEvent(event);
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static void UnmapHandler(Widget w, XtPointer client_data, XEvent *event, Boolean *cont)
|
|
||||||
-{
|
|
||||||
- if (event->type == UnmapNotify)
|
|
||||||
- _UngrabKeyboard(w);
|
|
||||||
- if (! grabw_top) {
|
|
||||||
- XtSetEventDispatcher(XtDisplay(w), KeyPress, saved_dispatcher_proc);
|
|
||||||
- XtSetEventDispatcher(XtDisplay(w), KeyRelease, saved_dispatcher_proc);
|
|
||||||
- xm_dispatcher_on = 0;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /* we do not call XtUngrabKeyboard since X server automatically performs an
|
|
||||||
- UngrabKeyboard request if the event window for an active keyboard grab becomes
|
|
||||||
- not viewable. ~ochern */
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static Boolean _UngrabKeyboard(Widget w)
|
|
||||||
-{
|
|
||||||
- GrabData *grabw, *grabw_prev;
|
|
||||||
-
|
|
||||||
- _XmProcessLock();
|
|
||||||
- if (! grabw_top) {
|
|
||||||
- _XmProcessUnlock();
|
|
||||||
- return False;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- grabw = grabw_top;
|
|
||||||
- grabw_prev = NULL;
|
|
||||||
- while(grabw && grabw->w != w) {
|
|
||||||
- grabw_prev = grabw;
|
|
||||||
- grabw = grabw->next;
|
|
||||||
- }
|
|
||||||
- if (grabw) {
|
|
||||||
- if (grabw_prev)
|
|
||||||
- grabw_prev->next = grabw->next;
|
|
||||||
- else
|
|
||||||
- grabw_top = grabw->next;
|
|
||||||
- XtFree((char*) grabw);
|
|
||||||
-
|
|
||||||
- _XmProcessUnlock();
|
|
||||||
- return True;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- _XmProcessUnlock();
|
|
||||||
- return False;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static void _XmSendFocusEvent(Widget child, int type)
|
|
||||||
-{
|
|
||||||
- child = XtIsWidget(child) ? child : _XtWindowedAncestor(child);
|
|
||||||
- if (XtIsSensitive(child) && !child->core.being_destroyed
|
|
||||||
- && XtIsRealized(child) && (XtBuildEventMask(child) & FocusChangeMask))
|
|
||||||
- {
|
|
||||||
- XFocusChangeEvent event;
|
|
||||||
- Display* dpy = XtDisplay (child);
|
|
||||||
-
|
|
||||||
- event.type = type;
|
|
||||||
- event.serial = LastKnownRequestProcessed(dpy);
|
|
||||||
- event.send_event = True;
|
|
||||||
- event.display = dpy;
|
|
||||||
- event.window = XtWindow(child);
|
|
||||||
- event.mode = NotifyNormal;
|
|
||||||
- event.detail = NotifyAncestor;
|
|
||||||
- if (XFilterEvent((XEvent*)&event, XtWindow(child)))
|
|
||||||
- return;
|
|
||||||
- XtDispatchEventToWidget(child, (XEvent*)&event);
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
diff --git a/lib/Xm/XmI.h b/lib/Xm/XmI.h
|
|
||||||
index ef6165c5..769e5f0a 100644
|
|
||||||
--- a/lib/Xm/XmI.h
|
|
||||||
+++ b/lib/Xm/XmI.h
|
|
||||||
@@ -237,9 +237,6 @@ extern Boolean _XmIsISO10646(Display *dpy,
|
|
||||||
extern XChar2b* _XmUtf8ToUcs2(char *draw_text,
|
|
||||||
size_t seg_len,
|
|
||||||
size_t *ret_str_len);
|
|
||||||
-#ifdef FIX_1565
|
|
||||||
-extern void XmForceGrabKeyboard(Widget w, Time time);
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
/******** End Private Function Declarations ********/
|
|
||||||
|
|
||||||
@@ -294,7 +291,6 @@ extern Pixel _XmAssignInsensitiveColor(Widget w);
|
|
||||||
#define FIX_1501
|
|
||||||
#define FIX_1521
|
|
||||||
#define FIX_1505
|
|
||||||
-#define FIX_1565
|
|
||||||
|
|
||||||
#endif /* _XmI_h */
|
|
||||||
/* DON'T ADD ANYTHING AFTER THIS #endif */
|
|
||||||
--
|
|
||||||
2.13.5
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
if [ -x /usr/bin/xmbind ] ; then
|
|
||||||
/usr/bin/xmbind
|
|
||||||
fi
|
|
||||||
|
|
558
SPECS/motif.spec
558
SPECS/motif.spec
@ -1,558 +0,0 @@
|
|||||||
Summary: Run-time libraries and programs
|
|
||||||
Name: motif
|
|
||||||
Version: 2.3.4
|
|
||||||
Release: 20%{?dist}
|
|
||||||
License: LGPLv2+
|
|
||||||
Group: System Environment/Libraries
|
|
||||||
Source: http://downloads.sf.net/motif/motif-%{version}-src.tgz
|
|
||||||
Source1: xmbind
|
|
||||||
URL: http://www.motifzone.net/
|
|
||||||
Obsoletes: openmotif < 2.3.4
|
|
||||||
Provides: openmotif = %{version}-%{release}
|
|
||||||
Requires: xorg-x11-xbitmaps
|
|
||||||
Requires: xorg-x11-xinit
|
|
||||||
|
|
||||||
BuildRequires: automake, libtool, autoconf, flex
|
|
||||||
# flex static libs have been part of flex for RHEL <= 6 and Fedora <= 12
|
|
||||||
%if 0%{?fedora} > 12 || 0%{?rhel} > 6
|
|
||||||
BuildRequires: flex-static
|
|
||||||
%endif
|
|
||||||
BuildRequires: byacc, pkgconfig
|
|
||||||
BuildRequires: libjpeg-devel libpng-devel
|
|
||||||
BuildRequires: libXft-devel libXmu-devel libXp-devel libXt-devel libXext-devel
|
|
||||||
BuildRequires: xorg-x11-xbitmaps
|
|
||||||
BuildRequires: perl-interpreter
|
|
||||||
|
|
||||||
Patch22: motif-2.3.4-no_demos.patch
|
|
||||||
Patch23: openMotif-2.2.3-uil_lib.patch
|
|
||||||
Patch43: openMotif-2.3.0-rgbtxt.patch
|
|
||||||
Patch45: motif-2.3.4-mwmrc_dir.patch
|
|
||||||
Patch46: motif-2.3.4-bindings.patch
|
|
||||||
Patch47: openMotif-2.3.0-no_X11R6.patch
|
|
||||||
# FTBFS #1448819
|
|
||||||
Patch48: motif-2.3.4-Fix-issues-with-Werror-format-security.patch
|
|
||||||
|
|
||||||
Patch49: openmotif-2.3.1-rhbz_997241.patch
|
|
||||||
Patch50: motif-2.3.5-motifzone_1654.patch
|
|
||||||
Patch51: motif-2.3.4-motifzone_1564-88bdce1.patch
|
|
||||||
Patch52: revert-of-motifzone_1565.patch
|
|
||||||
Patch53: motifzone_1660.patch
|
|
||||||
Patch54: motifzone_1612.patch
|
|
||||||
|
|
||||||
Patch55: 0001-EditresCom-Fix-build-with-modern-systems.patch
|
|
||||||
# CVE-2023-43788
|
|
||||||
Patch56: 0001-Fix-CVE-2023-43788-Out-of-bounds-read-in-XpmCreateXp.patch
|
|
||||||
# CVE-2023-43789
|
|
||||||
Patch57: 0001-Fix-CVE-2023-43789-Out-of-bounds-read-on-XPM-with-co.patch
|
|
||||||
|
|
||||||
Conflicts: lesstif <= 0.92.32-6
|
|
||||||
|
|
||||||
%description
|
|
||||||
This is the Motif %{version} run-time environment. It includes the
|
|
||||||
Motif shared libraries, needed to run applications which are dynamically
|
|
||||||
linked against Motif and the Motif Window Manager mwm.
|
|
||||||
|
|
||||||
%package devel
|
|
||||||
Summary: Development libraries and header files
|
|
||||||
Group: Development/Libraries
|
|
||||||
Conflicts: lesstif-devel <= 0.92.32-6
|
|
||||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
||||||
Requires: libjpeg-devel%{?_isa} libpng-devel%{?_isa}
|
|
||||||
Requires: libXft-devel%{?_isa} libXmu-devel%{?_isa} libXp-devel%{?_isa}
|
|
||||||
Requires: libXt-devel%{?_isa} libXext-devel%{?_isa}
|
|
||||||
Obsoletes: openmotif-devel < 2.3.4
|
|
||||||
Provides: openmotif-devel = %{version}-%{release}
|
|
||||||
|
|
||||||
%description devel
|
|
||||||
This is the Motif %{version} development environment. It includes the
|
|
||||||
header files and also static libraries necessary to build Motif applications.
|
|
||||||
|
|
||||||
%package static
|
|
||||||
Summary: Static libraries
|
|
||||||
Group: Development/Libraries
|
|
||||||
Conflicts: lesstif-devel <= 0.92.32-6
|
|
||||||
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
|
|
||||||
|
|
||||||
%description static
|
|
||||||
This package contains the static Motif libraries.
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%setup -q
|
|
||||||
%patch22 -p1 -b .no_demos
|
|
||||||
%patch23 -p1 -b .uil_lib
|
|
||||||
%patch43 -p1 -b .rgbtxt
|
|
||||||
%patch45 -p1 -b .mwmrc_dir
|
|
||||||
%patch46 -p1 -b .bindings
|
|
||||||
%patch47 -p1 -b .no_X11R6
|
|
||||||
%patch48 -p1 -b .format-security
|
|
||||||
|
|
||||||
%patch49 -p1 -b .rhbz_997241
|
|
||||||
%patch50 -p1 -b .motifzone_1654
|
|
||||||
%patch51 -p1 -b .motifzone_1564-88bdce1
|
|
||||||
%patch52 -p1 -b .revert-of-motifzone_1565
|
|
||||||
%patch53 -p1 -b .motifzone_1660
|
|
||||||
%patch54 -p1 -b .motifzone_1612
|
|
||||||
%patch55 -p1 -b .long_bit
|
|
||||||
%patch56 -p1 -b .cve-2023-43788
|
|
||||||
%patch57 -p1 -b .cve-2023-43789
|
|
||||||
|
|
||||||
%build
|
|
||||||
CFLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64" \
|
|
||||||
./autogen.sh --libdir=%{_libdir} --enable-static --enable-xft --enable-jpeg \
|
|
||||||
--enable-png
|
|
||||||
|
|
||||||
%configure --libdir=%{_libdir} --enable-static --enable-xft --enable-jpeg \
|
|
||||||
--enable-png
|
|
||||||
|
|
||||||
make clean %{?_smp_mflags}
|
|
||||||
make -C include
|
|
||||||
make %{?_smp_mflags}
|
|
||||||
|
|
||||||
%install
|
|
||||||
make DESTDIR=%{buildroot} install
|
|
||||||
|
|
||||||
install -d %{buildroot}/etc/X11/xinit/xinitrc.d
|
|
||||||
install -m 755 %{SOURCE1} %{buildroot}/etc/X11/xinit/xinitrc.d/xmbind.sh
|
|
||||||
|
|
||||||
rm -f %{buildroot}%{_libdir}/*.la
|
|
||||||
|
|
||||||
%post -p /sbin/ldconfig
|
|
||||||
%postun -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%clean
|
|
||||||
rm -rf %{buildroot}
|
|
||||||
|
|
||||||
%files
|
|
||||||
%doc COPYING README RELEASE RELNOTES
|
|
||||||
/etc/X11/xinit/xinitrc.d/xmbind.sh
|
|
||||||
%dir /etc/X11/mwm
|
|
||||||
%config(noreplace) /etc/X11/mwm/system.mwmrc
|
|
||||||
%{_bindir}/mwm
|
|
||||||
%{_bindir}/xmbind
|
|
||||||
%{_includedir}/X11/bitmaps/*
|
|
||||||
%{_libdir}/libMrm.so.*
|
|
||||||
%{_libdir}/libUil.so.*
|
|
||||||
%{_libdir}/libXm.so.*
|
|
||||||
%{_datadir}/X11/bindings
|
|
||||||
%{_mandir}/man1/mwm*
|
|
||||||
%{_mandir}/man1/xmbind*
|
|
||||||
%{_mandir}/man4/mwmrc*
|
|
||||||
|
|
||||||
%files devel
|
|
||||||
%{_bindir}/uil
|
|
||||||
%{_includedir}/Mrm
|
|
||||||
%{_includedir}/Xm
|
|
||||||
%{_includedir}/uil
|
|
||||||
%{_libdir}/lib*.so
|
|
||||||
%{_mandir}/man1/uil.1*
|
|
||||||
%{_mandir}/man3/*
|
|
||||||
%{_mandir}/man5/*
|
|
||||||
|
|
||||||
%files static
|
|
||||||
%{_libdir}/lib*.a
|
|
||||||
|
|
||||||
%changelog
|
|
||||||
* Mon Nov 27 2023 José Expósito <jexposit@redhat.com> - 2.3.4-20
|
|
||||||
- Fix CVE-2023-43788: out of bounds read in XpmCreateXpmImageFromBuffer()
|
|
||||||
- Fix CVE-2023-43789: out of bounds read on XPM with corrupted colormap
|
|
||||||
|
|
||||||
* Mon Sep 26 2022 Olivier Fourdan <ofourdan@redhat.com> - 2.3.4-19
|
|
||||||
- Fix LONG_BIT definition missing (rhbz#2124810)
|
|
||||||
|
|
||||||
* Wed Sep 07 2022 Mika Penttila <mpenttil@redhat.com> - 2.3.4-18
|
|
||||||
- Version bump
|
|
||||||
|
|
||||||
* Fri Apr 08 2022 Mika Penttila <mpenttil@redhat.com> - 2.3.4-17
|
|
||||||
- Added forgotten patches and corrected release number
|
|
||||||
|
|
||||||
* Tue Sep 11 2018 Carlos Soriano <csoriano@redhat.com> - 2.3.4-16
|
|
||||||
- Fix hardened flags, make sure to always pass LDFLAGS on the spec
|
|
||||||
- Resolves: RHBZ#1624143
|
|
||||||
|
|
||||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-15
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-14
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jun 08 2017 Petr Šabata <contyk@redhat.com> - 2.3.4-13
|
|
||||||
- Fix issues with -Werror=format-security (#1448819)
|
|
||||||
|
|
||||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-12
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-11
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.4-10
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.4-9
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.4-8
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.4-7
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue May 28 2013 Michael Schwendt <mschwendt@fedoraproject.org> - 2.3.4-6
|
|
||||||
- fix missing BuildRequires flex-static (RHBZ#889175)
|
|
||||||
|
|
||||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.4-5
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Jan 21 2013 Adam Tkac <atkac redhat com> - 2.3.4-4
|
|
||||||
- rebuild due to "jpeg8-ABI" feature drop
|
|
||||||
|
|
||||||
* Fri Oct 26 2012 Thomas Woerner <twoerner@redhat.com> 2.3.4-3
|
|
||||||
- do not use _isa for build requires
|
|
||||||
|
|
||||||
* Fri Oct 26 2012 Thomas Woerner <twoerner@redhat.com> 2.3.4-2
|
|
||||||
- fixed requirements according to review (RHBZ#870049)
|
|
||||||
- flex-static has been renamed to flex-devel with Fedora-18 and RHEL-7
|
|
||||||
|
|
||||||
* Thu Oct 25 2012 Thomas Woerner <twoerner@redhat.com> 2.3.4-1
|
|
||||||
- new version 2.3.4 with LGPL license
|
|
||||||
- fixed some rpmlint warnings
|
|
||||||
- new sub package for static libraries
|
|
||||||
- added /etc/X11/mwm directory
|
|
||||||
- removed defattrs
|
|
||||||
|
|
||||||
* Fri May 25 2012 Thomas Woerner <twoerner@redhat.com> 2.3.3-5
|
|
||||||
- dropped file requires for /usr/share/X11/XKeysymDB, not needed and not
|
|
||||||
available anymore
|
|
||||||
- added flex-static build requirement, because of flex package split
|
|
||||||
|
|
||||||
* Mon Aug 15 2011 Thomas Woerner <twoerner@redhat.com> 2.3.3-4
|
|
||||||
- fixed Label draws Xft text over border of its parent (rhbz#584300#c3)
|
|
||||||
(MotifZone bug #1521 refixed)
|
|
||||||
|
|
||||||
* Wed Aug 10 2011 Thomas Woerner <twoerner@redhat.com> 2.3.3-3
|
|
||||||
- fixed regression introduced with upstream FIX #1521 (rhbz#729346)
|
|
||||||
|
|
||||||
* Mon Aug 1 2011 Thomas Woerner <twoerner@redhat.com> 2.3.3-2
|
|
||||||
- fixed LabelGadget draws background over border of its parent (rhbz#584300)
|
|
||||||
(MotifZone bug #1517)
|
|
||||||
- fixed LabelGadget draws Xft text over border of its parent (rhbz#584300#c3)
|
|
||||||
(MotifZone bug #1521)
|
|
||||||
|
|
||||||
* Tue Mar 23 2010 Thomas Woerner <twoerner@redhat.com> 2.3.3-1
|
|
||||||
- new version 2.3.3 (bugfix release)
|
|
||||||
see RELNOTES file for the list of the bug fixes
|
|
||||||
|
|
||||||
* Fri Feb 26 2010 Thomas Woerner <twoerner@redhat.com> 2.3.2-1.1
|
|
||||||
- fixes according to review:
|
|
||||||
- fixed buildroot
|
|
||||||
- removed dot from summary
|
|
||||||
- removed dist tag from changelog
|
|
||||||
- added source download link
|
|
||||||
|
|
||||||
* Wed Jan 13 2010 Thomas Woerner <twoerner@redhat.com> 2.3.2-1
|
|
||||||
- new version 2.3.2 with upstream bug fixes: #1212, #1277, #1473, #1476
|
|
||||||
- spec file cleanup
|
|
||||||
- make build work with libtool
|
|
||||||
- all man pages are utf-8, no need to convert them anymore
|
|
||||||
- enabled EditRes support with upstream fix
|
|
||||||
- fixed parallel build
|
|
||||||
- fixed patches for fuzz 0
|
|
||||||
Related: rhbz#543948
|
|
||||||
|
|
||||||
* Tue Dec 08 2009 Dennis Gregorovic <dgregor@redhat.com> - 2.3.1-3.1
|
|
||||||
- Rebuilt for RHEL 6
|
|
||||||
|
|
||||||
* Wed Sep 23 2009 Dennis Gregorovic <dgregor@redhat.com> - 2.3.1-3
|
|
||||||
- update the bindings patch
|
|
||||||
|
|
||||||
* Wed Nov 12 2008 Thomas Woerner <twoerner@redhat.com> 2.3.1-2
|
|
||||||
- more fixes for unreliable pasting into XmTextField (MotifZone bug #1321)
|
|
||||||
Resolves: rhbz#405941
|
|
||||||
- the fix for MotifZone bug #1400 is not working for remote displays
|
|
||||||
|
|
||||||
* Thu Oct 2 2008 Thomas Woerner <twoerner@redhat.com> 2.3.1-1
|
|
||||||
- using final 2.3.1 dist archive
|
|
||||||
|
|
||||||
* Wed Sep 17 2008 Thomas Woerner <twoerner@redhat.com> 2.3.1-0
|
|
||||||
- rebase to 2.3.1 (CVS dist release)
|
|
||||||
Resolves: rhbz#455736
|
|
||||||
- fixes OpenMotif XmList problem
|
|
||||||
Resolves: rhbz#405801
|
|
||||||
- fixes List.c/ReplaceItem() segfaults when item selected
|
|
||||||
Resolves: rhbz#431460
|
|
||||||
- fixes [motifzone 1400 ] openmotif/ BadFont on multiple display application
|
|
||||||
Resolves: rhbz#438910
|
|
||||||
- fixes applications dump core in non-UTF8 environment
|
|
||||||
Resolves: rhbz#453722
|
|
||||||
- fixes lots of additional bugs: see release notes
|
|
||||||
|
|
||||||
* Tue Apr 1 2008 Thomas Woerner <twoerner@redhat.com> 2.3.0-0.5
|
|
||||||
- fixed SEGV error moving mouse over window related to XmToolTipGetLabel
|
|
||||||
(MotifZone bug fix #1388)
|
|
||||||
Resolves: rhbz#277381
|
|
||||||
|
|
||||||
* Thu Nov 8 2007 Thomas Woerner <twoerner@redhat.com> 2.3.0-0.4
|
|
||||||
- fixed title bar problem using XmNdialogTitle (MotifZone bug fix #1380)
|
|
||||||
Resolves: rhbz#353251
|
|
||||||
|
|
||||||
* Fri Dec 1 2006 Thomas Woerner <twoerner@redhat.com> 2.3.0-0.3
|
|
||||||
- fixed path to xmbind in /etc/X11/xinit/xinitrc.d/xmbind.sh
|
|
||||||
Resolves: rhbz#218032
|
|
||||||
|
|
||||||
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 2.3.0-0.2.1
|
|
||||||
- rebuild
|
|
||||||
|
|
||||||
* Tue Jun 6 2006 Thomas Woerner <twoerner@redhat.com> 2.3.0-0.2
|
|
||||||
- new CVS version 2006-06-06
|
|
||||||
- new buildprereq for pkgconfig
|
|
||||||
|
|
||||||
* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 2.3.0-0.1.9.2
|
|
||||||
- bump again for double-long bug on ppc(64)
|
|
||||||
|
|
||||||
* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 2.3.0-0.1.9.1
|
|
||||||
- rebuilt for new gcc4.1 snapshot and glibc changes
|
|
||||||
|
|
||||||
* Thu Feb 2 2006 Thomas Woerner <twoerner@redhat.com> 2.3.0-0.1.9
|
|
||||||
- new CVS version 2006-02-02
|
|
||||||
- fixed CVE-2005-3964: libUil buffer overflows (#174814)
|
|
||||||
- fixed XmList out of bound accesses (#167701)
|
|
||||||
- fixed pasting into TextField (#179549)
|
|
||||||
|
|
||||||
* Tue Jan 3 2006 Jesse Keating <jkeating@redhat.coM> 2.3.0-0.1.2
|
|
||||||
- Rebuilt on new gcc
|
|
||||||
|
|
||||||
* Fri Dec 9 2005 Thomas Woerner <twoerner@redhat.com> 2.3.0-0.1.1
|
|
||||||
- moved mwmrc to /etc/X11/mwm
|
|
||||||
- moved bindings to /usr/share/X11
|
|
||||||
- fixed paths in man pages containing /usr/X11R6
|
|
||||||
|
|
||||||
* Thu Dec 8 2005 Thomas Woerner <twoerner@redhat.com> 2.3.0-0.1.1
|
|
||||||
- enabled Xft, jpeg and png support
|
|
||||||
- patch for missing xft-config
|
|
||||||
- dropped duplicate include path in devel package
|
|
||||||
|
|
||||||
* Fri Dec 2 2005 Thomas Woerner <twoerner@redhat.com> 2.3.0-0.1
|
|
||||||
- new 2.3.0 (beta1)
|
|
||||||
- patch for new rgb.txt location (#174210)
|
|
||||||
Thanks to Ville Skyttä for the patch
|
|
||||||
|
|
||||||
* Fri Nov 18 2005 Thomas Woerner <twoerner@redhat.com> 2.2.3-15
|
|
||||||
- moved man pages to /usr/share/man (#173604)
|
|
||||||
|
|
||||||
* Wed Nov 16 2005 Jeremy Katz <katzj@redhat.com> - 2.2.3-14
|
|
||||||
- X11R6 stuff is gone
|
|
||||||
|
|
||||||
* Wed Nov 16 2005 Jeremy Katz <katzj@redhat.com> - 2.2.3-13
|
|
||||||
- also buildrequire xbitmaps
|
|
||||||
|
|
||||||
* Wed Nov 16 2005 Thomas Woerner <twoerner@redhat.com> 2.2.3-12
|
|
||||||
- rebuild for modular X
|
|
||||||
|
|
||||||
* Fri Sep 2 2005 Thomas Woerner <twoerner@redhat.com> 2.2.3-11
|
|
||||||
- fixed mrm initialization error in MrmOpenHierarchyPerDisplay (#167094)
|
|
||||||
Thanks to Arjan van de Ven for the patch.
|
|
||||||
|
|
||||||
* Mon Apr 4 2005 Thomas Woerner <twoerner@redhat.com> 2.2.3-10
|
|
||||||
- fixed possible libXpm overflows (#151642)
|
|
||||||
|
|
||||||
* Mon Feb 28 2005 Thomas Woerner <twoerner@redhat.com> 2.2.3-9
|
|
||||||
- Upstream Fix: Multiscreen mode
|
|
||||||
- Upstream Fix: Crash when restarting by a session manager (motifzone#1193)
|
|
||||||
- Upstream Fix: Crash when duplicating a window menu containing f.circle_up
|
|
||||||
(motifzone#1202)
|
|
||||||
- fixed divide by zero error in ComputeVizCount() (#144420)
|
|
||||||
- Xpmcreate: define LONG64 on 64 bit architectures (#143689)
|
|
||||||
|
|
||||||
* Mon Nov 29 2004 Thomas Woerner <twoerner@redhat.com> 2.2.3-8.1
|
|
||||||
- allow to write XPM files with absolute path names again (#140815)
|
|
||||||
|
|
||||||
* Wed Nov 24 2004 Miloslav Trmac <mitr@redhat.com> 2.2.3-8
|
|
||||||
- Convert man pages to UTF-8
|
|
||||||
|
|
||||||
* Mon Nov 22 2004 Thomas Woerner <twoerner@redhat.com> 2.2.3-7
|
|
||||||
- latest Xpm patches: CAN-2004-0914 (#134631)
|
|
||||||
- new patch for tmpnam in imake (only used for build)
|
|
||||||
|
|
||||||
* Thu Sep 30 2004 Thomas Woerner <twoerner@redhat.com> 2.2.3-6
|
|
||||||
- fixed CAN-2004-0687 (integer overflows) and CAN-2004-0688 (stack overflows)
|
|
||||||
in embedded Xpm library
|
|
||||||
|
|
||||||
* Wed Sep 29 2004 Thomas Woerner <twoerner@redhat.com> 2.2.3-5.2
|
|
||||||
- replaced libtoolize and autofoo* calls with a patch (autofoo)
|
|
||||||
|
|
||||||
* Wed Sep 29 2004 Thomas Woerner <twoerner@redhat.com> 2.2.3-5.1
|
|
||||||
- use new autofoo
|
|
||||||
|
|
||||||
* Wed Sep 1 2004 Thomas Woerner <twoerner@redhat.com> 2.2.3-5
|
|
||||||
- libXp now moved to xorg-x11-deprecated-libs, therefore no compatibility
|
|
||||||
with XFree86 packages anymore.
|
|
||||||
|
|
||||||
* Mon Aug 30 2004 Thomas Woerner <twoerner@redhat.com> 2.2.3-4.3
|
|
||||||
- devel package: added requires for XFree86-devel (#131202)
|
|
||||||
|
|
||||||
* Thu Jun 17 2004 Thomas Woerner <twoerner@redhat.com> 2.2.3-4.2
|
|
||||||
- rebuilt for fc3
|
|
||||||
|
|
||||||
* Wed Jun 16 2004 Thomas Woerner <twoerner@redhat.com> 2.2.3-4.1
|
|
||||||
- renamed xmbind script to xmbind.sh (#126116)
|
|
||||||
|
|
||||||
* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
|
|
||||||
- rebuilt
|
|
||||||
|
|
||||||
* Tue Jun 8 2004 Thomas Woerner <twoerner@redhat.com> 2.2.3-3
|
|
||||||
- fixed popup menus fail on Tarantella/VNC (#123027)
|
|
||||||
- fixed character not supported problem (#124960)
|
|
||||||
- fixed data out of bounds bug (#124961)
|
|
||||||
|
|
||||||
* Wed Apr 14 2004 Thomas Woerner <twoerner@redhat.com> 2.2.3-2
|
|
||||||
- 2.2.3 final version
|
|
||||||
|
|
||||||
* Tue Mar 23 2004 Thomas Woerner <twoerner@redhat.com> 2.2.3-1.9.2
|
|
||||||
- final CVS version
|
|
||||||
|
|
||||||
* Wed Mar 17 2004 Thomas Woerner <twoerner@redhat.com> 2.2.3-1.9.1
|
|
||||||
- new openmotif 2.2.3 beta version
|
|
||||||
|
|
||||||
* Mon Mar 8 2004 Thomas Woerner <twoerner@redhat.com> 2.2.2-17
|
|
||||||
- fixed popdown problem in ToolTip (#75730)
|
|
||||||
|
|
||||||
* Tue Mar 02 2004 Elliot Lee <sopwith@redhat.com>
|
|
||||||
- rebuilt
|
|
||||||
|
|
||||||
* Thu Feb 19 2004 Thomas Woerner <twoerner@redhat.com> 2.2.2-16.3
|
|
||||||
- rebuilt
|
|
||||||
|
|
||||||
* Thu Dec 18 2003 Thomas Woerner <twoerner@redhat.com>
|
|
||||||
- added missing BuildRequires for XFree86-devel
|
|
||||||
|
|
||||||
* Thu Nov 27 2003 Thomas Woerner <twoerner@redhat.com> 2.2.2-16.2
|
|
||||||
- removed rpath
|
|
||||||
|
|
||||||
* Mon Aug 27 2003 Thomas Woerner <twoerner@redhat.com> 2.2.2-16
|
|
||||||
- fixed ToggleBG (#101159)
|
|
||||||
|
|
||||||
* Thu Jul 31 2003 <timp@redhat.com> 2.2.2-15.2
|
|
||||||
- rebuild for RHEL
|
|
||||||
|
|
||||||
* Wed Jul 30 2003 Thomas Woerner <twoerner@redhat.com> 2.2.2-15
|
|
||||||
- fixed ToggleB (#101159)
|
|
||||||
|
|
||||||
* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
|
|
||||||
- rebuilt
|
|
||||||
|
|
||||||
* Tue Jan 21 2003 Thomas Woerner <twoerner@redhat.com> 2.2.2-13
|
|
||||||
- fix for Xmu/EditRes conflict (bug #80777)
|
|
||||||
- fix for wml and utf-8 (bug #80271)
|
|
||||||
- fix for Ext18List (bug #74502)
|
|
||||||
|
|
||||||
* Thu Nov 14 2002 Than Ngo <than@redhat.com> 2.2.2-12.2
|
|
||||||
- add buildprereq byacc and flex (bug #77860)
|
|
||||||
|
|
||||||
* Fri Nov 8 2002 Than Ngo <than@redhat.com> 2.2.2-12.1
|
|
||||||
- fix some build problem
|
|
||||||
|
|
||||||
* Mon Aug 27 2002 Than Ngo <than@redhat.com> 2.2.2-12
|
|
||||||
- Fixed a segmentation fault in mkcatdefs (bug #71955)
|
|
||||||
|
|
||||||
* Wed Jul 24 2002 Than Ngo <than@redhat.com> 2.2.2-11
|
|
||||||
- Added missing symlinks (bug #69117)
|
|
||||||
|
|
||||||
* Tue Jul 23 2002 Tim Powers <timp@redhat.com> 2.2.2-10
|
|
||||||
- build using gcc-3.2-0.1
|
|
||||||
|
|
||||||
* Tue Jun 25 2002 Than Ngo <than@redhat.com> 2.2.2-9
|
|
||||||
- fix to build openmotif (bug #64176)
|
|
||||||
|
|
||||||
* Thu Jun 13 2002 Than Ngo <than@redhat.com> 2.2.2-8
|
|
||||||
- rebuild in new enviroment
|
|
||||||
|
|
||||||
* Sun May 26 2002 Tim Powers <timp@redhat.com>
|
|
||||||
- automated rebuild
|
|
||||||
|
|
||||||
* Thu May 23 2002 Harald Hoyer <harald@redhat.de> 2.2.2-6
|
|
||||||
- patched ltmain.sh to link properly
|
|
||||||
|
|
||||||
* Wed May 22 2002 Harald Hoyer <harald@redhat.de> 2.2.2-6
|
|
||||||
- specified libraries by full name in files section
|
|
||||||
(libMrm was missing on alpha)
|
|
||||||
|
|
||||||
* Tue Mar 26 2002 Than Ngo <than@redhat.com> 2.2.2-5
|
|
||||||
- update new 2.2.2 from ICS
|
|
||||||
|
|
||||||
* Sun Mar 24 2002 Than Ngo <than@redhat.com> 2.2.2-4
|
|
||||||
- add missing uil
|
|
||||||
|
|
||||||
* Fri Mar 22 2002 Tim Powers <timp@redhat.com>
|
|
||||||
- rebuilt to try and shake some broken deps in the devel package
|
|
||||||
|
|
||||||
* Thu Mar 21 2002 Than Ngo <than@redhat.com> 2.2.2-2
|
|
||||||
- rebuild
|
|
||||||
|
|
||||||
* Thu Mar 21 2002 Than Ngo <than@redhat.com> 2.2.2-1
|
|
||||||
- update to 2.2.2 release
|
|
||||||
|
|
||||||
* Mon Feb 22 2002 Than Ngo <than@redhat.com> 2.2.1-3
|
|
||||||
- conflict with older lesstif
|
|
||||||
|
|
||||||
* Mon Feb 22 2002 Than Ngo <than@redhat.com> 2.2.1-2
|
|
||||||
- fix bug #60816
|
|
||||||
|
|
||||||
* Fri Feb 22 2002 Than Ngo <than@redhat.com> 2.2.1-1
|
|
||||||
- update to 2.2.1 release
|
|
||||||
- remove somme patches, which are included in 2.2.1
|
|
||||||
|
|
||||||
* Fri Feb 22 2002 Tim Powers <timp@redhat.com>
|
|
||||||
- rebuilt in new environment
|
|
||||||
|
|
||||||
* Fri Jan 25 2002 Tim Powers <timp@redhat.com>
|
|
||||||
- don't obsolete lesstif anymore, play nicely together
|
|
||||||
- rebuild against new toolchain
|
|
||||||
|
|
||||||
* Wed Jan 21 2002 Than Ngo <than@redhat.com> 2.1.30-11
|
|
||||||
- add some patches from Darrell Commander (supporting largefile)
|
|
||||||
- fix to build on s390
|
|
||||||
|
|
||||||
* Thu Jan 17 2002 Than Ngo <than@redhat.com> 2.1.30-10
|
|
||||||
- rebuild in 8.0
|
|
||||||
|
|
||||||
* Wed Sep 6 2001 Than Ngo <than@redhat.com>
|
|
||||||
- rebuild for ExtraBinge 7.2
|
|
||||||
|
|
||||||
* Thu May 03 2001 Than Ngo <than@redhat.com>
|
|
||||||
- add 3 official motif patches
|
|
||||||
- add rm -rf $RPM_BUILD_ROOT in install section
|
|
||||||
- remove some old patches which are now in official patches
|
|
||||||
|
|
||||||
* Fri Dec 29 2000 Than Ngo <than@redhat.com>
|
|
||||||
- don't build static debug libraries
|
|
||||||
|
|
||||||
* Mon Dec 18 2000 Than Ngo <than@redhat.com>
|
|
||||||
- bzip2 source
|
|
||||||
|
|
||||||
* Mon Jul 24 2000 Than Ngo <than@redhat.de>
|
|
||||||
- rebuilt against gcc-2.96-44
|
|
||||||
|
|
||||||
* Wed Jul 12 2000 Than Ngo <than@redhat.de>
|
|
||||||
- rebuilt
|
|
||||||
|
|
||||||
* Sun Jun 11 2000 Than Ngo <than@redhat.de>
|
|
||||||
- fix imake to built with gcc-2.96 (thanks Jakup)
|
|
||||||
- put bitmaps in /usr/X11R6/include/X11/bitmaps
|
|
||||||
- put bindings in /usr/X11R6/lib/Xm/bindings
|
|
||||||
- add define -D_GNU_SOURCE to build Motif
|
|
||||||
- gzip man pages
|
|
||||||
- cleanup specfile
|
|
||||||
|
|
||||||
* Mon May 29 2000 Bernhard Rosenkraenzer <bero@redhat.com>
|
|
||||||
- Update to patchlevel 2
|
|
||||||
- remove bindings patch, it's included in pl2
|
|
||||||
|
|
||||||
* Tue May 16 2000 Matt Wilson <msw@redhat.com>
|
|
||||||
- use -fPIC on sparc
|
|
||||||
- fixed Ngo's "fixes"
|
|
||||||
|
|
||||||
* Mon May 15 2000 Ngo Than <than@redhat.de>
|
|
||||||
- added description.
|
|
||||||
- fixed spec, added uil stuff.
|
|
||||||
|
|
||||||
* Mon May 15 2000 Matt Wilson <msw@redhat.com>
|
|
||||||
- initialization of spec file.
|
|
1
dead.package
Normal file
1
dead.package
Normal file
@ -0,0 +1 @@
|
|||||||
|
motif package is retired on branch c10s for BAKERY-412
|
Loading…
Reference in New Issue
Block a user