drop the old string API fully.
[apps/madmutt.git] / pgpmicalg.c
index e178bfa..1c322be 100644 (file)
@@ -1,20 +1,10 @@
 /*
+ * Copyright notice from original mutt:
  * Copyright (C) 2001 Thomas Roessler <roessler@does-not-exist.org>
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public
- * License along with this program; if not, write to the Free
- * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111, USA.
+ *
+ * This file is part of mutt-ng, see http://www.muttng.org/.
+ * It's licensed under the GNU General Public License,
+ * please see the file GPL in the top level source directory.
  */
 
 /* This module peeks at a PGP signature and figures out the hash
@@ -26,9 +16,9 @@
 #endif
 
 #include "mutt.h"
+#include "handler.h"
 #include "pgp.h"
 #include "pgppacket.h"
-#include "mime.h"
 #include "charset.h"
 
 #include <stdio.h>
 #include <string.h>
 #include <ctype.h>
 
+#include <lib-lib/file.h>
+
+#include <lib-mime/mime.h>
+
+#include "lib/debug.h"
+
 static struct {
   short id;
   const char *name;
@@ -66,13 +62,13 @@ static const char *pgp_hash_to_micalg (short id)
 static void pgp_dearmor (FILE * in, FILE * out)
 {
   char line[HUGE_STRING];
-  long start;
-  long end;
+  off_t start;
+  off_t end;
   char *r;
 
   STATE state;
 
-  memset (&state, 0, sizeof (STATE));
+  p_clear(&state, 1);
   state.fpin = in;
   state.fpout = out;
 
@@ -83,25 +79,24 @@ static void pgp_dearmor (FILE * in, FILE * out)
       break;
   }
   if (r == NULL) {
-    dprint (1,
-            (debugfile, "pgp_dearmor: Can't find begin of ASCII armor.\n"));
+    debug_print (1, ("Can't find begin of ASCII armor.\n"));
     return;
   }
 
   /* skip the armor header */
 
   while ((r = fgets (line, sizeof (line), in)) != NULL) {
-    SKIPWS (r);
+    r = vskipspaces(r);
     if (!*r)
       break;
   }
   if (r == NULL) {
-    dprint (1, (debugfile, "pgp_dearmor: Armor header doesn't end.\n"));
+    debug_print (1, ("Armor header doesn't end.\n"));
     return;
   }
 
   /* actual data starts here */
-  start = ftell (in);
+  start = ftello (in);
 
   /* find the checksum */
 
@@ -110,17 +105,17 @@ static void pgp_dearmor (FILE * in, FILE * out)
       break;
   }
   if (r == NULL) {
-    dprint (1, (debugfile, "pgp_dearmor: Can't find end of ASCII armor.\n"));
+    debug_print (1, ("Can't find end of ASCII armor.\n"));
     return;
   }
 
-  if ((end = ftell (in) - strlen (line)) < start) {
-    dprint (1, (debugfile, "pgp_dearmor: end < start???\n"));
+  if ((end = ftello (in) - m_strlen(line)) < start) {
+    debug_print (1, ("end < start???\n"));
     return;
   }
 
-  if (fseek (in, start, SEEK_SET) == -1) {
-    dprint (1, (debugfile, "pgp_dearmor: Can't seekto start.\n"));
+  if (fseeko (in, start, SEEK_SET) == -1) {
+    debug_print (1, ("Can't seekto start.\n"));
     return;
   }
 
@@ -131,8 +126,7 @@ static short pgp_mic_from_packet (unsigned char *p, size_t len)
 {
   /* is signature? */
   if ((p[0] & 0x3f) != PT_SIG) {
-    dprint (1, (debugfile, "pgp_mic_from_packet: tag = %d, want %d.\n",
-                p[0] & 0x3f, PT_SIG));
+    debug_print (1, ("tag = %d, want %d.\n", p[0] & 0x3f, PT_SIG));
     return -1;
   }
 
@@ -143,7 +137,7 @@ static short pgp_mic_from_packet (unsigned char *p, size_t len)
     /* version 4 signature */
     return (short) p[4];
   else {
-    dprint (1, (debugfile, "pgp_mic_from_packet: Bad signature packet.\n"));
+    debug_print (1, ("Bad signature packet.\n"));
     return -1;
   }
 }
@@ -179,7 +173,7 @@ static short pgp_find_hash (const char *fname)
     rv = pgp_mic_from_packet (p, l);
   }
   else {
-    dprint (1, (debugfile, "pgp_find_hash: No packet.\n"));
+    debug_print (1, ("No packet.\n"));
   }
 
 bye: