* complete copyright information.
*/
-#include <h/mh.h>
-#include <h/tws.h>
-#include <h/utils.h>
-#include "../sbr/lock_file.h"
-#include "../sbr/m_mktemp.h"
+#include "h/mh.h"
+#include "sbr/error.h"
+#include "h/tws.h"
+#include "h/utils.h"
+#include "sbr/lock_file.h"
+#include "sbr/m_mktemp.h"
#include <fcntl.h>
#include <utime.h>
/*
* static prototypes
*/
-static int annosbr (int, char *, char *, char *, int, int, int, int);
+static int annosbr (int, char *, char *, char *, bool, bool, int, bool);
/*
* This "local" global and the annopreserve() function are a hack that allows additional
static int preserve_actime_and_modtime = 0; /* set to preserve access and modification times on annotated message */
int
-annotate (char *file, char *comp, char *text, int inplace, int datesw, int delete, int append)
+annotate (char *file, char *comp, char *text, bool inplace, bool datesw, int delete, bool append)
{
int i, fd;
struct utimbuf b;
}
if (stat(file, &s) == -1) {
- advise("can't get access and modification times for %s", file);
+ inform("can't get access and modification times for %s", file);
preserve_actime_and_modtime = 0;
}
i = annosbr (fd, file, comp, text, inplace, datesw, delete, append);
if (preserve_actime_and_modtime && utime(file, &b) == -1)
- advise("can't set access and modification times for %s", file);
+ inform("can't set access and modification times for %s", file);
lkclosedata (fd, file);
return i;
* This buffer might need to be quite large, so we grow it as needed.
*/
- field = (char *)mh_xmalloc(field_size = 256);
+ field = mh_xmalloc(field_size = 256);
/*
* Get the length of the field name since we use it often.
}
if (++n >= field_size - 1) {
- field = (char *) mh_xrealloc((void *)field, field_size += 256);
+ field = mh_xrealloc((void *)field, field_size += 256);
cp = field + n - 1;
}
if (number)
(void)printf("%d\t", ++count);
- if (text == NULL && (sp = strrchr(cp, '/')) != (char *)0)
+ if (text == NULL && (sp = strrchr(cp, '/')))
cp = sp + 1;
puts(cp);
}
static int
-annosbr (int fd, char *file, char *comp, char *text, int inplace, int datesw, int delete, int append)
+annosbr (int fd, char *file, char *comp, char *text, bool inplace, bool datesw, int delete, bool append)
{
int mode, tmpfd;
char *cp, *sp;
mode = fstat (fd, &st) != NOTOK ? (int) (st.st_mode & 0777) : m_gmprot ();
if ((cp = m_mktemp2(file, "annotate", NULL, &tmp)) == NULL) {
- adios(NULL, "unable to create temporary file in %s", get_temp_dir());
+ die("unable to create temporary file");
}
strncpy (tmpfil, cp, sizeof(tmpfil));
chmod (tmpfil, mode);
* as they're read in. This buffer is grown as needed later.
*/
- if (delete >= -1 || append != 0) {
+ if (delete >= -1 || append) {
if ((fp = fdopen(fd, "r")) == NULL)
- adios(NULL, "unable to fdopen file.");
+ die("unable to fdopen file.");
- field = (char *)mh_xmalloc(field_size = 256);
+ field = mh_xmalloc(field_size = 256);
}
/*
}
if (++n >= field_size - 1) {
- field = (char *) mh_xrealloc((void *)field, field_size *= 2);
+ field = mh_xrealloc((void *)field, field_size *= 2);
cp = field + n - 1;
}
*/
if ((n = fputs(field, tmp)) == EOF || (c == '\n' && fputc('\n', tmp) == EOF))
- adios(NULL, "unable to write temporary file.");
+ die("unable to write temporary file.");
} while (*field != '\0' && *field != '-');
* Get rid of the field buffer because we're done with it.
*/
- free((void *)field);
+ free(field);
}
else {
*/
if (fp && lseek(fd, (off_t)ftell(fp), SEEK_SET) == (off_t)-1)
- adios(NULL, "can't seek.");
+ die("can't seek.");
cpydata (fd, fileno (tmp), file, tmpfil);
fclose (tmp);
if ((tmpfd = open (tmpfil, O_RDONLY)) == NOTOK)
adios (tmpfil, "unable to open for re-reading");
- lseek (fd, (off_t) 0, SEEK_SET);
+ lseek(fd, 0, SEEK_SET);
/*
* We're making the file shorter if we're deleting a header field