summaryrefslogtreecommitdiff
path: root/repo/x11/motif/17-switch-to-system-iswspace.patch
diff options
context:
space:
mode:
Diffstat (limited to 'repo/x11/motif/17-switch-to-system-iswspace.patch')
-rw-r--r--repo/x11/motif/17-switch-to-system-iswspace.patch384
1 files changed, 0 insertions, 384 deletions
diff --git a/repo/x11/motif/17-switch-to-system-iswspace.patch b/repo/x11/motif/17-switch-to-system-iswspace.patch
deleted file mode 100644
index a77b879..0000000
--- a/repo/x11/motif/17-switch-to-system-iswspace.patch
+++ /dev/null
@@ -1,384 +0,0 @@
-Description: Switch to system iswspace() function
- This patch replaces calls to _XmDataFieldIsWSpace() in lib/Xm/DataF.c
- and _XmTextFieldIsWSpace() in lib/Xm/TextF.c with calls to the system
- iswspace() function.
- .
- It fixes an array bounds error in lib/Xm/DataF.c where
- _XmDataFieldIsWSpace() is called with num_entries = 3.
-Author: Graham Inggs <graham@nerve.org.za>
-Forwarded: http://bugs.motifzone.net/show_bug.cgi?id=1629
-Last-Update: 2013-11-18
---- a/lib/Xm/DataF.c
-+++ b/lib/Xm/DataF.c
-@@ -208,7 +208,6 @@
- static Boolean df_VerifyLeave() ;
- static Boolean _XmDataFieldIsWordBoundary() ;
- static int _XmGetImage(Screen *, char *, XImage **);
--static Boolean _XmDataFieldIsWSpace() ;
- static void df_FindWord() ;
- static void df_FindPrevWord() ;
- static void df_FindNextWord() ;
-@@ -549,10 +548,6 @@
- XmDataFieldWidget tf,
- XmTextPosition pos1,
- XmTextPosition pos2) ;
--static Boolean _XmDataFieldIsWSpace(
-- wchar_t wide_char,
-- wchar_t *white_space,
-- int num_entries) ;
- static void df_FindWord(
- XmDataFieldWidget tf,
- XmTextPosition begin,
-@@ -4549,40 +4544,6 @@
- return False;
- }
-
--/* This routine accepts an array of wchar_t's containing wchar encodings
-- * of whitespace characters (and the number of array elements), comparing
-- * the wide character passed to each element of the array. If a match
-- * is found, we got a white space. This routine exists only because
-- * iswspace(3c) is not yet standard. If a system has isw* available,
-- * calls to this routine should be changed to iswspace(3c) (and callers
-- * should delete initialization of the array), and this routine should
-- * be deleted. Its a stop gap measure to avoid allocating an instance
-- * variable for the white_space array and/or declaring a widget wide
-- * global for the data and using a macro. Its ugly, but it works and
-- * in the long run will be replaced by standard functionality. */
--
--/* ARGSUSED */
--static Boolean
--#ifdef _NO_PROTO
--_XmDataFieldIsWSpace( wide_char, white_space, num_entries )
-- wchar_t wide_char ;
-- wchar_t * white_space ;
-- int num_entries ;
--#else
--_XmDataFieldIsWSpace(
-- wchar_t wide_char,
-- wchar_t * white_space ,
-- int num_entries )
--#endif /* _NO_PROTO */
--{
-- int i;
--
-- for (i=num_entries; i > 0; i--){
-- if (wide_char == white_space[i]) return True;
-- }
-- return False;
--}
--
- static void
- #ifdef _NO_PROTO
- df_FindWord( tf, begin, left, right )
-@@ -4599,7 +4560,6 @@
- #endif /* _NO_PROTO */
- {
- XmTextPosition start, end;
-- wchar_t white_space[3];
-
- if (XmTextF_max_char_size(tf) == 1) {
- for (start = begin; start > 0; start--) {
-@@ -4617,11 +4577,8 @@
- }
- *right = end - 1;
- } else { /* check for iswspace and iswordboundary in each direction */
-- (void)mbtowc(&white_space[0], " ", 1);
-- (void)mbtowc(&white_space[1], "\n", 1);
-- (void)mbtowc(&white_space[2], "\t", 1);
- for (start = begin; start > 0; start --) {
-- if (_XmDataFieldIsWSpace(XmTextF_wc_value(tf)[start-1],white_space, 3)
-+ if (iswspace(XmTextF_wc_value(tf)[start-1])
- || _XmDataFieldIsWordBoundary(tf, (XmTextPosition) start - 1,
- start)) {
- break;
-@@ -4630,7 +4587,7 @@
- *left = start;
-
- for (end = begin; end <= XmTextF_string_length(tf); end++) {
-- if (_XmDataFieldIsWSpace(XmTextF_wc_value(tf)[end], white_space, 3)){
-+ if (iswspace(XmTextF_wc_value(tf)[end])){
- end++;
- break;
- } else if (end < XmTextF_string_length(tf)) {
-@@ -4659,14 +4616,6 @@
- {
-
- XmTextPosition start = XmTextF_cursor_position(tf);
-- wchar_t white_space[3];
--
-- if (XmTextF_max_char_size(tf) != 1) {
-- (void)mbtowc(&white_space[0], " ", 1);
-- (void)mbtowc(&white_space[1], "\n", 1);
-- (void)mbtowc(&white_space[2], "\t", 1);
-- }
--
-
- if (XmTextF_max_char_size(tf) == 1) {
- if ((start > 0) &&
-@@ -4680,11 +4629,9 @@
- }
- df_FindWord(tf, start, left, right);
- } else {
-- if ((start > 0) && (_XmDataFieldIsWSpace(XmTextF_wc_value(tf)[start - 1],
-- white_space, 3))) {
-+ if ((start > 0) && (iswspace(XmTextF_wc_value(tf)[start - 1]))) {
- for (; start > 0; start--) {
-- if (!_XmDataFieldIsWSpace(XmTextF_wc_value(tf)[start -1],
-- white_space, 3)){
-+ if (!iswspace(XmTextF_wc_value(tf)[start -1])){
- start--;
- break;
- }
-@@ -4713,14 +4660,6 @@
- {
-
- XmTextPosition end = XmTextF_cursor_position(tf);
-- wchar_t white_space[3];
--
-- if (XmTextF_max_char_size(tf) != 1) {
-- (void)mbtowc(&white_space[0], " ", 1);
-- (void)mbtowc(&white_space[1], "\n", 1);
-- (void)mbtowc(&white_space[2], "\t", 1);
-- }
--
-
- if(XmTextF_max_char_size(tf) == 1) {
- if (isspace((int)(unsigned char)XmTextF_value(tf)[end])) {
-@@ -4742,9 +4681,9 @@
- if (*right < XmTextF_string_length(tf))
- *right = *right - 1;
- } else {
-- if (_XmDataFieldIsWSpace(XmTextF_wc_value(tf)[end], white_space, 3)) {
-+ if (iswspace(XmTextF_wc_value(tf)[end])) {
- for ( ; end < XmTextF_string_length(tf); end ++) {
-- if (!_XmDataFieldIsWSpace(XmTextF_wc_value(tf)[end], white_space, 3)) {
-+ if (!iswspace(XmTextF_wc_value(tf)[end])) {
- break;
- }
- }
-@@ -4758,10 +4697,9 @@
- * If word boundary caused by whitespace, set right to the last
- * whitespace following the end of the current word.
- */
-- if (_XmDataFieldIsWSpace(XmTextF_wc_value(tf)[(int)*right], white_space, 3)) {
-+ if (iswspace(XmTextF_wc_value(tf)[(int)*right])) {
- while (*right < XmTextF_string_length(tf) &&
-- _XmDataFieldIsWSpace(XmTextF_wc_value(tf)[(int)*right],
-- white_space, 3)) {
-+ iswspace(XmTextF_wc_value(tf)[(int)*right])) {
- *right = *right + 1;
- }
- if (*right < XmTextF_string_length(tf))
-@@ -5872,13 +5810,6 @@
- {
- XmDataFieldWidget tf = (XmDataFieldWidget) w;
- XmTextPosition cursorPos, position, dummy;
-- wchar_t white_space[3];
--
-- if (XmTextF_max_char_size(tf) != 1) {
-- (void)mbtowc(&white_space[0], " ", 1);
-- (void)mbtowc(&white_space[1], "\n", 1);
-- (void)mbtowc(&white_space[2], "\t", 1);
-- }
-
- cursorPos = XmTextF_cursor_position(tf);
-
-@@ -5896,16 +5827,13 @@
- }
- }
- } else {
-- if (_XmDataFieldIsWSpace(XmTextF_wc_value(tf)[cursorPos],
-- white_space, 3))
-+ if (iswspace(XmTextF_wc_value(tf)[cursorPos]))
- df_FindWord(tf, cursorPos, &dummy, &position);
- else
- df_FindNextWord(tf, &dummy, &position);
-- if (_XmDataFieldIsWSpace(XmTextF_wc_value(tf)[position],
-- white_space, 3)){
-+ if (iswspace(XmTextF_wc_value(tf)[position])){
- for (; position < XmTextF_string_length(tf); position++) {
-- if (!_XmDataFieldIsWSpace(XmTextF_wc_value(tf)[position],
-- white_space, 3))
-+ if (!iswspace(XmTextF_wc_value(tf)[position]))
- break;
- }
- }
---- a/lib/Xm/TextF.c
-+++ b/lib/Xm/TextF.c
-@@ -360,10 +360,6 @@
- XmTextPosition pos1,
- XmTextPosition pos2);
-
--static Boolean _XmTextFieldIsWSpace(wchar_t wide_char,
-- wchar_t *white_space,
-- int num_entries);
--
- static void FindWord(XmTextFieldWidget tf,
- XmTextPosition begin,
- XmTextPosition *left,
-@@ -3514,32 +3510,6 @@
- return False;
- }
-
--/* This routine accepts an array of wchar_t's containing wchar encodings
-- * of whitespace characters (and the number of array elements), comparing
-- * the wide character passed to each element of the array. If a match
-- * is found, we got a white space. This routine exists only because
-- * iswspace(3c) is not yet standard. If a system has isw* available,
-- * calls to this routine should be changed to iswspace(3c) (and callers
-- * should delete initialization of the array), and this routine should
-- * be deleted. Its a stop gap measure to avoid allocating an instance
-- * variable for the white_space array and/or declaring a widget wide
-- * global for the data and using a macro. Its ugly, but it works and
-- * in the long run will be replaced by standard functionality. */
--
--/* ARGSUSED */
--static Boolean
--_XmTextFieldIsWSpace(wchar_t wide_char,
-- wchar_t * white_space ,
-- int num_entries)
--{
-- int i;
--
-- for (i=0; i < num_entries; i++) {
-- if (wide_char == white_space[i]) return True;
-- }
-- return False;
--}
--
- static void
- FindWord(XmTextFieldWidget tf,
- XmTextPosition begin,
-@@ -3547,7 +3517,6 @@
- XmTextPosition *right)
- {
- XmTextPosition start, end;
-- wchar_t white_space[3];
-
- if (tf->text.max_char_size == 1) {
- for (start = begin; start > 0; start--) {
-@@ -3565,11 +3534,8 @@
- }
- *right = end - 1;
- } else { /* check for iswspace and iswordboundary in each direction */
-- (void)mbtowc(&white_space[0], " ", 1);
-- (void)mbtowc(&white_space[1], "\n", 1);
-- (void)mbtowc(&white_space[2], "\t", 1);
- for (start = begin; start > 0; start --) {
-- if (_XmTextFieldIsWSpace(TextF_WcValue(tf)[start-1],white_space, 3)
-+ if (iswspace(TextF_WcValue(tf)[start-1])
- || _XmTextFieldIsWordBoundary(tf, (XmTextPosition) start - 1,
- start)) {
- break;
-@@ -3578,7 +3544,7 @@
- *left = start;
-
- for (end = begin; end <= tf->text.string_length; end++) {
-- if (_XmTextFieldIsWSpace(TextF_WcValue(tf)[end], white_space, 3)) {
-+ if (iswspace(TextF_WcValue(tf)[end])) {
- end++;
- break;
- } else if (end < tf->text.string_length) {
-@@ -3599,14 +3565,6 @@
- {
-
- XmTextPosition start = TextF_CursorPosition(tf);
-- wchar_t white_space[3];
--
-- if (tf->text.max_char_size != 1) {
-- (void)mbtowc(&white_space[0], " ", 1);
-- (void)mbtowc(&white_space[1], "\n", 1);
-- (void)mbtowc(&white_space[2], "\t", 1);
-- }
--
-
- if (tf->text.max_char_size == 1) {
- if ((start > 0) &&
-@@ -3620,11 +3578,9 @@
- }
- FindWord(tf, start, left, right);
- } else {
-- if ((start > 0) && (_XmTextFieldIsWSpace(TextF_WcValue(tf)[start - 1],
-- white_space, 3))) {
-+ if ((start > 0) && (iswspace(TextF_WcValue(tf)[start - 1]))) {
- for (; start > 0; start--) {
-- if (!_XmTextFieldIsWSpace(TextF_WcValue(tf)[start -1],
-- white_space, 3)) {
-+ if (!iswspace(TextF_WcValue(tf)[start -1])) {
- start--;
- break;
- }
-@@ -3645,14 +3601,6 @@
- {
-
- XmTextPosition end = TextF_CursorPosition(tf);
-- wchar_t white_space[3];
--
-- if (tf->text.max_char_size != 1) {
-- (void)mbtowc(&white_space[0], " ", 1);
-- (void)mbtowc(&white_space[1], "\n", 1);
-- (void)mbtowc(&white_space[2], "\t", 1);
-- }
--
-
- if(tf->text.max_char_size == 1) {
- if (isspace((unsigned char)TextF_Value(tf)[end])) {
-@@ -3674,9 +3622,9 @@
- if (*right < tf->text.string_length)
- *right = *right - 1;
- } else {
-- if (_XmTextFieldIsWSpace(TextF_WcValue(tf)[end], white_space, 3)) {
-+ if (iswspace(TextF_WcValue(tf)[end])) {
- for (; end < tf->text.string_length; end ++) {
-- if (!_XmTextFieldIsWSpace(TextF_WcValue(tf)[end], white_space, 3)) {
-+ if (!iswspace(TextF_WcValue(tf)[end])) {
- break;
- }
- }
-@@ -3690,10 +3638,9 @@
- * If word boundary caused by whitespace, set right to the last
- * whitespace following the end of the current word.
- */
-- if (_XmTextFieldIsWSpace(TextF_WcValue(tf)[(int)*right], white_space, 3)) {
-+ if (iswspace(TextF_WcValue(tf)[(int)*right])) {
- while (*right < tf->text.string_length &&
-- _XmTextFieldIsWSpace(TextF_WcValue(tf)[(int)*right],
-- white_space, 3)) {
-+ iswspace(TextF_WcValue(tf)[(int)*right])) {
- *right = *right + 1;
- }
- if (*right < tf->text.string_length)
-@@ -4546,13 +4493,6 @@
- {
- XmTextFieldWidget tf = (XmTextFieldWidget) w;
- XmTextPosition cursorPos, position, dummy;
-- wchar_t white_space[3];
--
-- if (tf->text.max_char_size != 1) {
-- (void)mbtowc(&white_space[0], " ", 1);
-- (void)mbtowc(&white_space[1], "\n", 1);
-- (void)mbtowc(&white_space[2], "\t", 1);
-- }
-
- cursorPos = TextF_CursorPosition(tf);
-
-@@ -4570,16 +4510,13 @@
- }
- }
- } else {
-- if (_XmTextFieldIsWSpace(TextF_WcValue(tf)[cursorPos],
-- white_space, 3))
-+ if (iswspace(TextF_WcValue(tf)[cursorPos]))
- FindWord(tf, cursorPos, &dummy, &position);
- else
- FindNextWord(tf, &dummy, &position);
-- if (_XmTextFieldIsWSpace(TextF_WcValue(tf)[position],
-- white_space, 3)) {
-+ if (iswspace(TextF_WcValue(tf)[position])) {
- for (; position < tf->text.string_length; position++) {
-- if (!_XmTextFieldIsWSpace(TextF_WcValue(tf)[position],
-- white_space, 3))
-+ if (!iswspace(TextF_WcValue(tf)[position]))
- break;
- }
- }