aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/pkg_install/lib
diff options
context:
space:
mode:
authorMario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>2003-05-26 17:12:22 +0000
committerMario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>2003-05-26 17:12:22 +0000
commitfc12c41ca36573a559dd631e41d3976c057dddc4 (patch)
treeda77d3ee3e8cc3417d1a4fa8acfa86af4eed0839 /usr.sbin/pkg_install/lib
parentc32acd2e5cc151a23c79c1532ad6494c482d14ad (diff)
Notes
Diffstat (limited to 'usr.sbin/pkg_install/lib')
-rw-r--r--usr.sbin/pkg_install/lib/lib.h1
-rw-r--r--usr.sbin/pkg_install/lib/str.c23
2 files changed, 23 insertions, 1 deletions
diff --git a/usr.sbin/pkg_install/lib/lib.h b/usr.sbin/pkg_install/lib/lib.h
index b7ca695c87486..afa68afcf9fe4 100644
--- a/usr.sbin/pkg_install/lib/lib.h
+++ b/usr.sbin/pkg_install/lib/lib.h
@@ -147,6 +147,7 @@ off_t min_free(const char *);
/* String */
char *get_dash_string(char **);
char *copy_string(const char *);
+char *copy_string_adds_newline(const char *);
Boolean suffix(const char *, const char *);
void nuke_suffix(char *);
void str_lowercase(char *);
diff --git a/usr.sbin/pkg_install/lib/str.c b/usr.sbin/pkg_install/lib/str.c
index 8f6aec33d26b8..0d9e288b75794 100644
--- a/usr.sbin/pkg_install/lib/str.c
+++ b/usr.sbin/pkg_install/lib/str.c
@@ -42,7 +42,7 @@ get_dash_string(char **str)
char *s = *str;
if (*s == '-')
- *str = copy_string(s + 1);
+ *str = copy_string_adds_newline(s + 1);
else
*str = fileGetContents(s);
return *str;
@@ -55,6 +55,27 @@ copy_string(const char *str)
return (str ? strdup(str) : NULL);
}
+/* Rather Obvious but adds a trailing \n newline */
+char *
+copy_string_adds_newline(const char *str)
+{
+ if (str == NULL) {
+ return (NULL);
+ } else {
+ char *copy;
+ size_t line_length;
+
+ line_length = strlen(str) + 2;
+ if ((copy = malloc(line_length)) == NULL)
+ return (NULL);
+ memcpy(copy, str, line_length - 2);
+ copy[line_length - 2] = '\n'; /* Adds trailing \n */
+ copy[line_length - 1] = '\0';
+
+ return (copy);
+ }
+}
+
/* Return TRUE if 'str' ends in suffix 'suff' */
Boolean
suffix(const char *str, const char *suff)