Difference between revisions of "Term.redirect"

From ComputerCraft Wiki
Jump to: navigation, search
m (Moved to CAT:APIFunctions)
m (Fixing typo)
 
(3 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
{{Function
 
{{Function
 
|name=term.redirect
 
|name=term.redirect
|returns=None
+
|args={{type|table}} terminal object
 +
|returns={{type|table}} previous terminal object
 
|api=term
 
|api=term
 
|addon=ComputerCraft
 
|addon=ComputerCraft
|desc=Redirects terminal output to a monitor (By using [[peripheral.wrap]] to get the monitor object.) or other redirect target.
+
|desc=Redirects [[term (API)|terminal]] output to a [[monitor]], a [[window (API)|window]], or any other custom terminal object. Once the redirect is performed, any calls to a "term" function - or to a function that makes ''use'' of a term function, as as [[print|print()]] - will instead operate with the new terminal object.
 +
 
 +
A "terminal object" is simply a table that contains functions with the same names - and general features - as those found in the [[term (API)|term]] table. For example, a [[Peripheral.wrap|wrapped]] monitor is suitable.
 +
 
 +
The redirect can be undone by pointing back to the previous terminal object (which this function returns whenever you switch). For ComputerCraft builds older than 1.6, use [[term.restore|term.restore()]] to revert instead.
 +
 
 +
Advanced systems running on ComputerCraft 1.6 or later implement [[multishell]], which enables easy multitasking at the expense of some terminal slow-down (all instances of the [[shell]] are redirected to a [[window (API)|window]], increasing the number of function calls involved in any graphical updates). This can be circumvented by way of redirecting to [[term.native]](), at the cost of (somewhat messily) breaking things for users who actually want the multitasking capability.
 +
 
 
|examples=
 
|examples=
 
{{Example
 
{{Example
 
|desc=Prints "Hello World!" on the right monitor.
 
|desc=Prints "Hello World!" on the right monitor.
 
|code=term.redirect(peripheral.wrap("right"))<br>print("Hello  World!")
 
|code=term.redirect(peripheral.wrap("right"))<br>print("Hello  World!")
|output=None
+
}}
 +
{{Example
 +
|desc=Redirects to a monitor, writes some text there, then reverts back to the previous display.
 +
|code=
 +
local mon = [[peripheral.find]]("monitor")
 +
local oldTerm = term.redirect(mon)
 +
print("I'm written on a monitor!")
 +
term.redirect(oldTerm)
 
}}
 
}}
 
}}
 
}}
  
 
[[Category:API_Functions]]
 
[[Category:API_Functions]]

Latest revision as of 16:31, 27 August 2015


Grid Redstone.png  Function term.redirect
Redirects terminal output to a monitor, a window, or any other custom terminal object. Once the redirect is performed, any calls to a "term" function - or to a function that makes use of a term function, as as print() - will instead operate with the new terminal object.

A "terminal object" is simply a table that contains functions with the same names - and general features - as those found in the term table. For example, a wrapped monitor is suitable.

The redirect can be undone by pointing back to the previous terminal object (which this function returns whenever you switch). For ComputerCraft builds older than 1.6, use term.restore() to revert instead.

Advanced systems running on ComputerCraft 1.6 or later implement multishell, which enables easy multitasking at the expense of some terminal slow-down (all instances of the shell are redirected to a window, increasing the number of function calls involved in any graphical updates). This can be circumvented by way of redirecting to term.native(), at the cost of (somewhat messily) breaking things for users who actually want the multitasking capability.
Syntax term.redirect(table terminal object)
Returns table previous terminal object
Part of ComputerCraft
API term

Examples

Grid paper.png  Example
Prints "Hello World!" on the right monitor.
Code
term.redirect(peripheral.wrap("right"))
print("Hello World!")



Grid paper.png  Example
Redirects to a monitor, writes some text there, then reverts back to the previous display.
Code
local mon = peripheral.find("monitor")
local oldTerm = term.redirect(mon)
print("I'm written on a monitor!")
term.redirect(oldTerm)