<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.computercraft.info/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Superaxander</id>
		<title>ComputerCraft Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.computercraft.info/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Superaxander"/>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/Special:Contributions/Superaxander"/>
		<updated>2026-07-11T12:01:01Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Paintutils_(API)&amp;diff=7041</id>
		<title>Paintutils (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Paintutils_(API)&amp;diff=7041"/>
				<updated>2015-06-14T13:47:49Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
Paintutils is a default API for advanced systems which can draw [[paintutils.drawPixel|pixels]] and [[paintutils.drawLine|lines]], [[paintutils.loadImage|load]] and [[paintutils.drawImage|draw]] image files. You can use [[Colors (API)|colors API]] for easier color manipulation.&lt;br /&gt;
&lt;br /&gt;
{{API table|paintutils|image=Grid disk.png|2=&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[paintutils.loadImage]]({{type|string}} path)&lt;br /&gt;
|{{type|table}} image&lt;br /&gt;
|Loads and returns an image object from &amp;lt;var&amp;gt;path&amp;lt;/var&amp;gt;.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[paintutils.drawImage]]({{type|table}} image, {{type|number}} x, {{type|number}} y)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Draws an image at (&amp;lt;var&amp;gt;x&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;y&amp;lt;/var&amp;gt;) where &amp;lt;var&amp;gt;image&amp;lt;/var&amp;gt; is an image object.&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[paintutils.drawPixel]]({{type|number}} x, {{type|number}} y [, {{type|number}} color*])&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Draws a pixel at (&amp;lt;var&amp;gt;x&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;y&amp;lt;/var&amp;gt;) in the specified color.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[paintutils.drawLine]]({{type|number}} startX, {{type|number}} startY, {{type|number}} endX, {{type|number}} endY [, {{type|number}} color*])&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Draws a line from (&amp;lt;var&amp;gt;startX&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;startY&amp;lt;/var&amp;gt;) to (&amp;lt;var&amp;gt;endX&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;endY&amp;lt;/var&amp;gt;) in the specified color.&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[paintutils.drawBox]]({{type|number}} startX, {{type|number}} startY, {{type|number}} endX, {{type|number}} endY [, {{type|number}} color])&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Draws a box from (&amp;lt;var&amp;gt;startX&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;startY&amp;lt;/var&amp;gt;) to (&amp;lt;var&amp;gt;endX&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;endY&amp;lt;/var&amp;gt;) in the specified color. ''Requires version 1.64 or newer.''&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[paintutils.drawFilledBox]]({{type|number}} startX, {{type|number}} startY, {{type|number}} endX, {{type|number}} endY [, {{type|number}} color])&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Draws a filled box from (&amp;lt;var&amp;gt;startX&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;startY&amp;lt;/var&amp;gt;) to (&amp;lt;var&amp;gt;endX&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;endY&amp;lt;/var&amp;gt;) in the specified color. ''Requires version 1.64 or newer.''&lt;br /&gt;
|}}&lt;br /&gt;
}}&lt;br /&gt;
''&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Note: In builds prior to ComputerCraft 1.6, the &amp;quot;color&amp;quot; parameter required by [[paintutils.drawPixel|paintutils.drawPixel()]] and [[paintutils.drawLine|paintutils.drawLine()]] is optional. From ComputerCraft 1.6 the parameter is required, but it was changed back to optional in ComputerCraft 1.64.''&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Talk:Paintutils_(API)&amp;diff=7040</id>
		<title>Talk:Paintutils (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Talk:Paintutils_(API)&amp;diff=7040"/>
				<updated>2015-06-14T13:43:49Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What does this mean?:&lt;br /&gt;
* Note: In builds prior to ComputerCraft 1.6, the &amp;quot;color&amp;quot; parameter required by paintutils.drawPixel() and paintutils.drawLine() is optional. The current background colour will be used if it's omitted. This was changed back to optional in version 1.64.&lt;br /&gt;
--[[User:Superaxander|Superaxander]] ([[User talk:Superaxander|talk]]) 14:44, 11 June 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
How about this:&lt;br /&gt;
* Note: In builds prior to ComputerCraft 1.6, the &amp;quot;color&amp;quot; parameter required by paintutils.drawPixel() and paintutils.drawLine() is optional. From ComputerCraft 1.6 the parameter is required, but it was changed back to optional in ComputerCraft 1.64.&lt;br /&gt;
--[[User:MKlegoman357|MKlegoman357]] ([[User talk:MKlegoman357|talk]]) 19:59, 11 June 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Looks good I wasn't sure what way around it was. I'll change it to that in the article&lt;br /&gt;
--[[User:Superaxander|Superaxander]] ([[User talk:Superaxander|talk]]) 13:43, 14 June 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Talk:Paintutils_(API)&amp;diff=7037</id>
		<title>Talk:Paintutils (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Talk:Paintutils_(API)&amp;diff=7037"/>
				<updated>2015-06-11T14:44:13Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: Created page with &amp;quot;What does this mean?: * Note: In builds prior to ComputerCraft 1.6, the &amp;quot;color&amp;quot; parameter required by paintutils.drawPixel() and paintutils.drawLine() is optional. The current...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What does this mean?:&lt;br /&gt;
* Note: In builds prior to ComputerCraft 1.6, the &amp;quot;color&amp;quot; parameter required by paintutils.drawPixel() and paintutils.drawLine() is optional. The current background colour will be used if it's omitted. This was changed back to optional in version 1.64.&lt;br /&gt;
--[[User:Superaxander|Superaxander]] ([[User talk:Superaxander|talk]]) 14:44, 11 June 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Metatable&amp;diff=6839</id>
		<title>Metatable</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Metatable&amp;diff=6839"/>
				<updated>2015-02-02T15:19:09Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: Add an example of the __eq metatable property&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedsWork|Not enough info, perhaps incorrect info}}&lt;br /&gt;
