Update of /cvsroot/gtkpod/gtkpod/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15087/src

Modified Files:
        file.c 
Log Message:
Fixed segfault in get_track_info_from_file.



Index: file.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/file.c,v
retrieving revision 1.148
retrieving revision 1.149
diff -u -d -r1.148 -r1.149
--- file.c      19 Nov 2005 07:53:34 -0000      1.148
+++ file.c      21 Nov 2005 10:53:07 -0000      1.149
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-19 16:34:28 jcs>
+/* Time-stamp: <2005-11-21 19:51:51 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -759,7 +759,7 @@
     to->year = from->year;
     g_free (eto->year_str);
     eto->year_str = g_strdup_printf ("%d", to->year);
-
+    to->unk208 = from->unk208;
     return to;
 }
 
@@ -893,19 +893,19 @@
     case FILE_TYPE_MP3:
        nti = mp3_get_file_info (name);
        /* Set unk208 to audio */
-       track->unk208 = 0x00000001;
+       nti->unk208 = 0x00000001;
        break;
     case FILE_TYPE_M4A:
     case FILE_TYPE_M4P:
     case FILE_TYPE_M4B:
        nti = mp4_get_file_info (name);
        /* Set unk208 to audio */
-       track->unk208 = 0x00000001;
+       nti->unk208 = 0x00000001;
        break;
     case FILE_TYPE_WAV:
        nti = wav_get_file_info (name);
        /* Set unk208 to audio */
-       track->unk208 = 0x00000001;
+       nti->unk208 = 0x00000001;
        break;
     case FILE_TYPE_M4V:
     case FILE_TYPE_MP4:
@@ -913,14 +913,14 @@
           this. Let's see if someone complains. */
        nti = mp4_get_file_info (name);
        /* Set unk208 to video */
-       track->unk208 = 0x00000002;
+       nti->unk208 = 0x00000002;
        break;
     case FILE_TYPE_MOV:
     case FILE_TYPE_MPG:
        /* for now treat all the same */
        nti = video_get_file_info (name);
        /* Set unk208 to video */
-       track->unk208 = 0x00000002;
+       nti->unk208 = 0x00000002;
        break;
     case FILE_TYPE_UNKNOWN:
        gtkpod_warning (_("The following track could not be processed (filetype 
unknown): '%s'\n"), name_utf8);
@@ -1976,51 +1976,44 @@
          if (itdb_playlist_is_podcasts (plitem))
              gp_track_set_flags_podcast (added_track);
 
-         if (addtrackfunc)
-         {
-             if (itdb_playlist_is_mpl (plitem))
-             {   /* add track to master playlist if it wasn't a
-                    duplicate */
-                 if (added_track == track)
+         if (itdb_playlist_is_mpl (plitem))
+         {   /* add track to master playlist if it wasn't a
+                duplicate */
+             if (added_track == track)
+             {
+                 if (addtrackfunc)
                      addtrackfunc (plitem, added_track, data);
-             }
-             else
-             {   /* add track to master playlist if it wasn't a
-                  * duplicate and plitem is not the podcasts playlist
-                  */
-                 if (added_track == track)
-                 {
-                     if (!itdb_playlist_is_podcasts (plitem))
-                         gp_playlist_add_track (mpl, added_track, TRUE);
-                 }
-                 /* add track to specified playlist */
-                 addtrackfunc (plitem, added_track, data);
+                 else
+                     gp_playlist_add_track (plitem, added_track, TRUE);
              }
          }
-         else  /* no addtrackfunc */
-         {
-             if (itdb_playlist_is_mpl (plitem))
+         else
+         {   /* add track to master playlist if it wasn't a
+              * duplicate and plitem is not the podcasts playlist
+              */
+             if (added_track == track)
              {
-                 /* add track to master playlist if it wasn't a
-                  * duplicate */
-                 if (added_track == track)
-                     gp_playlist_add_track (plitem, added_track,
-                                            TRUE);
+                 if (!itdb_playlist_is_podcasts (plitem))
+                     gp_playlist_add_track (mpl, added_track, TRUE);
+             }
+             /* add track to specified playlist -- unless adding
+              * to podcasts list and track already exists there */
+             if (itdb_playlist_is_podcasts (plitem) &&
+                 g_list_find (plitem->members, added_track))
+             {
+                 gchar *buf = get_track_info (added_track, FALSE);
+                 gtkpod_warning (_("Podcast already present: '%s'\n\n"), buf);
+                 g_free (buf);
              }
              else
              {
-                 /* add track to master playlist if it wasn't a
-                  * duplicate and plitem is not the podcasts playlist
-                  */
-                 if (added_track == track)
-                 {
-                     if (!itdb_playlist_is_podcasts (plitem))
-                         gp_playlist_add_track (mpl, added_track, TRUE);
-                 }
-                 /* add track to specified playlist */
-                 gp_playlist_add_track (plitem, added_track, TRUE);
+                 if (addtrackfunc)
+                     addtrackfunc (plitem, added_track, data);
+                 else
+                     gp_playlist_add_track (plitem, added_track, TRUE);
              }
          }
+
          /* indicate that non-transferred files exist */
          data_changed (itdb);
          ++count;



-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to