Stubbing unix-dependent values on Windows (#8036)

Release Notes:

- N/A
This commit is contained in:
白山風露 2024-02-20 10:41:35 +09:00 committed by GitHub
parent 0037f0b2fd
commit 77974a4367
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 5 deletions

View File

@ -11,6 +11,9 @@ use fsevent::StreamFlags;
#[cfg(not(target_os = "macos"))]
use notify::{Config, EventKind, Watcher};
#[cfg(unix)]
use std::os::unix::fs::MetadataExt;
use futures::{future::BoxFuture, Stream, StreamExt};
use git2::Repository as LibGitRepository;
use parking_lot::Mutex;
@ -21,7 +24,6 @@ use std::io::Write;
use std::sync::Arc;
use std::{
io,
os::unix::fs::MetadataExt,
path::{Component, Path, PathBuf},
pin::Pin,
time::{Duration, SystemTime},
@ -239,8 +241,16 @@ impl Fs for RealFs {
} else {
symlink_metadata
};
#[cfg(unix)]
let inode = metadata.ino();
// todo!(windows)
#[cfg(windows)]
let inode = 0;
Ok(Some(Metadata {
inode: metadata.ino(),
inode,
mtime: metadata.modified().unwrap(),
is_symlink,
is_dir: metadata.file_type().is_dir(),

View File

@ -45,13 +45,15 @@ use std::{
cmp::{self, min},
fmt::Display,
ops::{Deref, Index, RangeInclusive},
os::unix::prelude::AsRawFd,
path::PathBuf,
sync::Arc,
time::Duration,
};
use thiserror::Error;
#[cfg(unix)]
use std::os::unix::prelude::AsRawFd;
use gpui::{
actions, black, px, AnyWindowHandle, AppContext, Bounds, ClipboardItem, EventEmitter, Hsla,
Keystroke, ModelContext, Modifiers, MouseButton, MouseDownEvent, MouseMoveEvent, MouseUpEvent,
@ -376,8 +378,12 @@ impl TerminalBuilder {
}
};
let fd = pty.file().as_raw_fd();
let shell_pid = pty.child().id();
#[cfg(unix)]
let (fd, shell_pid) = (pty.file().as_raw_fd(), pty.child().id());
// todo!(windows)
#[cfg(windows)]
let (fd, shell_pid) = (-1, 0);
//And connect them together
let event_loop = EventLoop::new(
@ -641,7 +647,11 @@ impl Terminal {
/// Updates the cached process info, returns whether the Zed-relevant info has changed
fn update_process_info(&mut self) -> bool {
#[cfg(unix)]
let mut pid = unsafe { libc::tcgetpgrp(self.shell_fd as i32) };
// todo!(windows)
#[cfg(windows)]
let mut pid = -1;
if pid < 0 {
pid = self.shell_pid as i32;
}