code: def _join_paths_with_drive_support(self, *all_paths):
          
          base_path = all_paths[0]
          paths_to_add = all_paths[1:]
          sep = self._path_separator(base_path)
          seps = [sep, self._alternative_path_separator(base_path)]
          result_drive, result_path = self.splitdrive(base_path)
          for path in paths_to_add:
              drive_part, path_part = self.splitdrive(path)
              if path_part and path_part[:1] in seps:
                  # Second path is absolute
                  if drive_part or not result_drive:
                      result_drive = drive_part
                  result_path = path_part
                  continue
              elif drive_part and drive_part != result_drive:
                  if (self.is_case_sensitive or
                          drive_part.lower() != result_drive.lower()):
                      # Different drives => ignore the first path entirely
                      result_drive = drive_part
                      result_path = path_part
                      continue
                  # Same drive in different case
                  result_drive = drive_part
              # Second path is relative to the first
              if result_path and result_path[-1:] not in seps:
                  result_path = result_path + sep
              result_path = result_path + path_part
          # add separator between UNC and non-absolute path
          colon = self._matching_string(base_path, ':')
          if (result_path and result_path[:1] not in seps and
                  result_drive and result_drive[-1:] != colon):
              return result_drive + sep + result_path
          return result_drive + result_path
docs: Taken from Python 3.5 os.path.join() code in ntpath.py
          and slightly adapted