X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fannosbr.c;h=87e9580b423f896d42264a431816174c4b7161e0;hb=93f22073ff22b277206b0481c1f8f076aee1656d;hp=6677d2146f21290a697ee896a3635fee67281c19;hpb=d9b1d57351d104d7ec1a5621f090657dcce8cb7f;p=mmh diff --git a/uip/annosbr.c b/uip/annosbr.c index 6677d21..87e9580 100644 --- a/uip/annosbr.c +++ b/uip/annosbr.c @@ -2,8 +2,6 @@ /* * annosbr.c -- prepend annotation to messages * - * $Id$ - * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for * complete copyright information. @@ -11,6 +9,7 @@ #include #include +#include #include #include #include @@ -93,8 +92,7 @@ annolist(char *file, char *comp, char *text, int number) * This buffer might need to be quite large, so we grow it as needed. */ - if ((field = (char *)malloc(field_size = 256)) == (char *)0) - adios(NULL, "can't allocate field buffer."); + field = (char *)mh_xmalloc(field_size = 256); /* * Get the length of the field name since we use it often. @@ -120,8 +118,7 @@ annolist(char *file, char *comp, char *text, int number) } if (++n >= field_size - 1) { - if ((field = (char *)realloc((void *)field, field_size += 256)) == (char *)0) - adios(NULL, "can't grow field buffer."); + field = (char *) mh_xrealloc((void *)field, field_size += 256); cp = field + n - 1; } @@ -180,20 +177,15 @@ annosbr (int fd, char *file, char *comp, char *text, int inplace, int datesw, in FILE *tmp; int c; /* current character */ int count; /* header field (annotation) counter */ - char *field; /* buffer for header field */ - int field_size; /* size of field buffer */ - FILE *fp; /* file pointer made from locked file descriptor */ + char *field = NULL; /* buffer for header field */ + int field_size = 0; /* size of field buffer */ + FILE *fp = NULL; /* file pointer made from locked file descriptor */ int length; /* length of field name */ int n; /* number of bytes written */ mode = fstat (fd, &st) != NOTOK ? (st.st_mode & 0777) : m_gmprot (); - strncpy (tmpfil, m_scratch (file, "annotate"), sizeof(tmpfil)); - - if ((tmp = fopen (tmpfil, "w")) == NULL) { - admonish (tmpfil, "unable to create"); - return 1; - } + strncpy (tmpfil, m_mktemp2(file, "annotate", NULL, &tmp), sizeof(tmpfil)); chmod (tmpfil, mode); /* @@ -208,8 +200,7 @@ annosbr (int fd, char *file, char *comp, char *text, int inplace, int datesw, in if ((fp = fdopen(fd, "r")) == (FILE *)0) adios(NULL, "unable to fdopen file."); - if ((field = (char *)malloc(field_size = 256)) == (char *)0) - adios(NULL, "can't allocate field buffer."); + field = (char *)mh_xmalloc(field_size = 256); } /* @@ -263,8 +254,7 @@ annosbr (int fd, char *file, char *comp, char *text, int inplace, int datesw, in } if (++n >= field_size - 1) { - if ((field = (char *)realloc((void *)field, field_size *= 2)) == (char *)0) - adios(NULL, "can't grow field buffer."); + field = (char *) mh_xrealloc((void *)field, field_size *= 2); cp = field + n - 1; } @@ -384,7 +374,7 @@ annosbr (int fd, char *file, char *comp, char *text, int inplace, int datesw, in while (*cp && *cp++ != '\n') continue; if (cp - sp) - fprintf (tmp, "%s: %*.*s", comp, cp - sp, cp - sp, sp); + fprintf (tmp, "%s: %*.*s", comp, (int)(cp - sp), (int)(cp - sp), sp); } while (*cp); if (cp[-1] != '\n' && cp != text) putc ('\n', tmp);