summaryrefslogtreecommitdiff
path: root/misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'misc.c')
-rw-r--r--misc.c291
1 files changed, 0 insertions, 291 deletions
diff --git a/misc.c b/misc.c
index 3d5f181..0e9795f 100644
--- a/misc.c
+++ b/misc.c
@@ -59,149 +59,6 @@ static int check_file(Options*, const char*, const mode_t, const uint32);
/*
- * nvalloc() - malloc wrapper that checks for errors, and zeros out
- * the memory; if an error occurs, an error is printed to stderr and
- * exit is called -- this function will only return on success.
- */
-
-void *nvalloc(size_t size)
-{
- void *m = malloc(size);
-
- if (!m) {
- fprintf(stderr, "%s: memory allocation failure (%s)! \n",
- PROGRAM_NAME, strerror(errno));
- exit(1);
- }
- memset((char *) m, 0, size);
- return m;
-
-} /* nvalloc() */
-
-
-
-/*
- * nvrealloc() - realloc wrapper that checks for errors; if an error
- * occurs, an error is printed to stderr and exit is called -- this
- * function will only return on success.
- */
-
-void *nvrealloc(void *ptr, size_t size)
-{
- void *m;
-
- if (ptr == NULL) return nvalloc(size);
-
- m = realloc(ptr, size);
- if (!m) {
- fprintf(stderr, "%s: memory re-allocation failure (%s)! \n",
- PROGRAM_NAME, strerror(errno));
- exit(1);
- }
- return m;
-
-} /* nvrealloc() */
-
-
-
-/*
- * nvstrdup() - wrapper for strdup() that checks the return value; if
- * an error occurs, an error is printed to stderr and exit is called
- * -- this function will only return on success.
- */
-
-char *nvstrdup(const char *s)
-{
- char *m;
-
- if (!s) return NULL;
-
- m = strdup(s);
-
- if (!m) {
- fprintf(stderr, "%s: memory allocation failure during strdup (%s)! \n",
- PROGRAM_NAME, strerror(errno));
- exit(1);
- }
- return m;
-
-} /* nvstrdup() */
-
-
-
-/*
- * nvfree() -
- */
-void nvfree(char *s)
-{
- if (s) free(s);
-
-} /* nvfree() */
-
-
-
-/*
- * nvstrtolower() - convert the given string to lowercase.
- */
-
-char *nvstrtolower(char *s)
-{
- char *start = s;
-
- if (s == NULL) return NULL;
-
- while (*s) {
- *s = tolower(*s);
- s++;
- }
-
- return start;
-
-} /* nvstrtolower() */
-
-
-
-/*
- * nvstrcat() - allocate a new string, copying all given strings
- * into it. taken from glib
- */
-
-char *nvstrcat(const char *str, ...)
-{
- unsigned int l;
- va_list args;
- char *s;
- char *concat;
-
- l = 1 + strlen(str);
- va_start(args, str);
- s = va_arg(args, char *);
-
- while (s) {
- l += strlen(s);
- s = va_arg(args, char *);
- }
- va_end(args);
-
- concat = nvalloc(l);
- concat[0] = 0;
-
- strcat(concat, str);
- va_start(args, str);
- s = va_arg(args, char *);
- while (s) {
- strcat(concat, s);
- s = va_arg(args, char *);
- }
- va_end(args);
-
- return concat;
-
-} /* nvstrcat() */
-
-
-
-/*
* read_next_word() - given a string buf, skip any whitespace, and
* then copy the next set of characters until more white space is
* encountered. A new string containing this next word is returned.
@@ -2544,151 +2401,3 @@ done:
nvfree(cmd);
return ret;
}
-
-
-/*
- * nv_format_text_rows() - this function breaks the given string str
- * into some number of rows, where each row is not longer than the
- * specified width.
- *
- * If prefix is non-NULL, the first line is prepended with the prefix,
- * and subsequent lines are indented to line up with the prefix.
- *
- * If word_boundary is TRUE, then attempt to only break lines on
- * boundaries between words.
- *
- * XXX Note that we don't use nvalloc() or any of the other wrapper
- * functions from here, so that this function doesn't require any
- * non-c library symbols (so that it can be called from dlopen()'ed
- * user interfaces.
- */
-
-TextRows *nv_format_text_rows(const char *prefix, const char *str,
- int width, int word_boundary)
-{
- int len, prefix_len, z, w, i;
- char *line, *buf, *local_prefix, *a, *b, *c;
- TextRows *t;
-
- /* initialize the TextRows structure */
-
- t = (TextRows *) malloc(sizeof(TextRows));
- t->t = NULL;
- t->n = 0;
- t->m = 0;
-
- if (!str) return t;
-
- buf = strdup(str);
-
- z = strlen(buf); /* length of entire string */
- a = buf; /* pointer to the start of the string */
-
- /* initialize the prefix fields */
-
- if (prefix) {
- prefix_len = strlen(prefix);
- local_prefix = nvstrdup(prefix);
- } else {
- prefix_len = 0;
- local_prefix = NULL;
- }
-
- /* adjust the max width for any prefix */
-
- w = width - prefix_len;
-
- do {
- /*
- * if the string will fit on one line, point b to the end of the
- * string
- */
-
- if (z < w) b = a + z;
-
- /*
- * if the string won't fit on one line, move b to where the
- * end of the line should be, and then move b back until we
- * find a space; if we don't find a space before we back b all
- * the way up to a, just assign b to where the line should end.
- */
-
- else {
- b = a + w;
-
- if (word_boundary) {
- while ((b >= a) && (!isspace(*b))) b--;
- if (b <= a) b = a + w;
- }
- }
-
- /* look for any newline inbetween a and b, and move b to it */
-
- for (c = a; c < b; c++) if (*c == '\n') { b = c; break; }
-
- /*
- * copy the string that starts at a and ends at b, prepending
- * with a prefix, if present
- */
-
- len = b-a;
- len += prefix_len;
- line = (char *) malloc(len+1);
- if (local_prefix) strncpy(line, local_prefix, prefix_len);
- strncpy(line + prefix_len, a, len - prefix_len);
- line[len] = '\0';
-
- /* append the new line to the array of text rows */
-
- t->t = (char **) realloc(t->t, sizeof(char *) * (t->n + 1));
- t->t[t->n] = line;
- t->n++;
-
- if (t->m < len) t->m = len;
-
- /*
- * adjust the length of the string and move the pointer to the
- * beginning of the new line
- */
-
- z -= (b - a + 1);
- a = b + 1;
-
- /* move to the first non whitespace character (excluding newlines) */
-
- if (word_boundary && isspace(*b)) {
- while ((z) && (isspace(*a)) && (*a != '\n')) a++, z--;
- } else {
- if (!isspace(*b)) z++, a--;
- }
-
- if (local_prefix) {
- for (i = 0; i < prefix_len; i++) local_prefix[i] = ' ';
- }
-
- } while (z > 0);
-
- if (local_prefix) free(local_prefix);
- free(buf);
-
- return t;
-
-} /* nv_format_text_rows() */
-
-
-
-/*
- * nv_free_text_rows() - free the TextRows data structure allocated by
- * nv_format_text_rows()
- */
-
-void nv_free_text_rows(TextRows *t)
-{
- int i;
-
- if (!t) return;
- for (i = 0; i < t->n; i++) free(t->t[i]);
- if (t->t) free(t->t);
- free(t);
-
-} /* nv_free_text_rows() */