&lt;br /&gt;
A metatable is an addition on to normal tables for adding metamethods, making classes as well as protecting functions. &lt;br /&gt;
&amp;lt;!-- Possibly more, I don't know about any other application, unfortunately --~~~~ --&amp;gt;&lt;br /&gt;
== Setting and getting a metatable ==&lt;br /&gt;
&lt;br /&gt;
You will use setMetatable and getMetatable to set and get metatables.&lt;br /&gt;
&lt;br /&gt;
You use getMetatable(table) to get your metatable from a table. It will return the __metatable metafield&lt;br /&gt;
in the table.&lt;br /&gt;
&lt;br /&gt;
setMetatable(table, metatable) to set your table's metatable. It will error if the __metatable metafield&lt;br /&gt;
is set.&lt;br /&gt;
&lt;br /&gt;
However, if the table has a metatable with the metafield __metatable, it will error when you use setMetatable and return what it is set to when getMetatable is called.&lt;br /&gt;
&lt;br /&gt;
== Metamethods ==&lt;br /&gt;
&lt;br /&gt;
A metamethod is a type of function which changes the default way a table acts. The table below demonstrates what each&lt;br /&gt;
one is called, and how each one is used. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Name || Description || Arguments passed&lt;br /&gt;
|-&lt;br /&gt;
| __index&lt;br /&gt;
| Used when table[variable] is called.&lt;br /&gt;
| The variable.&lt;br /&gt;
|-&lt;br /&gt;
| __newindex&lt;br /&gt;
| Used like __index, but it is only called when the variable matches an empty space in the table.&lt;br /&gt;
| The variable.&lt;br /&gt;
|-&lt;br /&gt;
| __call&lt;br /&gt;
| A metamethod to turn a table's name into a function, or whatever you want it to do.&lt;br /&gt;
| Function, Tuple&lt;br /&gt;
|-&lt;br /&gt;
| __metatable&lt;br /&gt;
| Used for protecting metatables, called when getmetatable() is used on the table, setmetatable() just errors.&lt;br /&gt;
| Nothing (as far as Unit158 knows)&lt;br /&gt;
|-&lt;br /&gt;
| __mul&lt;br /&gt;
| Used as an operator overloader for multiplication.&lt;br /&gt;
| The two objects being &amp;quot;multiplied&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| __div&lt;br /&gt;
| Used as an operator overloader for division.&lt;br /&gt;
| The two objects being &amp;quot;divided&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| __sub&lt;br /&gt;
| Used as an operator overloader for substraction.&lt;br /&gt;
| The two objects being &amp;quot;subtracted&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| __add&lt;br /&gt;
| Used as an operator overloader for addition.&lt;br /&gt;
| The two objects being &amp;quot;added&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| __mod&lt;br /&gt;
| Used as an operator overloader for modulo.&lt;br /&gt;
| The two objects being &amp;quot;divided&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| __pow&lt;br /&gt;
| Used as an operator overloader for exponentiation operation.&lt;br /&gt;
| The two objects being exponentiated.&lt;br /&gt;
|-&lt;br /&gt;
| __unm&lt;br /&gt;
| I am not exactly sure how this one works, it is for negatives though.&lt;br /&gt;
| The table being changed into a negative. &amp;lt;!-- Feel free to change this one X] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| __eq&lt;br /&gt;
| __eq is an operator overloader for comparison.&lt;br /&gt;
| The two objects being compared&lt;br /&gt;
|-&lt;br /&gt;
| __lt&lt;br /&gt;
| Less than.&lt;br /&gt;
| The two objects being compared&lt;br /&gt;
|-&lt;br /&gt;
| __le&lt;br /&gt;
| Less than or equal to.&lt;br /&gt;
| The objects being compared&lt;br /&gt;
|-&lt;br /&gt;
| __concat&lt;br /&gt;
| The objects being concatenated&lt;br /&gt;
| The two objects being concatenated&lt;br /&gt;
|-&lt;br /&gt;
| __len&lt;br /&gt;
| The # operator.&lt;br /&gt;
| The object having the operation performed on it.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Use __eq to check if two tables are equal&lt;br /&gt;
|code=table1 = {x=0, y=1, z=0}&lt;br /&gt;
 table2 = {x=1, y=1, z=0}&lt;br /&gt;
 metatable = {__eq = function(operand1, operand2, type)&lt;br /&gt;
 if operand1.x == operand2.x and operand1.y == operand2.y and operand1.z then --Note: In reality you might want to first check if your these variables actually exist&lt;br /&gt;
     return true&lt;br /&gt;
 else&lt;br /&gt;
     return false&lt;br /&gt;
 end }&lt;br /&gt;
 setmetatable(table1, metatable)&lt;br /&gt;
 setmetatable(table2, metatable)&lt;br /&gt;
 if table1 == table2 then&lt;br /&gt;
     print(&amp;quot;Equal&amp;quot;)&lt;br /&gt;
 else&lt;br /&gt;
     print(&amp;quot;Not equal&amp;quot;)&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://www.lua.org/manual/5.1/manual.html#2.8 Lua 5.1 Reference Manual: Metatables]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Label&amp;diff=6838</id>
		<title>Label</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Label&amp;diff=6838"/>
				<updated>2015-02-02T15:07:08Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: Add another example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub|Needs more info about the program itself, perhaps an image?}}&lt;br /&gt;
