From bdbe212df78bb9d2bf40b87861b50d7dfafba2b0 Mon Sep 17 00:00:00 2001 From: call-cc Date: Tue, 2 Jun 2020 16:19:26 -0400 Subject: [PATCH] Add to TODO and clean up ln --- TODO | 1 + src/ln.c | 34 ++++++++++++++++++++-------------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/TODO b/TODO index 915ba57..0566906 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,4 @@ * The rest of programs. * Manuals * flags for the programs +* fix yes (constantly returns y when no argument is passed) \ No newline at end of file diff --git a/src/ln.c b/src/ln.c index 34763ae..9493051 100644 --- a/src/ln.c +++ b/src/ln.c @@ -12,20 +12,26 @@ main(int argc, char *argv[]) printf("Usage: ln oldfile newfile\n"); return 1; } - - int c = getopt(argc, argv, "s"); - if(c == 's') + int opts; + int fd; + while((opts = getopt(argc, argv, "s:")) != -1) { - symlink(argv[2],argv[3]); - return 0; + switch(opts) + { + case 's': + symlink(argv[2],argv[3]); + break; + case '?': + printf("-%c: Argument not found", optopt); + break; + default: + fd = link(argv[1],argv[2]); + if(fd == -1) + { + fprintf(stderr,"Error creating link\n"); + return 1; + } + return 0; + } } - - - int fd = link(argv[1],argv[2]); - if(fd == -1) - { - fprintf(stderr,"Error creating link\n"); - return 1; - } - return 0; }