[haiku-bugs] [Haiku] #6033: A symbolic link is broken in an info window when pointing to a volume root

  • From: "Karvjorm" <trac@xxxxxxxxxxxx>
  • Date: Wed, 19 May 2010 08:49:52 -0000

#6033: A symbolic link is broken in an info window when pointing to a volume 
root
-----------------------------------------------+----------------------------
 Reporter:  Karvjorm                           |       Owner:  anevilyak
     Type:  bug                                |      Status:  new      
 Priority:  normal                             |   Milestone:  R1       
Component:  Kits/libtracker.so                 |     Version:  R1/alpha2
 Keywords:  Symlink volume InfoWindow  broken  |    Platform:  All      
Blockedby:                                     |       Patch:  0        
 Blocking:                                     |  
-----------------------------------------------+----------------------------
 I have here an example, how symbolic link  to mimetype file that do not
 have default application, is broken. Source or error message is in
 src/kits/tracker/InfoWindow.cpp :

 {{{
 // Use the same method as used to resolve fIconModel, which handles
 // both absolute and relative symlinks. if the link is broken, try to
 // get a little more information.
 if (model->IsSymLink()) {
         bool linked = false;

         Model resolvedModel(model->EntryRef(), true, true);
         if (resolvedModel.InitCheck() == B_OK) {
                 // Get the path of the link
                 BPath traversedPath;
                 resolvedModel.GetPath(&traversedPath);

                 // If the BPath is initialized, then check the file for
 existence
                 if (traversedPath.InitCheck() == B_OK) {
                         BEntry entry(traversedPath.Path(), false);      //
 look at the target itself
                         if (entry.InitCheck() == B_OK && entry.Exists())
                                 linked = true;
                 }
         }

         // always show the target as it is: absolute or relative!
         BSymLink symLink(model->EntryRef());
         char linkToPath[B_PATH_NAME_LENGTH];
         symLink.ReadLink(linkToPath, B_PATH_NAME_LENGTH);
         fLinkToStr = linkToPath;
         if (!linked)
                 fLinkToStr += " (broken)";      // link points to missing
 object
 }}}

 I suppose that problem is with that Model.cpp file. Symbolic link points
 to location that is volume and symbolic link at the same time. But it is
 only my guess.

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/6033>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: