]> diplodocus.org Git - nmh/blobdiff - uip/annosbr.c
Commit ddf3a8574f65 is a fix to commit af586ebe59b7.
[nmh] / uip / annosbr.c
index 9d73a0945be720c0d80d2d7a961111d28a8872a1..8b0c8843e23e4db585e9ad3ca8d13801ac4d581d 100644 (file)
@@ -1,15 +1,21 @@
-
-/*
- * annosbr.c -- prepend annotation to messages
+/* annosbr.c -- prepend annotation to messages
  *
  * 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.
  */
 
-#include <h/mh.h>
-#include <h/tws.h>
-#include <h/utils.h>
+#include "h/mh.h"
+#include "sbr/dtime.h"
+#include "annosbr.h"
+#include "sbr/m_gmprot.h"
+#include "sbr/cpydata.h"
+#include "sbr/m_backup.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>
 
@@ -17,7 +23,7 @@
 /*
  * 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
@@ -27,7 +33,7 @@ static int annosbr (int, char *, char *, char *, int, int, int, int);
 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;
@@ -52,8 +58,8 @@ annotate (char *file, char *comp, char *text, int inplace, int datesw, int delet
     }
 
     if (stat(file, &s) == -1) {
-       advise("can't get access and modification times for %s", file);
-       preserve_actime_and_modtime = 0;
+        inform("can't get access and modification times for %s", file);
+       preserve_actime_and_modtime = 0;
     }
 
     b.actime = s.st_atime;
@@ -62,7 +68,7 @@ annotate (char *file, char *comp, char *text, int inplace, int datesw, int delet
     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;
@@ -70,7 +76,7 @@ annotate (char *file, char *comp, char *text, int inplace, int datesw, int delet
 
 /*
  *  Produce a listing of all header fields (annotations) whose field name matches
- *  comp.  Number the listing if number is set.  Treate the field bodies as path
+ *  comp.  Number the listing if number is set.  Treat the field bodies as path
  *  names and just output the last component unless text is non-NULL.  We don't
  *  care what text is set to.
  */
@@ -96,7 +102,7 @@ annolist(char *file, char *comp, char *text, int number)
      *  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.
@@ -121,7 +127,7 @@ annolist(char *file, char *comp, char *text, int number)
            }
 
            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;
            }
@@ -140,10 +146,10 @@ annolist(char *file, char *comp, char *text, int number)
            if (number)
                (void)printf("%d\t", ++count);
 
-           if (text == NULL && (sp = strrchr(cp, '/')) != (char *)0)
+           if (text == NULL && (sp = strrchr(cp, '/')))
                cp = sp + 1;
 
-           (void)printf("%s\n", cp);
+            puts(cp);
        }
 
     } while (*field != '\0' && *field != '-');
@@ -155,8 +161,6 @@ annolist(char *file, char *comp, char *text, int number)
     free(field);
 
     (void)fclose(fp);
-
-    return;
 }
 
 /*
@@ -167,11 +171,10 @@ void
 annopreserve(int preserve)
 {
        preserve_actime_and_modtime = preserve;
-       return;
 }
 
 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;
@@ -189,7 +192,7 @@ annosbr (int fd, char *file, char *comp, char *text, int inplace, int datesw, in
     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);
@@ -202,11 +205,11 @@ annosbr (int fd, char *file, char *comp, char *text, int inplace, int datesw, in
      * 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);
     }
 
     /*
@@ -260,7 +263,7 @@ annosbr (int fd, char *file, char *comp, char *text, int inplace, int datesw, in
                }
 
                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;
                }
@@ -327,7 +330,7 @@ annosbr (int fd, char *file, char *comp, char *text, int inplace, int datesw, in
             */
 
            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 != '-');
 
@@ -335,7 +338,7 @@ annosbr (int fd, char *file, char *comp, char *text, int inplace, int datesw, in
         *  Get rid of the field buffer because we're done with it.
         */
 
-       free((void *)field);
+       free(field);
     }
 
     else {
@@ -396,7 +399,7 @@ annosbr (int fd, char *file, char *comp, char *text, int inplace, int datesw, in
      */
 
     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);
@@ -405,7 +408,7 @@ annosbr (int fd, char *file, char *comp, char *text, int inplace, int datesw, in
        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