summaryrefslogtreecommitdiff
path: root/packages/lesstif/files/020_xpmpipethrough.diff
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /packages/lesstif/files/020_xpmpipethrough.diff
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'packages/lesstif/files/020_xpmpipethrough.diff')
-rw-r--r--packages/lesstif/files/020_xpmpipethrough.diff381
1 files changed, 0 insertions, 381 deletions
diff --git a/packages/lesstif/files/020_xpmpipethrough.diff b/packages/lesstif/files/020_xpmpipethrough.diff
deleted file mode 100644
index 69f9a2464c..0000000000
--- a/packages/lesstif/files/020_xpmpipethrough.diff
+++ /dev/null
@@ -1,381 +0,0 @@
-Index: lesstif2-0.95.0/lib/Xm-2.1/XpmRdFToI.c
-===================================================================
---- lesstif2-0.95.0.orig/lib/Xm-2.1/XpmRdFToI.c 2004-11-18 22:00:58.000000000 +0100
-+++ lesstif2-0.95.0/lib/Xm-2.1/XpmRdFToI.c 2006-07-11 11:13:29.000000000 +0200
-@@ -44,11 +44,15 @@
- DebugUtil.h! */
- #include <stdio.h>
- #include <string.h>
-+#include <errno.h>
-
- #include <ctype.h>
- #ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
-+#ifdef HAVE_SYS_WAIT_H
-+#include <sys/wait.h>
-+#endif
- #ifdef HAVE_SYS_STAT_H
- #include <sys/stat.h>
- #endif
-@@ -87,16 +91,6 @@
- strcpy(dst, src); \
- else return (XpmFileInvalid); }
- #endif
--#include <sys/stat.h>
--#if !defined(NO_ZPIPE) && defined(WIN32)
--# define popen _popen
--# define pclose _pclose
--# if defined(STAT_ZFILE)
--# include <io.h>
--# define stat _stat
--# define fstat _fstat
--# endif
--#endif
-
- LFUNC(OpenReadFile, int, (char *filename, xpmData *mdata));
- LFUNC(xpmDataClose, void, (xpmData *mdata));
-@@ -173,90 +167,131 @@
- }
- #endif /* CXPMPROG */
-
--/*
-- * open the given file to be read as an xpmData which is returned.
-- */
- #ifndef NO_ZPIPE
-- FILE *s_popen(char *cmd, const char *type);
--#else
--# define s_popen popen
-+/* Do not depend on errno after read_through */
-+FILE*
-+xpmPipeThrough(fd, cmd, arg1, mode)
-+ int fd;
-+ const char* cmd;
-+ const char* arg1;
-+ const char* mode;
-+{
-+ FILE* fp;
-+ int status, fds[2], in = 0, out = 1;
-+ pid_t pid;
-+ if ( 'w' == *mode )
-+ out = 0, in = 1;
-+ if ( pipe(fds) < 0 )
-+ return NULL;
-+ pid = fork();
-+ if ( pid < 0 )
-+ goto fail1;
-+ if ( 0 == pid )
-+ {
-+ close(fds[in]);
-+ if ( dup2(fds[out], out) < 0 )
-+ goto err;
-+ close(fds[out]);
-+ if ( dup2(fd, in) < 0 )
-+ goto err;
-+ close(fd);
-+ pid = fork();
-+ if ( pid < 0 )
-+ goto err;
-+ if ( 0 == pid )
-+ {
-+ execlp(cmd, cmd, arg1, NULL);
-+ perror(cmd);
-+ goto err;
-+ }
-+ _exit(0);
-+ err:
-+ _exit(1);
-+ }
-+ close(fds[out]);
-+ /* calling process: wait for first child */
-+ while ( waitpid(pid, &status, 0) < 0 && EINTR == errno )
-+ ;
-+ if ( WIFSIGNALED(status) ||
-+ (WIFEXITED(status) && WEXITSTATUS(status) != 0) )
-+ goto fail2;
-+ fp = fdopen(fds[in], mode);
-+ if ( !fp )
-+ goto fail2;
-+ close(fd); /* still open in 2nd child */
-+ return fp;
-+fail1:
-+ close(fds[out]);
-+fail2:
-+ close(fds[in]);
-+ return NULL;
-+}
- #endif
-
-+/*
-+ * open the given file to be read as an xpmData which is returned.
-+ */
- static int
- OpenReadFile(filename, mdata)
- char *filename;
- xpmData *mdata;
- {
--#ifndef NO_ZPIPE
-- char buf[BUFSIZ];
--# ifdef STAT_ZFILE
-- char *compressfile;
-- struct stat status;
--# endif
--#endif
--
- if (!filename) {
- mdata->stream.file = (stdin);
- mdata->type = XPMFILE;
- } else {
--#ifndef NO_ZPIPE
-- size_t len = strlen(filename);
--
-- if(len == 0 ||
-- filename[len-1] == '/')
-- return(XpmOpenFailed);
-- if ((len > 2) && !strcmp(".Z", filename + (len - 2))) {
-- mdata->type = XPMPIPE;
-- snprintf(buf, sizeof(buf), "uncompress -c \"%s\"", filename);
-- if (!(mdata->stream.file = s_popen(buf, "r")))
-- return (XpmOpenFailed);
--
-- } else if ((len > 3) && !strcmp(".gz", filename + (len - 3))) {
-- mdata->type = XPMPIPE;
-- snprintf(buf, sizeof(buf), "gunzip -qc \"%s\"", filename);
-- if (!(mdata->stream.file = s_popen(buf, "r")))
-- return (XpmOpenFailed);
--
-- } else {
--# ifdef STAT_ZFILE
-- if (!(compressfile = (char *) XpmMalloc(len + 4)))
-+ int fd = open(filename, O_RDONLY);
-+#if defined(NO_ZPIPE)
-+ if ( fd < 0 )
-+ return XpmOpenFailed;
-+#else
-+ const char* ext = NULL;
-+ if ( fd >= 0 )
-+ ext = strrchr(filename, '.');
-+#ifdef STAT_ZFILE /* searching for z-files if the given name not found */
-+ else
-+ {
-+ size_t len = strlen(filename);
-+ char *compressfile = (char *) XpmMalloc(len + 4);
-+ if ( !compressfile )
- return (XpmNoMemory);
--
-- snprintf(compressfile, len+4, "%s.Z", filename);
-- if (!stat(compressfile, &status)) {
-- snprintf(buf, sizeof(buf), "uncompress -c \"%s\"", compressfile);
-- if (!(mdata->stream.file = s_popen(buf, "r"))) {
-+ strcpy(compressfile, filename);
-+ strcpy(compressfile + len, ext = ".Z");
-+ fd = open(compressfile, O_RDONLY);
-+ if ( fd < 0 )
-+ {
-+ strcpy(compressfile + len, ext = ".gz");
-+ fd = open(compressfile, O_RDONLY);
-+ if ( fd < 0 )
-+ {
- XpmFree(compressfile);
-- return (XpmOpenFailed);
-- }
-- mdata->type = XPMPIPE;
-- } else {
-- snprintf(compressfile, len+4, "%s.gz", filename);
-- if (!stat(compressfile, &status)) {
-- snprintf(buf, sizeof(buf), "gunzip -c \"%s\"", compressfile);
-- if (!(mdata->stream.file = s_popen(buf, "r"))) {
-- XpmFree(compressfile);
-- return (XpmOpenFailed);
-- }
-- mdata->type = XPMPIPE;
-- } else {
--# endif
--#endif
-- if (!(mdata->stream.file = fopen(filename, "r"))) {
--#if !defined(NO_ZPIPE) && defined(STAT_ZFILE)
-- XpmFree(compressfile);
--#endif
-- return (XpmOpenFailed);
-- }
-- mdata->type = XPMFILE;
--#ifndef NO_ZPIPE
--# ifdef STAT_ZFILE
-+ return XpmOpenFailed;
- }
- }
- XpmFree(compressfile);
--# endif
- }
- #endif
-+ if ( ext && !strcmp(ext, ".Z") )
-+ {
-+ mdata->type = XPMPIPE;
-+ mdata->stream.file = xpmPipeThrough(fd, "uncompress", "-c", "r");
-+ }
-+ else if ( ext && !strcmp(ext, ".gz") )
-+ {
-+ mdata->type = XPMPIPE;
-+ mdata->stream.file = xpmPipeThrough(fd, "gunzip", "-qc", "r");
-+ }
-+ else
-+#endif /* z-files */
-+ {
-+ mdata->type = XPMFILE;
-+ mdata->stream.file = fdopen(fd, "r");
-+ }
-+ if (!mdata->stream.file)
-+ {
-+ close(fd);
-+ return (XpmOpenFailed);
-+ }
- }
- mdata->CommentLength = 0;
- #ifdef CXPMPROG
-@@ -273,15 +308,6 @@
- xpmDataClose(mdata)
- xpmData *mdata;
- {
-- switch (mdata->type) {
-- case XPMFILE:
-- if (mdata->stream.file != (stdin))
-- fclose(mdata->stream.file);
-- break;
--#ifndef NO_ZPIPE
-- case XPMPIPE:
-+ if (mdata->stream.file != (stdin))
- fclose(mdata->stream.file);
-- break;
--#endif
-- }
- }
-Index: lesstif2-0.95.0/lib/Xm-2.1/XpmWrFFrI.c
-===================================================================
---- lesstif2-0.95.0.orig/lib/Xm-2.1/XpmWrFFrI.c 2005-04-13 20:03:27.000000000 +0200
-+++ lesstif2-0.95.0/lib/Xm-2.1/XpmWrFFrI.c 2006-07-11 11:13:29.000000000 +0200
-@@ -50,11 +50,15 @@
- DebugUtil.h! */
- #include <stdio.h>
- #include <string.h>
-+#include <errno.h>
-
- #include <ctype.h>
- #ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
-+#ifdef HAVE_SYS_WAIT_H
-+#include <sys/wait.h>
-+#endif
- #ifdef HAVE_SYS_STAT_H
- #include <sys/stat.h>
- #endif
-@@ -94,11 +98,6 @@
- else return (XpmFileInvalid); }
- #endif
-
--#if !defined(NO_ZPIPE) && defined(WIN32)
--# define popen _popen
--# define pclose _pclose
--#endif
--
- /* MS Windows define a function called WriteFile @#%#&!!! */
- LFUNC(xpmWriteFile, int, (FILE *file, XpmImage *image, char *name,
- XpmInfo *info));
-@@ -354,58 +353,48 @@
- fprintf(file, ",\n\"XPMENDEXT\"");
- }
-
-+
-+#ifndef NO_ZPIPE
-+FUNC(xpmPipeThrough, FILE*, (int fd,
-+ const char* cmd,
-+ const char* arg1,
-+ const char* mode));
-+#endif
-+
- /*
- * open the given file to be written as an xpmData which is returned
- */
--#ifndef NO_ZPIPE
-- FILE *s_popen(char *cmd, const char *type);
--#else
--# define s_popen popen
--#endif
- static int
- OpenWriteFile(filename, mdata)
- char *filename;
- xpmData *mdata;
- {
--#ifndef NO_ZPIPE
-- char buf[BUFSIZ];
--
--#endif
--
- if (!filename) {
- mdata->stream.file = (stdout);
- mdata->type = XPMFILE;
- } else {
- #ifndef NO_ZPIPE
-- size_t len = strlen(filename);
--
-- if(len == 0 ||
-- filename[0] == '/' ||
-- strstr(filename, "../") != NULL ||
-- filename[len-1] == '/')
-- return(XpmOpenFailed);
--
-+ size_t len;
-+#endif
-+ int fd = open(filename, O_WRONLY|O_CREAT|O_TRUNC, 0644);
-+ if ( fd < 0 )
-+ return(XpmOpenFailed);
-+#ifndef NO_ZPIPE
-+ len = strlen(filename);
- if (len > 2 && !strcmp(".Z", filename + (len - 2))) {
-- snprintf(buf, sizeof(buf), "compress > \"%s\"", filename);
-- if (!(mdata->stream.file = s_popen(buf, "w")))
-- return (XpmOpenFailed);
--
-+ mdata->stream.file = xpmPipeThrough(fd, "compress", NULL, "w");
- mdata->type = XPMPIPE;
- } else if (len > 3 && !strcmp(".gz", filename + (len - 3))) {
-- snprintf(buf, sizeof(buf), "gzip -q > \"%s\"", filename);
-- if (!(mdata->stream.file = s_popen(buf, "w")))
-- return (XpmOpenFailed);
--
-+ mdata->stream.file = xpmPipeThrough(fd, "gzip", "-q", "w");
- mdata->type = XPMPIPE;
-- } else {
-+ } else
- #endif
-- if (!(mdata->stream.file = fopen(filename, "w")))
-- return (XpmOpenFailed);
--
-+ {
-+ mdata->stream.file = fdopen(fd, "w");
- mdata->type = XPMFILE;
--#ifndef NO_ZPIPE
- }
--#endif
-+ if (!mdata->stream.file)
-+ return (XpmOpenFailed);
- }
- return (XpmSuccess);
- }
-@@ -417,15 +406,6 @@
- xpmDataClose(mdata)
- xpmData *mdata;
- {
-- switch (mdata->type) {
-- case XPMFILE:
-- if (mdata->stream.file != (stdout))
-- fclose(mdata->stream.file);
-- break;
--#ifndef NO_ZPIPE
-- case XPMPIPE:
-+ if (mdata->stream.file != (stdout))
- fclose(mdata->stream.file);
-- break;
--#endif
-- }
- }