From 1a8a092d9fefcbd7f960c82c59802c61807867a6 Mon Sep 17 00:00:00 2001 From: Mathieu Arnold Date: Fri, 17 Jun 2016 23:28:04 +0000 Subject: Rename all files containing a : in their filename. While there, run make makepatch on affected ports, and rename patches accordingly. Sponsored by: Absolight --- print/ghostscript9-x11/files/patch-base_gp__unix.c | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 print/ghostscript9-x11/files/patch-base_gp__unix.c (limited to 'print/ghostscript9-x11/files/patch-base_gp__unix.c') diff --git a/print/ghostscript9-x11/files/patch-base_gp__unix.c b/print/ghostscript9-x11/files/patch-base_gp__unix.c new file mode 100644 index 000000000000..84d1cdcb4f73 --- /dev/null +++ b/print/ghostscript9-x11/files/patch-base_gp__unix.c @@ -0,0 +1,47 @@ +--- base/gp_unix.c.orig 2012-08-08 08:01:36 UTC ++++ base/gp_unix.c +@@ -52,6 +52,7 @@ extern char *getenv(const char *); + * and applied as a patch (preferable). + */ + #include ++#include + #include + #include + #include +@@ -61,26 +62,25 @@ gp_init(void) + { + DIR* dir = NULL; + struct dirent* dirent; +- char buff[1024]; ++ char buff[PATH_MAX]; + char* pbuff; + void* handle; + void (*gs_shared_init)(void); + +- strncpy(buff, GS_DEVS_SHARED_DIR, sizeof(buff) - 2); +- pbuff = buff + strlen(buff); +- *pbuff++ = '/'; *pbuff = '\0'; +- + dir = opendir(GS_DEVS_SHARED_DIR); + if (dir == 0) return; + + while ((dirent = readdir(dir)) != 0) { +- strncpy(pbuff, dirent->d_name, sizeof(buff) - (pbuff - buff) - 1); +- if ((handle = dlopen(buff, RTLD_NOW)) != 0) { +- if ((gs_shared_init = dlsym(handle, "gs_shared_init")) != 0) { ++ snprintf(buff, sizeof(buff), "%s/%s", GS_DEVS_SHARED_DIR, dirent->d_name); ++ pbuff = buff + strlen(buff) - 3; ++ if (strcmp(pbuff, ".so") != 0) ++ continue; ++ handle = dlopen(buff, RTLD_NOW); ++ if (handle == NULL) ++ continue; ++ gs_shared_init = dlsym(handle, "gs_shared_init"); ++ if (gs_shared_init != NULL) + (*gs_shared_init)(); +- } else { +- } +- } + } + + closedir(dir); -- cgit v1.2.3