diff --git a/.idea/workspace.xml b/.idea/workspace.xml index b4a8dc93e1130745870722c1c429c4f966cfeb8d..511d383d5849e8ba63ef0d6a270ad4b55da89a27 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -10,11 +10,7 @@ </component> <component name="ChangeListManager"> <list default="true" id="8239070f-6583-4d64-a292-d827a40a35ed" name="Default" comment=""> - <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/src/built_in.c" beforeDir="false" afterPath="$PROJECT_DIR$/src/built_in.c" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/src/commands.c" beforeDir="false" afterPath="$PROJECT_DIR$/src/commands.c" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/src/main.c" beforeDir="false" afterPath="$PROJECT_DIR$/src/main.c" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/src/signal_handlers.c" beforeDir="false" afterPath="$PROJECT_DIR$/src/signal_handlers.c" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/utils.c" beforeDir="false" afterPath="$PROJECT_DIR$/src/utils.c" afterDir="false" /> </list> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="TRACKING_ENABLED" value="true" /> @@ -24,7 +20,7 @@ <option name="LAST_RESOLUTION" value="IGNORE" /> </component> <component name="FileEditorManager"> - <splitter split-orientation="horizontal" split-proportion="0.5676721"> + <splitter split-orientation="horizontal" split-proportion="0.20726992"> <split-first> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <file leaf-file-name="built_in.c" pinned="false" current-in-tab="false"> @@ -44,8 +40,8 @@ <file leaf-file-name="main.c" pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/src/main.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="266"> - <caret line="14" column="31" selection-start-line="14" selection-start-column="31" selection-end-line="14" selection-end-column="31" /> + <state relative-caret-position="152"> + <caret line="8" lean-forward="true" selection-start-line="8" selection-end-line="8" /> </state> </provider> </entry> @@ -63,11 +59,11 @@ </split-first> <split-second> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> - <file leaf-file-name="utils.c" pinned="false" current-in-tab="false"> + <file leaf-file-name="utils.c" pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/src/utils.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="330"> - <caret line="41" selection-start-line="41" selection-end-line="41" /> + <state relative-caret-position="500"> + <caret line="57" column="5" selection-start-line="57" selection-start-column="5" selection-end-line="57" selection-end-column="5" /> </state> </provider> </entry> @@ -75,17 +71,17 @@ <file leaf-file-name="commands.c" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/src/commands.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="496"> + <state relative-caret-position="1294"> <caret line="91" selection-start-line="91" selection-end-line="91" /> </state> </provider> </entry> </file> - <file leaf-file-name="signal_handlers.c" pinned="false" current-in-tab="true"> + <file leaf-file-name="signal_handlers.c" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/src/signal_handlers.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="95"> - <caret line="5" column="21" selection-start-line="5" selection-start-column="21" selection-end-line="5" selection-end-column="21" /> + <state relative-caret-position="228"> + <caret line="12" column="21" selection-start-line="12" selection-start-column="21" selection-end-line="12" selection-end-column="21" /> </state> </provider> </entry> @@ -108,10 +104,10 @@ <option name="CHANGED_PATHS"> <list> <option value="$PROJECT_DIR$/src/built_in.c" /> - <option value="$PROJECT_DIR$/src/utils.c" /> <option value="$PROJECT_DIR$/src/commands.c" /> <option value="$PROJECT_DIR$/src/main.c" /> <option value="$PROJECT_DIR$/src/signal_handlers.c" /> + <option value="$PROJECT_DIR$/src/utils.c" /> </list> </option> </component> @@ -191,12 +187,12 @@ <option name="presentableId" value="Default" /> <updated>1525613937527</updated> <workItem from="1525613939581" duration="14984000" /> - <workItem from="1525845591506" duration="9150000" /> + <workItem from="1525845591506" duration="9784000" /> </task> <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="24134000" /> + <option name="totallyTimeSpent" value="24768000" /> </component> <component name="ToolWindowManager"> <frame x="56" y="0" width="1502" height="1158" extended-state="0" /> @@ -262,38 +258,38 @@ <entry file="file://$PROJECT_DIR$/include/built_in.h"> <provider selected="true" editor-type-id="text-editor" /> </entry> - <entry file="file://$PROJECT_DIR$/src/utils.c"> + <entry file="file://$PROJECT_DIR$/src/built_in.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="330"> - <caret line="41" selection-start-line="41" selection-end-line="41" /> + <state relative-caret-position="-459"> + <caret line="41" column="20" selection-start-line="41" selection-start-column="20" selection-end-line="41" selection-end-column="20" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/built_in.c"> + <entry file="file://$PROJECT_DIR$/src/main.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="-459"> - <caret line="41" column="20" selection-start-line="41" selection-start-column="20" selection-end-line="41" selection-end-column="20" /> + <state relative-caret-position="152"> + <caret line="8" lean-forward="true" selection-start-line="8" selection-end-line="8" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/commands.c"> + <entry file="file://$PROJECT_DIR$/src/signal_handlers.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="496"> - <caret line="91" selection-start-line="91" selection-end-line="91" /> + <state relative-caret-position="228"> + <caret line="12" column="21" selection-start-line="12" selection-start-column="21" selection-end-line="12" selection-end-column="21" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/main.c"> + <entry file="file://$PROJECT_DIR$/src/commands.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="266"> - <caret line="14" column="31" selection-start-line="14" selection-start-column="31" selection-end-line="14" selection-end-column="31" /> + <state relative-caret-position="1294"> + <caret line="91" selection-start-line="91" selection-end-line="91" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/signal_handlers.c"> + <entry file="file://$PROJECT_DIR$/src/utils.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="95"> - <caret line="5" column="21" selection-start-line="5" selection-start-column="21" selection-end-line="5" selection-end-column="21" /> + <state relative-caret-position="500"> + <caret line="57" column="5" selection-start-line="57" selection-start-column="5" selection-end-line="57" selection-end-column="5" /> </state> </provider> </entry> diff --git a/src/utils.c b/src/utils.c index bc5775a442457f1e6fd59c6ad7afcd83598624a2..cebecf4ae570faf0ece3ad4fe97dde6c3f35f0d4 100644 --- a/src/utils.c +++ b/src/utils.c @@ -43,11 +43,18 @@ void parse_single_command(const char* command, int ti = 0; while (tok != NULL) { - (*argv)[ti] = (char*)malloc(strlen(tok) + 1); - strcpy((*argv)[ti], tok); - ++ti; + if(!strcmp(tok, "~")) { + (*argv)[ti] = (char*)malloc(strlen(getenv("HOME"))); + strcpy((*argv)[ti], getenv("HOME")); + ++ti; + tok = strtok_r(NULL, " \n\t", &saveptr); + } else { + (*argv)[ti] = (char *) malloc(strlen(tok) + 1); + strcpy((*argv)[ti], tok); + ++ti; - tok = strtok_r(NULL, " \n\t", &saveptr); + tok = strtok_r(NULL, " \n\t", &saveptr); + } } *argc = ti;