Remove strip_prefix failure mode from relative paths
diff --git a/src/paths.rs b/src/paths.rs
index 866d377..8e5d717 100644
--- a/src/paths.rs
+++ b/src/paths.rs
@@ -44,10 +44,17 @@
 
 fn relative_to_parent_of_target_dir(original: &Path) -> Result<PathBuf> {
     let target_dir = target_dir()?;
-    let parent_of_target_dir = target_dir.parent().unwrap();
+    let mut outer = target_dir.parent().unwrap();
     let original = original.canonicalize()?;
-    let suffix = original.strip_prefix(parent_of_target_dir)?;
-    Ok(suffix.to_owned())
+    loop {
+        if let Ok(suffix) = original.strip_prefix(outer) {
+            return Ok(suffix.to_owned());
+        }
+        match outer.parent() {
+            Some(parent) => outer = parent,
+            None => return Ok(original.components().skip(1).collect()),
+        }
+    }
 }
 
 pub(crate) fn out_with_extension(path: &Path, ext: &str) -> Result<PathBuf> {