Include a Other Software section in Help file
[geeqie.git] / src / format_raw.c
index dbf4b1a..835c2fd 100644 (file)
@@ -1,14 +1,22 @@
 /*
- * Geeqie
- * (C) 2006 John Ellis
- * Copyright (C) 2008 The Geeqie Team
+ * Copyright (C) 2006 John Ellis
+ * Copyright (C) 2008 - 2016 The Geeqie Team
  *
- *  Authors:
- *    Original version 2005 Lars Ellenberg, base on dcraw by David coffin.
+ * Author: Lars Ellenberg
  *
- * This software is released under the GNU General Public License (GNU GPL).
- * Please read the included file COPYING for more information.
- * This software comes with no warranty of any kind, use at your own risk!
+ * 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.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -42,7 +50,7 @@ struct _FormatRawEntry {
        const gchar *extension;
        FormatRawMatchType magic_type;
        const guint magic_offset;
-       const void *magic_pattern;
+       gconstpointer magic_pattern;
        const guint magic_length;
        const FormatRawExifType exif_type;
        FormatRawExifParseFunc exif_func;
@@ -67,7 +75,7 @@ static FormatRawEntry format_raw_list[] = {
 typedef struct _FormatExifEntry FormatExifEntry;
 struct _FormatExifEntry {
        FormatExifMatchType header_type;
-       const void *header_pattern;
+       gconstpointer header_pattern;
        const guint header_length;
        const gchar *description;
        FormatExifParseFunc func_parse;
@@ -82,7 +90,7 @@ static FormatExifEntry format_exif_list[] = {
 };
 
 
-static guint tiff_table(unsigned char *data, const guint len, guint offset, ExifByteOrder bo,
+static guint tiff_table(guchar *data, const guint len, guint offset, ExifByteOrder bo,
                        guint tag, ExifFormatType type,
                        guint *result_offset, guint *result_count)
 {
@@ -90,7 +98,7 @@ static guint tiff_table(unsigned char *data, const guint len, guint offset, Exif
        guint i;
 
        if (len < offset + 2) return 0;
-       if (type < 0 || type > EXIF_FORMAT_COUNT) return 0;
+       if (type > EXIF_FORMAT_COUNT) return 0;
 
        count = exif_byte_get_int16(data + offset, bo);
        offset += 2;
@@ -133,9 +141,9 @@ static guint tiff_table(unsigned char *data, const guint len, guint offset, Exif
        return exif_byte_get_int32(data + offset + count * 12, bo);
 }
 
-static gint format_tiff_find_tag_data(unsigned char *data, const guint len,
-                                     guint tag, ExifFormatType type,
-                                     guint *result_offset, guint *result_count)
+static gboolean format_tiff_find_tag_data(guchar *data, const guint len,
+                                         guint tag, ExifFormatType type,
+                                         guint *result_offset, guint *result_count)
 {
        ExifByteOrder bo;
        guint offset;
@@ -179,10 +187,10 @@ static gint format_tiff_find_tag_data(unsigned char *data, const guint len,
        return FALSE;
 }
 
-static FormatRawEntry *format_raw_find(unsigned char *data, const guint len)
+static FormatRawEntry *format_raw_find(guchar *data, const guint len)
 {
        gint n;
-       gint tiff;
+       gboolean tiff;
        guint make_count = 0;
        guint make_offset = 0;
 
@@ -230,13 +238,13 @@ static FormatRawEntry *format_raw_find(unsigned char *data, const guint len)
        return NULL;
 }
 
-static gint format_raw_parse(FormatRawEntry *entry,
-                            unsigned char *data, const guint len,
-                            guint *image_offset, guint *exif_offset)
+static gboolean format_raw_parse(FormatRawEntry *entry,
+                                guchar *data, const guint len,
+                                guint *image_offset, guint *exif_offset)
 {
        guint io = 0;
        guint eo = 0;
-       gint found;
+       gboolean found;
 
        if (!entry || !entry->func_parse) return FALSE;
 
@@ -257,8 +265,8 @@ static gint format_raw_parse(FormatRawEntry *entry,
        return TRUE;
 }
 
-gint format_raw_img_exif_offsets(unsigned char *data, const guint len,
-                                guint *image_offset, guint *exif_offset)
+gboolean format_raw_img_exif_offsets(guchar *data, const guint len,
+                                    guint *image_offset, guint *exif_offset)
 {
        FormatRawEntry *entry;
 
@@ -272,7 +280,7 @@ gint format_raw_img_exif_offsets(unsigned char *data, const guint len,
 }
 
 
-FormatRawExifType format_raw_exif_offset(unsigned char *data, const guint len, guint *exif_offset,
+FormatRawExifType format_raw_exif_offset(guchar *data, const guint len, guint *exif_offset,
                                         FormatRawExifParseFunc *exif_parse_func)
 {
        FormatRawEntry *entry;
@@ -294,15 +302,15 @@ FormatRawExifType format_raw_exif_offset(unsigned char *data, const guint len, g
 }
 
 
-gint format_raw_img_exif_offsets_fd(int fd, const gchar *path,
-                                   unsigned char *header_data, const guint header_len,
-                                   guint *image_offset, guint *exif_offset)
+gboolean format_raw_img_exif_offsets_fd(gint fd, const gchar *path,
+                                       guchar *header_data, const guint header_len,
+                                       guint *image_offset, guint *exif_offset)
 {
        FormatRawEntry *entry;
-       void *map_data = NULL;
+       gpointer map_data = NULL;
        size_t map_len = 0;
        struct stat st;
-       gint success;
+       gboolean success;
 
        if (!header_data || fd < 0) return FALSE;
 
@@ -310,7 +318,7 @@ gint format_raw_img_exif_offsets_fd(int fd, const gchar *path,
        if (path)
                {
                const gchar *ext;
-               gint match = FALSE;
+               gboolean match = FALSE;
                gint i;
 
                ext = strrchr(path, '.');
@@ -321,7 +329,7 @@ gint format_raw_img_exif_offsets_fd(int fd, const gchar *path,
                while (!match && format_raw_list[i].magic_pattern)
                        {
                        if (format_raw_list[i].extension &&
-                           strcasecmp(format_raw_list[i].extension, ext) == 0)
+                           g_ascii_strcasecmp(format_raw_list[i].extension, ext) == 0)
                                {
                                match = TRUE;
                                }
@@ -333,8 +341,8 @@ gint format_raw_img_exif_offsets_fd(int fd, const gchar *path,
                DEBUG_1("RAW file parser extension match");
                }
 
-       /* FIXME:
-        * when the target is a tiff file it should be mmaped prior to format_raw_find as
+       /**
+        * @FIXME when the target is a tiff file it should be mmaped prior to format_raw_find as
         * the make field data may not always be within header_data + header_len
         */
        entry = format_raw_find(header_data, header_len);
