<feed xmlns='http://www.w3.org/2005/Atom'>
<title>shell, branch shell-VII</title>
<subtitle>Simplified C shell with support for pipelines, redirection, and logical operators
</subtitle>
<link rel='alternate' type='text/html' href='https://git.scratko.xyz/shell/'/>
<entry>
<title>Revise subshell execution and terminal group handling</title>
<updated>2025-07-27T22:19:54+00:00</updated>
<author>
<name>scratko</name>
<email>m@scratko.xyz</email>
</author>
<published>2025-07-27T22:19:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.scratko.xyz/shell/commit/?id=0de355ebbf6d9eb9ab673da22eb18cbb01d005f8'/>
<id>0de355ebbf6d9eb9ab673da22eb18cbb01d005f8</id>
<content type='text'>
find_end_subshell_before_cur_pos() now accounts for offset caused by
two-character tokens (|| and &amp;&amp;).

Added many explanatory comments.

Modified or removed some fields of the params structure that affected pipe and
subshell behavior (e.g., pgid for multiple processes, file descriptors).

Changed logic for setting the current terminal process group.

Removed side effect in the conditional operator inside special_token_handling()
that made the code harder to read.

Removed the functions identify_general_pgid() and identify_general_pipe_pgid().
Replaced them with a single function: set_foreground_group().

make_pipeline() now also checks for subshell_before before executing the
pipeline.

Major changes to the functions make_pipeline(), make_subshell(), and
run_external_program().

Subshell exit code now depends on the success or failure of executed programs
when using logical operators (|| and &amp;&amp;).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
find_end_subshell_before_cur_pos() now accounts for offset caused by
two-character tokens (|| and &amp;&amp;).

Added many explanatory comments.

Modified or removed some fields of the params structure that affected pipe and
subshell behavior (e.g., pgid for multiple processes, file descriptors).

Changed logic for setting the current terminal process group.

Removed side effect in the conditional operator inside special_token_handling()
that made the code harder to read.

Removed the functions identify_general_pgid() and identify_general_pipe_pgid().
Replaced them with a single function: set_foreground_group().

make_pipeline() now also checks for subshell_before before executing the
pipeline.

Major changes to the functions make_pipeline(), make_subshell(), and
run_external_program().

