From 31965a48a64436ce2be47e7989201cd8f135b604 Mon Sep 17 00:00:00 2001
From: Jaewon Choi <jaewon.james.choi@gmail.com>
Date: Sun, 1 Oct 2017 20:08:21 +0900
Subject: [PATCH] Implements mysh_parse_command()

---
 src/utils.c | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/src/utils.c b/src/utils.c
index 619c771..1785ed8 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -1,7 +1,35 @@
 #include "utils.h"
 
+#include <stdlib.h>
+#include <string.h>
+
 void mysh_parse_command(const char* command,
                         int *argc, char*** argv)
 {
-  // TODO: Fill this!
+  const int kMaxArgc = 512;
+  *argv = (char**)malloc(kMaxArgc);
+
+  char buf[4096];
+  strcpy(buf, command);
+
+  char *tok = strtok(buf, " \n\t");
+
+  int ti = 0;
+
+  while (tok != NULL) {
+    (*argv)[ti] = (char*)malloc(strlen(tok));
+    strcpy((*argv)[ti], tok);
+
+    ++ti;
+
+    tok = strtok(NULL, " \n\t");
+  }
+
+  *argc = ti;
+
+  if (*argc == 0) {
+    *argc = 1;
+    (*argv)[0] = (char*)malloc(1);
+    (*argv)[0][0] = '\0';
+  }
 }
-- 
GitLab