Label is a [[CraftOS Shell|built in program for computers and turtles]] that will create a label for the computer, which will result in the label being assigned to the ID of the computer.&lt;br /&gt;
&lt;br /&gt;
This prevents loss of programs in the event of destruction of the computer or turtle, with the added benefit of allowing turtles to retain fuel between being broken.&lt;br /&gt;
&lt;br /&gt;
You can either '''set''' or '''clear''' the label on any computer or turtle.&lt;br /&gt;
&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Set the label of the computer to &amp;quot;Foo&amp;quot;&lt;br /&gt;
|code=label set foo&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Clears the label on the computer&lt;br /&gt;
|code=label clear&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Gets the label on the computer&lt;br /&gt;
|code=label get&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Programs]]&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=User:Superaxander&amp;diff=5248</id>
		<title>User:Superaxander</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=User:Superaxander&amp;diff=5248"/>
				<updated>2013-03-29T03:09:32Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to my page'''&lt;br /&gt;
&lt;br /&gt;
I Will try to make this wiki better. So we can all profit from that.&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=User:Superaxander&amp;diff=5247</id>
		<title>User:Superaxander</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=User:Superaxander&amp;diff=5247"/>
				<updated>2013-03-29T03:09:12Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: Created page with &amp;quot;'''Welcome to page'''  I Will try to make this wiki better. So we can all profit from that.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to page'''&lt;br /&gt;
