(CC:ed to authors)
I went through the file plugins and added magic patterns to those who didn't
register any, and corrected those already exisiting. The only case where I'm
not 100% certain is the MPEG magic number; the ones chosen are from my
/etc/magic file, and all mpegs I've looked at had either of them.

This patch, together with the earlier TGA-and-magicless-load patch, have
been uploaded to ftp.gimp.org as gimp-mattias-000227-0.patch.

--- gimp-1.1.17/plug-ins/common/CEL.c.orig      Sat Feb 26 22:43:27 2000
+++ gimp-1.1.17/plug-ins/common/CEL.c   Sat Feb 26 22:43:53 2000
@@ -132,7 +132,7 @@
   gimp_register_magic_load_handler ("file_cel_load",
                                    "cel",
                                    "",
-                                   "0,string,KiSS\040");
+                                   "0,string,KiSS\\040");
   gimp_register_save_handler       ("file_cel_save",
                                    "cel",
                                    "");
--- gimp-1.1.17/plug-ins/common/bz2.c.orig      Sat Feb 26 21:15:06 2000
+++ gimp-1.1.17/plug-ins/common/bz2.c   Sat Feb 26 21:17:20 2000
@@ -132,9 +132,10 @@
                           nsave_args, 0,
                           save_args, NULL);
 
-  gimp_register_load_handler ("file_bz2_load",
-                             "xcf.bz2,bz2,xcfbz2",
-                             "");
+  gimp_register_magic_load_handler ("file_bz2_load",
+                                   "xcf.bz2,bz2,xcfbz2",
+                                   "",
+                                   "0,string,BZh");
   gimp_register_save_handler ("file_bz2_save",
                              "xcf.bz2,bz2,xcfbz2",
                              "");
--- gimp-1.1.17/plug-ins/common/gicon.c.orig    Sat Feb 26 22:28:50 2000
+++ gimp-1.1.17/plug-ins/common/gicon.c Sat Feb 26 22:46:23 2000
@@ -146,9 +146,11 @@
                           nsave_args, 0,
                           save_args, NULL);
 
-  gimp_register_load_handler ("file_gicon_load",
-                             "ico",
-                             "");
+  gimp_register_magic_load_handler ("file_gicon_load",
+                                   "ico",
+                                   "",
+                                   "0,string,"
+                                   "/*\\040\\040GIMP\\040icon\\040image");
   gimp_register_save_handler ("file_gicon_save",
                              "ico",
                              "");
--- gimp-1.1.17/plug-ins/common/mpeg.c.orig     Sat Feb 26 21:07:10 2000
+++ gimp-1.1.17/plug-ins/common/mpeg.c  Sat Feb 26 21:14:44 2000
@@ -133,9 +133,10 @@
                           nload_args, nload_return_vals,
                           load_args, load_return_vals);
 
-  gimp_register_load_handler ("file_mpeg_load",
-                             "mpg,mpeg",
-                             "");
+  gimp_register_magic_load_handler ("file_mpeg_load",
+                                   "mpg,mpeg",
+                                   ""
+                                   "0,long,0x000001b3,0,long,0x000001ba");
 }
 
 static void
--- gimp-1.1.17/plug-ins/common/psd.c.orig      Sat Feb 26 21:29:26 2000
+++ gimp-1.1.17/plug-ins/common/psd.c   Sat Feb 26 21:37:51 2000
@@ -402,7 +402,8 @@
                           nload_args, nload_return_vals,
                           load_args, load_return_vals);
 
-  gimp_register_load_handler ("file_psd_load", "psd", "");
+  gimp_register_magic_load_handler ("file_psd_load", "psd", "",
+                                   "0,string,8BPS");
 }
 
 
--- gimp-1.1.17/plug-ins/common/psp.c.orig      Sat Feb 26 22:50:38 2000
+++ gimp-1.1.17/plug-ins/common/psp.c   Sat Feb 26 22:51:06 2000
@@ -398,7 +398,7 @@
   gimp_register_magic_load_handler ("file_psp_load",
                                    "psp,tub",
                                    "",
-                                   "0,string,Paint Shop Pro Image File\n\032");
+                                   
+"0,string,Paint\\040Shop\\040Pro\\040Image\\040File\n\032");
 /* Removed until Saving is implemented -- [EMAIL PROTECTED]
   gimp_register_save_handler       ("file_psp_save",
                                     "psp,tub",
--- gimp-1.1.17/plug-ins/common/xpm.c.orig      Sat Feb 26 22:51:25 2000
+++ gimp-1.1.17/plug-ins/common/xpm.c   Sat Feb 26 22:51:32 2000
@@ -180,7 +180,7 @@
   gimp_register_magic_load_handler ("file_xpm_load",
                                    "xpm",
                                    "<Load>/Xpm",
-                                   "0, string, /* XPM */");
+                                   "0, string,/*\\040XPM\\040*/");
   gimp_register_save_handler       ("file_xpm_save",
                                    "xpm",
                                    "<Save>/Xpm");
