iliaa           Mon Dec  9 19:10:37 2002 EDT

  Modified files:              (Branch: PHP_4_3)
    /php4/ext/exif      exif.c 
  Log:
  MFH
  
  
Index: php4/ext/exif/exif.c
diff -u php4/ext/exif/exif.c:1.118.2.3 php4/ext/exif/exif.c:1.118.2.4
--- php4/ext/exif/exif.c:1.118.2.3      Tue Nov 26 21:43:21 2002
+++ php4/ext/exif/exif.c        Mon Dec  9 19:10:37 2002
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: exif.c,v 1.118.2.3 2002/11/27 02:43:21 helly Exp $ */
+/* $Id: exif.c,v 1.118.2.4 2002/12/10 00:10:37 iliaa Exp $ */
 
 /*  ToDos
  *
@@ -89,7 +89,7 @@
 };
 /* }}} */
 
-#define EXIF_VERSION "1.4 $Id: exif.c,v 1.118.2.3 2002/11/27 02:43:21 helly Exp $"
+#define EXIF_VERSION "1.4 $Id: exif.c,v 1.118.2.4 2002/12/10 00:10:37 iliaa Exp $"
 
 /* {{{ PHP_MINFO_FUNCTION
  */
@@ -765,8 +765,8 @@
   { 0x0000, "GPSVersion"},
   { 0x0001, "GPSLatitudeRef"},
   { 0x0002, "GPSLatitude"},
-  { 0x0003, "GPSLongitude"},
-  { 0x0004, "GPSLongitudeRef"},
+  { 0x0003, "GPSLongitudeRef"},
+  { 0x0004, "GPSLongitude"},
   { 0x0005, "GPSAltitudeRef"},
   { 0x0006, "GPSAltitude"},
   { 0x0007, "GPSTimeStamp"},
@@ -1520,6 +1520,7 @@
 static void exif_iif_add_value(image_info_type *image_info, int section_index, char 
*name, int tag, int format, size_t length, void* value, int motorola_intel TSRMLS_DC)
 {
        size_t index;
+       void *vptr;
        image_info_value *info_value;
        image_info_data  *info_data;
        image_info_data  *list;
@@ -1604,35 +1605,35 @@
                        } else {
                                info_value = &info_data->value;
                        }
-                       for (index=0; index<length; index++) {
+                       for (index=0,vptr=value; index<length; 
+index++,vptr+=php_tiff_bytes_per_format[format]) {
                                if (length>1) {
                                        info_value = &info_data->value.list[index];
                                }
                                switch (format) {
                                        case TAG_FMT_USHORT:
-                                               info_value->u = php_ifd_get16u(value, 
motorola_intel);
+                                               info_value->u = php_ifd_get16u(vptr, 
+motorola_intel);
                                                break;
 
                                        case TAG_FMT_ULONG:
-                                               info_value->u = php_ifd_get32u(value, 
motorola_intel);
+                                               info_value->u = php_ifd_get32u(vptr, 
+motorola_intel);
                                                break;
 
                                        case TAG_FMT_URATIONAL:
-                                               info_value->ur.num = 
php_ifd_get32u(value, motorola_intel);
-                                               info_value->ur.den = 
php_ifd_get32u(4+(char *)value, motorola_intel);
+                                               info_value->ur.num = 
+php_ifd_get32u(vptr, motorola_intel);
+                                               info_value->ur.den = 
+php_ifd_get32u(4+(char *)vptr, motorola_intel);
                                                break;
 
                                        case TAG_FMT_SSHORT:
-                                               info_value->i = php_ifd_get16s(value, 
motorola_intel);
+                                               info_value->i = php_ifd_get16s(vptr, 
+motorola_intel);
                                                break;
 
                                        case TAG_FMT_SLONG:
-                                               info_value->i = php_ifd_get32s(value, 
motorola_intel);
+                                               info_value->i = php_ifd_get32s(vptr, 
+motorola_intel);
                                                break;
 
                                        case TAG_FMT_SRATIONAL:
-                                               info_value->sr.num = 
php_ifd_get32u(value, motorola_intel);
-                                               info_value->sr.den = 
php_ifd_get32u(4+(char *)value, motorola_intel);
+                                               info_value->sr.num = 
+php_ifd_get32u(vptr, motorola_intel);
+                                               info_value->sr.den = 
+php_ifd_get32u(4+(char *)vptr, motorola_intel);
                                                break;
 
                                        case TAG_FMT_SINGLE:



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to