James Moger
2012-11-28 b718540114103aaad2fd2554745fdb61d1e6cd17
src/com/gitblit/utils/FileUtils.java
@@ -99,6 +99,25 @@
      }
      return defaultValue;
   }
   /**
    * Returns the byte [] content of the specified file.
    *
    * @param file
    * @return the byte content of the file
    */
   public static byte [] readContent(File file) {
      byte [] buffer = new byte[(int) file.length()];
      try {
         BufferedInputStream is = new BufferedInputStream(new FileInputStream(file));
         is.read(buffer,  0,  buffer.length);
         is.close();
      } catch (Throwable t) {
         System.err.println("Failed to read byte content of " + file.getAbsolutePath());
         t.printStackTrace();
      }
      return buffer;
   }
   /**
    * Returns the string content of the specified file.
@@ -226,7 +245,21 @@
   public static String getRelativePath(File basePath, File path) {
      File exactBase = getExactFile(basePath);
      File exactPath = getExactFile(path);
      return StringUtils.getRelativePath(exactBase.getPath(), exactPath.getPath());
      if (path.getAbsolutePath().startsWith(basePath.getAbsolutePath())) {
         // absolute base-path match
         return StringUtils.getRelativePath(basePath.getAbsolutePath(), path.getAbsolutePath());
      } else if (exactPath.getPath().startsWith(exactBase.getPath())) {
         // canonical base-path match
         return StringUtils.getRelativePath(exactBase.getPath(), exactPath.getPath());
      } else if (exactPath.getPath().startsWith(basePath.getAbsolutePath())) {
         // mixed path match
         return StringUtils.getRelativePath(basePath.getAbsolutePath(), exactPath.getPath());
      } else if (path.getAbsolutePath().startsWith(exactBase.getPath())) {
         // mixed path match
         return StringUtils.getRelativePath(exactBase.getPath(), path.getAbsolutePath());
      }
      // no relative relationship
      return null;
   }
   
   /**