--- gimp-1.1.17/plug-ins/common/xwd.c.orig      Sun Feb 27 17:32:13 2000
+++ gimp-1.1.17/plug-ins/common/xwd.c   Sun Feb 27 18:36:29 2000
@@ -1,7 +1,7 @@
 /* The GIMP -- an image manipulation program
  * Copyright (C) 1995 Spencer Kimball and Peter Mattis
  * XWD reading and writing code Copyright (C) 1996 Peter Kirchgessner
- * (email: [EMAIL PROTECTED], WWW: http://members.aol.com/pkirchg)
+ * (email: [EMAIL PROTECTED], WWW: http://www.kirchgessner.net)
  *
  * 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
@@ -35,6 +35,7 @@
  *          2       |    1,...,24  |      32
  */
 /* Event history:
+ * PK = Peter Kirchgessner, ME = Mattias Engdegård
  * V 1.00, PK, xx-Aug-96: First try
  * V 1.01, PK, 03-Sep-96: Check for bitmap_bit_order
  * V 1.90, PK, 17-Mar-97: Upgrade to work with GIMP V0.99
@@ -43,8 +44,10 @@
  * V 1.91, PK, 05-Apr-97: Return all arguments, even in case of an error
  * V 1.92, PK, 12-Oct-97: No progress bars for non-interactive mode
  * V 1.93, PK, 11-Apr-98: Fix problem with overwriting memory
+ * V 1.94, ME, 27-Feb-00: Remove superfluous little-endian support (format is
+                          specified as big-endian). Trim magic header
  */
-static char ident[] = "@(#) GIMP XWD file-plugin v1.93  11-Apr-98";
+static char ident[] = "@(#) GIMP XWD file-plugin v1.94  27-Feb-2000";
 
 #include "config.h"
 
@@ -183,8 +186,6 @@
 static gint save_rgb         (FILE *, gint32, gint32);
 
 
-static int read_msb_first = 1;
-
 
 GPlugInInfo PLUG_IN_INFO =
 {
@@ -260,7 +261,7 @@
   gimp_register_magic_load_handler ("file_xwd_load",
                                    "xwd",
                                    "",
-                                    "4,long,0x00000007,4,long,0x07000000");
+                                    "4,long,0x00000007");
   gimp_register_save_handler       ("file_xwd_save",
                                    "xwd",
                                    "");
@@ -399,22 +400,12 @@
       return (-1);
     }
 
-  read_msb_first = 1;   /* Start reading with most significant byte first */
-
   read_xwd_header (ifp, &xwdhdr);
   if (xwdhdr.l_file_version != 7)
     {
-      read_msb_first = 0; /* Try reading with least significant byte first */
-
-      fseek (ifp, 0, SEEK_SET);
-
-      read_xwd_header (ifp, &xwdhdr);
-      if (xwdhdr.l_file_version != 7)
-       {
-         g_message(_("can't open file as XWD file"));
-         fclose (ifp);
-         return (-1);
-       }
+      g_message(_("can't open file as XWD file"));
+      fclose (ifp);
+      return (-1);
     }
 
   /* Position to start of XWDColor structures */
@@ -585,20 +576,10 @@
 {
   L_CARD32 c;
 
-  if (read_msb_first)
-    {
-      c = (((L_CARD32)(getc (ifp))) << 24);
-      c |= (((L_CARD32)(getc (ifp))) << 16);
-     c |= (((L_CARD32)(getc (ifp))) << 8);
-     c |= ((L_CARD32)(*err = getc (ifp)));
-    }
-  else
-    {
-      c = ((L_CARD32)(getc (ifp)));
-      c |= (((L_CARD32)(getc (ifp))) << 8);
-      c |= (((L_CARD32)(getc (ifp))) << 16);
-      c |= (((L_CARD32)(*err = getc (ifp))) << 24);
-    }
+  c = (((L_CARD32)(getc (ifp))) << 24);
+  c |= (((L_CARD32)(getc (ifp))) << 16);
+  c |= (((L_CARD32)(getc (ifp))) << 8);
+  c |= ((L_CARD32)(*err = getc (ifp)));
   
   *err = (*err < 0);
   return (c);
@@ -612,16 +593,8 @@
 {
   L_CARD16 c;
   
-  if (read_msb_first)
-    {
-      c = (((L_CARD16)(getc (ifp))) << 8);
-      c |= ((L_CARD16)(*err = getc (ifp)));
-    }
-  else
-    {
-      c = ((L_CARD16)(getc (ifp)));
-      c |= (((L_CARD16)(*err = getc (ifp))) << 8);
-    }
+  c = (((L_CARD16)(getc (ifp))) << 8);
+  c |= ((L_CARD16)(*err = getc (ifp)));
   
   *err = (*err < 0);
   return (c);

Reply via email to