diff options
author | Joe Marcus Clarke <marcus@FreeBSD.org> | 2006-02-14 23:54:32 +0000 |
---|---|---|
committer | Joe Marcus Clarke <marcus@FreeBSD.org> | 2006-02-14 23:54:32 +0000 |
commit | 50c60afdffe5a75d3c8590db0056cf666def1123 (patch) | |
tree | 033d0bda4072721dec04ba233abaf03bec8ac430 /textproc/scrollkeeper | |
parent | 6df007079609177f2550dc135d186cd3759ae332 (diff) | |
download | ports-50c60afdffe5a75d3c8590db0056cf666def1123.tar.gz ports-50c60afdffe5a75d3c8590db0056cf666def1123.zip |
Notes
Diffstat (limited to 'textproc/scrollkeeper')
-rw-r--r-- | textproc/scrollkeeper/Makefile | 2 | ||||
-rw-r--r-- | textproc/scrollkeeper/files/patch-libs_i18n.c | 48 |
2 files changed, 44 insertions, 6 deletions
diff --git a/textproc/scrollkeeper/Makefile b/textproc/scrollkeeper/Makefile index 7668752a9acb..eef73afe081c 100644 --- a/textproc/scrollkeeper/Makefile +++ b/textproc/scrollkeeper/Makefile @@ -7,7 +7,7 @@ PORTNAME= scrollkeeper PORTVERSION= 0.3.14 -PORTREVISION= 2 +PORTREVISION= 3 PORTEPOCH= 1 CATEGORIES= textproc gnome MASTER_SITES= ${MASTER_SITE_GNOME} diff --git a/textproc/scrollkeeper/files/patch-libs_i18n.c b/textproc/scrollkeeper/files/patch-libs_i18n.c index b3add5185b26..3e5f387301e6 100644 --- a/textproc/scrollkeeper/files/patch-libs_i18n.c +++ b/textproc/scrollkeeper/files/patch-libs_i18n.c @@ -1,18 +1,18 @@ ---- libs/i18n.c.orig Wed Apr 23 00:48:20 2003 -+++ libs/i18n.c Wed Apr 23 00:59:24 2003 -@@ -38,6 +38,19 @@ +--- libs/i18n.c.orig Sun Nov 9 18:05:36 2003 ++++ libs/i18n.c Tue Feb 14 18:50:23 2006 +@@ -38,6 +38,19 @@ enum { * All rights reserved. */ +/* XXX Implement strndup for FreeBSD. */ +static char * -+strndup(const char *str, int len) { ++strndup(const char *str, size_t len) { + char *ret; + + if ((str == NULL || len < 0)) return(NULL); + ret = (char *)malloc(len + 1); + if (ret == NULL) return(NULL); -+ memcpy(ret, str, len); ++ strncpy(ret, str, len); + ret[len] = '\0'; + return(ret); +} @@ -20,3 +20,41 @@ /* Support function for compute_locale_variants. */ static int explode_locale(const char *locale, char **language, char **territory, char **codeset, char **modifier) +@@ -118,7 +131,7 @@ static char **compute_locale_variants(co + if ((i & ~mask) == 0) { + int length = strlen(language) + strlen(territory) + + strlen(codeset) + strlen(modifier); +- char *var = (char *) malloc(sizeof(char) * length); ++ char *var = (char *) malloc(sizeof(char) * (length + 1)); + check_ptr(var, ""); + + strcpy(var, language); +@@ -144,7 +157,8 @@ static char **compute_locale_variants(co + pos = 0; + for (i = 0; i <= mask; i++) { + if (progress[i] != NULL) { +- retval[pos] = progress[i]; ++ retval[pos] = strdup(progress[i]); ++ free(progress[i]); + ++pos; + } + } +@@ -206,7 +220,7 @@ char **sk_get_language_list() + count++; + } + +- tab = (char ***)malloc(sizeof(char **) * count); ++ tab = (char ***)malloc(sizeof(char **) * (count + 1)); + + str = strdup(lang); + check_ptr(str, ""); +@@ -246,7 +260,8 @@ char **sk_get_language_list() + while (tab[j] != NULL) { + k = 0; + while (tab[j][k] != NULL) { +- retval[pos] = tab[j][k]; ++ retval[pos] = strdup(tab[j][k]); ++ free(tab[j][k]); + ++pos; + ++k; + } |