Finished the bulk of changes for gnupg 1.9. This included switching
[gnupg.git] / g10 / photoid.c
index 091fe0c..1dd6ede 100644 (file)
@@ -49,7 +49,7 @@ PKT_user_id *generate_photo_id(PKT_public_key *pk)
   char *filename=NULL;
   byte *photo=NULL;
   byte header[16];
   char *filename=NULL;
   byte *photo=NULL;
   byte header[16];
-  IOBUF file;
+  iobuf_t file;
 
   header[0]=0x10; /* little side of photo header length */
   header[1]=0;    /* big side of photo header length */
 
   header[0]=0x10; /* little side of photo header length */
   header[1]=0;    /* big side of photo header length */
@@ -59,7 +59,8 @@ PKT_user_id *generate_photo_id(PKT_public_key *pk)
   for(i=4;i<16;i++) /* The reserved bytes */
     header[i]=0;
 
   for(i=4;i<16;i++) /* The reserved bytes */
     header[i]=0;
 
-  uid=m_alloc_clear(sizeof(*uid)+50);
+#define EXTRA_UID_NAME_SPACE 71
+  uid=xcalloc (1,sizeof(*uid)+71);
 
   printf(_("\nPick an image to use for your photo ID.  "
           "The image must be a JPEG file.\n"
 
   printf(_("\nPick an image to use for your photo ID.  "
           "The image must be a JPEG file.\n"
@@ -72,7 +73,7 @@ PKT_user_id *generate_photo_id(PKT_public_key *pk)
     {
       printf("\n");
 
     {
       printf("\n");
 
-      m_free(filename);
+      xfree (filename);
 
       filename=cpr_get("photoid.jpeg.add",
                       _("Enter JPEG filename for photo ID: "));
 
       filename=cpr_get("photoid.jpeg.add",
                       _("Enter JPEG filename for photo ID: "));
@@ -100,7 +101,7 @@ PKT_user_id *generate_photo_id(PKT_public_key *pk)
          }
        }
 
          }
        }
 
-      photo=m_alloc(len);
+      photo=xmalloc (len);
       iobuf_read(file,photo,len);
       iobuf_close(file);
 
       iobuf_read(file,photo,len);
       iobuf_close(file);
 
@@ -109,7 +110,7 @@ PKT_user_id *generate_photo_id(PKT_public_key *pk)
         photo[6]!='J' || photo[7]!='F' || photo[8]!='I' || photo[9]!='F')
        {
          log_error(_("\"%s\" is not a JPEG file\n"),filename);
         photo[6]!='J' || photo[7]!='F' || photo[8]!='I' || photo[9]!='F')
        {
          log_error(_("\"%s\" is not a JPEG file\n"),filename);
-         m_free(photo);
+         xfree (photo);
          photo=NULL;
          continue;
        }
          photo=NULL;
          continue;
        }
@@ -117,7 +118,7 @@ PKT_user_id *generate_photo_id(PKT_public_key *pk)
       /* Build the packet */
       build_attribute_subpkt(uid,1,photo,len,header,16);
       parse_attribute_subpkts(uid);
       /* Build the packet */
       build_attribute_subpkt(uid,1,photo,len,header,16);
       parse_attribute_subpkts(uid);
-      make_attribute_uidname(uid);
+      make_attribute_uidname(uid, EXTRA_UID_NAME_SPACE);
 
       /* Showing the photo is not safe when noninteractive since the
          "user" may not be able to dismiss a viewer window! */
 
       /* Showing the photo is not safe when noninteractive since the
          "user" may not be able to dismiss a viewer window! */
@@ -131,7 +132,7 @@ PKT_user_id *generate_photo_id(PKT_public_key *pk)
              goto scram;
            case 0:
              free_attributes(uid);
              goto scram;
            case 0:
              free_attributes(uid);
-             m_free(photo);
+             xfree (photo);
              photo=NULL;
              continue;
            }
              photo=NULL;
              continue;
            }
@@ -142,13 +143,13 @@ PKT_user_id *generate_photo_id(PKT_public_key *pk)
   uid->ref=1;
 
  scram:
   uid->ref=1;
 
  scram:
