docs: public static String normalizePath(String path, char separatorChar) {
  
          if (CmsStringUtil.isNotEmpty(path)) {
  
              // handle windows paths including drive-information first
              String drive = null;
              if ((path.length() > 1) && (path.charAt(1) == ':')) {
                  // windows path like C:\home\
                  drive = path.substring(0, 2);
                  path = path.substring(2);
              } else if ((path.length() > 1) && (path.charAt(0) == '\\') && (path.charAt(1) == '\\')) {
                  // windows path like \\home\ (network mapped drives)
                  drive = path.substring(0, 2);
                  path = path.substring(2);
              }
              // ensure all File separators are '/'
              path = path.replace('\\', '/');
              if (drive != null) {
                  drive = drive.replace('\\', '/');
              }
              if (path.charAt(0) == '/') {
                  // trick to resolve all ../ inside a path
                  path = '.' + path;
              }
              // resolve all '../' or './' elements in the path
              path = CmsLinkManager.getAbsoluteUri(path, "/");
              // still some '//' elements might persist
              path = CmsStringUtil.substitute(path, "//", "/");
              // re-append drive if required
              if (drive != null) {
                  path = drive.concat(path);
              }
              // switch '/' back to OS dependend File separator if required
              if (separatorChar != '/') {
                  path = path.replace('/', separatorChar);
              }
          }
          return path;
      }