&lt;br /&gt;
I Will try to make this wiki better. So we can all profit from that.&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Fs_(API)&amp;diff=5246</id>
		<title>Fs (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Fs_(API)&amp;diff=5246"/>
				<updated>2013-03-29T03:07:28Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The FS API allows you to mess around with the filesystem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width: 100%; border: solid 1px black; margin: 2px; border-spacing: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-weight: bold; font-size: large; padding-bottom: .3em; border-bottom: solid #C9C9C9 1px; background: #D3FFC2; line-height:28px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Grid_disk.png|24px]]&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
Fs (API)&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 350px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Method Name&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[fs.list]](path)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Lists the directories and files in the given directory&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[fs.exists]](path)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Checks if a path refers to an existing file or directory&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[fs.isDir]](path)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Checks if a path refers to an existing directory&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[fs.isReadOnly]](path)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Checks if a path is read-only (i.e. cannot be modified)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[fs.getName]](path)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Gets the final component of a pathname&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[fs.getDrive]](path)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Gets the type of storage medium holding a file or directory&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[fs.getSize]](path)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Gets the size of a file and returns in bytes&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[fs.getFreeSpace]](path)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Gets the remaining space in the given directory.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[fs.makeDir]](path)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Makes a directory&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[fs.move]](fromPath, toPath)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Moves a file or directory to a new location&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[fs.copy]](fromPath, toPath)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Copies a file or directory to a new location&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[fs.delete]](path)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Deletes a file or directory&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[fs.combine]](basePath, localPath)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Combines two path components, returning a path consisting of the local path nested inside the base path&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[fs.open]](path, mode)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Opens a file so it can be read or written&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;br /&gt;
&lt;br /&gt;
==Path Names==&lt;br /&gt;
All of these functions except for [[fs.combine]] refer solely to &amp;lt;em&amp;gt;absolute paths&amp;lt;/em&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
This means that the current working directory, as set by the &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; command or the [[shell.setDir]] function, is ignored. Each path name consists of a list of nonempty path components separated by forward slashes, and those path components are taken one by one with the first being contained in the root directory of the computer.&lt;br /&gt;
&lt;br /&gt;
If you need to deal with paths provided by the user that may be absolute or may be relative to the current working directory, use [[shell.resolve]].&lt;br /&gt;
&lt;br /&gt;
Unlike most real-world operating systems, ComputerCraft's absolute path name system does not need to be started with a forward slash ( / ). Making the directory &amp;quot;a/b/c&amp;quot; is the same as making &amp;quot;/a/b/c&amp;quot;. Leaving the slashes is just a matter of preference to the coder.&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Fs.getFreeSpace&amp;diff=5245</id>
		<title>Fs.getFreeSpace</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Fs.getFreeSpace&amp;diff=5245"/>
				<updated>2013-03-29T03:05:12Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=fs.getFreeSpace&lt;br /&gt;
