aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/core/basename.c
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2021-12-05 15:17:44 -0800
committerNicholas Noll <nbnoll@eml.cc>2021-12-05 15:17:44 -0800
commitb48327d357e0818d1a6ae2a064cfa7d1567e1242 (patch)
tree4677f228a9846937a7ec71c72a1ab63ab69d68ab /src/cmd/core/basename.c
parentc200dd832789afa298ba45e0b9efdec96c0e92cc (diff)
feat(huge): huge refactor (in progress).
Commented out libc includes to uncover all explicit dependencies. A large fraction has now been ported over (no testing). I did not port over the command line tools, such as the rc shell. These will be done independently - as of now I just want the library to stand independent. Compilation currently fails due to the lack of math functions.
Diffstat (limited to 'src/cmd/core/basename.c')
-rw-r--r--src/cmd/core/basename.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/cmd/core/basename.c b/src/cmd/core/basename.c
index 23d7b22..6b84812 100644
--- a/src/cmd/core/basename.c
+++ b/src/cmd/core/basename.c
@@ -13,6 +13,7 @@ main(int argc, char *argv[])
{
int d;
long n;
+ intptr x;
char *p, *s;
ARGBEGIN{
@@ -26,10 +27,10 @@ main(int argc, char *argv[])
p = d ? fs·dirname(argv[0]) : fs·basename(argv[0]);
if(argc>1){
- n = strlen(p)-strlen(argv[1]);
- if(n >= 0 && strcmp(p+n, argv[1])==0)
+ n = str·len(p)-str·len(argv[1]);
+ if(n >= 0 && str·compare(p+n, argv[1])==0)
p[n] = 0;
}
- puts(p);
- exits(nil);
+ sys·write(1,p,str·len(p),&x);
+ return 0;
}