aboutsummaryrefslogtreecommitdiffstats
path: root/x11-themes
diff options
context:
space:
mode:
authorfluffy <fluffy@FreeBSD.org>2010-05-08 18:45:27 +0800
committerfluffy <fluffy@FreeBSD.org>2010-05-08 18:45:27 +0800
commit5965fb15464d76230546ddb73e8d9d5c08d1fa95 (patch)
tree0362dd7245e5eefbb0cdae620f7ccc3d5f0856bf /x11-themes
parent6615793cc23fd232e4b0c89460e4fc0af3d2dfe2 (diff)
downloadfreebsd-ports-gnome-5965fb15464d76230546ddb73e8d9d5c08d1fa95.tar.gz
freebsd-ports-gnome-5965fb15464d76230546ddb73e8d9d5c08d1fa95.tar.zst
freebsd-ports-gnome-5965fb15464d76230546ddb73e8d9d5c08d1fa95.zip
- Dropping maintainership [1]
- While here, try to fix build on 6.x/7.x by providing getline() [2] PR: 146390 [1] Submitted by: Dmitry Klimov <lazyklimm@gmail.com> (maintainer) [1] kmoore@ via irc/email [2]
Diffstat (limited to 'x11-themes')
-rw-r--r--x11-themes/qtcurve-gtk2/Makefile24
-rw-r--r--x11-themes/qtcurve-gtk2/files/extra-patch-style-qt_settings.c11
-rw-r--r--x11-themes/qtcurve-gtk2/files/getline.c168
-rw-r--r--x11-themes/qtcurve-gtk2/files/getline.h24
-rw-r--r--x11-themes/qtcurve-gtk2/files/getline_strndup.c184
5 files changed, 409 insertions, 2 deletions
diff --git a/x11-themes/qtcurve-gtk2/Makefile b/x11-themes/qtcurve-gtk2/Makefile
index 21f4f40df708..c35310351073 100644
--- a/x11-themes/qtcurve-gtk2/Makefile
+++ b/x11-themes/qtcurve-gtk2/Makefile
@@ -7,6 +7,7 @@
PORTNAME= qtcurve
PORTVERSION= 1.3.0
+PORTREVISION= 1
CATEGORIES= x11-themes
MASTER_SITES= http://home.freeuk.com/cpdrummond/ \
http://craigd.wikispaces.com/file/view/
@@ -14,11 +15,30 @@ PKGNAMEPREFIX= gtk2-
PKGNAMESUFFIX= -theme
DISTNAME= QtCurve-Gtk2-${PORTVERSION}
-MAINTAINER= lazyklimm@gmail.com
+MAINTAINER= ports@FreeBSD.org
COMMENT= QtCurve GTK2 Theme Engine
USE_BZIP2= yes
USE_CMAKE= yes
USE_GNOME= gtk20
-.include <bsd.port.mk>
+.include <bsd.port.pre.mk>
+
+.if ${OSVERSION} < 800067
+.if ${ARCH} == "amd64"
+CFLAGS+= -fPIC
+.endif
+EXTRA_PATCHES+= ${FILESDIR}/extrapatch-*
+.endif
+
+post-extract:
+.if ${OSVERSION} < 800067
+ ${CP} ${FILESDIR}/getline.h ${WRKSRC}/src
+.if ${OSVERSION} < 701101
+ ${CP} ${FILESDIR}/getline_strndup.c ${WRKSRC}/style/getline.c
+.else
+ ${CP} ${FILESDIR}/getline.c ${WRKSRC}/style/getline.c
+.endif
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/x11-themes/qtcurve-gtk2/files/extra-patch-style-qt_settings.c b/x11-themes/qtcurve-gtk2/files/extra-patch-style-qt_settings.c
new file mode 100644
index 000000000000..6ad7a45ddb18
--- /dev/null
+++ b/x11-themes/qtcurve-gtk2/files/extra-patch-style-qt_settings.c
@@ -0,0 +1,11 @@
+--- style/qt_settings.c.o 2010-05-06 14:56:53.000000000 +0000
++++ style/qt_settings.c 2010-05-06 15:00:46.000000000 +0000
+@@ -22,6 +22,8 @@
+ #include "common.h"
+ #define CONFIG_READ
+ #include "config_file.c"
++#include "getline.h"
++#include "getline.c"
+ #include <gtk/gtk.h>
+ #include <time.h>
+ #include <gdk/gdkcolor.h>
diff --git a/x11-themes/qtcurve-gtk2/files/getline.c b/x11-themes/qtcurve-gtk2/files/getline.c
new file mode 100644
index 000000000000..cdcb2add5e20
--- /dev/null
+++ b/x11-themes/qtcurve-gtk2/files/getline.c
@@ -0,0 +1,168 @@
+/* getline.c -- Replacement for GNU C library function getline
+
+Copyright (C) 1993 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details. */
+
+/* Written by Jan Brittenson, bson@gnu.ai.mit.edu. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <stdio.h>
+#include <assert.h>
+#include <errno.h>
+#include "getline.h"
+
+/* Always add at least this many bytes when extending the buffer. */
+#define MIN_CHUNK 64
+
+/* Read up to (and including) a TERMINATOR from STREAM into *LINEPTR
+ + OFFSET (and null-terminate it). If LIMIT is non-negative, then
+ read no more than LIMIT chars.
+
+ *LINEPTR is a pointer returned from malloc (or NULL), pointing to
+ *N characters of space. It is realloc'd as necessary.
+
+ Return the number of characters read (not including the null
+ terminator), or -1 on error or EOF. On a -1 return, the caller
+ should check feof(), if not then errno has been set to indicate the
+ error. */
+
+int
+getstr (lineptr, n, stream, terminator, offset, limit)
+ char **lineptr;
+ size_t *n;
+ FILE *stream;
+ int terminator;
+ int offset;
+ int limit;
+{
+ int nchars_avail; /* Allocated but unused chars in *LINEPTR. */
+ char *read_pos; /* Where we're reading into *LINEPTR. */
+ int ret;
+
+ if (!lineptr || !n || !stream)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+
+ if (!*lineptr)
+ {
+ *n = MIN_CHUNK;
+ *lineptr = malloc (*n);
+ if (!*lineptr)
+ {
+ errno = ENOMEM;
+ return -1;
+ }
+ *lineptr[0] = '\0';
+ }
+
+ nchars_avail = *n - offset;
+ read_pos = *lineptr + offset;
+
+ for (;;)
+ {
+ int save_errno;
+ register int c;
+
+ if (limit == 0)
+ break;
+ else
+ {
+ c = getc (stream);
+
+ /* If limit is negative, then we shouldn't pay attention to
+ it, so decrement only if positive. */
+ if (limit > 0)
+ limit--;
+ }
+
+ save_errno = errno;
+
+ /* We always want at least one char left in the buffer, since we
+ always (unless we get an error while reading the first char)
+ NUL-terminate the line buffer. */
+
+ assert((*lineptr + *n) == (read_pos + nchars_avail));
+ if (nchars_avail < 2)
+ {
+ if (*n > MIN_CHUNK)
+ *n *= 2;
+ else
+ *n += MIN_CHUNK;
+
+ nchars_avail = *n + *lineptr - read_pos;
+ *lineptr = realloc (*lineptr, *n);
+ if (!*lineptr)
+ {
+ errno = ENOMEM;
+ return -1;
+ }
+ read_pos = *n - nchars_avail + *lineptr;
+ assert((*lineptr + *n) == (read_pos + nchars_avail));
+ }
+
+ if (ferror (stream))
+ {
+ /* Might like to return partial line, but there is no
+ place for us to store errno. And we don't want to just
+ lose errno. */
+ errno = save_errno;
+ return -1;
+ }
+
+ if (c == EOF)
+ {
+ /* Return partial line, if any. */
+ if (read_pos == *lineptr)
+ return -1;
+ else
+ break;
+ }
+
+ *read_pos++ = c;
+ nchars_avail--;
+
+ if (c == terminator)
+ /* Return the line. */
+ break;
+ }
+
+ /* Done - NUL terminate and return the number of chars read. */
+ *read_pos = '\0';
+
+ ret = read_pos - (*lineptr + offset);
+ return ret;
+}
+
+int
+getline (lineptr, n, stream)
+ char **lineptr;
+ size_t *n;
+ FILE *stream;
+{
+ return getstr (lineptr, n, stream, '\n', 0, GETLINE_NO_LIMIT);
+}
+
+int
+getline_safe (lineptr, n, stream, limit)
+ char **lineptr;
+ size_t *n;
+ FILE *stream;
+ int limit;
+{
+ return getstr (lineptr, n, stream, '\n', 0, limit);
+}
diff --git a/x11-themes/qtcurve-gtk2/files/getline.h b/x11-themes/qtcurve-gtk2/files/getline.h
new file mode 100644
index 000000000000..2816a0641af1
--- /dev/null
+++ b/x11-themes/qtcurve-gtk2/files/getline.h
@@ -0,0 +1,24 @@
+#ifndef _getline_h_
+#define _getline_h_ 1
+
+#include <stdio.h>
+
+#if defined (__GNUC__) || (defined (__STDC__) && __STDC__)
+#define __PROTO(args) args
+#else
+#define __PROTO(args) ()
+#endif /* GCC. */
+
+#define GETLINE_NO_LIMIT -1
+
+#ifndef _WITH_GETLINE
+int
+ getline __PROTO ((char **_lineptr, size_t *_n, FILE *_stream));
+int
+ getline_safe __PROTO ((char **_lineptr, size_t *_n, FILE *_stream,
+ int limit));
+int
+ getstr __PROTO ((char **_lineptr, size_t *_n, FILE *_stream,
+ int _terminator, int _offset, int limit));
+#endif
+#endif /* _getline_h_ */
diff --git a/x11-themes/qtcurve-gtk2/files/getline_strndup.c b/x11-themes/qtcurve-gtk2/files/getline_strndup.c
new file mode 100644
index 000000000000..2ee51b571409
--- /dev/null
+++ b/x11-themes/qtcurve-gtk2/files/getline_strndup.c
@@ -0,0 +1,184 @@
+/* Copyright (C) 1993 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <errno.h>
+#include "getline.h"
+
+/* Always add at least this many bytes when extending the buffer. */
+#define MIN_CHUNK 64
+
+/* Read up to (and including) a TERMINATOR from STREAM into *LINEPTR
+ + OFFSET (and null-terminate it). If LIMIT is non-negative, then
+ read no more than LIMIT chars.
+
+ *LINEPTR is a pointer returned from malloc (or NULL), pointing to
+ *N characters of space. It is realloc'd as necessary.
+
+ Return the number of characters read (not including the null
+ terminator), or -1 on error or EOF. On a -1 return, the caller
+ should check feof(), if not then errno has been set to indicate the
+ error. */
+
+int
+getstr (lineptr, n, stream, terminator, offset, limit)
+ char **lineptr;
+ size_t *n;
+ FILE *stream;
+ int terminator;
+ int offset;
+ int limit;
+{
+ int nchars_avail; /* Allocated but unused chars in *LINEPTR. */
+ char *read_pos; /* Where we're reading into *LINEPTR. */
+ int ret;
+
+ if (!lineptr || !n || !stream)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+
+ if (!*lineptr)
+ {
+ *n = MIN_CHUNK;
+ *lineptr = malloc (*n);
+ if (!*lineptr)
+ {
+ errno = ENOMEM;
+ return -1;
+ }
+ *lineptr[0] = '\0';
+ }
+
+ nchars_avail = *n - offset;
+ read_pos = *lineptr + offset;
+
+ for (;;)
+ {
+ int save_errno;
+ register int c;
+
+ if (limit == 0)
+ break;
+ else
+ {
+ c = getc (stream);
+
+ /* If limit is negative, then we shouldn't pay attention to
+ it, so decrement only if positive. */
+ if (limit > 0)
+ limit--;
+ }
+
+ save_errno = errno;
+
+ /* We always want at least one char left in the buffer, since we
+ always (unless we get an error while reading the first char)
+ NUL-terminate the line buffer. */
+
+ assert((*lineptr + *n) == (read_pos + nchars_avail));
+ if (nchars_avail < 2)
+ {
+ if (*n > MIN_CHUNK)
+ *n *= 2;
+ else
+ *n += MIN_CHUNK;
+
+ nchars_avail = *n + *lineptr - read_pos;
+ *lineptr = realloc (*lineptr, *n);
+ if (!*lineptr)
+ {
+ errno = ENOMEM;
+ return -1;
+ }
+ read_pos = *n - nchars_avail + *lineptr;
+ assert((*lineptr + *n) == (read_pos + nchars_avail));
+ }
+
+ if (ferror (stream))
+ {
+ /* Might like to return partial line, but there is no
+ place for us to store errno. And we don't want to just
+ lose errno. */
+ errno = save_errno;
+ return -1;
+ }
+
+ if (c == EOF)
+ {
+ /* Return partial line, if any. */
+ if (read_pos == *lineptr)
+ return -1;
+ else
+ break;
+ }
+
+ *read_pos++ = c;
+ nchars_avail--;
+
+ if (c == terminator)
+ /* Return the line. */
+ break;
+ }
+
+ /* Done - NUL terminate and return the number of chars read. */
+ *read_pos = '\0';
+
+ ret = read_pos - (*lineptr + offset);
+ return ret;
+}
+
+int
+getline (lineptr, n, stream)
+ char **lineptr;
+ size_t *n;
+ FILE *stream;
+{
+ return getstr (lineptr, n, stream, '\n', 0, GETLINE_NO_LIMIT);
+}
+
+int
+getline_safe (lineptr, n, stream, limit)
+ char **lineptr;
+ size_t *n;
+ FILE *stream;
+ int limit;
+{
+ return getstr (lineptr, n, stream, '\n', 0, limit);
+}
+
+char *
+strndup (str, n)
+ const char *str;
+ size_t n;
+{
+ size_t len;
+ char *copy;
+
+ len = strlen(str);
+ if (n < len)
+ len = n;
+ copy = malloc(len + 1);
+ if (copy == NULL)
+ return NULL;
+ memcpy(copy, str, len);
+ copy[len] = '\0';
+ return copy;
+}