From: Jörg H. <ho...@us...> - 2008-07-26 20:15:33
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7851 Modified Files: exif-tag.c Log Message: gracefully return 0 when the name has not been found Index: exif-tag.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-tag.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -p -d -r1.40 -r1.41 --- exif-tag.c 17 Feb 2008 18:31:56 -0000 1.40 +++ exif-tag.c 26 Jul 2008 20:15:30 -0000 1.41 @@ -738,7 +738,6 @@ exif_tag_get_title_in_ifd (ExifTag tag, * bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); */ bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); - if (ifd >= EXIF_IFD_COUNT) return NULL; for (i = 0; ExifTagTable[i].title; i++) if ((ExifTagTable[i].tag == tag) && RECORDED) break; @@ -822,12 +821,16 @@ ExifTag exif_tag_from_name (const char *name) { unsigned int i; + unsigned int result=0; if (!name) return 0; for (i = 0; ExifTagTable[i].name; i++) - if (!strcmp (ExifTagTable[i].name, name)) break; - return ExifTagTable[i].tag; + if (!strcmp (ExifTagTable[i].name, name)) { + result = ExifTagTable[i].tag; + break; + } + return result; } ExifSupportLevel |
From: Jan P. <pa...@pi...> - 2008-07-27 08:50:12
|
Hi, > Modified Files: > exif-tag.c > Log Message: > gracefully return 0 when the name has not been found ..... > exif_tag_from_name (const char *name) > { > unsigned int i; > + unsigned int result=0; > > if (!name) return 0; > > for (i = 0; ExifTagTable[i].name; i++) > - if (!strcmp (ExifTagTable[i].name, name)) break; > - return ExifTagTable[i].tag; I am curious - did the old code really behave differently than the new one? If the name is not found, at the end ExifTagTable[i].name is NULL and therefore also ExifTagTable[i].tag is NULL. Or am I overlooking something? -- Jan > + if (!strcmp (ExifTagTable[i].name, name)) { > + result = ExifTagTable[i].tag; > + break; > + } > + return result; > } |