Original code:

#if defined(__WIN32__)
    /* Also add common executable extensions on windows */
    if ([path pathExtension] == nil)
    {
      NSString *wpath;
      wpath = [prefix stringByAppendingPathExtension: @"exe"];
      if ([mgr isExecutableFileAtPath: wpath])
        return [wpath stringByStandardizingPath];
      wpath = [prefix stringByAppendingPathExtension: @"com"];
      if ([mgr isExecutableFileAtPath: wpath])
        return [wpath stringByStandardizingPath];
      wpath = [prefix stringByAppendingPathExtension: @"cmd"];
      if ([mgr isExecutableFileAtPath: wpath])
        return [wpath stringByStandardizingPath];
    }
  }
#endif

In line 3:
[NSString pathExtension] never returns nil, but @"".



Correct implementation:

#if defined(__WIN32__)
    {
      NSString *ext = [path pathExtension];
    /* Also add common executable extensions on windows */
      if (ext == nil || [ext length] == 0)
      {
        NSString *wpath;
        wpath = [prefix stringByAppendingPathExtension: @"exe"];
        if ([mgr isExecutableFileAtPath: wpath])
          return [wpath stringByStandardizingPath];
        wpath = [prefix stringByAppendingPathExtension: @"com"];
        if ([mgr isExecutableFileAtPath: wpath])
          return [wpath stringByStandardizingPath];
        wpath = [prefix stringByAppendingPathExtension: @"cmd"];
        if ([mgr isExecutableFileAtPath: wpath])
          return [wpath stringByStandardizingPath];
      }
    }
#endif


Michael

_______________________________________________
Bug-gnustep mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-gnustep

Reply via email to