diff options
| author | Aleksa Vučković <aleksav013@gmail.com> | 2021-10-25 00:36:33 +0200 |
|---|---|---|
| committer | Aleksa Vučković <aleksav013@gmail.com> | 2021-10-25 00:36:33 +0200 |
| commit | 20dd72e40dc2728d3c5335d860e4b8ab8da14fcc (patch) | |
| tree | dabdfdf736c45f9632fa1388d2144b1de7a438b0 /src/c/tty.c | |
| parent | 0bca634f7e70b05239f46f3bd40bb37468d67957 (diff) | |
Changing build system to recursive make
Diffstat (limited to 'src/c/tty.c')
| -rw-r--r-- | src/c/tty.c | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/c/tty.c b/src/c/tty.c new file mode 100644 index 0000000..5728a47 --- /dev/null +++ b/src/c/tty.c @@ -0,0 +1,75 @@ +#include"../include/types.h" +#include"../include/string.h" +#include"../include/stdio.h" + +#define CMD_LENGTH 20 + +void clear(); + +size_t pieces(char pieces[][CMD_LENGTH],char *buffer) +{ + for(size_t x=0;x<CMD_LENGTH;x++) for(size_t y=0;y<CMD_LENGTH;y++) pieces[x][y]='\0'; + + size_t i=0,j=0,r=0; + while(buffer[i]==' '&&buffer[i]!='\0') i++; + for(;buffer[i]!='\0';i++) + { + if(buffer[i]==' ') + { + while(buffer[i]==' '&&buffer[i]!='\0') i++; + j=0; + r++; + i--; + } + else + { + pieces[r][j++]=buffer[i]; + } + } + return r+1; +} + +void echo(size_t numberof,char parts[][CMD_LENGTH]) +{ + for(size_t i=1;i<numberof;i++) + { + printf("%s ",parts[i]); + } + printf("\n"); +} + +void merge(char parts[][CMD_LENGTH]) +{ + char *str1=parts[1]; + char *str2=parts[2]; + stringcat(str1,str2); + printf("%s\n",str1); +} + +void ls(size_t numberof,char parts[][CMD_LENGTH]) +{ + printf("filesystem not implemented yet, %d,%s\n",numberof,parts[0]); +} + +void number(size_t numberof,char parts[][CMD_LENGTH]) +{ + if(numberof==1) printf("Please enter a number\n"); + else + { + printf("number times two is %d\n",2*stoi(parts[1])); + printf("number times two is %f\n",2*stof(parts[1])); + } +} + +void tty(char *buffer) +{ + char parts[CMD_LENGTH][CMD_LENGTH]; + size_t numberof=pieces(parts,buffer); + + if(stringcmp(parts[0],"clear")) clear(); + else if(stringcmp(parts[0],"echo")) echo(numberof,parts); + else if(stringcmp(parts[0],"merge")) merge(parts); + else if(stringcmp(parts[0],"ls")) ls(numberof,parts); + else if(stringcmp(parts[0],"number")) number(numberof,parts); + else printf("command not found: %s\n",parts[0]); +} |
