that would be about it.

>From e5e098ed416cf28b9d6faa101c5376ff7c1d2bfb Mon Sep 17 00:00:00 2001
From: Tamas TEVESZ <[email protected]>
Date: Sun, 21 Mar 2010 14:14:07 +0100
Subject: [PATCH] Remove texture plugins

- leave a note for the unlikely case of such configuration being found,
  the user is notified properly
---
 TODO             |    1 -
 configure.ac     |   13 --------
 src/Makefile.am  |    3 +-
 src/defaults.c   |   68 ++++--------------------------------------
 src/texture.c    |   88 +-----------------------------------------------------
 src/texture.h    |    3 --
 src/wconfig.h.in |    6 ----
 util/Makefile.am |    4 +-
 util/wmsetbg.c   |   84 ++-------------------------------------------------
 9 files changed, 13 insertions(+), 257 deletions(-)

diff --git a/TODO b/TODO
index 81ef77c..0a55c9e 100644
--- a/TODO
+++ b/TODO
@@ -67,5 +67,4 @@ After 1.0.0 is released
 - rework/redesign the appicon/dock/clip concept
 - maybe rewrite the main code in obj-c or c++
 - major clean up in theming/texturing stuff
-- dynamically loadable everything
 
diff --git a/configure.ac b/configure.ac
index a4be3a6..db019b7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -116,18 +116,6 @@ if test x"$_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
     AC_DEFINE(HAVE_C99_VSNPRINTF, 1, [define if you have vsnprintf with C99 
semantics (set by configure)])
 fi
 
-dnl Loading of dynamic libraries at runtime
-dnl =======================================
-DLLIBS=""
-
-AC_CHECK_FUNC(dlopen, [HAVEDL="yes"], 
-       AC_CHECK_LIB(dl, dlopen, [DLLIBS="-ldl" HAVEDL="yes"],
-                        DLLIBS="" ))
-
-if test "x$HAVEDL" = xyes; then
-    AC_CHECK_HEADERS(dlfcn.h)
-fi
-
 dnl Check for inotify
 dnl =================
 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
@@ -374,7 +362,6 @@ fi
 
 
 
-AC_SUBST(DLLIBS)
 AC_SUBST(INTLIBS)
 AC_SUBST(NLSDIR)
 AC_SUBST(MOFILES)
diff --git a/src/Makefile.am b/src/Makefile.am
index 4c0be48..dbab5a2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -118,8 +118,7 @@ wmaker_LDADD = \
        @XLFLAGS@ \
        @XFTLIBS@ \
        @XLIBS@ \
-       @INTLIBS@ \
-       @DLLIBS@
+       @INTLIBS@
 
 LIBTOOL = $(SHELL) $(top_srcdir)/libtool $(LIBTOOL_ARG)
 
diff --git a/src/defaults.c b/src/defaults.c
index 4acf51a..a02a03b 100644
--- a/src/defaults.c
+++ b/src/defaults.c
@@ -36,10 +36,6 @@
 #include <limits.h>
 #include <signal.h>
 
-#ifdef HAVE_DLFCN_H
-# include <dlfcn.h>
-#endif
-
 #ifndef PATH_MAX
 #define PATH_MAX DEFAULT_PATH_MAX
 #endif
