summaryrefslogtreecommitdiffstats
path: root/development/icon/patches
diff options
context:
space:
mode:
Diffstat (limited to 'development/icon/patches')
-rw-r--r--development/icon/patches/display.patch44
-rw-r--r--development/icon/patches/glibc.patch23
-rw-r--r--development/icon/patches/implicit-defs.patch162
-rw-r--r--development/icon/patches/lexer.patch18
-rw-r--r--development/icon/patches/maxtype.patch18
5 files changed, 265 insertions, 0 deletions
diff --git a/development/icon/patches/display.patch b/development/icon/patches/display.patch
new file mode 100644
index 0000000000..05eab35d2c
--- /dev/null
+++ b/development/icon/patches/display.patch
@@ -0,0 +1,44 @@
+commit d0cd013653360f6f11e3b5dbdbbf3788a5c08b02
+Author: Gregg Townsend <gmt@cs.arizona.edu>
+Date: Thu Dec 4 15:37:39 2014 -0700
+
+ Handle $DISPLAY longer than 63 characters.
+ First seen as a problem on Macintosh OS X 10.10 ("Yosemite").
+ Side effects revealed other bugs in cross-display CopyArea and
+ gamma correction.
+
+diff --git a/src/h/graphics.h b/src/h/graphics.h
+--- a/src/h/graphics.h
++++ b/src/h/graphics.h
+@@ -201,7 +201,7 @@
+ typedef struct _wdisplay {
+ int refcount;
+ int serial; /* serial # */
+- char name[MAXDISPLAYNAME];
++ char *name;
+ Display * display;
+ Visual * visual;
+ GC icongc;
+diff --git a/src/h/xwin.h b/src/h/xwin.h
+--- a/src/h/xwin.h
++++ b/src/h/xwin.h
+@@ -73,7 +73,6 @@
+ */
+ #define WMAXCOLORS 256
+ #define MAXCOLORNAME 40
+-#define MAXDISPLAYNAME 64
+ #define CSHARED 0
+ #define CMUTABLE 1
+ #define NUMCURSORSYMS 78
+diff --git a/src/runtime/rxrsc.ri b/src/runtime/rxrsc.ri
+--- a/src/runtime/rxrsc.ri
++++ b/src/runtime/rxrsc.ri
+@@ -376,7 +376,7 @@
+
+ GRFX_ALLOC(wd, _wdisplay);
+
+- strcpy(wd->name,s);
++ wd->name = salloc(s);
+ wd->display = XOpenDisplay((*s=='\0') ? NULL : s);
+
+ if (wd->display == NULL) {
diff --git a/development/icon/patches/glibc.patch b/development/icon/patches/glibc.patch
new file mode 100644
index 0000000000..b0629d0cc8
--- /dev/null
+++ b/development/icon/patches/glibc.patch
@@ -0,0 +1,23 @@
+commit bfc4a6004d0d3984c8066289b8d8e563640c4ddd
+Author: Gregg Townsend <gmt@cs.arizona.edu>
+Date: Mon Oct 29 10:07:31 2018 -0700
+
+ Adapt to change in GLIBC v2.28 internals (thx Cheyenne Wills).
+
+diff --git a/ipl/cfuncs/fpoll.c b/ipl/cfuncs/fpoll.c
+--- a/ipl/cfuncs/fpoll.c
++++ b/ipl/cfuncs/fpoll.c
+@@ -60,12 +64,9 @@
+
+ /* check for data already in buffer */
+ /* there's no legal way to do this in C; we cheat */
+-#if defined(__GLIBC__) && defined(_STDIO_USES_IOSTREAM) /* new GCC library */
++#if defined(__GLIBC__) /* new GCC library */
+ if (f->_IO_read_ptr < f->_IO_read_end)
+ RetArg(1);
+-#elif defined(__GLIBC__) /* old GCC library */
+- if (f->__bufp < f->__get_limit)
+- RetArg(1);
+ #elif defined(_FSTDIO) /* new BSD library */
+ if (f->_r > 0)
+ RetArg(1);
diff --git a/development/icon/patches/implicit-defs.patch b/development/icon/patches/implicit-defs.patch
new file mode 100644
index 0000000000..9e015c7ad7
--- /dev/null
+++ b/development/icon/patches/implicit-defs.patch
@@ -0,0 +1,162 @@
+commit 8cb4887b886ad0c9caf0be595e236d2a74a41a8d
+Author: Gregg Townsend <gmt@cs.arizona.edu>
+Date: Mon Aug 28 09:10:00 2017 -0700
+
+ Fix compilation warnings in xpm code (thx Sean Jensen).
+
+diff --git a/src/xpm/create.c b/src/xpm/create.c
+--- a/src/xpm/create.c
++++ b/src/xpm/create.c
+@@ -344,6 +344,7 @@
+
+ #endif
+
++int
+ xpmCreateImage(display, attrib, image_return, shapeimage_return, attributes)
+ Display *display;
+ xpmInternAttrib *attrib;
+diff --git a/src/xpm/data.c b/src/xpm/data.c
+--- a/src/xpm/data.c
++++ b/src/xpm/data.c
+@@ -110,6 +110,7 @@
+ /*
+ * skip to the end of the current string and the beginning of the next one
+ */
++void
+ xpmNextString(mdata)
+ xpmData *mdata;
+ {
+@@ -277,6 +278,7 @@
+ /*
+ * get the current comment line
+ */
++void
+ xpmGetCmt(mdata, cmt)
+ xpmData *mdata;
+ char **cmt;
+@@ -403,6 +405,7 @@
+ /*
+ * close the file related to the xpmData if any
+ */
++void
+ XpmDataClose(mdata)
+ xpmData *mdata;
+ {
+diff --git a/src/xpm/misc.c b/src/xpm/misc.c
+--- a/src/xpm/misc.c
++++ b/src/xpm/misc.c
+@@ -14,6 +14,7 @@
+ * Free the computed color table
+ */
+
++void
+ xpmFreeColorTable(colorTable, ncolors)
+ char ***colorTable;
+ int ncolors;
+@@ -39,6 +40,7 @@
+ * which ones must be freed later on.
+ */
+
++void
+ xpmInitInternAttrib(attrib)
+ xpmInternAttrib *attrib;
+ {
+@@ -55,6 +57,7 @@
+ * Free the xpmInternAttrib pointers which have been allocated
+ */
+
++void
+ xpmFreeInternAttrib(attrib)
+ xpmInternAttrib *attrib;
+ {
+@@ -80,6 +83,7 @@
+ /*
+ * Free array of extensions
+ */
++void
+ XpmFreeExtensions(extensions, nextensions)
+ XpmExtension *extensions;
+ int nextensions;
+@@ -108,6 +112,7 @@
+ * Return the XpmAttributes structure size
+ */
+
++int
+ XpmAttributesSize()
+ {
+ return sizeof(XpmAttributes);
+@@ -119,6 +124,7 @@
+ * but the structure itself
+ */
+
++void
+ XpmFreeAttributes(attributes)
+ XpmAttributes *attributes;
+ {
+@@ -167,6 +173,7 @@
+ * the xpmInternAttrib structure.
+ */
+
++void
+ xpmSetAttributes(attrib, attributes)
+ xpmInternAttrib *attrib;
+ XpmAttributes *attributes;
+diff --git a/src/xpm/xpm.h b/src/xpm/xpm.h
+--- a/src/xpm/xpm.h
++++ b/src/xpm/xpm.h
+@@ -191,8 +191,8 @@
+ XpmAttributes * attributes));
+
+ FUNC(XpmAttributesSize, int, ());
+- FUNC(XpmFreeAttributes, int, (XpmAttributes * attributes));
+- FUNC(XpmFreeExtensions, int, (XpmExtension * extensions, int nextensions));
++ FUNC(XpmFreeAttributes, void, (XpmAttributes * attributes));
++ FUNC(XpmFreeExtensions, void, (XpmExtension * extensions, int nextensions));
+
+ #ifdef __cplusplus
+ } /* for C++ V2.0 */
+diff --git a/src/xpm/xpmP.h b/src/xpm/xpmP.h
+--- a/src/xpm/xpmP.h
++++ b/src/xpm/xpmP.h
+@@ -159,13 +159,13 @@
+ XpmAttributes * attributes,
+ xpmInternAttrib * attrib));
+
+-FUNC(xpmFreeColorTable, int, (char ***colorTable, int ncolors));
++FUNC(xpmFreeColorTable, void, (char ***colorTable, int ncolors));
+
+-FUNC(xpmInitInternAttrib, int, (xpmInternAttrib * xmpdata));
++FUNC(xpmInitInternAttrib, void, (xpmInternAttrib * xmpdata));
+
+-FUNC(xpmFreeInternAttrib, int, (xpmInternAttrib * xmpdata));
++FUNC(xpmFreeInternAttrib, void, (xpmInternAttrib * xmpdata));
+
+-FUNC(xpmSetAttributes, int, (xpmInternAttrib * attrib,
++FUNC(xpmSetAttributes, void, (xpmInternAttrib * attrib,
+ XpmAttributes * attributes));
+
+ FUNC(xpmGetAttributes, int, (XpmAttributes * attributes,
+@@ -173,18 +173,20 @@
+
+ /* I/O utility */
+
+-FUNC(xpmNextString, int, (xpmData * mdata));
++FUNC(atoui, unsigned int, (char *p, unsigned int l, unsigned int *ui_return));
++FUNC(xpmGetString, int, (xpmData *mdata, char **sptr, unsigned int *l));
++FUNC(xpmNextString, void, (xpmData * mdata));
+ FUNC(xpmNextUI, int, (xpmData * mdata, unsigned int *ui_return));
+
+ #define xpmGetC(mdata) \
+ (mdata->type ? (getc(mdata->stream.file)) : (*mdata->cptr++))
+
+ FUNC(xpmNextWord, unsigned int, (xpmData * mdata, char *buf));
+-FUNC(xpmGetCmt, int, (xpmData * mdata, char **cmt));
++FUNC(xpmGetCmt, void, (xpmData * mdata, char **cmt));
+ FUNC(xpmReadFile, int, (char *filename, xpmData * mdata));
+ FUNC(xpmWriteFile, int, (char *filename, xpmData * mdata));
+ FUNC(xpmOpenArray, void, (char **data, xpmData * mdata));
+-FUNC(XpmDataClose, int, (xpmData * mdata));
++FUNC(XpmDataClose, void, (xpmData * mdata));
+
+ /* RGB utility */
+
diff --git a/development/icon/patches/lexer.patch b/development/icon/patches/lexer.patch
new file mode 100644
index 0000000000..290ed67364
--- /dev/null
+++ b/development/icon/patches/lexer.patch
@@ -0,0 +1,18 @@
+commit bb7c6b5232d8cf0ad98e5ab8e8e3afd3a249751f
+Author: Gregg Townsend <gmt@cs.arizona.edu>
+Date: Mon Aug 28 08:08:32 2017 -0700
+
+ Fix ancient potential lexer bug (thx Sean Jensen).
+
+diff --git a/src/common/yylex.h b/src/common/yylex.h
+--- a/src/common/yylex.h
++++ b/src/common/yylex.h
+@@ -263,7 +263,7 @@
+ {
+ register char *s1;
+ s1 = lex_sbuf.strtimage;
+- while (s != '\0' && s1 < lex_sbuf.endimage && *s == *s1) {
++ while (*s != '\0' && s1 < lex_sbuf.endimage && *s == *s1) {
+ ++s;
+ ++s1;
+ }
diff --git a/development/icon/patches/maxtype.patch b/development/icon/patches/maxtype.patch
new file mode 100644
index 0000000000..4e4651cc96
--- /dev/null
+++ b/development/icon/patches/maxtype.patch
@@ -0,0 +1,18 @@
+commit e91f59f3affe69043586cb171ad1f8027e31d930
+Author: Gregg Townsend <gmt@cs.arizona.edu>
+Date: Sat Mar 11 08:41:26 2017 -0700
+
+ Fix innocuous MaxType definition bug (thx Don Ward).
+
+diff --git a/src/h/rmacros.h b/src/h/rmacros.h
+--- a/src/h/rmacros.h
++++ b/src/h/rmacros.h
+@@ -301,7 +301,7 @@
+ #define T_Kywdstr 24 /* string keyword */
+ #define T_Kywdevent 25 /* keyword &eventsource, etc. */
+
+-#define MaxType 26 /* maximum type number */
++#define MaxType 25 /* maximum type number */
+
+ /*
+ * Definitions for keywords.