Subshell exit code now depends on the success or failure of executed programs
when using logical operators (|| and &amp;&amp;).
</pre>
</div>
</content>
</entry>
<entry>
<title>Shell-VII release</title>
<updated>2024-11-23T19:18:00+00:00</updated>
<author>
<name>scratko</name>
<email>m@scratko.xyz</email>
</author>
<published>2024-11-22T22:24:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.scratko.xyz/shell/commit/?id=765c24a70be0b968a08bbd3c26b1644843863fcd'/>
<id>765c24a70be0b968a08bbd3c26b1644843863fcd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Shell-VI release</title>
<updated>2024-11-23T18:11:27+00:00</updated>
<author>
<name>scratko</name>
<email>m@scratko.xyz</email>
</author>
<published>2024-06-23T19:35:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.scratko.xyz/shell/commit/?id=52f877a23cd26f57393e20b6fffef0dc4e093315'/>
<id>52f877a23cd26f57393e20b6fffef0dc4e093315</id>
<content type='text'>
Running processes in a single pgid.
Changing foreground group to the group of running processes (if readline doesn't
end with &amp;).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Running processes in a single pgid.
Changing foreground group to the group of running processes (if readline doesn't
end with &amp;).
</pre>
</div>
</content>
</entry>
<entry>
<title>Shell-edit release</title>
<updated>2024-11-23T17:59:45+00:00</updated>
<author>
<name>scratko</name>
<email>m@scratko.xyz</email>
</author>
<published>2024-06-20T15:38:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.scratko.xyz/shell/commit/?id=54679d85b1f2c1349bcbbc76b10d57a1e5137f23'/>
<id>54679d85b1f2c1349bcbbc76b10d57a1e5137f23</id>
<content type='text'>
Autocomplete program and file names (tab).
Moving the cursor to edit commands (left and right arrows).
Deleting a character in a command (backspace).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Autocomplete program and file names (tab).
Moving the cursor to edit commands (left and right arrows).
Deleting a character in a command (backspace).
</pre>
</div>
</content>
</entry>
<entry>
<title>Shell-V release</title>
<updated>2024-06-23T20:11:18+00:00</updated>
<author>
<name>scratko</name>
<email>m@scratko.xyz</email>
</author>
<published>2024-06-14T12:15:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.scratko.xyz/shell/commit/?id=ff38bddd4253b5adf08a84df34bfae32c8ae988d'/>
<id>ff38bddd4253b5adf08a84df34bfae32c8ae988d</id>
<content type='text'>
Added pipeline.
Formatting shell.c (created lexical_analysys.c).
Error codes.
Some functions of queue.c are created by preprocessor.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added pipeline.
Formatting shell.c (created lexical_analysys.c).
Error codes.
Some functions of queue.c are created by preprocessor.
</pre>
</div>
</content>
</entry>
<entry>
<title>version shell-V with commented out code</title>
<updated>2024-06-12T15:52:28+00:00</updated>
<author>
<name>scratko</name>
<email>m@scratko.xyz</email>
</author>
<published>2024-06-12T15:52:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.scratko.xyz/shell/commit/?id=1ee0911f2def54f1b63d18b0924ac65c2db92f11'/>
<id>1ee0911f2def54f1b63d18b0924ac65c2db92f11</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Signal handler</title>
<updated>2024-06-05T15:13:57+00:00</updated>
<author>
<name>scratko</name>
<email>m@scratko.xyz</email>
</author>
<published>2024-06-05T15:06:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.scratko.xyz/shell/commit/?id=8bcfbe6a15f6195c3501b9bde633081da67179d1'/>
<id>8bcfbe6a15f6195c3501b9bde633081da67179d1</id>
<content type='text'>
Moving zombie process cleanup to the signal handler.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Moving zombie process cleanup to the signal handler.
</pre>
</div>
</content>
</entry>
<entry>
<title>Shell-IV release</title>
<updated>2024-06-03T14:22:52+00:00</updated>
<author>
<name>scratko</name>
<email>m@scratko.xyz</email>
</author>
<published>2024-06-03T11:40:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.scratko.xyz/shell/commit/?id=c9d02770f42339b6cc741191cee87e77b914b00b'/>
<id>c9d02770f42339b6cc741191cee87e77b914b00b</id>
<content type='text'>
Redirecting standard input-output streams.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Redirecting standard input-output streams.
</pre>
</div>
</content>
</entry>
<entry>
<title>Shell-III release</title>
<updated>2024-05-26T14:09:25+00:00</updated>
<author>
<name>scratko</name>
<email>m@scratko.xyz</email>
</author>
<published>2024-05-26T14:09:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.scratko.xyz/shell/commit/?id=859c929333b0c17f1b6027b17cc30bdf4763e6e2'/>
<id>859c929333b0c17f1b6027b17cc30bdf4763e6e2</id>
<content type='text'>
Added the ability to run programs in the background.
Added tokens for future releases.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added the ability to run programs in the background.
Added tokens for future releases.
</pre>
</div>
</content>
</entry>
<entry>
<title>Shell-II release</title>
<updated>2024-05-25T19:05:47+00:00</updated>
<author>
<name>scratko</name>
<email>m@scratko.xyz</email>
</author>
<published>2024-05-25T18:36:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.scratko.xyz/shell/commit/?id=fb322edd72bebddee1a9828baec2f8bc83666ddf'/>
<id>fb322edd72bebddee1a9828baec2f8bc83666ddf</id>
<content type='text'>
Implementation of launching external programs via fork().
Running cd as a change to the current process directory (chdir).
Ability to change to user's home directory (cd without arguments).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implementation of launching external programs via fork().
Running cd as a change to the current process directory (chdir).
Ability to change to user's home directory (cd without arguments).
</pre>
</div>
</content>
</entry>
</feed>