|args=[[String(type)|string]] path&lt;br /&gt;
|api=fs&lt;br /&gt;
|returns=[[Number_(type)|number]] the amount of free space in bytes&lt;br /&gt;
|desc=returns the amount of free space in the given directory&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Computes the amount of free space on the computer&lt;br /&gt;
|code=print(tostring(fs.getFreeSpace(&amp;quot;/&amp;quot;)))&lt;br /&gt;
|output=10(can be different)&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Lua_Core_Functions]]&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Talk:Terminate_(event)&amp;diff=5237</id>
		<title>Talk:Terminate (event)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Talk:Terminate_(event)&amp;diff=5237"/>
				<updated>2013-03-27T22:45:44Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: Created page with &amp;quot;Is this enough to remove the &amp;quot;This Page Needs Some Serious TLC Stat&amp;quot; --~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Is this enough to remove the &amp;quot;This Page Needs Some Serious TLC Stat&amp;quot;&lt;br /&gt;
--[[User:Superaxander|Superaxander]] 02:45, 28 March 2013 (MSK)&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Terminate_(event)&amp;diff=5236</id>
		<title>Terminate (event)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Terminate_(event)&amp;diff=5236"/>
				<updated>2013-03-27T22:44:29Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedsWork|A demonstration on the use and handling of this event would be beneficial. ''[[User:AfterLifeLochie|AfterLifeLochie]] 16:13, 30 November 2012 (MSK)''}}&lt;br /&gt;
&lt;br /&gt;
{{Event&lt;br /&gt;
|name=terminate&lt;br /&gt;
|desc=Fired when CTRL+T is held to terminate the running program.&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=This overides the [[os.pullEvent]] function to display a custom message when a program is terminated&lt;br /&gt;
|code=  function os.pullEvent(_sFilter)&lt;br /&gt;
    local event = { os.pullEventRaw(_sFilter) }&lt;br /&gt;
    if event[1] == &amp;quot;terminate&amp;quot; then&lt;br /&gt;
      error(&amp;quot;Terminate Event Found&amp;quot;, 0)&lt;br /&gt;
    end&lt;br /&gt;
    return unpack(event)&lt;br /&gt;
  end&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Terminate_(event)&amp;diff=5235</id>
		<title>Terminate (event)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Terminate_(event)&amp;diff=5235"/>
				<updated>2013-03-27T22:44:01Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedsWork|A demonstration on the use and handling of this event would be beneficial. ''[[User:AfterLifeLochie|AfterLifeLochie]] 16:13, 30 November 2012 (MSK)''}}&lt;br /&gt;
&lt;br /&gt;
{{Event&lt;br /&gt;
|name=terminate&lt;br /&gt;
|desc=Fired when CTRL+T is held to terminate the running program.&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=This overides the [[os.pullEvent]] function to display a custom message when a program is terminated&lt;br /&gt;
|code=  function os.pullEvent(_sFilter)&lt;br /&gt;
  local event = { os.pullEventRaw(_sFilter) }&lt;br /&gt;
    if event[1] == &amp;quot;terminate&amp;quot; then&lt;br /&gt;
      error(&amp;quot;Terminate Event Found&amp;quot;, 0)&lt;br /&gt;
    end&lt;br /&gt;
    return unpack(event)&lt;br /&gt;
  end&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Terminate_(event)&amp;diff=5234</id>
		<title>Terminate (event)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Terminate_(event)&amp;diff=5234"/>
				<updated>2013-03-27T22:42:59Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedsWork|A demonstration on the use and handling of this event would be beneficial. ''[[User:AfterLifeLochie|AfterLifeLochie]] 16:13, 30 November 2012 (MSK)''}}&lt;br /&gt;
&lt;br /&gt;
{{Event&lt;br /&gt;
|name=terminate&lt;br /&gt;
|desc=Fired when CTRL+T is held to terminate the running program.&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=This overides the [[os.pullEvent]] function to display a custom message when a program is terminated&lt;br /&gt;
|code=function os.pullEvent(_sFilter)&lt;br /&gt;
  local event = { os.pullEventRaw(_sFilter) }&lt;br /&gt;
  if event[1] == &amp;quot;terminate&amp;quot; then&lt;br /&gt;
    error(&amp;quot;Terminate Event Found&amp;quot;, 0)&lt;br /&gt;
  end&lt;br /&gt;
  return unpack(event)&lt;br /&gt;
end&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Terminate_(event)&amp;diff=5233</id>
		<title>Terminate (event)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Terminate_(event)&amp;diff=5233"/>
				<updated>2013-03-27T22:42:36Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedsWork|A demonstration on the use and handling of this event would be beneficial. ''[[User:AfterLifeLochie|AfterLifeLochie]] 16:13, 30 November 2012 (MSK)''}}&lt;br /&gt;