@@ -1792,64 +1788,12 @@ static WTexture *parse_texture(WScreen * scr, 
WMPropList * pl)
                val = WMGetFromPLString(elem);
 
                texture = (WTexture *) wTextureMakeTGradient(scr, style, 
&color1, &color2, val, opacity);
-       }
-#ifdef TEXTURE_PLUGIN
-       else if (strcasecmp(val, "function") == 0) {
-               WTexFunction *function;
-               void (*initFunc) (Display *, Colormap);
-               char *lib, *func, **argv;
-               int i, argc;
-
-               if (nelem < 3)
-                       return NULL;
-
-               /* get the library name */
-               elem = WMGetFromPLArray(pl, 1);
-               if (!elem || !WMIsPLString(elem)) {
-                       return NULL;
-               }
-               lib = WMGetFromPLString(elem);
-
-               /* get the function name */
-               elem = WMGetFromPLArray(pl, 2);
-               if (!elem || !WMIsPLString(elem)) {
-                       return NULL;
-               }
-               func = WMGetFromPLString(elem);
-
-               argc = nelem - 2;
-               argv = (char **)wmalloc(argc * sizeof(char *));
-
-               /* get the parameters */
-               argv[0] = wstrdup(func);
-               for (i = 0; i < argc - 1; i++) {
-                       elem = WMGetFromPLArray(pl, 3 + i);
-                       if (!elem || !WMIsPLString(elem)) {
-                               wfree(argv);
-
-                               return NULL;
-                       }
-                       argv[i + 1] = wstrdup(WMGetFromPLString(elem));
-               }
-
-               function = wTextureMakeFunction(scr, lib, func, argc, argv);
-
-#ifdef HAVE_DLFCN_H
-               if (function) {
-                       initFunc = dlsym(function->handle, "initWindowMaker");
-                       if (initFunc) {
-                               initFunc(dpy, scr->w_colormap);
-                       } else {
-                               wwarning(_("could not initialize library %s"), 
lib);
-                       }
-               } else {
-                       wwarning(_("could not find function %s::%s"), lib, 
func);
-               }
-#endif                         /* HAVE_DLFCN_H */
-               texture = (WTexture *) function;
-       }
-#endif                         /* TEXTURE_PLUGIN */
-       else {
+       } else if (strcasecmp(val, "function") == 0) {
+               /* Leave this in to handle the unlikely case of
+                * someone actually having function textures configured */
+               wwarning("function texture support has been removed");
+               return NULL;
+       } else {
                wwarning(_("invalid texture type %s"), val);
                return NULL;
        }
diff --git a/src/texture.c b/src/texture.c
index 6414fd3..0215741 100644
--- a/src/texture.c
+++ b/src/texture.c
@@ -24,12 +24,6 @@
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 
-#ifdef TEXTURE_PLUGIN
-# ifdef HAVE_DLFCN_H
-#  include <dlfcn.h>
-# endif
-#endif
-
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -160,21 +154,8 @@ void wTextureDestroy(WScreen * scr, WTexture * texture)
        case WTEX_TDGRADIENT:
                RReleaseImage(texture->tgradient.pixmap);
                break;
-
-#ifdef TEXTURE_PLUGIN
-       case WTEX_FUNCTION:
-#ifdef HAVE_DLFCN_H
-               if (texture->function.handle) {
-                       dlclose(texture->function.handle);
-               }
-#endif
-               for (i = 0; i < texture->function.argc; i++) {
-                       wfree(texture->function.argv[i]);
-               }
-               wfree(texture->function.argv);
-               break;
-#endif                         /* TEXTURE_PLUGIN */
        }
