diff options
Diffstat (limited to 'source/a/elvis')
-rwxr-xr-x | source/a/elvis/elvis.SlackBuild | 18 | ||||
-rw-r--r-- | source/a/elvis/elvis.ref.c.getline.diff | 47 |
2 files changed, 63 insertions, 2 deletions
diff --git a/source/a/elvis/elvis.SlackBuild b/source/a/elvis/elvis.SlackBuild index 3bb83ba7..14f3cc92 100755 --- a/source/a/elvis/elvis.SlackBuild +++ b/source/a/elvis/elvis.SlackBuild @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2005-2010 Patrick J. Volkerding, Sebeka, Minnesota, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -21,9 +21,18 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. VERSION=2.2_0 -ARCH=${ARCH:-x86_64} BUILD=${BUILD:-2} +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + CWD=$(pwd) TMP=${TMP:-/tmp} PKG=$TMP/package-elvis @@ -34,6 +43,11 @@ cd $TMP rm -rf elvis-$VERSION tar xjvf $CWD/elvis-$VERSION.tar.bz2 cd elvis-$VERSION + +# Fix redefined getline() with glibc > 2.9 by changing the +# local function to elv_getline(): +zcat $CWD/elvis.ref.c.getline.diff.gz | patch -p1 --verbose || exit 1 + chown -R root:root . # Time for a kludge (i.e. don't suggest this kind of thing be # done as a rule... I don't know why I'm crazy today). diff --git a/source/a/elvis/elvis.ref.c.getline.diff b/source/a/elvis/elvis.ref.c.getline.diff new file mode 100644 index 00000000..957c2d23 --- /dev/null +++ b/source/a/elvis/elvis.ref.c.getline.diff @@ -0,0 +1,47 @@ +--- ./ref.c.orig 2003-10-20 21:32:25.000000000 -0500 ++++ ./ref.c 2010-01-27 12:27:06.000000000 -0600 +@@ -42,7 +42,7 @@ + + #if USE_PROTOTYPES + static void usage(char *argv0); +-static char *getline(FILE *fp); ++static char *elv_getline(FILE *fp); + static void store(char *line, char **list); + static LINECLS classify(char *line, LINECLS prev); + static void lookup(TAG *tag); +@@ -171,7 +171,7 @@ + /* This function reads a single line, and replaces the terminating newline with + * a '\0' byte. The string will be in a static buffer. Returns NULL at EOF. + */ +-static char *getline(fp) ++static char *elv_getline(fp) + FILE *fp; + { + int ch; +@@ -348,7 +348,7 @@ + } + + /* for each line... */ +- for (lnum = 1, lc = LC_COMPLETE; (line = getline(fp)) != NULL; lnum++) ++ for (lnum = 1, lc = LC_COMPLETE; (line = elv_getline(fp)) != NULL; lnum++) + { + /* is this the tag definition? */ + if (taglnum > 0 ? taglnum == lnum : !strncmp(tagline, line, len)) +@@ -377,7 +377,7 @@ + { + if (strchr(line, '(') != NULL) + { +- while ((line = getline(fp)) != NULL ++ while ((line = elv_getline(fp)) != NULL + && *line + && ((*line != '#' && *line != '{') + || line[strlen(line) - 1] == '\\')) +@@ -387,7 +387,7 @@ + } + else if ((lc = classify(line, lc)) == LC_PARTIAL) + { +- while ((line = getline(fp)) != NULL ++ while ((line = elv_getline(fp)) != NULL + && (lc = classify(line, lc)) == LC_PARTIAL) + { + puts(line); |