summaryrefslogtreecommitdiff
path: root/src/tty.c
diff options
context:
space:
mode:
authorAleksa Vučković <aleksav013@gmail.com>2021-10-15 22:41:18 +0200
committerAleksa Vučković <aleksav013@gmail.com>2021-10-15 22:41:18 +0200
commit1395dc42159d52ba36524fabe805897cd20bd01e (patch)
tree85ab198e0e2497c70eced46ba1e16e035d48eb24 /src/tty.c
parent4528b2347ac72ffdabdbe4d9e7bf7789c81e664f (diff)
Adding string.h & printf()
Diffstat (limited to 'src/tty.c')
-rw-r--r--src/tty.c67
1 files changed, 52 insertions, 15 deletions
diff --git a/src/tty.c b/src/tty.c
index c3fe295..bb3965d 100644
--- a/src/tty.c
+++ b/src/tty.c
@@ -1,32 +1,69 @@
#include<stdbool.h>
#include<stddef.h>
#include<stdint.h>
-bool stringcmp(char *str1,char *str2);
-size_t pieces(char pieces[][15],char *buffer);
+
+#include"string.h"
+#include"stdio.h"
+
+#define CMD_LENGTH 20
+
void clear();
-void terminal_writestring(const char* data);
-void terminal_putchar(char c);
-void echo(size_t numberof,char parts[][15])
+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++)
{
- terminal_writestring(parts[i]);
- terminal_putchar(' ');
+ printf("%s ",parts[i]);
}
- terminal_putchar('\n');
+ 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])
+{
+ size_t i=numberof;
+ char *part=parts[0];
+ printf("filesystem not implemented yet\n");
}
void tty(char *buffer)
{
- char parts[15][15];
+ 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
- {
- terminal_writestring("command not found: ");
- terminal_writestring(parts[0]);
- terminal_putchar('\n');
- }
+ else if(stringcmp(parts[0],"merge")) merge(parts);
+ else if(stringcmp(parts[0],"ls")) ls(numberof,parts);
+ else if(stringcmp(parts[0],"number")) printf("number times two is %d\n",stoi(parts[1])*2);
+ else printf("command not found: %s\n",parts[0]);
}