+
        if (CANFREE(texture->any.color.pixel))
                colors[count++] = texture->any.color.pixel;
        if (count > 0) {
@@ -361,58 +342,6 @@ WTexTGradient *wTextureMakeTGradient(WScreen * scr, int 
style, RColor * from, RC
        return texture;
 }
 
-#ifdef TEXTURE_PLUGIN
-WTexFunction *wTextureMakeFunction(WScreen * scr, char *lib, char *func, int 
argc, char **argv)
-{
-       XColor fallbackColor;
-       XGCValues gcv;
-       WTexFunction *texture;
-
-       texture = wmalloc(sizeof(WTexture));
-       memset(&fallbackColor, 0, sizeof(fallbackColor));
-
-       texture->type = WTEX_FUNCTION;
-       texture->handle = NULL;
-       texture->render = 0;
-       texture->argc = argc;
-       texture->argv = argv;
-
-       fallbackColor.red = 0x8000;
-       fallbackColor.green = 0x8000;
-       fallbackColor.blue = 0x8000;
-
-       gcv.background = gcv.foreground = fallbackColor.pixel;
-       gcv.graphics_exposures = False;
-       texture->normal_gc = XCreateGC(dpy, scr->w_win, GCForeground | 
GCBackground | GCGraphicsExposures, &gcv);
-
-# ifdef HAVE_DLFCN_H
-       /* open the library */
-       texture->handle = dlopen(lib, RTLD_LAZY);
-       if (!texture->handle) {
-               wwarning(_("library \"%s\" cound not be opened."), lib);
-               wfree(argv);
-               wfree(texture);
-               return NULL;
-       }
-
-       /* find the function */
-       texture->render = dlsym(texture->handle, func);
-       if (!texture->render) {
-               wwarning(_("function \"%s\" not found in library \"%s\""), 
func, lib);
-               wfree(argv);
-               dlclose(texture->handle);
-               wfree(texture);
-               return NULL;
-       }
-# else
-       wwarning(_("function textures not supported on this system, sorry."));
-# endif
-
-       /* success! */
-       return texture;
-}
-#endif                         /* TEXTURE_PLUGIN */
-
 RImage *wTextureRenderImage(WTexture * texture, int width, int height, int 
relief)
 {
        RImage *image = NULL;
@@ -513,21 +442,6 @@ RImage *wTextureRenderImage(WTexture * texture, int width, 
int height, int relie
                        RReleaseImage(grad);
                }
                break;
-
-#ifdef TEXTURE_PLUGIN
-       case WTEX_FUNCTION:
-#ifdef HAVE_DLFCN_H
-               if (texture->function.render) {
-                       image = 
texture->function.render(texture->function.argc, texture->function.argv,
-                                                        width, height, relief);
-               }
-#endif
-               if (!image) {
-                       RErrorCode = RERR_INTERNAL;
-               }
-               break;
-#endif                         /* TEXTURE_PLUGIN */
-
        default:
                puts("ERROR in wTextureRenderImage()");
                image = NULL;
diff --git a/src/texture.h b/src/texture.h
index 8a8063c..7381145 100644
--- a/src/texture.h
+++ b/src/texture.h
@@ -166,9 +166,6 @@ WTexTGradient *wTextureMakeTGradient(WScreen*, int, 
RColor*, RColor*, char *, in
 WTexIGradient *wTextureMakeIGradient(WScreen*, int, RColor[], int, RColor[]);
 WTexPixmap *wTextureMakePixmap(WScreen *scr, int style, char *pixmap_file,
                                XColor *color);
-#ifdef TEXTURE_PLUGIN
-WTexFunction *wTextureMakeFunction(WScreen*, char *, char *, int, char **);
-#endif
 void wTextureDestroy(WScreen*, WTexture*);
 void wTexturePaint(WTexture *, Pixmap *, WCoreWindow*, int, int);
 void wTextureRender(WScreen*, WTexture*, Pixmap*, int, int, int);
diff --git a/src/wconfig.h.in b/src/wconfig.h.in
index d3b38a5..1a3bd11 100644
--- a/src/wconfig.h.in
+++ b/src/wconfig.h.in
@@ -32,12 +32,6 @@
  * Also check the features you can enable through configure.
  */
 
-/*
- * #undefine if you dont want texture plugin support or your system have
- * some sort of problem with them.
- */
-#define TEXTURE_PLUGIN
-
 /* If you want animations for iconification, shading, icon arrangement etc. */
 #define ANIMATIONS
 
diff --git a/util/Makefile.am b/util/Makefile.am
index b21ba17..6305a41 100644
--- a/util/Makefile.am
+++ b/util/Makefile.am
@@ -49,13 +49,13 @@ wmagnify_LDADD = \
        $(top_builddir)/WINGs/libWINGs.la \
        $(top_builddir)/WINGs/libWUtil.la \
        $(top_builddir)/wrlib/libwraster.la \
-       @XFTLIBS@ @INTLIBS@ @DLLIBS@
+       @XFTLIBS@ @INTLIBS@
 
 wmsetbg_LDADD = \
        $(top_builddir)/WINGs/libWINGs.la \
        $(top_builddir)/WINGs/libWUtil.la \
        $(top_builddir)/wrlib/libwraster.la \
-       @XLFLAGS@ @XLIBS@ @XFTLIBS@ @INTLIBS@ @DLLIBS@
+       @XLFLAGS@ @XLIBS@ @XFTLIBS@ @INTLIBS@
 
 wmgenmenu_LDADD = \
        $(top_builddir)/WINGs/libWUtil.la \
diff --git a/util/wmsetbg.c b/util/wmsetbg.c
index 1037bf2..312e619 100644
--- a/util/wmsetbg.c
+++ b/util/wmsetbg.c
@@ -47,10 +47,6 @@
 # endif
 #endif
 
-#ifdef HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
 #include "../src/wconfig.h"
 
 #ifndef GLOBAL_DEFAULTS_SUBDIR
@@ -663,84 +659,10 @@ BackgroundTexture *parseTexture(RContext * rc, char *text)
 
                texture->pixmap = pixmap;
        } else if (strcasecmp(type, "function") == 0) {
-#ifdef HAVE_DLFCN_H
-               void (*initFunc) (Display *, Colormap);
-               RImage *(*mainFunc) (int, char **, int, int, int);
-               Pixmap pixmap;
-               RImage *image = 0;
-               int success = 0;
-               char *lib, *func, **argv = 0;
-               void *handle = 0;
-               int i, argc;
-
-               if (count < 3)
-                       goto function_cleanup;
-
-               /* get the library name */
-               GETSTRORGOTO(val, lib, 1, function_cleanup);
-
-               /* get the function name */
-               GETSTRORGOTO(val, func, 2, function_cleanup);
-
-               argc = count - 2;
-               argv = (char **)wmalloc(argc * sizeof(char *));
-
-               /* get the parameters */
-               argv[0] = func;
-               for (i = 0; i < argc - 1; i++) {
-                       GETSTRORGOTO(val, tmp, 3 + i, function_cleanup);
-                       argv[i + 1] = wstrdup(tmp);
-               }
-
-               handle = dlopen(lib, RTLD_LAZY);
-               if (!handle) {
-                       wwarning("could not find library %s", lib);
-                       goto function_cleanup;
-               }
-
-               initFunc = dlsym(handle, "initWindowMaker");
-               if (!initFunc) {
-                       wwarning("could not initialize library %s", lib);
-                       goto function_cleanup;
-               }
-               initFunc(dpy, DefaultColormap(dpy, scr));
-
-               mainFunc = dlsym(handle, func);
-               if (!mainFunc) {
-                       wwarning("could not find function %s::%s", lib, func);
-                       goto function_cleanup;
-               }
-               image = mainFunc(argc, argv, scrWidth, scrHeight, 0);
-
-               if (!RConvertImage(rc, image, &pixmap)) {
-                       wwarning("could not convert texture:%s", 
RMessageForError(RErrorCode));
-                       goto function_cleanup;
-               }
-               texture->width = scrWidth;
-               texture->height = scrHeight;
-               texture->pixmap = pixmap;
-               success = 1;
-
- function_cleanup:
-               if (argv) {
-                       int i;
-                       for (i = 0; i < argc; i++) {
-                               wfree(argv[i]);
-                       }
-               }
-               if (handle) {
-                       dlclose(handle);
-               }
-               if (image) {
-                       RReleaseImage(image);
-               }
-               if (!success) {
-                       goto error;
-               }
-#else
-               wwarning("function textures not supported");
+               /* Leave this in to handle the unlikely case of
+                * someone actually having function textures configured */
+               wwarning("function texture support has been removed");
                goto error;
-#endif
        } else {
                wwarning("invalid texture type %s", text);
                goto error;
-- 
1.7.0


-- 
[-]

mkdir /nonexistent
From e5e098ed416cf28b9d6faa101c5376ff7c1d2bfb Mon Sep 17 00:00:00 2001
From: Tamas TEVESZ <[email protected]>
Date: Sun, 21 Mar 2010 14:14:07 +0100
Subject: [PATCH] Remove texture plugins

- leave a note for the unlikely case of such configuration being found,
  the user is notified properly
---
 TODO             |    1 -
 configure.ac     |   13 --------
 src/Makefile.am  |    3 +-
 src/defaults.c   |   68 ++++--------------------------------------
 src/texture.c    |   88 +-----------------------------------------------------
 src/texture.h    |    3 --
 src/wconfig.h.in |    6 ----
 util/Makefile.am |    4 +-
 util/wmsetbg.c   |   84 ++-------------------------------------------------
 9 files changed, 13 insertions(+), 257 deletions(-)

diff --git a/TODO b/TODO
index 81ef77c..0a55c9e 100644
--- a/TODO
+++ b/TODO
@@ -67,5 +67,4 @@ After 1.0.0 is released
 - rework/redesign the appicon/dock/clip concept
 - maybe rewrite the main code in obj-c or c++
 - major clean up in theming/texturing stuff
-- dynamically loadable everything
 
diff --git a/configure.ac b/configure.ac
index a4be3a6..db019b7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -116,18 +116,6 @@ if test x"$_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
     AC_DEFINE(HAVE_C99_VSNPRINTF, 1, [define if you have vsnprintf with C99 semantics (set by configure)])
 fi
 
-dnl Loading of dynamic libraries at runtime
-dnl =======================================
-DLLIBS=""
-
-AC_CHECK_FUNC(dlopen, [HAVEDL="yes"], 
-	AC_CHECK_LIB(dl, dlopen, [DLLIBS="-ldl" HAVEDL="yes"],
-			 DLLIBS="" ))
-
-if test "x$HAVEDL" = xyes; then
-    AC_CHECK_HEADERS(dlfcn.h)
-fi
-
 dnl Check for inotify
 dnl =================
 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
@@ -374,7 +362,6 @@ fi
 
 
 
-AC_SUBST(DLLIBS)
 AC_SUBST(INTLIBS)
 AC_SUBST(NLSDIR)
 AC_SUBST(MOFILES)
diff --git a/src/Makefile.am b/src/Makefile.am
index 4c0be48..dbab5a2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -118,8 +118,7 @@ wmaker_LDADD = \
 	@XLFLAGS@ \
 	@XFTLIBS@ \
 	@XLIBS@ \
-	@INTLIBS@ \
-	@DLLIBS@
+	@INTLIBS@
 
 LIBTOOL = $(SHELL) $(top_srcdir)/libtool $(LIBTOOL_ARG)
 
diff --git a/src/defaults.c b/src/defaults.c
index 4acf51a..a02a03b 100644
--- a/src/defaults.c
+++ b/src/defaults.c
@@ -36,10 +36,6 @@
 #include <limits.h>
 #include <signal.h>
 
-#ifdef HAVE_DLFCN_H
-# include <dlfcn.h>
-#endif
-
 #ifndef PATH_MAX
 #define PATH_MAX DEFAULT_PATH_MAX
 #endif
@@ -1792,64 +1788,12 @@ static WTexture *parse_texture(WScreen * scr, WMPropList * pl)
 		val = WMGetFromPLString(elem);
 
 		texture = (WTexture *) wTextureMakeTGradient(scr, style, &color1, &color2, val, opacity);
-	}
-#ifdef TEXTURE_PLUGIN
-	else if (strcasecmp(val, "function") == 0) {
-		WTexFunction *function;
-		void (*initFunc) (Display *, Colormap);
-		char *lib, *func, **argv;
-		int i, argc;
-
-		if (nelem < 3)
-			return NULL;
-
-		/* get the library name */
-		elem = WMGetFromPLArray(pl, 1);
-		if (!elem || !WMIsPLString(elem)) {
-			return NULL;
-		}
-		lib = WMGetFromPLString(elem);
-
-		/* get the function name */
-		elem = WMGetFromPLArray(pl, 2);
-		if (!elem || !WMIsPLString(elem)) {
-			return NULL;
-		}
-		func = WMGetFromPLString(elem);
-
-		argc = nelem - 2;
-		argv = (char **)wmalloc(argc * sizeof(char *));
-
-		/* get the parameters */
-		argv[0] = wstrdup(func);
-		for (i = 0; i < argc - 1; i++) {
-			elem = WMGetFromPLArray(pl, 3 + i);
-			if (!elem || !WMIsPLString(elem)) {
-				wfree(argv);
-
-				return NULL;
-			}
-			argv[i + 1] = wstrdup(WMGetFromPLString(elem));
-		}
-
-		function = wTextureMakeFunction(scr, lib, func, argc, argv);
-
-#ifdef HAVE_DLFCN_H
-		if (function) {
-			initFunc = dlsym(function->handle, "initWindowMaker");
-			if (initFunc) {
-				initFunc(dpy, scr->w_colormap);
-			} else {
-				wwarning(_("could not initialize library %s"), lib);
-			}
-		} else {
-			wwarning(_("could not find function %s::%s"), lib, func);
-		}
-#endif				/* HAVE_DLFCN_H */
-		texture = (WTexture *) function;
-	}
-#endif				/* TEXTURE_PLUGIN */
-	else {
+	} else if (strcasecmp(val, "function") == 0) {
+		/* Leave this in to handle the unlikely case of
+		 * someone actually having function textures configured */
+		wwarning("function texture support has been removed");
+		return NULL;
+	} else {
 		wwarning(_("invalid texture type %s"), val);
 		return NULL;
 	}
diff --git a/src/texture.c b/src/texture.c
index 6414fd3..0215741 100644
--- a/src/texture.c
+++ b/src/texture.c
@@ -24,12 +24,6 @@
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 
-#ifdef TEXTURE_PLUGIN
-# ifdef HAVE_DLFCN_H
-#  include <dlfcn.h>
-# endif
-#endif
-
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -160,21 +154,8 @@ void wTextureDestroy(WScreen * scr, WTexture * texture)
 	case WTEX_TDGRADIENT:
 		RReleaseImage(texture->tgradient.pixmap);
 		break;
-
-#ifdef TEXTURE_PLUGIN
-	case WTEX_FUNCTION:
-#ifdef HAVE_DLFCN_H
-		if (texture->function.handle) {
-			dlclose(texture->function.handle);
-		}
-#endif
-		for (i = 0; i < texture->function.argc; i++) {
-			wfree(texture->function.argv[i]);
-		}
-		wfree(texture->function.argv);
-		break;
-#endif				/* TEXTURE_PLUGIN */
 	}
+
 	if (CANFREE(texture->any.color.pixel))
 		colors[count++] = texture->any.color.pixel;
 	if (count > 0) {
@@ -361,58 +342,6 @@ WTexTGradient *wTextureMakeTGradient(WScreen * scr, int style, RColor * from, RC
 	return texture;
 }
 
-#ifdef TEXTURE_PLUGIN
-WTexFunction *wTextureMakeFunction(WScreen * scr, char *lib, char *func, int argc, char **argv)
-{
-	XColor fallbackColor;
-	XGCValues gcv;
-	WTexFunction *texture;
-
-	texture = wmalloc(sizeof(WTexture));
-	memset(&fallbackColor, 0, sizeof(fallbackColor));
-
-	texture->type = WTEX_FUNCTION;
-	texture->handle = NULL;
-	texture->render = 0;
-	texture->argc = argc;
-	texture->argv = argv;
-
-	fallbackColor.red = 0x8000;
-	fallbackColor.green = 0x8000;
-	fallbackColor.blue = 0x8000;
-
-	gcv.background = gcv.foreground = fallbackColor.pixel;
-	gcv.graphics_exposures = False;
-	texture->normal_gc = XCreateGC(dpy, scr->w_win, GCForeground | GCBackground | GCGraphicsExposures, &gcv);
-
-# ifdef HAVE_DLFCN_H
-	/* open the library */
-	texture->handle = dlopen(lib, RTLD_LAZY);
-	if (!texture->handle) {
-		wwarning(_("library \"%s\" cound not be opened."), lib);
-		wfree(argv);
-		wfree(texture);
-		return NULL;
-	}
-
-	/* find the function */
-	texture->render = dlsym(texture->handle, func);
-	if (!texture->render) {
-		wwarning(_("function \"%s\" not found in library \"%s\""), func, lib);
-		wfree(argv);
-		dlclose(texture->handle);
-		wfree(texture);
-		return NULL;
-	}
-# else
-	wwarning(_("function textures not supported on this system, sorry."));
-# endif
-
-	/* success! */
-	return texture;
-}
-#endif				/* TEXTURE_PLUGIN */
-
 RImage *wTextureRenderImage(WTexture * texture, int width, int height, int relief)
 {
 	RImage *image = NULL;
@@ -513,21 +442,6 @@ RImage *wTextureRenderImage(WTexture * texture, int width, int height, int relie
 			RReleaseImage(grad);
 		}
 		break;
-
-#ifdef TEXTURE_PLUGIN
-	case WTEX_FUNCTION:
-#ifdef HAVE_DLFCN_H
-		if (texture->function.render) {
-			image = texture->function.render(texture->function.argc, texture->function.argv,
-							 width, height, relief);
-		}
-#endif
-		if (!image) {
-			RErrorCode = RERR_INTERNAL;
-		}
-		break;
-#endif				/* TEXTURE_PLUGIN */
-
 	default:
 		puts("ERROR in wTextureRenderImage()");
 		image = NULL;
diff --git a/src/texture.h b/src/texture.h
index 8a8063c..7381145 100644
--- a/src/texture.h
+++ b/src/texture.h
@@ -166,9 +166,6 @@ WTexTGradient *wTextureMakeTGradient(WScreen*, int, RColor*, RColor*, char *, in
 WTexIGradient *wTextureMakeIGradient(WScreen*, int, RColor[], int, RColor[]);
 WTexPixmap *wTextureMakePixmap(WScreen *scr, int style, char *pixmap_file,
                                XColor *color);
-#ifdef TEXTURE_PLUGIN
-WTexFunction *wTextureMakeFunction(WScreen*, char *, char *, int, char **);
-#endif
 void wTextureDestroy(WScreen*, WTexture*);
 void wTexturePaint(WTexture *, Pixmap *, WCoreWindow*, int, int);
 void wTextureRender(WScreen*, WTexture*, Pixmap*, int, int, int);
diff --git a/src/wconfig.h.in b/src/wconfig.h.in
index d3b38a5..1a3bd11 100644
--- a/src/wconfig.h.in
+++ b/src/wconfig.h.in
@@ -32,12 +32,6 @@
  * Also check the features you can enable through configure.
  */
 
-/*
- * #undefine if you dont want texture plugin support or your system have
- * some sort of problem with them.
- */
-#define TEXTURE_PLUGIN
-
 /* If you want animations for iconification, shading, icon arrangement etc. */
 #define ANIMATIONS
 
diff --git a/util/Makefile.am b/util/Makefile.am
index b21ba17..6305a41 100644
--- a/util/Makefile.am
+++ b/util/Makefile.am
@@ -49,13 +49,13 @@ wmagnify_LDADD = \
 	$(top_builddir)/WINGs/libWINGs.la \
 	$(top_builddir)/WINGs/libWUtil.la \
 	$(top_builddir)/wrlib/libwraster.la \
-	@XFTLIBS@ @INTLIBS@ @DLLIBS@
+	@XFTLIBS@ @INTLIBS@
 
 wmsetbg_LDADD = \
 	$(top_builddir)/WINGs/libWINGs.la \
 	$(top_builddir)/WINGs/libWUtil.la \
 	$(top_builddir)/wrlib/libwraster.la \
-	@XLFLAGS@ @XLIBS@ @XFTLIBS@ @INTLIBS@ @DLLIBS@
+	@XLFLAGS@ @XLIBS@ @XFTLIBS@ @INTLIBS@
 
 wmgenmenu_LDADD = \
 	$(top_builddir)/WINGs/libWUtil.la \
diff --git a/util/wmsetbg.c b/util/wmsetbg.c
index 1037bf2..312e619 100644
--- a/util/wmsetbg.c
+++ b/util/wmsetbg.c
@@ -47,10 +47,6 @@
 # endif
 #endif
 
-#ifdef HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
 #include "../src/wconfig.h"
 
 #ifndef GLOBAL_DEFAULTS_SUBDIR
@@ -663,84 +659,10 @@ BackgroundTexture *parseTexture(RContext * rc, char *text)
 
 		texture->pixmap = pixmap;
 	} else if (strcasecmp(type, "function") == 0) {
-#ifdef HAVE_DLFCN_H
-		void (*initFunc) (Display *, Colormap);
-		RImage *(*mainFunc) (int, char **, int, int, int);
-		Pixmap pixmap;
-		RImage *image = 0;
-		int success = 0;
-		char *lib, *func, **argv = 0;
-		void *handle = 0;
-		int i, argc;
-
-		if (count < 3)
-			goto function_cleanup;
-
-		/* get the library name */
-		GETSTRORGOTO(val, lib, 1, function_cleanup);
-
-		/* get the function name */
-		GETSTRORGOTO(val, func, 2, function_cleanup);
-
-		argc = count - 2;
-		argv = (char **)wmalloc(argc * sizeof(char *));
-
-		/* get the parameters */
-		argv[0] = func;
-		for (i = 0; i < argc - 1; i++) {
-			GETSTRORGOTO(val, tmp, 3 + i, function_cleanup);
-			argv[i + 1] = wstrdup(tmp);
-		}
-
-		handle = dlopen(lib, RTLD_LAZY);
-		if (!handle) {
-			wwarning("could not find library %s", lib);
-			goto function_cleanup;
-		}
-
-		initFunc = dlsym(handle, "initWindowMaker");
-		if (!initFunc) {
-			wwarning("could not initialize library %s", lib);
-			goto function_cleanup;
-		}
-		initFunc(dpy, DefaultColormap(dpy, scr));
-
-		mainFunc = dlsym(handle, func);
-		if (!mainFunc) {
-			wwarning("could not find function %s::%s", lib, func);
-			goto function_cleanup;
-		}
-		image = mainFunc(argc, argv, scrWidth, scrHeight, 0);
-
-		if (!RConvertImage(rc, image, &pixmap)) {
-			wwarning("could not convert texture:%s", RMessageForError(RErrorCode));
-			goto function_cleanup;
-		}
-		texture->width = scrWidth;
-		texture->height = scrHeight;
-		texture->pixmap = pixmap;
-		success = 1;
-
- function_cleanup:
-		if (argv) {
-			int i;
-			for (i = 0; i < argc; i++) {
-				wfree(argv[i]);
-			}
-		}
-		if (handle) {
-			dlclose(handle);
-		}
-		if (image) {
-			RReleaseImage(image);
-		}
-		if (!success) {
-			goto error;
-		}
-#else
-		wwarning("function textures not supported");
+		/* Leave this in to handle the unlikely case of
+		 * someone actually having function textures configured */
+		wwarning("function texture support has been removed");
 		goto error;
-#endif
 	} else {
 		wwarning("invalid texture type %s", text);
 		goto error;
-- 
1.7.0

Reply via email to