forked from bonsai/harakit
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
abb8fdf935
|
|||
|
dac7567405
|
|||
|
97382b79fd
|
|||
|
64a1a19bd8
|
|||
|
cc93389232
|
|||
|
42c5c5642e
|
|||
|
c753eeea9c
|
32
README
32
README
@@ -17,6 +17,31 @@ purposes beyond its scope.
|
||||
|
||||
See docs/ for more on the specific utilities currently implemented.
|
||||
|
||||
Building
|
||||
|
||||
The coreutils require a POSIX-compliant environment to compile, including a C
|
||||
compiler and preprocessor (cc(1) and cpp(1) by default) with the -idirafter
|
||||
flag, a Rust compiler (rustc(1) by default), bindgen(1), and a POSIX-compliant
|
||||
make(1) utility.
|
||||
|
||||
To build and install:
|
||||
|
||||
$ make
|
||||
$ make PREFIX="/your/preferred/location" install
|
||||
|
||||
To build with a different compiler than the default:
|
||||
|
||||
$ make CC=clang
|
||||
$ make RUSTC=gccrs
|
||||
|
||||
To test the utilities:
|
||||
|
||||
$ make test
|
||||
|
||||
To remove all untracked files:
|
||||
|
||||
$ make clean
|
||||
|
||||
Read More
|
||||
|
||||
An Introduction to the Unix Shell
|
||||
@@ -30,3 +55,10 @@ Master Foo Discourses on the Unix-Nature
|
||||
|
||||
Shell Programming!
|
||||
<https://tldp.org/LDP/abs/html/why-shell.html>
|
||||
|
||||
--
|
||||
Copyright © 2023–2024 Emma Tebibyte <emma@tebibyte.media>
|
||||
Copyright © 2024 DTB <trinity@trinity.moe>
|
||||
|
||||
This work is licensed under CC BY-SA 4.0. To view a copy of this license, visit
|
||||
<http://creativecommons.org/licenses/by-sa/4.0/>.
|
||||
|
||||
17
src/scrut.c
17
src/scrut.c
@@ -18,7 +18,7 @@
|
||||
|
||||
#include <stdio.h> /* fprintf(3), stderr, NULL */
|
||||
#include <stdlib.h> /* EXIT_FAILURE */
|
||||
#include <string.h> /* strchr(3) */
|
||||
#include <string.h> /* memset(3), strchr(3) */
|
||||
#include <unistd.h> /* access(3), getopt(3), F_OK, R_OK, W_OK, X_OK */
|
||||
#include <sys/stat.h> /* lstat(3), stat struct, S_ISBLK, S_ISCHR, S_ISDIR,
|
||||
* S_ISFIFO, S_ISGID, S_ISREG, S_ISLNK, S_ISSOCK,
|
||||
@@ -33,17 +33,24 @@ int main(int argc, char *argv[]){
|
||||
struct stat buf;
|
||||
int c;
|
||||
size_t i;
|
||||
char *p;
|
||||
|
||||
if(argc < 2)
|
||||
goto usage;
|
||||
|
||||
i = 0;
|
||||
memset(ops, '\0', sizeof ops);
|
||||
while((c = getopt(argc, argv, args)) != -1)
|
||||
if(strchr(args, c) == NULL)
|
||||
if((p = strchr(args, c)) == NULL)
|
||||
goto usage;
|
||||
else
|
||||
ops[i++] = c;
|
||||
ops[i] = '\0';
|
||||
ops[p - args] = c;
|
||||
/* straighten out ops */
|
||||
for(i = 0, p = ops; i < (sizeof ops) / (sizeof *ops); ++i)
|
||||
if(ops[i] != '\0'){
|
||||
*p = ops[i];
|
||||
if(&ops[i] != p++)
|
||||
ops[i] = '\0';
|
||||
}
|
||||
|
||||
if(optind == argc)
|
||||
goto usage;
|
||||
|
||||
Reference in New Issue
Block a user