-  m_free(filename);
-  m_free(photo);
+  xfree (filename);
+  xfree (photo);
 
   if(error)
     {
       free_attributes(uid);
 
   if(error)
     {
       free_attributes(uid);
-      m_free(uid);
+      xfree (uid);
       return NULL;
     }
 
       return NULL;
     }
 
@@ -188,8 +189,9 @@ int parse_image_header(const struct user_attribute *attr,byte *type,u32 *len)
 
 /* style==0 for extension, 1 for name, 2 for MIME type.  Remember that
    the "name" style string could be used in a user ID name field, so
 
 /* style==0 for extension, 1 for name, 2 for MIME type.  Remember that
    the "name" style string could be used in a user ID name field, so
-   make sure it is not too big (see
-   parse-packet.c:parse_attribute). */
+   make sure it is not too big (see parse-packet.c:parse_attribute).
+   Extensions should be 3 characters long for the best cross-platform
+   compatibility. */
 char *image_type_to_string(byte type,int style)
 {
   char *string;
 char *image_type_to_string(byte type,int style)
 {
   char *string;
@@ -221,7 +223,7 @@ char *image_type_to_string(byte type,int style)
 #if !defined(FIXED_PHOTO_VIEWER) && !defined(DISABLE_PHOTO_VIEWER)
 static const char *get_default_photo_command(void)
 {
 #if !defined(FIXED_PHOTO_VIEWER) && !defined(DISABLE_PHOTO_VIEWER)
 static const char *get_default_photo_command(void)
 {
-#if defined(HAVE_DOSISH_SYSTEM)
+#if defined(__MINGW32__)
   OSVERSIONINFO osvi;
 
   memset(&osvi,0,sizeof(osvi));
   OSVERSIONINFO osvi;
 
   memset(&osvi,0,sizeof(osvi));
@@ -281,13 +283,13 @@ void show_photos(const struct user_attribute *attrs,
        if(!command)
          goto fail;
 
        if(!command)
          goto fail;
 
-       name=m_alloc(16+strlen(EXTSEP_S)+
+       name=xmalloc (16+strlen(EXTSEP_S)+
                     strlen(image_type_to_string(args.imagetype,0))+1);
 
        /* Make the filename.  Notice we are not using the image
            encoding type for more than cosmetics.  Most external image
            viewers can handle a multitude of types, and even if one
                     strlen(image_type_to_string(args.imagetype,0))+1);
 
        /* Make the filename.  Notice we are not using the image
            encoding type for more than cosmetics.  Most external image
            viewers can handle a multitude of types, and even if one
-           cannot understand a partcular type, we have no way to know
+           cannot understand a particular type, we have no way to know
            which.  The spec permits this, by the way. -dms */
 
 #ifdef USE_ONLY_8DOT3
            which.  The spec permits this, by the way. -dms */
 
 #ifdef USE_ONLY_8DOT3
@@ -300,16 +302,16 @@ void show_photos(const struct user_attribute *attrs,
 
        if(exec_write(&spawn,NULL,command,name,1,1)!=0)
          {
 
        if(exec_write(&spawn,NULL,command,name,1,1)!=0)
          {
-           m_free(name);
+           xfree (name);
            goto fail;
          }
 
 #ifdef __riscos__
            goto fail;
          }
 
 #ifdef __riscos__
-        riscos_set_filetype(spawn->tempfile_in,
-                            image_type_to_string(args.imagetype,2));
+        riscos_set_filetype_by_mimetype(spawn->tempfile_in,
+                                        image_type_to_string(args.imagetype,2));
 #endif
 
 #endif
 
-       m_free(name);
+       xfree (name);
 
        fwrite(&attrs[i].data[offset],attrs[i].len-offset,1,spawn->tochild);
 
 
        fwrite(&attrs[i].data[offset],attrs[i].len-offset,1,spawn->tochild);
 
@@ -326,6 +328,6 @@ void show_photos(const struct user_attribute *attrs,
   return;
 
  fail:
   return;
 
  fail:
-  log_error("unable to display photo ID!\n");
+  log_error(_("unable to display photo ID!\n"));
 #endif
 }
 #endif
 }