aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonas Maier <>2026-04-17 18:34:33 +0200
committerJonas Maier <>2026-04-17 18:34:33 +0200
commitbbe09d24579854c69e3ee1be73e62d51e9a73b92 (patch)
tree1ec4d817d71e848c922cf351d93e9b486f3d808b
parentb677713a7caf179b144674ff4c6e6b7171ad1337 (diff)
downloadpish-bbe09d24579854c69e3ee1be73e62d51e9a73b92.tar.gz
type builtin: tell the user that an alias is an alias
-rw-r--r--src/run/builtin.rs11
-rw-r--r--src/run/mod.rs2
2 files changed, 10 insertions, 3 deletions
diff --git a/src/run/builtin.rs b/src/run/builtin.rs
index 47a10c2..710f0fc 100644
--- a/src/run/builtin.rs
+++ b/src/run/builtin.rs
@@ -7,6 +7,7 @@ use pish_derive::FromArgs;
use super::{Builtin, BuiltinError as Error, BuiltinResult as Result};
use crate::parse::CmdDisplay;
+use crate::run::AliasAge;
use crate::*;
#[allow(unused)]
@@ -203,8 +204,14 @@ impl Builtin for _type {
_stdin: &mut dyn Read,
stdout: &mut dyn Write,
) -> Result {
+ let session = session.lock().unwrap();
for arg in args {
- let kind = super::get_command_kind(&session.lock().unwrap(), &arg[..]);
+ if session.aliases.get(&arg, AliasAge::MAX).is_some() {
+ writeln!(stdout, "{} is an alias", String::from_utf8_lossy(arg))?;
+ continue;
+ }
+
+ let kind = super::get_command_kind(&session, &arg[..]);
let kind_str = match kind {
run::CommandKind::Builtin(_) => "builtin",
@@ -530,4 +537,4 @@ impl Builtin for unalias {
Ok(())
}
-} \ No newline at end of file
+}
diff --git a/src/run/mod.rs b/src/run/mod.rs
index d52c4e7..36cd454 100644
--- a/src/run/mod.rs
+++ b/src/run/mod.rs
@@ -451,7 +451,7 @@ impl Aliases {
}
}
- fn get(&mut self, name: &bstr, older_than: AliasAge) -> Option<(AliasAge, AliasBody)> {
+ fn get(&self, name: &bstr, older_than: AliasAge) -> Option<(AliasAge, AliasBody)> {
let Some(alias_set) = self.aliases.get(name) else {
return None;
};