On Sat, 2010-10-09 at 19:59 +0200, Sami Kerola wrote: > Human understandable error messages along with symbolic exit > codes to comply with coding standard. > --- > text-utils/column.c | 20 ++++++++++++-------- > 1 files changed, 12 insertions(+), 8 deletions(-) > > diff --git a/text-utils/column.c b/text-utils/column.c > index 6371a98..12a94f5 100644 > --- a/text-utils/column.c > +++ b/text-utils/column.c > @@ -159,7 +159,7 @@ main(int argc, char **argv) > (void)fclose(fp); > } else { > warn("%s", *argv); > - eval = 1; > + eval = EXIT_FAILURE; > } > > if (!entries) > @@ -174,7 +174,7 @@ main(int argc, char **argv) > else > r_columnate(); > if (ferror(stdout) || fclose(stdout)) > - eval = 1; > + eval = EXIT_FAILURE; > exit(eval); > } > > @@ -280,7 +280,7 @@ maketbl() > * sizeof(wchar_t *))) || > !(lens = realloc(lens, ((u_int)maxcols + DEFCOLS) > * sizeof(int)))) > - err(1, NULL); > + err(EXIT_FAILURE, _("out of memory?")); I'm starting to think that it might be useful to add a utils.{c,h} file in lib/ for different standard functions. In this case an xmalloc function would come in handy to standardize code, I'm seeing this all throughout the files. We could also include getnum() here and move it from schedutils.h so it's a bit more generic. void *xmalloc(const size_t size) { void *ret = malloc(size); if (!ret) err(EXIT_FAILURE, "cannot allocate %lu bytes", size); return ret; } > memset((char *)lens + maxcols * sizeof(int), > 0, DEFCOLS * sizeof(int)); > maxcols += DEFCOLS; > @@ -313,7 +313,7 @@ input(fp) > FILE *fp; > { > static int maxentry; > - int len; > + int len, lineno = 1, reportedline = 0; > wchar_t *p, buf[MAXLINELEN]; > > if (!list) > @@ -323,10 +323,14 @@ input(fp) > if (!*p) > continue; > if (!(p = wcschr(p, '\n')) && !(feof(fp))) { > - warnx(_("line too long")); > - eval = 1; > + if (reportedline < lineno) { > + warnx(_("line %d is too long, output will be truncated"), lineno); > + reportedline = lineno; > + } > + eval = EXIT_FAILURE; > continue; > } > + lineno++; > if (!(feof(fp))) > *p = '\0'; > len = wcs_width(buf); /* len = p - buf; */ > @@ -336,7 +340,7 @@ input(fp) > maxentry += DEFNUM; > if (!(list = realloc(list, > (u_int)maxentry * sizeof(wchar_t *)))) > - err(1, NULL); > + err(EXIT_FAILURE, _("out of memory?")); > } > list[entries++] = wcsdup(buf); > } > @@ -391,7 +395,7 @@ emalloc(size) > char *p; > > if (!(p = malloc(size))) > - err(1, NULL); > + err(EXIT_FAILURE, _("out of memory?")); > memset(p, 0, size); > return (p); > } -- To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html