@@ -377,7 +385,7 @@ gint format_raw_img_exif_offsets_fd(int fd, const gchar *path,
 }
 
 
-static FormatExifEntry *format_exif_makernote_find(ExifData *exif, unsigned char *tiff,
+static FormatExifEntry *format_exif_makernote_find(ExifData *exif, guchar *tiff,
                                                   guint offset, guint size)
 {
        ExifItem *make;
@@ -414,8 +422,8 @@ static FormatExifEntry *format_exif_makernote_find(ExifData *exif, unsigned char
        return FALSE;
 }
 
-gint format_exif_makernote_parse(ExifData *exif, unsigned char *tiff, guint offset,
-                                guint size, ExifByteOrder bo)
+gboolean format_exif_makernote_parse(ExifData *exif, guchar *tiff, guint offset,
+                                    guint size, ExifByteOrder bo)
 {
        FormatExifEntry *entry;
 
@@ -435,10 +443,10 @@ gint format_exif_makernote_parse(ExifData *exif, unsigned char *tiff, guint offs
  */
 #if DEBUG_RAW_TIFF
 
-static guint format_debug_tiff_table(unsigned char *data, const guint len, guint offset,
+static guint format_debug_tiff_table(guchar *data, const guint len, guint offset,
                                     ExifByteOrder bo, gint level);
 
-static void format_debug_tiff_entry(unsigned char *data, const guint len, guint offset,
+static void format_debug_tiff_entry(guchar *data, const guint len, guint offset,
                                    ExifByteOrder bo, gint level)
 {
        guint tag;
@@ -497,7 +505,7 @@ static void format_debug_tiff_entry(unsigned char *data, const guint len, guint
                }
 }
 
-static guint format_debug_tiff_table(unsigned char *data, const guint len, guint offset,
+static guint format_debug_tiff_table(guchar *data, const guint len, guint offset,
                                     ExifByteOrder bo, gint level)
 {
        guint count;
@@ -523,8 +531,8 @@ static guint format_debug_tiff_table(unsigned char *data, const guint len, guint
        return exif_byte_get_int32(data + offset + count * EXIF_TIFD_SIZE, bo);
 }
 
-gint format_debug_tiff_raw(unsigned char *data, const guint len,
-                          guint *image_offset, guint *exif_offset)
+gboolean format_debug_tiff_raw(guchar *data, const guint len,
+                              guint *image_offset, guint *exif_offset)
 {
        ExifByteOrder bo;
        gint level;
@@ -565,3 +573,4 @@ gint format_debug_tiff_raw(unsigned char *data, const guint len,
 
 #endif
 /* not HAVE_EXIV2 */
+/* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */