Explorar el Código

chore: Remove unsafe function

MystiPanda hace 1 año
padre
commit
64fafb0795
Se han modificado 3 ficheros con 0 adiciones y 105 borrados
  1. 0 35
      src-tauri/src/core/manager.rs
  2. 0 1
      src-tauri/src/utils/mod.rs
  3. 0 69
      src-tauri/src/utils/winhelp.rs

+ 0 - 35
src-tauri/src/core/manager.rs

@@ -1,5 +1,3 @@
-use std::borrow::Cow;
-
 /// 给clash内核的tun模式授权
 #[cfg(any(target_os = "macos", target_os = "linux"))]
 pub fn grant_permission(core: String) -> anyhow::Result<()> {
@@ -13,9 +11,6 @@ pub fn grant_permission(core: String) -> anyhow::Result<()> {
 
     #[cfg(target_os = "macos")]
     let output = {
-        // the path of clash /Applications/Clash Verge.app/Contents/MacOS/clash
-        // https://apple.stackexchange.com/questions/82967/problem-with-empty-spaces-when-executing-shell-commands-in-applescript
-        // let path = escape(&path);
         let path = path.replace(' ', "\\\\ ");
         let shell = format!("chown root:admin {path}\nchmod +sx {path}");
         let command = format!(r#"do shell script "{shell}" with administrator privileges"#);
@@ -50,33 +45,3 @@ pub fn grant_permission(core: String) -> anyhow::Result<()> {
         anyhow::bail!("{stderr}");
     }
 }
-
-#[allow(unused)]
-pub fn escape<'a>(text: &'a str) -> Cow<'a, str> {
-    let bytes = text.as_bytes();
-
-    let mut owned = None;
-
-    for pos in 0..bytes.len() {
-        let special = match bytes[pos] {
-            b' ' => Some(b' '),
-            _ => None,
-        };
-        if let Some(s) = special {
-            if owned.is_none() {
-                owned = Some(bytes[0..pos].to_owned());
-            }
-            owned.as_mut().unwrap().push(b'\\');
-            owned.as_mut().unwrap().push(b'\\');
-            owned.as_mut().unwrap().push(s);
-        } else if let Some(owned) = owned.as_mut() {
-            owned.push(bytes[pos]);
-        }
-    }
-
-    if let Some(owned) = owned {
-        unsafe { Cow::Owned(String::from_utf8_unchecked(owned)) }
-    } else {
-        unsafe { Cow::Borrowed(std::str::from_utf8_unchecked(bytes)) }
-    }
-}

+ 0 - 1
src-tauri/src/utils/mod.rs

@@ -4,4 +4,3 @@ pub mod init;
 pub mod resolve;
 pub mod server;
 pub mod tmpl;
-// mod winhelp;

+ 0 - 69
src-tauri/src/utils/winhelp.rs

@@ -1,69 +0,0 @@
-#![cfg(target_os = "windows")]
-#![allow(non_snake_case)]
-#![allow(non_camel_case_types)]
-
-//!
-//! From https://github.com/tauri-apps/window-vibrancy/blob/dev/src/windows.rs
-//!
-
-use windows_sys::Win32::{
-    Foundation::*,
-    System::{LibraryLoader::*, SystemInformation::*},
-};
-
-fn get_function_impl(library: &str, function: &str) -> Option<FARPROC> {
-    assert_eq!(library.chars().last(), Some('\0'));
-    assert_eq!(function.chars().last(), Some('\0'));
-
-    let module = unsafe { LoadLibraryA(library.as_ptr()) };
-    if module == 0 {
-        return None;
-    }
-    Some(unsafe { GetProcAddress(module, function.as_ptr()) })
-}
-
-macro_rules! get_function {
-    ($lib:expr, $func:ident) => {
-        get_function_impl(concat!($lib, '\0'), concat!(stringify!($func), '\0')).map(|f| unsafe {
-            std::mem::transmute::<::windows_sys::Win32::Foundation::FARPROC, $func>(f)
-        })
-    };
-}
-
-/// Returns a tuple of (major, minor, buildnumber)
-fn get_windows_ver() -> Option<(u32, u32, u32)> {
-    type RtlGetVersion = unsafe extern "system" fn(*mut OSVERSIONINFOW) -> i32;
-    let handle = get_function!("ntdll.dll", RtlGetVersion);
-    if let Some(rtl_get_version) = handle {
-        unsafe {
-            let mut vi = OSVERSIONINFOW {
-                dwOSVersionInfoSize: 0,
-                dwMajorVersion: 0,
-                dwMinorVersion: 0,
-                dwBuildNumber: 0,
-                dwPlatformId: 0,
-                szCSDVersion: [0; 128],
-            };
-
-            let status = (rtl_get_version)(&mut vi as _);
-
-            if status >= 0 {
-                Some((vi.dwMajorVersion, vi.dwMinorVersion, vi.dwBuildNumber))
-            } else {
-                None
-            }
-        }
-    } else {
-        None
-    }
-}
-
-pub fn is_win11() -> bool {
-    let v = get_windows_ver().unwrap_or_default();
-    v.2 >= 22000
-}
-
-#[test]
-fn test_version() {
-    dbg!(get_windows_ver().unwrap_or_default());
-}