&lt;br /&gt;
{{Event&lt;br /&gt;
|name=terminate&lt;br /&gt;
|desc=Fired when CTRL+T is held to terminate the running program.&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=This overides the [[os.pullEvent()]] function to display a custom message when a program is terminated&lt;br /&gt;
|code=function os.pullEvent(_sFilter)&lt;br /&gt;
  local event = { os.pullEventRaw(_sFilter) }&lt;br /&gt;
  if event[1] == &amp;quot;terminate&amp;quot; then&lt;br /&gt;
    error(&amp;quot;Terminate Event Found&amp;quot;, 0)&lt;br /&gt;
  end&lt;br /&gt;
  return unpack(event)&lt;br /&gt;
end&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Fs.getFreeSpace&amp;diff=5232</id>
		<title>Fs.getFreeSpace</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Fs.getFreeSpace&amp;diff=5232"/>
				<updated>2013-03-27T21:45:25Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=fs.getFreeSpace&lt;br /&gt;
|args=[[String_(type)|string]] path&lt;br /&gt;
|api=fs&lt;br /&gt;
|returns=[[String_(type)|string]] the amount of free space in bytes&lt;br /&gt;
|desc=returns the amount of free space in the given directory&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Computes the amount of free space on the computer&lt;br /&gt;
|code=print(tostring(fs.getFreeSpace(&amp;quot;/&amp;quot;)))&lt;br /&gt;
|output=10(can be different)&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Lua_Core_Functions]]&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Fs.getFreeSpace&amp;diff=5231</id>
		<title>Fs.getFreeSpace</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Fs.getFreeSpace&amp;diff=5231"/>
				<updated>2013-03-27T21:45:08Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=fs.getFreeSpace&lt;br /&gt;
|args=[[String_(type)|string]] path&lt;br /&gt;
|api=fs&lt;br /&gt;
|returns=[[String_(type)|string]] the amount of free space in bytes&lt;br /&gt;
|desc=returns the amount of free space in the given directory&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Computes the amount of free space on the computer&lt;br /&gt;
|code=print(tostring(fs.getFreeSpace(&amp;quot;/&amp;quot;)))&lt;br /&gt;
|output=10(can be different)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Lua_Core_Functions]]&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Fs.getFreeSpace&amp;diff=5230</id>
		<title>Fs.getFreeSpace</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Fs.getFreeSpace&amp;diff=5230"/>
				<updated>2013-03-27T19:20:04Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fs.getFreeSpace() get's the free space in bytes of the path you give it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{example}{&lt;br /&gt;
&lt;br /&gt;
--Example Usage of fs.getFreeSpace&lt;br /&gt;
print(tostring(fs.getFreeSpace(&amp;quot;/&amp;quot;)))&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Fs.getFreeSpace&amp;diff=5229</id>
		<title>Fs.getFreeSpace</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Fs.getFreeSpace&amp;diff=5229"/>
				<updated>2013-03-27T19:17:14Z</updated>
		
		<summary type="html">&lt;p&gt;Superaxander: Created page with &amp;quot;Fs.getFreeSpace() get's the free space in bytes of the path you give it   == example ==  &amp;lt;nowiki&amp;gt; --Example Usage of fs.getFreeSpace print(tostring(fs.getFreeSpace(&amp;quot;/&amp;quot;))) &amp;lt;/no...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fs.getFreeSpace() get's the free space in bytes of the path you give it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== example ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
--Example Usage of fs.getFreeSpace&lt;br /&gt;
print(tostring(fs.getFreeSpace(&amp;quot;/&amp;quot;)))&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Superaxander</name></author>	</entry>

	</feed>