a1c5881995-08-09Fredrik Hübinette (Hubbe) <?xml version='1.0' encoding='utf-8'?> <autodoc>
431c431998-12-31Fredrik Hübinette (Hubbe) <namespace name='predef'> <docgroup homogen-name='_do_call_outs' homogen-type='method'> <method name='_do_call_outs'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>_do_call_outs</tt> - do all pending call_outs.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>void _do_call_out();<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><dl><group><text>This function runs all pending call_outs that should have been<br/> run if pike returned to the backend. It should not be used in<br/> normal operation.<br/> </text></group></dl> </p> <p>As a side-effect, this function sets the value returned by time(1) to the current time.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text> <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::call_out' to='call_out'>call_out</ref>, <ref resolved='predef::remove_call_out' to='remove_call_out'>remove_call_out</ref>, <ref resolved='predef::call_out_info' to='call_out_info'>call_out_info</ref> and <ref to='time'>time</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='acos' homogen-type='method'> <method name='acos'/><doc placeholder='true'>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>acos</tt> - Trigonometrical inverse cosine</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>float acos(float <i>f</i>);<br/>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Return the arcus cosinus value for f.</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) float</text>
c3eeb11996-12-15Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::cos' to='predef::cos'>math/cos</ref> and <ref resolved='predef::asin' to='predef::asin'>math/asin</ref></p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='asin' homogen-type='method'> <method name='asin'/><doc placeholder='true'>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>asin</tt> - Trigonometrical inverse sine</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>float asin(float <i>f</i>);<br/>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Return the arcus sinus value for f.</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) float</text>
c3eeb11996-12-15Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::sin' to='predef::sin'>math/sin</ref> and <ref resolved='predef::acos' to='predef::acos'>math/acos</ref></p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='atan' homogen-type='method'> <method name='atan'/><doc placeholder='true'>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>atan</tt> - Trigonometrical inverse tangent</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>float atan(float <i>f</i>);<br/> </p> </tt> <p>Return the arcus tangent value for f.</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) float</text>
c3eeb11996-12-15Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::tan' to='predef::tan'>math/tan</ref>, <ref resolved='predef::asin' to='predef::asin'>math/asin</ref> and <ref resolved='predef::acos' to='predef::acos'>math/acos</ref></p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </text></group>
6559661996-11-06Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='call_out' homogen-type='method'> <method name='call_out'/><doc placeholder='true'>
6559661996-11-06Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>call_out</tt> - make a delayed call to a function</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>mixed call_out(function <i>f</i>, int <i>delay</i>, mixed ... <i>args</i>);<br/>
6559661996-11-06Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Call_out places a call to the function f with the argument args in a queue to be called in about delay seconds. The return value identifies this call out. The return value can be sent to find_call_out or remove_call_out to remove the call out again.</p> </text>
6559661996-11-06Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::remove_call_out' to='remove_call_out'>remove_call_out</ref>, <ref resolved='predef::find_call_out' to='find_call_out'>find_call_out</ref> and <ref resolved='predef::call_out_info' to='call_out_info'>call_out_info</ref></p>
6559661996-11-06Fredrik Hübinette (Hubbe) </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='call_out_info' homogen-type='method'> <method name='call_out_info'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>call_out_info</tt> - get info about all call outs</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>mixed **call_out_info();<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function returns an array with one entry for each entry in the call out queue. The first in the queue will be in index 0. Each index contains an array that looks like this: </p> <p>({<br/> <dl><group><text><matrix> <r><c> time_left, </c><c> /* an int */ </c></r> <r><c> caller, </c><c> /* the object that made the call out */ </c></r> <r><c> function, </c><c> /* the function to be called */ </c></r> <r><c> arg1, </c><c> /* the first argument, if any */ </c></r> <r><c> arg2, </c><c> /* the second argument, if any */ </c></r> <r><c> ... </c><c> /* and so on... */ </c></r> </matrix> </text></group></dl>})<br/> </p> </text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::call_out' to='call_out'>call_out</ref>, <ref resolved='predef::find_call_out' to='find_call_out'>find_call_out</ref> and <ref resolved='predef::remove_call_out' to='remove_call_out'>remove_call_out</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group>
6559661996-11-06Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='cd' homogen-type='method'> <method name='cd'/><doc placeholder='true'>
6559661996-11-06Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>cd</tt> - change directory</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int cd(string <i>s</i>);<br/>
6559661996-11-06Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Change the current directory for the whole Pike process, return 1 for success, 0 otherwise.</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) file</text>
6559661996-11-06Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::getcwd' to='predef::getcwd'>files/getcwd</ref></p>
6559661996-11-06Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='ceil' homogen-type='method'> <method name='ceil'/><doc placeholder='true'>
6559661996-11-06Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>ceil</tt> - Truncate a number upward</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>float ceil(float <i>f</i>);<br/>
6559661996-11-06Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Return the closest integral value higher or equal to x. Note that ceil() does _not_ return an int, merely an integral value.</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) float</text>
6559661996-11-06Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::floor' to='predef::floor'>math/floor</ref></p>
6559661996-11-06Fredrik Hübinette (Hubbe) </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='chroot' homogen-type='method'> <method name='chroot'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>chroot</tt> - change the root directory</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int chroot(string <i>newroot</i>);<br/> or<br/> int chroot(object(File) <i>obj</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Changes the root directory for this process to the indicated directory.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text> <group><note/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Since this function modifies the directory structure as seen from Pike, you have to modify the environment variables PIKE_MODULE_PATH and PIKE_INCLUDE_PATH to compensate for the new root-directory.
6130721996-11-01Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function only exists on systems that have the chroot(2) system call. The second variant only works on systems that also have the fchroot(2) system call.
6130721996-11-01Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='cos' homogen-type='method'> <method name='cos'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>cos</tt> - Trigonometrical cosine</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>float cos(float <i>f</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Return the cosinus value for f.</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) float</text>
6559661996-11-06Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::acos' to='predef::acos'>math/acos</ref> and <ref resolved='predef::sin' to='predef::sin'>math/sin</ref></p>
6559661996-11-06Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='errno' homogen-type='method'> <method name='errno'/><doc placeholder='true'>
6559661996-11-06Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>errno</tt> - return system error number</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int errno();<br/>
6559661996-11-06Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function returns the system error from the last file operation. Note that you should normally use the function errno in the file object instead.</p> </text>
6559661996-11-06Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='file/errno'>file/errno</ref></p>
6559661996-11-06Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='exece' homogen-type='method'> <method name='exece'/><doc placeholder='true'>
6559661996-11-06Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>exece</tt> - execute a program</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int exece(string <i>file</i>, string *<i>args</i>);<br/> or<br/> int exece(string <i>file</i>, string *<i>args</i>, mapping(string:string) <i>env</i>);<br/>
6559661996-11-06Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function transforms the Pike process into a process running the program specified in the argument 'file' with the argument 'args'. If the mapping 'env' is present, it will completely replace all environment variables before the new program is executed. This function only returns if something went wrong during exece(), and in that case it returns zero.</p>
6559661996-11-06Fredrik Hübinette (Hubbe) </text> <group><note/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The Pike driver _dies_ when this function is called. You must use fork() if you wish to execute a program and still run the Pike driver.</p> </text></group>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><example/><text> <tt><p>exece("/bin/ls", ({"-l"}));<br/> exece("/bin/sh", ({"-c", "echo $HOME"}), (["HOME":"/not/home"]));<br/> </p> </tt></text></group>
6559661996-11-06Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::fork' to='predef::fork'>files/fork</ref> and <ref to='file-&gt;pipe'>&gt;file-&gt;pipe</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group>
6559661996-11-06Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='exp' homogen-type='method'> <method name='exp'/><doc placeholder='true'>
6559661996-11-06Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>exp</tt> - Natural exponent</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>float exp(float <i>f</i>);<br/>
6559661996-11-06Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Return the natural exponent of f. log( exp( x ) ) == x as long as exp(x) doesn't overflow an int.</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) float</text>
6559661996-11-06Fredrik Hübinette (Hubbe) 
6130721996-11-01Fredrik Hübinette (Hubbe) <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::pow' to='predef::pow'>math/pow</ref> and <ref resolved='predef::log' to='predef::log'>math/log</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='file_stat' homogen-type='method'> <method name='file_stat'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>file_stat</tt> - stat a file</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int *file_stat(string <i>file</i>);<br/> or<br/> int *file_stat(string <i>file</i>, <i>1</i>);<br/> or<br/> int *file-&gt;stat();<br/> </p> </tt> <p>file_stat returns an array of integers describing some properties<br/> about the file. Currently file_stat returns 7 entries:<br/> ({<br/> <dl><group><text><matrix> <r><c> mode, </c><c> /* file mode, protection bits etc. etc. */ </c></r> <r><c> size, </c><c> /* file size for regular files, -2 for dirs, -3 for links, -4 for otherwise */ </c></r> <r><c> atime, </c><c> /* last access time */ </c></r> <r><c> mtime, </c><c> /* last modify time */ </c></r> <r><c> ctime, </c><c> /* last status time change */ </c></r> <r><c> uid, </c><c> /* The user who owns this file */ </c></r> <r><c> gid </c><c> /* The group this file belongs to */ </c></r> </matrix> </text></group></dl>})<br/> If you give 1 as a second argument, file_stat does not follow links.<br/> You can never get -3 as size if you don't give a second argument.<br/> </p> <p>If there is no such file or directory, zero is returned.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) file</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::get_dir' to='predef::get_dir'>files/get_dir</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='filesystem_stat' homogen-type='method'> <method name='filesystem_stat'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>filesystem_stat</tt> - stat a filesystem <br/> <dl><group><text><br/> </text></group></dl>SYNTAX<br/> <dl><group><text>mapping(string:atring|int) filesystem_stat(string file);<br/> </text></group></dl></p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p><dl><group><text>filesystem_stat returns a mapping describing some properties<br/> about the filesystem.<br/> Currently nine fields of the mapping are defined:<br/> </text></group></dl> </p> <p>([<br/> <dl><group><text>"blocksize":int, /* filesystem block size */<br/> <dl><group><text>"blocks":int, /* total # of blocks on file system<br/> <dl><group><text>* in units of blocksize */<br/> </text></group></dl>"bfree":int, /* total # of free blocks */<br/> "bavail":int, /* total # of free blocks<br/> <dl><group><text>* available to non-super-user */<br/> </text></group></dl>"files":int, /* total # of files */<br/> "ffree":int, /* total # of free files */<br/> "favail":int, /* total # of free files<br/> <dl><group><text>* available to non-super-user */<br/> </text></group></dl>"fstype":string /* target fs type name */<br/> "fsname":string /* target fs name */<br/> }) <br/> <br/> If there is no such file or directory, zero is returned.<br/> </text></group></dl></text></group></dl></p> </text>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>This function does not exist on all Operating Systems.
6130721996-11-01Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Depending on Operating System some of the above values may not<br/> be returned.<br/> <dl><group><text><br/> </text></group></dl>KEYWORDS<br/> <dl><group><text>file<br/> <dl><group><text><br/> </text></group></dl></text></group></dl>SEE ALSO<br/> <dl><group><text>files/file_stat<br/> <dl><group><text><br/> <br/> </text></group></dl></text></group></dl><br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='find_call_out' homogen-type='method'> <method name='find_call_out'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>find_call_out</tt> - find a call out in the queue</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int find_call_out(function <i>f</i>);<br/> or<br/> int find_call_out(mixed <i>id</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function searches the call out queue. If given a function as argument, it looks for the first call out scheduled to that function. The argument can also be a call out id as returned by call_out, in which case that call_out will be found. (Unless it has already been called.) find_call_out will then return how many seconds remains before that call will be executed. If no call is found, zero_type(find_call_out(f)) will return 1.</p> </text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::call_out' to='call_out'>call_out</ref>, <ref resolved='predef::remove_call_out' to='remove_call_out'>remove_call_out</ref> and <ref resolved='predef::call_out_info' to='call_out_info'>call_out_info</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group>
6559661996-11-06Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='floor' homogen-type='method'> <method name='floor'/><doc placeholder='true'>
6559661996-11-06Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>floor</tt> - Truncate a number downward</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>float floor(float <i>f</i>);<br/>
6559661996-11-06Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Return the closest integral value lower or equal to x. Note that floor() does _not_ return an int, merely an integral value.</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) float</text> <group><seealso/><text> <p><ref resolved='predef::ceil' to='predef::ceil'>math/ceil</ref></p> </text></group>
6559661996-11-06Fredrik Hübinette (Hubbe) 
6130721996-11-01Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='fork' homogen-type='method'> <method name='fork'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>fork</tt> - fork the process in two</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int fork();<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Fork splits the process in two, and for the parent it returns the pid of the child. Refer to your unix manual for further details.</p> </text>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>This function cause endless bugs if used without proper care.</p> </text></group>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><seealso/><text> <p><ref to='predef::exec'>files/exec</ref> and <ref to='file-&gt;pipe'>&gt;file-&gt;pipe</ref></p> </text></group>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
6559661996-11-06Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='get_dir' homogen-type='method'> <method name='get_dir'/><doc placeholder='true'>
6559661996-11-06Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>get_dir</tt> - read a directory</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>string *get_dir(string <i>dirname</i>);<br/>
6559661996-11-06Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Return an array of all filenames in the directory dir, or zero if no such directory exists.</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) file</text>
6559661996-11-06Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::mkdir' to='predef::mkdir'>files/mkdir</ref> and <ref resolved='predef::cd' to='predef::cd'>files/cd</ref></p>
6559661996-11-06Fredrik Hübinette (Hubbe) </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='getcwd' homogen-type='method'> <method name='getcwd'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>getcwd</tt> - return current working directory</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>string getcwd();<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>getcwd returns the current working directory.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) file</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::cd' to='predef::cd'>files/cd</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='getegid' homogen-type='method'> <method name='getegid'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>getegid</tt> - get the effective group ID</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int getegid();<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Get the effective group ID.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) Usersecurity</text>
c3eeb11996-12-15Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='system/setuid'>system/setuid</ref>, <ref to='system/getuid'>system/getuid</ref>, <ref to='system/setgid'>system/setgid</ref>, <ref to='system/getgid'>system/getgid</ref>, <ref to='system/seteuid'>system/seteuid</ref>, <ref to='system/geteuid'>system/geteuid</ref> and <ref to='system/setegid'>system/setegid</ref></p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='geteuid' homogen-type='method'> <method name='geteuid'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>geteuid</tt> - get the effective user ID</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int geteuid();<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Get the effective user ID.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) Usersecurity</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='system/setuid'>system/setuid</ref>, <ref to='system/getuid'>system/getuid</ref>, <ref to='system/setgid'>system/setgid</ref>, <ref to='system/getgid'>system/getgid</ref>, <ref to='system/seteuid'>system/seteuid</ref>, <ref to='system/setegid'>system/setegid</ref> and <ref to='system/getegid'>system/getegid</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='getgid' homogen-type='method'> <method name='getgid'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>getgid</tt> - get the group ID</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int getgid();<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Get the real group ID.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) Usersecurity</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='system/setuid'>system/setuid</ref>, <ref to='system/getuid'>system/getuid</ref>, <ref to='system/setgid'>system/setgid</ref>, <ref to='system/seteuid'>system/seteuid</ref>, <ref to='system/geteuid'>system/geteuid</ref>, <ref to='system/setegid'>system/setegid</ref> and <ref to='system/getegid'>system/getegid</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='gethostbyaddr' homogen-type='method'> <method name='gethostbyaddr'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>gethostbyaddr</tt> - gets information about a host given it's address</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>array gethostbyaddr(string <i>addr</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Returns an array with information about the specified IP address. </p> <p>The returned array contains the same information as that returned by gethostbyname().</p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text> <group><note/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function only exists on systems that have the gethostbyaddr(2) or similar system call.</p> </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><seealso/><text> <p><ref resolved='predef::gethostbyname' to='gethostbyname'>gethostbyname</ref></p> </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='gethostbyname' homogen-type='method'> <method name='gethostbyname'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>gethostbyname</tt> - gets information about a host given it's name</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>array gethostbyname(string <i>hostname</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Returns an array with information about the specified host. </p> <p>The array contains three elements: </p> <p>The first element is the hostname. </p> <p>The second element is an array(string) of IP numbers for the host. </p> <p>The third element is an array(string) of aliases for the host.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text> <group><note/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function only exists on systems that have the gethostbyname(2) or similar system call.</p> </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><seealso/><text> <p><ref resolved='predef::gethostbyaddr' to='gethostbyaddr'>gethostbyaddr</ref></p> </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='gethostname' homogen-type='method'> <method name='gethostname'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>gethostname</tt> - get the name of this host</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>string gethostname();<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Returns a string with the name of the host.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text> <group><note/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function only exists on systems that have the gethostname(2) or uname(2) system calls. </p> </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='getpgrp' homogen-type='method'> <method name='getpgrp'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>getpgrp</tt> - get the process group ID</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int getpgrp();<br/> or<br/> int getpgrp(int <i>pid</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>With no argguments or with 'pid' equal to zero, returns the process group ID of this process. </p> <p>If 'pid' is specified, returns the process group ID of that process.</p> Processes</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='system/getpid'>system/getpid</ref> and <ref to='system/getppid'>system/getppid</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='getpid' homogen-type='method'> <method name='getpid'/><doc placeholder='true'>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>getpid</tt> - get the process ID</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int getpid();<br/>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Returns the process ID of this process.</p> Processes</text>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><seealso/><text> <p><ref to='system/getppid'>system/getppid</ref> and <ref to='system/getpgrp'>system/getpgrp</ref></p> </text></group>
c3eeb11996-12-15Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='getppid' homogen-type='method'> <method name='getppid'/><doc placeholder='true'>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>getppid</tt> - get the parent process ID</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int getppid();<br/>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Returns the process ID of the parent process.</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) Processes</text>
c3eeb11996-12-15Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='system/getpid'>system/getpid</ref> and <ref to='system/getpgrp'>system/getpgrp</ref></p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='getuid' homogen-type='method'> <method name='getuid'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>getuid</tt> - get the user ID</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int getuid();<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Get the real user ID.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) Usersecurity</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='system/setuid'>system/setuid</ref>, <ref to='system/setgid'>system/setgid</ref>, <ref to='system/getgid'>system/getgid</ref>, <ref to='system/seteuid'>system/seteuid</ref>, <ref to='system/geteuid'>system/geteuid</ref>, <ref to='system/setegid'>system/setegid</ref> and <ref to='system/getegid'>system/getegid</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='hardlink' homogen-type='method'> <method name='hardlink'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>hardlink</tt> - create a hardlink</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>void hardlink(string <i>from</i>, string <i>to</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Creates a hardlink named 'to' from the file 'from'.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) file</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='system/symlink'>system/symlink</ref>, <ref resolved='predef::mv' to='predef::mv'>files/mv</ref> and <ref resolved='predef::rm' to='predef::rm'>files/rm</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='initgroups' homogen-type='method'> <method name='initgroups'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>initgroups</tt> - initialize the group access list</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>void initgroups(string <i>username</i>, int <i>base_gid</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Initializes the group access list according to the system group database. 'base_gid' is also added to the group access list.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) Usersecurity</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='system/setuid'>system/setuid</ref>, <ref to='system/getuid'>system/getuid</ref>, <ref to='system/setgid'>system/setgid</ref>, <ref to='system/getgid'>system/getgid</ref>, <ref to='system/seteuid'>system/seteuid</ref>, <ref to='system/geteuid'>system/geteuid</ref>, <ref to='system/setegid'>system/setegid</ref>, <ref to='system/getegid'>system/getegid</ref>, <ref to='system/getgroups'>system/getgroups</ref> and <ref to='system/setgroups'>system/setgroups</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='log' homogen-type='method'> <method name='log'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>log</tt> - Natural logarithm</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>float log(float <i>f</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Return the natural logarithm of f. exp( log(x) ) == x for x &gt; 0.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) float</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::pow' to='predef::pow'>math/pow</ref> and <ref resolved='predef::exp' to='predef::exp'>math/exp</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='mkdir' homogen-type='method'> <method name='mkdir'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>mkdir</tt> - make directory</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int mkdir(string <i>dirname</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Create a directory, return zero if it fails and nonzero if it fails.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) file</text>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><seealso/><text> <p><ref resolved='predef::rm' to='predef::rm'>files/rm</ref> and <ref resolved='predef::cd' to='predef::cd'>files/cd</ref></p> </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='mv' homogen-type='method'> <method name='mv'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>mv</tt> - move a file (may handle directiories as well)</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int mv(string <i>from</i>,string <i>to</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Rename or move a file between directories. If the destination file already exists, it will be overwritten. Returns 1 on sucess, 0 otherwise.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) file</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::rm' to='predef::rm'>files/rm</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='openlog' homogen-type='method'> <method name='openlog'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>openlog</tt> - initializes the connection to syslogd</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>void openlog(string <i>ident</i>, int <i>options</i>, <i>facility</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Initializes the connection to syslogd. </p> <p>The 'ident' argument specifies an identifier to tag all logentries with. </p> <p>'options' is a bitfield specifying the behaviour of the message logging. Valid options are: </p> <p><dl><group><text><matrix> <r><c> LOG_PID </c><c> Log the process ID with each message. </c></r> <r><c> LOG_CONS </c><c> Write messages to the console if they can't be sent to syslogd. </c></r> <r><c> LOG_NDELAY </c><c> Open the connection to syslogd now and not later. </c></r> <r><c> LOG_NOWAIT </c><c> Do not wait for subprocesses talking to syslogd. </c></r> </matrix> </text></group></dl> </p> <p>'facility' specifies what subsystem you want to log as. Valid facilities are: </p> <p><dl><group><text><matrix> <r><c> LOG_AUTH </c><c> Authorization subsystem </c></r> <r><c> LOG_AUTHPRIV </c></r> <r><c> LOG_CRON </c><c> Crontab subsystem </c></r> <r><c> LOG_DAEMON </c><c> System daemons </c></r> <r><c> LOG_KERN </c><c> Kernel subsystem (NOT USABLE) </c></r> <r><c> LOG_LOCAL </c><c> For local use </c></r> <r><c> LOG_LOCAL[1-7] </c><c> For local use </c></r> <r><c> LOG_LPR </c><c> Line printer spooling system </c></r> <r><c> LOG_MAIL </c><c> Mail subsystem </c></r> <r><c> LOG_NEWS </c><c> Network news subsystem </c></r> <r><c> LOG_SYSLOG </c></r> <r><c> LOG_USER </c></r> <r><c> LOG_UUCP </c><c> UUCP subsystem </c></r> </matrix> </text></group></dl></p> </text> <group><note/><text> <p>Only available on systems with syslog(3).
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) BUGS LOG_NOWAIT should probably always be specified.</p> </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='syslog'>syslog</ref>, <ref to='closelog'>closelog</ref> and <ref to='setlogmask'>setlogmask</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='pow' homogen-type='method'> <method name='pow'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>pow</tt> - Raise a number to the power of another.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>float pow(float <i>n</i>, float <i>x</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Return n raised to the power of x.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) float</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::exp' to='predef::exp'>math/exp</ref> and <ref resolved='predef::log' to='predef::log'>math/log</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='readlink' homogen-type='method'> <method name='readlink'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>readlink</tt> - read a symbolic link</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>string readlink(string <i>linkname</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Returns what the symbolic link 'linkname' points to.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) file</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='system/symlink'>system/symlink</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='remove_call_out' homogen-type='method'> <method name='remove_call_out'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>remove_call_out</tt> - remove a call out from the call out queue</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int remove_call_out(function <i>f</i>);<br/> or<br/> int remove_call_out(function <i>id</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function finds the first call to the function f in the call out queue and removes it. The time left to that call out will be returned. If no call out was found, zero_type(remove_call_out(f)) will return 1. You can also give a call out id as argument. (as returned by call_out)</p> </text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::call_out_info' to='call_out_info'>call_out_info</ref>, <ref resolved='predef::call_out' to='call_out'>call_out</ref> and <ref resolved='predef::find_call_out' to='find_call_out'>find_call_out</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='rm' homogen-type='method'> <method name='rm'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>rm</tt> - remove file or directory</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int rm(string <i>f</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Remove a file or directory, return 0 if it fails. Nonzero otherwise.</p> file</text>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><seealso/><text> <p><ref resolved='predef::mkdir' to='predef::mkdir'>files/mkdir</ref></p> </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='setegid' homogen-type='method'> <method name='setegid'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>setegid</tt> - set the effective group ID</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>void setegid(int <i>uid</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Sets the effective group ID to 'gid'.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) Usersecurity</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='system/setuid'>system/setuid</ref>, <ref to='system/getuid'>system/getuid</ref>, <ref to='system/setgid'>system/setgid</ref>, <ref to='system/getgid'>system/getgid</ref>, <ref to='system/seteuid'>system/seteuid</ref>, <ref to='system/geteuid'>system/geteuid</ref> and <ref to='system/getegid'>system/getegid</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='seteuid' homogen-type='method'> <method name='seteuid'/><doc placeholder='true'>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>seteuid</tt> - set the effective user ID</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>void seteuid(int <i>uid</i>);<br/>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Sets the effective user ID to 'uid'.</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) Usersecurity</text>
c3eeb11996-12-15Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='system/setuid'>system/setuid</ref>, <ref to='system/getuid'>system/getuid</ref>, <ref to='system/setgid'>system/setgid</ref>, <ref to='system/getgid'>system/getgid</ref>, <ref to='system/geteuid'>system/geteuid</ref>, <ref to='system/setegid'>system/setegid</ref> and <ref to='system/getegid'>system/getegid</ref></p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='setgid' homogen-type='method'> <method name='setgid'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>setgid</tt> - set the group ID</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>void setgid(int <i>gid</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Sets the real group ID, effective group ID and saved group ID to 'gid'.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) Usersecurity</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='system/setuid'>system/setuid</ref>, <ref to='system/getuid'>system/getuid</ref>, <ref to='system/getgid'>system/getgid</ref>, <ref to='system/seteuid'>system/seteuid</ref>, <ref to='system/geteuid'>system/geteuid</ref>, <ref to='system/setegid'>system/setegid</ref> and <ref to='system/getegid'>system/getegid</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='setuid' homogen-type='method'> <method name='setuid'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>setuid</tt> - set the user ID</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>void setuid(int <i>uid</i>);<br/>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Sets the real user ID, effective user ID and saved user ID to 'uid'.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) Usersecurity</text>
6130721996-11-01Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='system/getuid'>system/getuid</ref>, <ref to='system/setgid'>system/setgid</ref>, <ref to='system/getgid'>system/getgid</ref>, <ref to='system/seteuid'>system/seteuid</ref>, <ref to='system/geteuid'>system/geteuid</ref>, <ref to='system/setegid'>system/setegid</ref> and <ref to='system/getegid'>system/getegid</ref></p>
6130721996-11-01Fredrik Hübinette (Hubbe) </text></group>
6be0031996-11-03Mirar (Pontus Hagland) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='sin' homogen-type='method'> <method name='sin'/><doc placeholder='true'>
6be0031996-11-03Mirar (Pontus Hagland) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>sin</tt> - Trigonometrical sine</p>
6be0031996-11-03Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>float sin(float <i>f</i>);<br/>
6559661996-11-06Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Return the sinus value for f.</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) float</text>
6559661996-11-06Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::asin' to='predef::asin'>math/asin</ref> and <ref resolved='predef::cos' to='predef::cos'>math/cos</ref></p>
6559661996-11-06Fredrik Hübinette (Hubbe) </text></group>
6130721996-11-01Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='sprintf' homogen-type='method'> <method name='sprintf'/><doc placeholder='true'>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>sprintf</tt> - print the result from sprintf</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>string sprintf(string <i>format</i>,mixed <i>arg</i>,....);<br/> </p> </tt> <p>The format string is a string containing a description of how to output the data in the rest of the arguments. This string should generally speaking have one %&lt;modifiers&gt;&lt;operator&gt; (examples: %s, %0d, %-=20s) for each of the rest arguments. </p> <p>Modifiers: </p> <p><matrix> <r><c> 0 </c><c> Zero pad numbers (implies right justification) </c></r> <r><c> ! </c><c> Toggle truncation </c></r> <r><c> ' ' (space) </c><c> pad positive integers with a space </c></r> <r><c> + </c><c> pad positive integers with a plus sign </c></r> <r><c> - </c><c> left adjusted within field size (default is right) </c></r> <r><c> | </c><c> centered within field size </c></r> <r><c> = </c><c> column mode if strings are greater than field size </c></r> <r><c> / </c><c> Rough linebreak (break at exactly fieldsize instead of between words) </c></r> <r><c> # </c><c> table mode, print a list of '\n' separated word (top-to-bottom order) </c></r> <r><c> $ </c><c> Inverse table mode (left-to-right order) </c></r> <r><c> n </c><c> (where n is a number or *) a number specifies field size </c></r> <r><c> .n </c><c> set precision </c></r> <r><c> :n </c><c> set field size &amp; precision </c></r> <r><c> ;n </c><c> Set column width </c></r> <r><c> * </c><c> if n is a * then next argument is used for precision/field size </c></r> <r><c> 'X' </c><c> Set a pad string. ' cannot be a part of the pad_string (yet) </c></r> <r><c> ~ </c><c> Get pad string from argument list. </c></r> <r><c> &lt; </c><c> Use same arg again </c></r> <r><c> ^ </c><c> repeat this on every line produced </c></r> <r><c> @ </c><c> do this format for each entry in argument array </c></r> <r><c> &gt; </c><c> Put the string at the bottom end of column instead of top </c></r> <r><c> _ </c><c> Set width to the length of data </c></r> </matrix>
6130721996-11-01Fredrik Hübinette (Hubbe)  </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Operators:
6130721996-11-01Fredrik Hübinette (Hubbe) </p> <p><matrix>
431c431998-12-31Fredrik Hübinette (Hubbe) <r><c> %% </c><c> percent </c></r> <r><c> %d </c><c> signed decimal int </c></r> <r><c> %u </c><c> unsigned decimal int (doesn't really exist in Pike) </c></r> <r><c> %o </c><c> unsigned octal int </c></r> <r><c> %x </c><c> lowercase unsigned hexadecimal int </c></r> <r><c> %X </c><c> uppercase unsigned hexadecimal int </c></r> <r><c> %c </c><c> char (or short with %2c, %3c gives 3 bytes etc.) </c></r> <r><c> %f </c><c> float </c></r> <r><c> %g </c><c> heruistically chosen representation of float </c></r> <r><c> %e </c><c> exponential notation float </c></r> <r><c> %s </c><c> string </c></r> <r><c> %O </c><c> any type (debug style) </c></r> <r><c> %n </c><c> nop </c></r> <r><c> %t </c><c> type of argument </c></r> <r><c> %&lt;modifiers&gt;{format%} </c><c> do a format for every index in an array. </c></r>
6130721996-11-01Fredrik Hübinette (Hubbe) </matrix> </p> </text>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><example/><text> <tt><p>Pike v0.1 Running Hilfe v1.2 (Incremental Pike Frontend)<br/> &gt; int screen_width=70;<br/> Result: 70<br/> &gt; mixed sample;<br/> &gt; write(sprintf("fish: %c\n", 65));<br/> fish: A<br/> Result: 0<br/> &gt; write(sprintf("Hello green friends\n"));<br/> Hello green friends<br/> Result: 0<br/> &gt; write(sprintf("num: %d\n", 10));<br/> num: 10<br/> Result: 0<br/> &gt; write(sprintf("num: %+10d\n", 10));<br/> num: +10<br/> Result: 0<br/> &gt; write(sprintf("num: %010d\n", 5*2));<br/> num: 0000000010<br/> Result: 0<br/> &gt; write(sprintf("num: %|10d\n", 20/2));<br/> num: 10 <br/> Result: 0<br/> &gt; write(sprintf("%|*s\n",screen_width,"THE NOT END"));<br/> <dl><group><text>THE NOT END <br/> </text></group></dl>Result: 0<br/> &gt; write(sprintf("%|=*s\n",screen_width, "fun with penguins\n"));<br/> <dl><group><text>fun with penguins <br/> </text></group></dl>Result: 0<br/> &gt; write(sprintf("%-=*O\n",screen_width,({ "fish", 9, "gumbies", 2 })));<br/> ({ /* 4 elements */ <br/> <dl><group><text>"fish", <br/> 9, <br/> "gumbies", <br/> 2 <br/> </text></group></dl>}) <br/> Result: 0<br/> &gt; write(sprintf("%-=*s\n", screen_width,<br/> <dl><group><text>"This will wordwrap the specified string within the "+<br/> "specified field size, this is useful say, if you let "+<br/> "users specify their screen size, then the room "+<br/> "descriptions will automagically word-wrap as appropriate.\n"+<br/> "slosh-n's will of course force a new-line when needed.\n"));<br/> </text></group></dl>This will wordwrap the specified string within the specified field <br/> size, this is useful say, if you let users specify their screen size, <br/> then the room descriptions will automagically word-wrap as <br/> appropriate. <br/> slosh-n's will of course force a new-line when needed. <br/> Result: 0<br/> &gt; write(sprintf("%-=*s %-=*s\n", screen_width/2,<br/> <dl><group><text>"Two columns next to each other (any number of columns will "+<br/> "of course work) independantly word-wrapped, can be useful.",<br/> screen_width/2-1,<br/> "The - is to specify justification, this is in addherence "+<br/> "to std sprintf which defaults to right-justification, "+<br/> "this version also supports centre and right justification."));<br/> </text></group></dl>Two columns next to each other (any The - is to specify justification,<br/> number of columns will of course this is in addherence to std <br/> work) independantly word-wrapped, sprintf which defaults to <br/> can be useful. right-justification, this version <br/> <dl><group><text>also supports centre and right <br/> justification. <br/> </text></group></dl>Result: 0<br/> &gt; write(sprintf("%-$*s\n", screen_width,<br/> <dl><group><text>"Given a\nlist of\nslosh-n\nseparated\n'words',\nthis option\n"+<br/> "creates a\ntable out\nof them\nthe number of\ncolumns\n"+<br/> "be forced\nby specifying a\npresision.\nThe most obvious\n"+<br/> "use is for\nformatted\nls output."));<br/> </text></group></dl>Given a list of slosh-n <br/> separated 'words', this option <br/> creates a table out of them <br/> the number of columns be forced <br/> by specifying a presision. The most obvious <br/> use is for formatted ls output. <br/> Result: 0<br/> &gt; write(sprintf("%-#*s\n", screen_width,<br/> <dl><group><text>"Given a\nlist of\nslosh-n\nseparated\n'words',\nthis option\n"+<br/> "creates a\ntable out\nof them\nthe number of\ncolumns\n"+<br/> "be forced\nby specifying a\npresision.\nThe most obvious\n"+<br/> "use is for\nformatted\nls output."));<br/> </text></group></dl>Given a creates a by specifying a <br/> list of table out presision. <br/> slosh-n of them The most obvious <br/> separated the number of use is for <br/> 'words', columns formatted <br/> this option be forced ls output. <br/> Result: 0<br/> &gt; sample = ({ "first column: bing", "second column: womble" });<br/> Result: ({ /* 2 elements */<br/> <dl><group><text>"first column: bing",<br/> "second column: womble"<br/> </text></group></dl>})<br/> &gt; write(sprintf("%-=*s\n%-=@*s\n", screen_width,<br/> <dl><group><text>"Another bizarre option is the @ operator, it applies the "+<br/> "format string it is in to each element of the array:",<br/> screen_width/sizeof(sample),<br/> sample));<br/> </text></group></dl>Another bizarre option is the @ operator, it applies the format string<br/> it is in to each element of the array: <br/> first column: bing second column: womble <br/> Result: 0<br/> &gt; write(sprintf("Better use these instead: %{gurksallad: %s\n%}\n",<br/> <dl><group><text>sample));<br/> </text></group></dl>Better use these instead: gurksallad: first column: bing<br/> gurksallad: second column: womble<br/> <br/> Result: 0<br/> &gt; write(sprintf("Of course all the simple printf options "+<br/> <dl><group><text>"are supported:\n %s: %d %x %o %c\n",<br/> "65 as decimal, hex, octal and a char",<br/> 65, 65, 65, 65));<br/> </text></group></dl>Of course all the simple printf options are supported:<br/> <dl><group><text>65 as decimal, hex, octal and a char: 65 41 101 A<br/> </text></group></dl>Result: 0<br/> &gt; write(sprintf("%|*s\n",screen_width, "THE END"));<br/> <dl><group><text>THE END <br/> </text></group></dl>Result: 0<br/> &gt; quit<br/> Exiting.<br/>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) string</text></group>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><seealso/><text> <p><ref to='sscanf'>sscanf</ref></p> </text></group>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
6559661996-11-06Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='sqrt' homogen-type='method'> <method name='sqrt'/><doc placeholder='true'>
6559661996-11-06Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>sqrt</tt> - Square root</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>float sqrt(float <i>f</i>);<br/> or<br/> int sqrt(int <i>i</i>);<br/>
6559661996-11-06Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Return the square root of f, or in the second case, the square root truncated to the closest lower integer.</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) float and int</text>
6559661996-11-06Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::pow' to='predef::pow'>math/pow</ref>, <ref resolved='predef::log' to='predef::log'>math/log</ref>, <ref resolved='predef::exp' to='predef::exp'>math/exp</ref> and <ref resolved='predef::floor' to='predef::floor'>math/floor</ref></p>
6559661996-11-06Fredrik Hübinette (Hubbe) </text></group>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='strerror' homogen-type='method'> <method name='strerror'/><doc placeholder='true'>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>strerror</tt> - return a string describing an error</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>string strerror(int <i>errno</i>);<br/>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function returns a description of an error code. The error code is usually obtained from the file-&gt;errno() call.</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) file</text>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>This function may not be available on all platforms. </p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </text></group>
6559661996-11-06Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='symlink' homogen-type='method'> <method name='symlink'/><doc placeholder='true'>
6559661996-11-06Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>symlink</tt> - create a symbolic link</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>void symlink(string <i>from</i>, string <i>to</i>);<br/>
6559661996-11-06Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Creates a symbolic link named 'to' pointing to 'from'.</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) file</text>
6559661996-11-06Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='system/hardlink'>system/hardlink</ref>, <ref to='system/readlink'>system/readlink</ref>, <ref resolved='predef::mv' to='predef::mv'>files/mv</ref> and <ref resolved='predef::rm' to='predef::rm'>files/rm</ref></p>
6559661996-11-06Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='tan' homogen-type='method'> <method name='tan'/><doc placeholder='true'>
6559661996-11-06Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>tan</tt> - Trigonometrical tangent</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>float tan(float <i>f</i>);<br/>
6559661996-11-06Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Return the tangent value for f.</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) float</text>
6559661996-11-06Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::atan' to='predef::atan'>math/atan</ref>, <ref resolved='predef::sin' to='predef::sin'>math/sin</ref> and <ref resolved='predef::cos' to='predef::cos'>math/cos</ref></p>
6559661996-11-06Fredrik Hübinette (Hubbe) </text></group>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='uname' homogen-type='method'> <method name='uname'/><doc placeholder='true'>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>uname</tt> - get operating system information</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>mapping(string:string) <i>uname</i>();<br/>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Returns a mapping describing the operating system.
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The mapping contains the following fields:
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><matrix> <r><c> </c><c> "sysname": </c><c> Operating system name </c></r> <r><c> </c><c> "nodename": "release": "version": "machine": </c><c> Host name Release of this OS Version number of this OS Machine architecture </c></r> </matrix>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </text>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>This function only exists on systems that have the uname(2) system call. </p> <p/>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='werror' homogen-type='method'> <method name='werror'/><doc placeholder='true'>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>werror</tt> - write to stderr</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>void werror(string <i>s</i>);<br/>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Writes a message to stderr. Stderr is normally the console, even if the process output has been redirected to a file or pipe.</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) file</text>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
6559661996-11-06Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <module name='Calendar'> <doc>
6559661996-11-06Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p> This module implements calendar calculations, and base classes for time units.</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>example program: <pre> void write_month(object m) { object w; object today; today=function_object(object_program(m))-&gt;Day(); write(sprintf(" %|28s\n", Simulate.capitalize(m-&gt;name()+" ") +m-&gt;year()-&gt;name())); w=m-&gt;day(1)-&gt;week(); write(" "); foreach (Array.map(w-&gt;days(),w-&gt;day)-&gt;week_day_name(),string n) write(sprintf("%3s ",n[0..2])); write("\n"); do { array a; object d; a=Array.map(Array.map(w-&gt;days(),w-&gt;day), lambda(object d,object m) { if (d-&gt;month()!=m) return 0; else return d; },m); write(sprintf("%3s ",w-&gt;name())); foreach (a,d) if (d) if (d!=today) write(sprintf(" %2d ",d-&gt;month_day())); else write(sprintf("&gt;%2d&lt;&amp;#34;,d-&amp;amp;gt;month_day())); else write(&amp;#34; &amp;#34;); write(&amp;#34;\n&amp;#34;); w++; } while (w-&amp;amp;gt;day(0)-&amp;amp;gt;month()==m); } &lt;/pre&gt; call with, for example, &lt;tt&gt;write_month(Calendar.Swedish.Month());&lt;/tt&gt;. &lt;/pre&gt;&lt;/p&gt;</pre></p> </text>
6559661996-11-06Fredrik Hübinette (Hubbe)  </doc>
46999f1999-02-13Fredrik Noring <docgroup homogen-name='datetime' homogen-type='method'> <method name='datetime'> <returntype><mixed/></returntype> <arguments><argument name='unix_time'><type> <or><int/><void/></or></type></argument> </arguments> </method><doc> <text> <p>Replacement for localtime. </p> </text> </doc> </docgroup> <docgroup homogen-name='datetime_name' homogen-type='method'> <method name='datetime_name'> <returntype><mixed/></returntype> <arguments><argument name='unix_time'><type> <or><int/><void/></or></type></argument> </arguments> </method><doc> <text> <p>Replacement for ctime. </p> </text> </doc> </docgroup> <docgroup homogen-name='datetime_short_name' homogen-type='method'> <method name='datetime_short_name'> <returntype><mixed/></returntype> <arguments><argument name='unix_time'><type> <or><int/><void/></or></type></argument> </arguments> </method><doc> <text> <p>Replacement for ctime. </p> </text> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <module name='Gregorian'> <doc>
6559661996-11-06Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>time units: <ref resolved='predef::Calendar.Gregorian.Year'>Year</ref>, <ref>Month</ref>, <ref>Week</ref>, <ref>Day</ref>
6559661996-11-06Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </text>
6559661996-11-06Fredrik Hübinette (Hubbe) 
6130721996-11-01Fredrik Hübinette (Hubbe) </doc>
431c431998-12-31Fredrik Hübinette (Hubbe)  <class name='Year'> <doc>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>A <ref resolved='predef::Calendar.time_unit'>Calendar.time_unit</ref>.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Lesser units: <ref>Month</ref>, <ref>Week</ref>, <ref>Day</ref> Greater units: none</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p/> </text> </doc> <docgroup homogen-name='parse' homogen-type='method'> <method name='parse'> <returntype> <object>object </object></returntype> <arguments><argument name='fmt'><type><string/></type></argument> <argument name='arg'><type><string/></type></argument>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><doc> <text> <p>parse a date, create relevant object fmt is in the format "abc%xdef..." where abc and def is matched, and %x is one of those time units: %Y absolute year %y year (70-99 is 1970-1999, 0-69 is 2000-2069) %M month (number, name or short name) (needs %y) %W week (needs %y) %D date (needs %y, %m) %a day (needs %y) %e weekday (needs %y, %w) %h hour (needs %d, %D or %W) %m minute (needs %h) %s second (needs %s)</p> </text>
6130721996-11-01Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) </class> </module> <module name='Stardate'> <doc>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>time unit: TNGDate</p> </text>
6130721996-11-01Fredrik Hübinette (Hubbe) 
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </doc>
431c431998-12-31Fredrik Hübinette (Hubbe) <class name='TNGDate'> <doc>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>implements ST:TNG stardates can be used as create argument to Day</p> </text>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) </doc> </class> </module> <class name='time_unit'> <docgroup homogen-type='method'> <method name='next'> <returntype> <object>object </object></returntype> <arguments> </arguments> </method><method name='prev'> <returntype> <object>object </object></returntype> <arguments> </arguments> </method><method name='`+'> <returntype> <object>object </object></returntype> <arguments><argument name='n'><type><int/></type></argument>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='`-'> <returntype> <object>object </object></returntype> <arguments><argument name='n'><type><int/></type></argument>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='`-'> <returntype> <object>object </object></returntype> <arguments><argument name='x'><type><object resolved='predef::Calendar.time_unit.next'/></type></argument>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><doc> <text> <p>next and prev gives the logical next and previous object. The <tt>+</tt> operator gives that logical relative object, ie <tt>my_day+14</tt> gives 14 days ahead. <tt>-</tt> works the same way, but can also take an object
46999f1999-02-13Fredrik Noring of the same type and give the difference as an integer. </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </text>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
6130721996-11-01Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='greater' homogen-type='method'> <method name='greater'> <returntype> <array><valuetype><string/></valuetype></array></returntype> <arguments> </arguments> </method><doc>
6130721996-11-01Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Gives a list of methods to get greater (longer) time units from this object. For a month, this gives back <tt>({"year"})</tt>, thus the method <tt>month-&gt;year()</tt> gives the year object.
6130721996-11-01Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </text>
6559661996-11-06Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='lesser' homogen-type='method'> <method name='lesser'> <returntype> <array><valuetype><string/></valuetype></array></returntype> <arguments> </arguments> </method><doc>
6559661996-11-06Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Gives a list of methods to get lesser (shorter) time units. ie, for a month, this gives back <tt>({"day"})</tt> and the method <tt>day(mixed n)</tt> gives back that day object. The method <tt>days()</tt> gives back a list of possible argument values to the method <tt>day</tt>. Concurrently, <tt>Array.map(o-&gt;days(),o-&gt;day)</tt> gives a list of day objects in the object <tt>o</tt>.</p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p> Ie:<pre> array(string) lesser() - gives back a list of possible xxx's. object xxxs() - gives back a list of possible n's. object xxx(mixed n) - gives back xxx n object xxx(object(Xxx) o) - gives back the corresponing xxx </pre></p>
6559661996-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The list of n's (as returned from xxxs) are always in order.</p>
6130721996-11-01Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>There are two n's with special meaning, 0 and -1. 0 always gives the first xxx, equal to my_obj-&gt;xxx(my_obj-&gt;xxxs()[0]), and -1 gives the last, equal to my_obj-&gt;xxx(my_obj-&gt;xxxs()[-1]).</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>To get all xxxs in the object, do something like <tt>Array.map(my_obj-&gt;xxxs(),my_obj-&gt;xxx)</tt>.</p>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>xxx(object) may return zero, if there was no correspondning xxx.
c3eeb11996-12-15Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </text>
c3eeb11996-12-15Fredrik Hübinette (Hubbe) 
6130721996-11-01Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) </class> </module> <module name='Gdbm'> <class name='gdbm'>
a44f221996-02-24Fredrik Hübinette (Hubbe) <doc placeholder='true'> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>Gdbm.gdbm</tt> - database interface</p> <p>This is the an interface to the gdbm library. This module might or might not be available in your Pike depending on weather gdbm was available when Pike was compiled. </p> <p>A gdbm database has essentially the same functionality as a mapping, except the syntax is different, and it is located on disk, not in memory. Each gdbm database is one file which contains a set of key-value pairs. Both keys and values are strings and all keys are unique. </p> <p/> </text>
a44f221996-02-24Fredrik Hübinette (Hubbe)  </doc>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='close' homogen-type='method'> <method name='close'> </method>
a44f221996-02-24Fredrik Hübinette (Hubbe) <doc placeholder='true'> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>close</tt> - close database</p>
a44f221996-02-24Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>void gdbm-&gt;close();<br/>
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </tt> <p>This closes the database.
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p/>
a44f221996-02-24Fredrik Hübinette (Hubbe) </text> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='create' homogen-type='method'> <method name='create'> </method>
a44f221996-02-24Fredrik Hübinette (Hubbe) <doc placeholder='true'> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>create</tt> - open database</p>
a44f221996-02-24Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int gdbm-&gt;create();<br/> or<br/> int gdbm-&gt;create(string <i>file</i>);<br/> or<br/> int gdbm-&gt;create(string <i>file</i>, string <i>mode</i>);<br/>
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </tt> <p>Without arguments, this function does nothing. With one argument it opens the given file as a gdbm database, if this fails for some reason, an error will be generated. If a second argument is present, it specifies how to open the database using one or more of the follow flags in a string:
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><matrix> <r><c> r </c><c> open database for reading </c></r> <r><c> w </c><c> open database for writing </c></r> <r><c> c </c><c> create database if it does not exist </c></r> <r><c> t </c><c> overwrite existing database </c></r> <r><c> f </c><c> fast mode </c></r> </matrix>
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The fast mode prevents the database from syncronizing each change in the database immediately. This is dangerous because the database can be left in an unusable state if Pike is terminated abnormally.
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The default mode is "rwc".</p>
a44f221996-02-24Fredrik Hübinette (Hubbe) </text>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>The gdbm manual states that it is important that the database is closed properly. Unfortunately this will not be the case if Pike calls exit() or returns from main(). You should therefore make sure you call close or destruct your gdbm objects when exiting your program. This will probably be done automatically in the future.
563f981996-08-15Fredrik Hübinette (Hubbe) </p> <p/> </text></group>
a44f221996-02-24Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='delete' homogen-type='method'> <method name='delete'> </method>
a44f221996-02-24Fredrik Hübinette (Hubbe) <doc placeholder='true'> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>delete</tt> - delete a value from the database</p>
a44f221996-02-24Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int gdbm-&gt;delete(string <i>key</i>);<br/>
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </tt> <p>Remove a key from the database. Note that no error will be generated if the key does not exist.
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p/>
a44f221996-02-24Fredrik Hübinette (Hubbe) </text>
431c431998-12-31Fredrik Hübinette (Hubbe) </doc> </docgroup> <docgroup homogen-name='fetch' homogen-type='method'> <method name='fetch'> </method> <doc placeholder='true'> <text> <p><tt>fetch</tt> - fetch a value from the databse</p>
a44f221996-02-24Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>string gdbm-&gt;fetch(string <i>key</i>);<br/>
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </tt> <p>Return the data associated with the key 'key' in the database. If there was no such key in the database, zero is returned.
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p/> </text>
a44f221996-02-24Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='firstkey' homogen-type='method'> <method name='firstkey'> </method>
a44f221996-02-24Fredrik Hübinette (Hubbe) <doc placeholder='true'> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>firstkey</tt> - get first key in database</p>
a44f221996-02-24Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>string gdbm-&gt;firstkey();<br/>
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </tt> <p>Return the first key in the database, this can be any key in the database. </p> <p/> </text>
a44f221996-02-24Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='nextkey' homogen-type='method'> <method name='nextkey'> </method>
a44f221996-02-24Fredrik Hübinette (Hubbe) <doc placeholder='true'> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>nextkey</tt> - get next key in database</p>
a44f221996-02-24Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>string gdbm-&gt;nextkey(string <i>key</i>);<br/> </p> </tt> <p>This returns the key in database that follows the key 'key' key. This is of course used to iterate over all keys in the database.</p>
a44f221996-02-24Fredrik Hübinette (Hubbe) </text> <group><example/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>/* Write the contents of the database */<br/> for(key=gdbm-&gt;firstkey(); k; k=gdbm-&gt;nextkey(k))<br/> <dl><group><text>write(k+":"+gdbm-&gt;fetch(k)+"\n");<br/> </text></group></dl> </p> <p><br/>
a44f221996-02-24Fredrik Hübinette (Hubbe) </p> </tt></text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='reorganize' homogen-type='method'> <method name='reorganize'> </method>
a44f221996-02-24Fredrik Hübinette (Hubbe) <doc placeholder='true'> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>reorganize</tt> - reorganize database</p>
a44f221996-02-24Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int gdbm-&gt;reorganize();<br/>
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </tt> <p>Deletions and insertions into the database can cause fragmentation which will make the database bigger. This routine reorganizes the contents to get rid of fragmentation. Note however that this function can take a LOT of time to run.
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p/> </text>
a44f221996-02-24Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='store' homogen-type='method'> <method name='store'> </method>
a44f221996-02-24Fredrik Hübinette (Hubbe) <doc placeholder='true'> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>store</tt> - store a value in the database</p>
a44f221996-02-24Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int gdbm-&gt;store(string <i>key</i>, string <i>data</i>);<br/>
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </tt> <p>Associate the contents of 'data' with the key 'key'. If the key 'key' already exists in the database the data for that key will be replaced. If it does not exist it will be added. An error will be generated if the database was not open for writing. </p> <p/>
a44f221996-02-24Fredrik Hübinette (Hubbe) </text> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='sync' homogen-type='method'> <method name='sync'> </method>
a44f221996-02-24Fredrik Hübinette (Hubbe) <doc placeholder='true'> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>sync</tt> - synchronize database</p>
a44f221996-02-24Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>void gdbm-&gt;sync();<br/>
a44f221996-02-24Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </tt> <p>When opening the database with the 'f' flag writings to the database can be cached in memory for a long time. Calling sync will write all such caches to disk and not return until everything is stored on the disk. </p> <p/> </text>
a44f221996-02-24Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) </class> </module> <module name='Gmp'> <class name='mpz'> <doc placeholder='true'>
94e6f41996-05-02Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>Gmp.mpz</tt> - bignum program</p>
94e6f41996-05-02Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Gmp.mpz is a builtin program written in C. It implements large, very large integers. In fact, the only limitation on these integers is the available memory.
94e6f41996-05-02Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The mpz object implements all the normal integer operations. (except xor) There are also some extra operators:</p> </text>
94e6f41996-05-02Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>This module is only available if libgmp.a was available and found when Pike was compiled. </p> <p/>
94e6f41996-05-02Fredrik Hübinette (Hubbe) </text></group> </doc>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='cast' homogen-type='method'> <method name='cast'> </method> <doc placeholder='true'>
a1c5881995-08-09Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>cast</tt> - cast to other type</p>
d8215a1996-09-22Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>object mpz-&gt;gcd( "string" | "int" | "<i>float</i>" );<br/> or<br/> (string) mpz<br/> or<br/> (int) mpz<br/> or<br/> (float) mpz<br/>
a1c5881995-08-09Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function converts an mpz to a string, int or float. This is nessesary when you want to view, store or use the result of an mpz calculation.</p> </text>
3b8e841996-02-10Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><seealso/><text> <p><ref resolved='predef::Gmp.mpz.cast' to='cast'>cast</ref></p> </text></group>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
b06f481997-09-01Per Hedbor </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='create' homogen-type='method'> <method name='create'> </method> <doc placeholder='true'>
b06f481997-09-01Per Hedbor <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>create</tt> - initialize a bignum</p>
b06f481997-09-01Per Hedbor 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>object Mpz();<br/> or<br/> object Mpz(int|object|float <i>i</i>);<br/> or<br/> object Mpz(string <i>digits</i>, int <i>base</i>);<br/> <br/>
b06f481997-09-01Per Hedbor </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>When cloning an mpz it is by default initalized to zero. However, you can give a second argument to clone to initialize the new object to that value. The argument can be an int, float another mpz object, or a string containing an ascii number. You can also give the number in the string in another base by specifying the base as a second argument. Valid bases are 2-36 and 256.</p>
b06f481997-09-01Per Hedbor </text> <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='Builtin.clone'>Builtin.clone</ref></p>
b06f481997-09-01Per Hedbor </text></group>
3801711996-12-05Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='digits' homogen-type='method'> <method name='digits'> </method> <doc placeholder='true'>
3801711996-12-05Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>digits</tt> - convert mpz to a string</p>
3801711996-12-05Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>string mpz-&gt;digits();<br/> or<br/> string mpz-&gt;digits(int <i>base</i>);<br/>
3801711996-12-05Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function converts an mpz to a string. If a base is given the number will be represented in that base. Valid bases are 2-36 and 256. The default base is 10.</p>
3801711996-12-05Fredrik Hübinette (Hubbe) </text> <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::Gmp.mpz.cast' to='mpz-&gt;cast'>&gt;mpz-&gt;cast</ref></p>
3801711996-12-05Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='gcd' homogen-type='method'> <method name='gcd'> </method> <doc placeholder='true'>
3801711996-12-05Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>gcd</tt> - greatest common divisor</p>
3801711996-12-05Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>object mpz-&gt;gcd(object|int|float|string arg)<br/>
3801711996-12-05Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function returns the greatest common divisor for arg and mpz. </p> <p/>
3801711996-12-05Fredrik Hübinette (Hubbe) </text> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='powm' homogen-type='method'> <method name='powm'> </method> <doc placeholder='true'>
3801711996-12-05Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>powm</tt> - raise and modulo</p>
3801711996-12-05Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>object mpz-&gt;powm(int|string|float|object <i>a</i>,int|string|float|object <i>b</i>);<br/>
3801711996-12-05Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function returns ( mpz ** a ) % b </p> <p/>
3801711996-12-05Fredrik Hübinette (Hubbe) </text>
ab5bd41996-06-21Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='probably_prime_p' homogen-type='method'> <method name='probably_prime_p'> </method> <doc placeholder='true'>
ab5bd41996-06-21Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>probably_prime_p</tt> - is this number a prime?</p>
ab5bd41996-06-21Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>int mpz-&gt;probably_prime_p();<br/>
a1c5881995-08-09Fredrik Hübinette (Hubbe) </p>
ab5bd41996-06-21Fredrik Hübinette (Hubbe) </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function returns 1 if mpz is a prime, and 0 most of the time if it is not. </p> <p/> </text>
ab5bd41996-06-21Fredrik Hübinette (Hubbe) 
516e681996-02-26Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='size' homogen-type='method'> <method name='size'> </method> <doc placeholder='true'>
516e681996-02-26Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>size</tt> - how long is a number</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>string mpz-&gt;size();<br/>
516e681996-02-26Fredrik Hübinette (Hubbe) or<br/>
431c431998-12-31Fredrik Hübinette (Hubbe) string mpz-&gt;size(int <i>base</i>);<br/>
516e681996-02-26Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function returns how long the mpz would be represented in the specified base. The default base is 2.</p> </text>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <group><seealso/><text> <p><ref resolved='predef::Gmp.mpz.digits' to='mpz-&gt;digits'>&gt;mpz-&gt;digits</ref></p> </text></group>
516e681996-02-26Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='sqrt' homogen-type='method'> <method name='sqrt'> </method> <doc placeholder='true'>
516e681996-02-26Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>sqrt</tt> - square root</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>object mpz-&gt;sqrt();<br/>
516e681996-02-26Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function return the the truncated integer part of the square root of the value of mpz. </p> <p/> </text>
516e681996-02-26Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) </class> </module> <class name='Gz_deflate'> <doc placeholder='true'>
516e681996-02-26Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>Gz_deflate</tt> - gzip packer</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Gz_inflate is a builtin program written in C. It interfaces the packing routines in the libz library.</p>
516e681996-02-26Fredrik Hübinette (Hubbe) </text>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>This program is only available if libz was available and found when Pike was compiled.</p> </text></group>
516e681996-02-26Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='gz_inflate'>gz_inflate</ref></p>
516e681996-02-26Fredrik Hübinette (Hubbe) </text></group> </doc>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='create' homogen-type='method'> <method name='create'> </method> <doc placeholder='true'>
516e681996-02-26Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>create</tt> - initialize gzip packer</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>void create(int X)<br/>
516e681996-02-26Fredrik Hübinette (Hubbe) or<br/>
431c431998-12-31Fredrik Hübinette (Hubbe) object(Gz_deflate) Gz_deflate(int X)<br/>
516e681996-02-26Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This functionion is called when a new Gz_deflate is created. If given, X should be a number from 0 to 9 indicating the packing / cpu ratio. Zero means no packing, 2-3 is considered 'fast', 6 is default and higher is considered 'slow' but gives better packing.
516e681996-02-26Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function can also be used to re-initialize a gz_deflate object so it can be re-used.
516e681996-02-26Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p/> </text>
516e681996-02-26Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='deflate' homogen-type='method'> <method name='deflate'> </method> <doc placeholder='true'>
516e681996-02-26Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>deflate</tt> - pack data</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>string deflate(string <i>data</i>, int <i>flush</i>);<br/>
516e681996-02-26Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function preforms gzip style compression on a string and returns the packed data. Streaming can be done by calling this functon several time and concatenating the returned data. The optional 'flush' argument should be one f the following: </p> <p><matrix> <r><c> Gz_deflate-&gt;NO_FLUSH </c><c> Only data that doesn't fit in the </c></r> <r><c> </c></r> </matrix> <dl><group><text><matrix> <r><c> </c><c> internal buffers is returned. </c></r> <r><c> </c></r> </matrix> </text></group></dl><matrix> <r><c> Gz_deflate-&gt;PARTIAL_FLUSH </c><c> All input is packed and returned. </c></r> <r><c> Gz_deflate-&gt;SYNC_FLUSH </c><c> All input is packed and returned. </c></r> </matrix> <dl><group><text><matrix> <r><c> </c><c> Packing is syncronized. </c></r> <r><c> </c></r> </matrix> </text></group></dl><matrix> <r><c> Gz_deflate-&gt;FINISH </c><c> All input is packed and an 'end of </c></r> <r><c> </c><c> </c><c> </c><c> </c><c> data' marker is appended. </c></r>
516e681996-02-26Fredrik Hübinette (Hubbe) </matrix>
431c431998-12-31Fredrik Hübinette (Hubbe) 
516e681996-02-26Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Using flushing will degrade packing. Normally NO_FLUSH should be used until the end of the data when FINISH should be used. For interactive data PARTIAL_FLUSH should be used.</p> </text>
516e681996-02-26Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='gz_inflate-&gt;inflate'>&gt;gz_inflate-&gt;inflate</ref></p>
516e681996-02-26Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) </class> <class name='Gz_inflate'> <doc placeholder='true'>
516e681996-02-26Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>Gz_inflate</tt> - gzip unpacker</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Gz_inflate is a builtin program written in C. It interfaces the packing routines in the libz library.</p>
516e681996-02-26Fredrik Hübinette (Hubbe) </text>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>This program is only available if libz was available and found when Pike was compiled.</p> </text></group>
516e681996-02-26Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='gz_deflate'>gz_deflate</ref></p>
516e681996-02-26Fredrik Hübinette (Hubbe) </text></group> </doc>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='create' homogen-type='method'> <method name='create'> </method> <doc placeholder='true'>
516e681996-02-26Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>create</tt> - initialize gzip packer</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>void create()<br/>
516e681996-02-26Fredrik Hübinette (Hubbe) or<br/>
431c431998-12-31Fredrik Hübinette (Hubbe) object(Gz_inflate) Gz_inflate()<br/>
516e681996-02-26Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This functionion is called when a new Gz_inflate is created. It can also be called after the object has been used to re-initialize it.
516e681996-02-26Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p/> </text>
516e681996-02-26Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='inflate' homogen-type='method'> <method name='inflate'> </method> <doc placeholder='true'>
516e681996-02-26Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><tt>inflate</tt> - unpack data</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>string inflate(string <i>data</i>);<br/>
516e681996-02-26Fredrik Hübinette (Hubbe) </p> </tt>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function preforms gzip style decompression. It can inflate a whole file at once or in blocks.</p>
516e681996-02-26Fredrik Hübinette (Hubbe) </text> <group><example/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <tt><p>#include &lt;stdio.h&gt;<br/> // whole file<br/> write(Gz_inflate()-&gt;inflate(stdin-&gt;read(0x7fffffff));<br/>
516e681996-02-26Fredrik Hübinette (Hubbe)  </p>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>// streaming (blocks)<br/> function inflate=Gz_inflate()-&gt;inflate;<br/> while(string s=stdin-&gt;read(8192))<br/> <dl><group><text>write(inflate(s));<br/> </text></group></dl></p> </tt></text></group>
516e681996-02-26Fredrik Hübinette (Hubbe)  <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref to='gz_deflate-&gt;deflate'>&gt;gz_deflate-&gt;deflate</ref></p>
516e681996-02-26Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) </class> <module name='Image'>
5561351999-03-01Henrik Wallin <doc> <group><note/><text> <p>Experimental functions.</p> </text></group> </doc>
44aff01999-02-24Mirar (Pontus Hagland) <module name='ANY'> <doc> <text> <p> This method calls the other decoding methods and has some heuristics for what type of image this is.</p> <p>Methods:
ec774b1999-04-09Mirar (Pontus Hagland) <ref>decode</ref>, <ref>decode_alpha</ref>, <ref resolved='predef::Image.ANY._decode'>_decode</ref></p>
44aff01999-02-24Mirar (Pontus Hagland)  <p/> </text> <group><seealso/><text> <p><ref resolved='predef::Image'>Image</ref></p></text></group> </doc>
ec774b1999-04-09Mirar (Pontus Hagland) <docgroup homogen-name='_decode' homogen-type='method'> <method name='_decode'> <returntype> <object>mapping </object></returntype> <arguments><argument name='data'><type><string/></type></argument> </arguments> </method><doc> <text> <p>Tries heuristics to find the correct method of decoding the data, then calls that method.</p> <p>The result of _decode() is a mapping that contains <pre> "type":image data type (ie, "image/jpeg" or similar) "image":the image object, "alpha":the alpha channel or 0 if N/A </pre> </p> </text> <group><note/><text> <p>Throws upon failure.</p> </text></group> </doc> </docgroup>
44aff01999-02-24Mirar (Pontus Hagland) </module>
120ee61999-03-22Mirar (Pontus Hagland) <module name='BMP'> <doc> <text> <p> This submodule keeps the BMP (Windows Bitmap) encode/decode capabilities of the <ref resolved='predef::Image'>Image</ref> module.</p> <p>BMP is common in the Windows environment.</p> <p>Simple encoding:<br/> <ref resolved='predef::Image.BMP.encode'>encode</ref></p> <p>Advanced encoding:<br/> <ref>encode_P1</ref>, <br/> <ref>encode_P2</ref>, <br/> <ref>encode_P3</ref>, <br/> <ref>encode_P4</ref>, <br/> <ref>encode_P5</ref>, <br/> <ref>encode_P6</ref> </p> </text> <group><seealso/><text> <p><ref resolved='predef::Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref resolved='predef::Image.colortable'>Image.colortable</ref></p></text></group> </doc>
3885b91999-04-11Mirar (Pontus Hagland) <docgroup homogen-type='method'> <method name='_decode'> <returntype> <object>mapping </object></returntype> <arguments><argument name='data'><type><string/></type></argument> </arguments> </method><method name='decode_header'> <returntype> <object>mapping </object></returntype> <arguments><argument name='data'><type><string/></type></argument> </arguments> </method><method name='decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> </arguments> </method><doc> <text> <p>Decode a BMP. Not all modes are supported.</p> <p><ref resolved='predef::Image.BMP.decode'>decode</ref> gives an image object, <ref resolved='predef::Image.BMP._decode'>_decode</ref> gives a mapping in the format <pre> "type":"image/bmp", "image":image object, "colortable":colortable object (if applicable) "xsize":int, "ysize":int, "compression":int, "bpp":int, "windows":int, </pre></p> <p/> </text> <group><returns/><text> <p>the encoded image as a string</p> </text></group> <group><bugs/><text> <p>Doesn't support all BMP modes. At all.</p> </text></group> <group><seealso/><text> <p><ref resolved='predef::Image.BMP.encode'>encode</ref></p></text></group> </doc> </docgroup>
120ee61999-03-22Mirar (Pontus Hagland) <docgroup homogen-name='encode' homogen-type='method'> <method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.BMP.encode'/></type></argument> </arguments> </method><method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.BMP.encode'/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.BMP.encode'/></type></argument> </arguments> </method><doc> <text> <p>Make a BMP. It default to a 24 bpp BMP file, but if a colortable is given, it will be 8bpp with a palette entry. </p> </text> <group> <param name='image'/> <text><p>Source image.</p></text></group> <group> <param name='colortable'/> <text><p>Colortable object.</p> <p/></text></group> <group><returns/><text> <p>the encoded image as a string</p> </text></group> <group><bugs/><text> <p>Doesn't support all BMP modes. At all.</p> </text></group>
3885b91999-04-11Mirar (Pontus Hagland) <group><seealso/><text> <p><ref resolved='predef::Image.BMP.decode'>decode</ref></p></text></group>
120ee61999-03-22Mirar (Pontus Hagland)  </doc> </docgroup> </module>
431c431998-12-31Fredrik Hübinette (Hubbe) <module name='GIF'> <doc>
516e681996-02-26Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p> This submodule keep the GIF encode/decode capabilities of the <ref resolved='predef::Image'>Image</ref> module.</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>GIF is a common image storage format, usable for a limited color palette - a GIF image can only contain as most 256 colors - and animations.</p> <p>Simple encoding: <ref resolved='predef::Image.GIF.encode'>encode</ref>, <ref resolved='predef::Image.GIF.encode_trans'>encode_trans</ref></p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Advanced stuff: <ref resolved='predef::Image.GIF.render_block'>render_block</ref>, <ref resolved='predef::Image.GIF.header_block'>header_block</ref>, <ref resolved='predef::Image.GIF.end_block'>end_block</ref>, <ref resolved='predef::Image.GIF.netscape_loop_block'>netscape_loop_block</ref></p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Very advanced stuff: <ref resolved='predef::Image.GIF._render_block'>_render_block</ref>, <ref resolved='predef::Image.GIF._gce_block'>_gce_block</ref> </p> </text>
516e681996-02-26Fredrik Hübinette (Hubbe) <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref resolved='predef::Image.colortable'>Image.colortable</ref></p></text></group>
516e681996-02-26Fredrik Hübinette (Hubbe)  </doc>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='__decode' homogen-type='method'> <method name='__decode'> <returntype> <object>array </object></returntype> <arguments> </arguments> </method><doc>
516e681996-02-26Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Decodes a GIF image structure down to chunks and</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p><pre> ({int xsize,int ysize, // 0: size of image drawing area int numcol, // 2: suggested number of colors void|string colortable, // 3: opt. global colortable ({ int aspx, int aspy, // 4,0: aspect ratio or 0, 0 if not set int background }), // 1: index of background color </pre> followed by any number these blocks in any order: <pre> ({ GIF.EXTENSION, // 0: block identifier int extension, // 1: extension number string data }) // 2: extension data ({ GIF.RENDER, // 0: block identifier int x, int y, // 1: position of render int xsize, int ysize, // 3: size of render int interlace, // 5: interlace flag void|string colortbl, // 6: opt. local colortable int lzwsize, // 7: lzw code size string lzwdata }) // 8: packed lzw data </pre> and possibly ended with one of these: <pre> ({ GIF.ERROR_PREMATURE_EOD }) // premature end-of-data ({ GIF.ERROR_TOO_MUCH_DATA, // data following end marker string data }) // (rest of file) ({ GIF.ERROR_UNKNOWN_DATA, // unknown data string data }) // (rest of file) </pre>
516e681996-02-26Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </text> <group><returns/><text> <p>the above array</p> </text></group> <group><note/><text> <p>May throw errors if the GIF header is incomplete or illegal.</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This is in the very advanced sector of the GIF support; please read about how GIF files works.</p>
516e681996-02-26Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='_decode' homogen-type='method'> <method name='_decode'> <returntype> <object>array </object></returntype> <arguments><argument name='gifdata'><type><string/></type></argument>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='_decode'> <returntype> <object>array </object></returntype> <arguments><argument name='__decoded'><type><array/></type></argument>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><doc> <text> <p>Decodes a GIF image structure down to chunks, and also decode the images in the render chunks.</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p><pre> ({int xsize,int ysize, // 0: size of image drawing area void|object colortable, // 2: opt. global colortable ({ int aspx, int aspy, // 3 0: aspect ratio or 0, 0 if not set int background }), // 2: index of background color </pre> followed by any number these blocks in any order (gce chunks are decoded and incorporated in the render chunks): <pre> ({ GIF.RENDER, // 0: block identifier int x, int y, // 1: position of render object image, // 3: render image void|object alpha, // 4: 0 or render alpha channel object colortable, // 5: colortable (may be same as global) int interlace, // 6: interlace flag int trans_index, // 7: 0 or transparent color index int delay, // 8: 0 or delay in centiseconds int user_input, // 9: user input flag int disposal}) // 10: disposal method number (0..7) ({ GIF.EXTENSION, // 0: block identifier int extension, // 1: extension number string data }) // 2: extension data </pre> and possibly ended with one of these: <pre> ({ GIF.ERROR_PREMATURE_EOD }) // premature end-of-data ({ GIF.ERROR_TOO_MUCH_DATA, // data following end marker string data }) // (rest of file) ({ GIF.ERROR_UNKNOWN_DATA, // unknown data string data }) // (rest of file) </pre></p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The <ref resolved='predef::Image.GIF.decode'>decode</ref> method uses this data in a way similar to this program:</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p><pre> import Image; object my_decode_gif(string data) { array a=GIF._decode(data); object img=image(a[0],a[1]); foreach (a[4..],array b) if (b[0]==GIF.RENDER) if (b[4]) img-&gt;paste_alpha(b[3],b[4],b[1],b[2]); else img-&gt;paste(b[3],b[1],b[2]); return img; } </pre></p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p/> </text> <group> <param name='gifdata'/> <text><p>GIF data (with header and all)</p></text></group> <group> <param name='__decoded'/> <text><p>GIF data as from <ref resolved='predef::Image.GIF.__decode'>__decode</ref> </p></text></group> <group><returns/><text> <p>the above array</p> </text></group> <group><note/><text> <p>May throw errors if the GIF header is incomplete or illegal.</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This is in the very advanced sector of the GIF support; please read about how GIF files works.</p>
516e681996-02-26Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='_encode' homogen-type='method'> <method name='_encode'> <returntype> <object>string </object></returntype> <arguments><argument name='data'><type><array/></type></argument>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><doc> <text> <p>Encodes GIF data; reverses _decode.
516e681996-02-26Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </text> <group> <param name='data'/> <text><p>data as returned from _encode </p></text></group> <group><note/><text> <p>Some given values in the array are ignored. This function does not give the _exact_ data back!</p>
516e681996-02-26Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='_gce_block' homogen-type='method'> <method name='_gce_block'> <returntype> <object>string </object></returntype> <arguments><argument name='transparency'><type><int/></type></argument> <argument name='transparency_index'><type><int/></type></argument> <argument name='delay'><type><int/></type></argument> <argument name='user_input'><type><int/></type></argument> <argument name='disposal'><type><int/></type></argument>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><doc> <text> <p>This function gives back a Graphic Control Extension block. A GCE block has the scope of the following render block.
516e681996-02-26Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </text> <group> <param name='transparency'/> <param name='transparency_index'/> <text><p>The following image has transparency, marked with this index.</p></text></group> <group> <param name='delay'/> <text><p>View the following rendering for this many centiseconds (0..65535).</p></text></group> <group> <param name='user_input'/> <text><p>Wait the delay or until user input. If delay is zero, wait indefinitely for user input. May sound the bell upon decoding.</p></text></group> <group> <param name='disposal'/> <text><p>Disposal method number; <dl compact='compact'> <dt>0</dt><dd>No disposal specified. The decoder is not required to take any action. </dd><dt>1</dt><dd>Do not dispose. The graphic is to be left in place. </dd><dt>2</dt><dd>Restore to background color. The area used by the graphic must be restored to the background color. </dd><dt>3</dt><dd>Restore to previous. The decoder is required to restore the area overwritten by the graphic with what was there prior to rendering the graphic. </dd><dt compact='compact'>4-7</dt><dd>To be defined. </dd></dl></p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p/></text></group> <group><note/><text> <p>This is in the very advanced sector of the GIF support; please read about how GIF files works.</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Most decoders just ignore some or all of these parameters.</p>
516e681996-02-26Fredrik Hübinette (Hubbe) </text></group>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><seealso/><text> <p><ref resolved='predef::Image.GIF._render_block'>_render_block</ref>, <ref resolved='predef::Image.GIF.render_block'>render_block</ref></p></text></group>
516e681996-02-26Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='_render_block' homogen-type='method'> <method name='_render_block'> <returntype> <object>string </object></returntype> <arguments><argument name='x'><type><int/></type></argument> <argument name='y'><type><int/></type></argument> <argument name='xsize'><type><int/></type></argument> <argument name='ysize'><type><int/></type></argument> <argument name='bpp'><type><int/></type></argument> <argument name='indices'><type><string/></type></argument> <argument name='colortable'><type> <or> <object resolved='predef::Image.GIF._render_block'>0</object><string/></or></type></argument> <argument name='interlace'><type><int/></type></argument>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><doc>
516e681996-02-26Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Advanced (!) method for writing renderblocks for placement in a GIF file. This method only applies LZW encoding on the indices and makes the correct headers.
516e681996-02-26Fredrik Hübinette (Hubbe) </p>
431c431998-12-31Fredrik Hübinette (Hubbe) </text> <group> <param name='x'/> <param name='y'/> <text><p>Position of this image.</p></text></group> <group> <param name='xsize'/> <param name='ysize'/> <text><p>Size of the image. Length if the <tt>indices</tt> string must be xsize*ysize.</p></text></group> <group> <param name='bpp'/> <text><p>Bits per pixels in the indices. Valid range 1..8.</p></text></group> <group> <param name='indices'/> <text><p>The image indices as an 8bit indices.</p></text></group> <group> <param name='colortable'/> <text><p>Colortable with colors to write as palette. If this argument is zero, no local colortable is written. Colortable string len must be 1&lt;&lt;bpp.</p></text></group> <group> <param name='interlace'/> <text><p>Interlace index data and set interlace bit. The given string should _not_ be pre-interlaced.</p>
516e681996-02-26Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p/></text></group> <group><note/><text> <p>This is in the very advanced sector of the GIF support; please read about how GIF files works.</p>
516e681996-02-26Fredrik Hübinette (Hubbe) </text></group> <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::Image.GIF.encode'>encode</ref>, <ref resolved='predef::Image.GIF._encode'>_encode</ref>, <ref resolved='predef::Image.GIF.header_block'>header_block</ref>, <ref resolved='predef::Image.GIF.end_block'>end_block</ref></p></text></group>
516e681996-02-26Fredrik Hübinette (Hubbe) 
a1c5881995-08-09Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='decode' homogen-type='method'> <method name='decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument>
a44f221996-02-24Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='decode'> <returntype> <object>object </object></returntype> <arguments><argument name='_decoded'><type><array/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='decode'> <returntype> <object>object </object></returntype> <arguments><argument name='__decoded'><type><array/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><doc>
8c7c691995-10-29Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Decodes GIF data and creates an image object.</p>
8c7c691995-10-29Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p/>
8c7c691995-10-29Fredrik Hübinette (Hubbe) </text>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><returns/><text> <p>the decoded image as an image object</p>
8c7c691995-10-29Fredrik Hübinette (Hubbe) </text></group>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>This function may throw errors upon illegal GIF data. This function uses <ref resolved='predef::Image.GIF.__decode'>__decode</ref>, <ref resolved='predef::Image.GIF._decode'>_decode</ref>, <ref resolved='predef::Image.image.paste'>Image.image-&gt;paste</ref> and <ref resolved='predef::Image.image.paste_alpha'>Image.image-&gt;paste_alpha</ref> internally.
a1c5881995-08-09Fredrik Hübinette (Hubbe) </p>
d8215a1996-09-22Fredrik Hübinette (Hubbe) </text></group>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><seealso/><text> <p><ref resolved='predef::Image.GIF.encode'>encode</ref></p></text></group>
d8215a1996-09-22Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-type='method'> <method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.encode'/></type></argument>
d8215a1996-09-22Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='colors'><type><int/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.GIF.encode'/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='encode_trans'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='alpha'><type><object resolved='predef::Image.GIF.encode'/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='encode_trans'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='tr_r'><type><int/></type></argument> <argument name='tr_g'><type><int/></type></argument> <argument name='tr_b'><type><int/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='encode_trans'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='colors'><type><int/></type></argument> <argument name='alpha'><type><object resolved='predef::Image.GIF.encode'/></type></argument>
fceb841995-11-16David Hedbor 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='encode_trans'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='colors'><type><int/></type></argument> <argument name='tr_r'><type><int/></type></argument> <argument name='tr_g'><type><int/></type></argument> <argument name='tr_b'><type><int/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='encode_trans'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='colors'><type><int/></type></argument> <argument name='alpha'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='tr_r'><type><int/></type></argument> <argument name='tr_g'><type><int/></type></argument> <argument name='tr_b'><type><int/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='encode_trans'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='alpha'><type><object resolved='predef::Image.GIF.encode'/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='encode_trans'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='tr_r'><type><int/></type></argument> <argument name='tr_g'><type><int/></type></argument> <argument name='tr_b'><type><int/></type></argument>
203da91995-11-20Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='encode_trans'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='alpha'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='a_r'><type><int/></type></argument> <argument name='a_g'><type><int/></type></argument> <argument name='a_b'><type><int/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='encode_trans'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.GIF.encode'/></type></argument> <argument name='transp_index'><type><int/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><doc>
a1c5881995-08-09Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Create a complete GIF file.</p>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The latter (<ref resolved='predef::Image.GIF.encode_trans'>encode_trans</ref>) functions add transparency capabilities.</p>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Example: <pre> img=&lt;ref&gt;Image.image&lt;/ref&gt;([...]); [...] // make your very-nice image write(&lt;ref&gt;Image.GIF.encode&lt;/ref&gt;(img)); // write it as GIF on stdout </pre> </p> </text> <group> <param name='img'/> <text><p>The image which to encode.</p></text></group> <group> <param name='colors'/> <param name='colortable'/> <text><p>These arguments decides what colors the image should be encoded with. If a number is given, a colortable with be created with (at most) that amount of colors. Default is '256' (GIF maximum amount of colors).</p></text></group> <group> <param name='alpha'/> <text><p>Alpha channel image (defining what is transparent); black color indicates transparency. GIF has only transparent or nontransparent (no real alpha channel). You can always dither a transparency channel: <tt>Image.colortable(my_alpha, ({({0,0,0}),({255,255,255})}))<br/> -&gt;full()<br/>-&gt;floyd_steinberg()<br/>-&gt;map(my_alpha)</tt></p></text></group> <group> <param name='tr_r'/> <param name='tr_g'/> <param name='tr_b'/> <text><p>Use this (or the color closest to this) color as transparent pixels.</p></text></group> <group> <param name='a_r'/> <param name='a_g'/> <param name='a_b'/> <text><p>Encode transparent pixels (given by alpha channel image) to have this color. This option is for making GIFs for the decoders that doesn't support transparency.</p></text></group> <group> <param name='transp_index'/> <text><p>Use this color no in the colortable as transparent color. </p></text></group> <group><note/><text> <p>For advanced users: <pre>Image.GIF.encode_trans(img,colortable,alpha);</pre> is equivalent of using <pre>Image.GIF.header_block(img-&gt;xsize(),img-&gt;ysize(),colortable)+ Image.GIF.render_block(img,colortable,0,0,0,alpha)+ Image.GIF.end_block();</pre> and is actually implemented that way.</p>
a1c5881995-08-09Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='end_block' homogen-type='method'> <method name='end_block'> <returntype> <object>string </object></returntype> <arguments> </arguments> </method><doc>
a1c5881995-08-09Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function gives back a GIF end (trailer) block.
94e6f41996-05-02Fredrik Hübinette (Hubbe) </p> </text> <group><returns/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>the end block as a string.</p>
94e6f41996-05-02Fredrik Hübinette (Hubbe) </text></group>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>This is in the advanced sector of the GIF support; please read some about how GIFs are packed.</p>
94e6f41996-05-02Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The result of this function is always ";" or "\x3b", but I recommend using this function anyway for code clearity.
d8215a1996-09-22Fredrik Hübinette (Hubbe) </p>
a1c5881995-08-09Fredrik Hübinette (Hubbe) </text></group>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><seealso/><text> <p><ref resolved='predef::Image.GIF.header_block'>header_block</ref>, <ref resolved='predef::Image.GIF.end_block'>end_block</ref></p></text></group>
a1c5881995-08-09Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='header_block' homogen-type='method'> <method name='header_block'> <returntype> <object>string </object></returntype> <arguments><argument name='xsize'><type><int/></type></argument> <argument name='ysize'><type><int/></type></argument> <argument name='numcolors'><type><int/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='header_block'> <returntype> <object>string </object></returntype> <arguments><argument name='xsize'><type><int/></type></argument> <argument name='ysize'><type><int/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.GIF.header_block'/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='header_block'> <returntype> <object>string </object></returntype> <arguments><argument name='xsize'><type><int/></type></argument> <argument name='ysize'><type><int/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.GIF.header_block'/></type></argument> <argument name='background_color_index'><type><int/></type></argument> <argument name='gif87a'><type><int/></type></argument> <argument name='aspectx'><type><int/></type></argument> <argument name='aspecty'><type><int/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='header_block'> <returntype> <object>string </object></returntype> <arguments><argument name='xsize'><type><int/></type></argument> <argument name='ysize'><type><int/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.GIF.header_block'/></type></argument> <argument name='background_color_index'><type><int/></type></argument> <argument name='gif87a'><type><int/></type></argument> <argument name='aspectx'><type><int/></type></argument> <argument name='aspecty'><type><int/></type></argument> <argument name='r'><type><int/></type></argument> <argument name='g'><type><int/></type></argument> <argument name='b'><type><int/></type></argument>
7629641995-11-06Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><doc>
a1c5881995-08-09Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function gives back a GIF header block.</p>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Giving a colortable to this function includes a global palette in the header block.
7629641995-11-06Fredrik Hübinette (Hubbe) </p>
a1c5881995-08-09Fredrik Hübinette (Hubbe) </text>
431c431998-12-31Fredrik Hübinette (Hubbe) <group> <param name='xsize'/> <param name='ysize'/> <text><p>Size of drawing area. Usually same size as in the first (or only) render block(s).</p></text></group> <group> <param name='background_color_index'/> <text><p>This color in the palette is the background color. Background is visible if the following render block(s) doesn't fill the drawing area or are transparent. Most decoders doesn't use this value, though.</p></text></group> <group> <param name='gif87a'/> <text><p>If set, write 'GIF87a' instead of 'GIF89a' (default 0 == 89a).</p></text></group> <group> <param name='aspectx'/> <param name='aspecty'/> <text><p>Aspect ratio of pixels, ranging from 4:1 to 1:4 in increments of 1/16th. Ignored by most decoders. If any of <tt>aspectx</tt> or <tt>aspecty</tt> is zero, aspectratio information is skipped.</p></text></group> <group> <param name='r'/> <param name='g'/> <param name='b'/> <text><p>Add this color as the transparent color. This is the color used as transparency color in case of alpha-channel given as image object. This increases (!) the number of colors by one. </p></text></group> <group><returns/><text> <p>the created header block as a string</p>
a1c5881995-08-09Fredrik Hübinette (Hubbe) </text></group>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>This is in the advanced sector of the GIF support; please read some about how GIFs are packed.</p>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This GIF encoder doesn't support different size of colors in global palette and color resolution.
3b8e841996-02-10Fredrik Hübinette (Hubbe) </p>
a1c5881995-08-09Fredrik Hübinette (Hubbe) </text></group> <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::Image.GIF.header_block'>header_block</ref>, <ref resolved='predef::Image.GIF.end_block'>end_block</ref></p></text></group>
a1c5881995-08-09Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='netscape_loop_block' homogen-type='method'> <method name='netscape_loop_block'> <returntype> <object>string </object></returntype> <arguments> </arguments> </method><method name='netscape_loop_block'> <returntype> <object>string </object></returntype> <arguments><argument name='number_of_loops'><type><int/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><doc> <text> <p>Creates a application-specific extention block; this block makes netscape and compatible browsers loop the animation a certain amount of times.</p> </text> <group> <param name='number_of_loops'/> <text><p>Number of loops. Max and default is 65535.</p></text></group>
a1c5881995-08-09Fredrik Hübinette (Hubbe)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='render_block' homogen-type='method'> <method name='render_block'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.render_block'/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.GIF.render_block'/></type></argument> <argument name='x'><type><int/></type></argument> <argument name='y'><type><int/></type></argument> <argument name='localpalette'><type><int/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='render_block'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.render_block'/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.GIF.render_block'/></type></argument> <argument name='x'><type><int/></type></argument> <argument name='y'><type><int/></type></argument> <argument name='localpalette'><type><int/></type></argument> <argument name='alpha'><type><object resolved='predef::Image.GIF.render_block'/></type></argument>
a9858a1996-10-13Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='render_block'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.render_block'/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.GIF.render_block'/></type></argument> <argument name='x'><type><int/></type></argument> <argument name='y'><type><int/></type></argument> <argument name='localpalette'><type><int/></type></argument> <argument name='alpha'><type><object resolved='predef::Image.GIF.render_block'/></type></argument> <argument name='r'><type><int/></type></argument> <argument name='g'><type><int/></type></argument> <argument name='b'><type><int/></type></argument>
a9858a1996-10-13Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='render_block'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.render_block'/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.GIF.render_block'/></type></argument> <argument name='x'><type><int/></type></argument> <argument name='y'><type><int/></type></argument> <argument name='localpalette'><type><int/></type></argument> <argument name='delay'><type><int/></type></argument> <argument name='transp_index'><type><int/></type></argument> <argument name='interlace'><type><int/></type></argument> <argument name='user_input'><type><int/></type></argument> <argument name='disposal'><type><int/></type></argument>
a9858a1996-10-13Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='render_block'> <returntype> <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.GIF.render_block'/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.GIF.render_block'/></type></argument> <argument name='x'><type><int/></type></argument> <argument name='y'><type><int/></type></argument> <argument name='localpalette'><type><int/></type></argument> <argument name='alpha'><type><object resolved='predef::Image.GIF.render_block'/></type></argument> <argument name='r'><type><int/></type></argument> <argument name='g'><type><int/></type></argument> <argument name='b'><type><int/></type></argument> <argument name='delay'><type><int/></type></argument> <argument name='interlace'><type><int/></type></argument> <argument name='user_input'><type><int/></type></argument> <argument name='disposal'><type><int/></type></argument> </arguments> </method><doc>
a9858a1996-10-13Mirar (Pontus Hagland) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function gives a image block for placement in a GIF file, with or without transparency. The some options actually gives two blocks, the first with graphic control extensions for such things as delay or transparency.</p>
a9858a1996-10-13Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Example: <pre> img1=&lt;ref&gt;Image.image&lt;/ref&gt;([...]); img2=&lt;ref&gt;Image.image&lt;/ref&gt;([...]); [...] // make your very-nice images nct=&lt;ref&gt;Image.colortable&lt;/ref&gt;([...]); // make a nice colortable write(&lt;ref&gt;Image.GIF.header_block&lt;/ref&gt;(xsize,ysize,nct)); // write a GIF header write(&lt;ref&gt;Image.GIF.render_block&lt;/ref&gt;(img1,nct,0,0,0,10)); // write a render block write(&lt;ref&gt;Image.GIF.render_block&lt;/ref&gt;(img2,nct,0,0,0,10)); // write a render block [...] write(&lt;ref&gt;Image.GIF.end_block&lt;/ref&gt;()); // write end block // voila! A GIF animation on stdout. </pre></p>
a9858a1996-10-13Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The above animation is thus created: <pre> object nct=colortable(lena,32,({({0,0,0})})); string s=GIF.header_block(lena-&gt;xsize(),lena-&gt;ysize(),nct); foreach ( ({lena-&gt;xsize(), (int)(lena-&gt;xsize()*0.75), (int)(lena-&gt;xsize()*0.5), (int)(lena-&gt;xsize()*0.25), (int)(1), (int)(lena-&gt;xsize()*0.25), (int)(lena-&gt;xsize()*0.5), (int)(lena-&gt;xsize()*0.75)}),int xsize) { object o=lena-&gt;scale(xsize,lena-&gt;ysize()); object p=lena-&gt;clear(0,0,0); p-&gt;paste(o,(lena-&gt;xsize()-o-&gt;xsize())/2,0); s+=GIF.render_block(p,nct,0,0,0,25); } s+=GIF.netscape_loop_block(200); s+=GIF.end_block(); write(s); </pre>
6130721996-11-01Fredrik Hübinette (Hubbe) </p> </text>
431c431998-12-31Fredrik Hübinette (Hubbe) <group> <param name='img'/> <text><p>The image.</p></text></group> <group> <param name='colortable'/> <text><p>Colortable with colors to use and to write as palette.</p></text></group> <group> <param name='x'/> <param name='y'/> <text><p>Position of this image.</p></text></group> <group> <param name='localpalette'/> <text><p>If set, writes a local palette.</p></text></group> <group> <param name='alpha'/> <text><p>Alpha channel image; black is transparent.</p></text></group> <group> <param name='r'/> <param name='g'/> <param name='b'/> <text><p>Color of transparent pixels. Not all decoders understands transparency. This is ignored if localpalette isn't set.</p></text></group> <group> <param name='delay'/> <text><p>View this image for this many centiseconds. Default is zero.</p></text></group> <group> <param name='transp_index'/> <text><p>Index of the transparent color in the colortable. <tt>-1</tt> indicates no transparency.</p></text></group> <group> <param name='user_input'/> <text><p>If set: wait the delay or until user input. If delay is zero, wait indefinitely for user input. May sound the bell upon decoding. Default is non-set.</p></text></group> <group> <param name='disposal'/> <text><p>Disposal method number; <dl compact='compact'> <dt>0</dt><dd>No disposal specified. The decoder is not required to take any action. (default) </dd><dt>1</dt><dd>Do not dispose. The graphic is to be left in place. </dd><dt>2</dt><dd>Restore to background color. The area used by the graphic must be restored to the background color. </dd><dt>3</dt><dd>Restore to previous. The decoder is required to restore the area overwritten by the graphic with what was there prior to rendering the graphic. </dd><dt compact='compact'>4-7</dt><dd>To be defined. </dd></dl></p>
a9858a1996-10-13Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p/></text></group> <group><note/><text> <p>This is in the advanced sector of the GIF support; please read some about how GIFs are packed.</p> <p>The user_input and disposal method are unsupported in most decoders.</p>
a9858a1996-10-13Mirar (Pontus Hagland) </text></group>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><seealso/><text> <p><ref resolved='predef::Image.GIF.encode'>encode</ref>, <ref resolved='predef::Image.GIF.header_block'>header_block</ref>, <ref resolved='predef::Image.GIF.end_block'>end_block</ref></p></text></group>
a9858a1996-10-13Mirar (Pontus Hagland) 
361d6f1999-04-06Marcus Comstedt </doc> </docgroup> </module> <module name='ILBM'> <doc> <text> <p> This submodule keep the ILBM encode/decode capabilities of the <ref resolved='predef::Image'>Image</ref> module. </p> </text> <group><seealso/><text> <p><ref resolved='predef::Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref resolved='predef::Image.colortable'>Image.colortable</ref></p></text></group> </doc> <docgroup homogen-name='__decode' homogen-type='method'> <method name='__decode'> <returntype> <object>array </object></returntype> <arguments> </arguments> </method><doc> <text> <p>Decodes an ILBM image structure down to chunks and</p> <p><pre> ({int xsize,int ysize, // 0: size of image drawing area string bitmapheader, // 2: BMHD chunk void|string colortable, // 3: opt. colortable chunk (CMAP) void|string colortable, // 4: opt. colormode chunk (CAMG) string body, // 5: BODY chunk mapping more_chunks}) // 6: mapping with other chunks </pre> </p> </text> <group><returns/><text> <p>the above array</p> </text></group> <group><note/><text> <p>May throw errors if the ILBM header is incomplete or illegal.</p> </text></group> </doc> </docgroup> <docgroup homogen-name='_decode' homogen-type='method'> <method name='_decode'> <returntype> <object>array </object></returntype> <arguments><argument name='data'><type> <or><string/><array/></or></type></argument> </arguments> </method><doc> <text> <p>Decode an ILBM image file.</p> <p>Result is a mapping, <pre> ([ "image": object image, ... more ... ]) </pre></p> <p><tt>image</tt> is the stored image. </p> </text> </doc> </docgroup> <docgroup homogen-name='decode' homogen-type='method'> <method name='decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> </arguments> </method><method name='decode'> <returntype> <object>object </object></returntype> <arguments><argument name='_decoded'><type><array/></type></argument> </arguments> </method><method name='decode'> <returntype> <object>object </object></returntype> <arguments><argument name='__decoded'><type><array/></type></argument> </arguments> </method><doc> <text> <p>Decodes ILBM data and creates an image object.</p> <p/> </text> <group><returns/><text> <p>the decoded image as an image object</p> </text></group> <group><note/><text> <p>This function may throw errors upon illegal ILBM data. This function uses <ref resolved='predef::Image.ILBM.__decode'>__decode</ref> and <ref resolved='predef::Image.ILBM._decode'>_decode</ref> internally. </p> </text></group> <group><seealso/><text>
fa3d301999-04-09Marcus Comstedt <p><ref resolved='predef::Image.ILBM.encode'>encode</ref></p></text></group> </doc> </docgroup> <docgroup homogen-name='encode' homogen-type='method'> <method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.ILBM.encode'/></type></argument> </arguments> </method><method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.ILBM.encode'/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.ILBM.encode'/></type></argument> </arguments> </method><doc> <text> <p>Encodes an ILBM image.</p> <p>The <tt>options</tt> argument may be a mapping containing zero or more encoding options:</p> <p><pre> normal options: "alpha":image object Use this image as mask (Note: ILBM mask is boolean. The values are calculated by (r+2g+b)/4&gt;=128.) "palette":colortable object Use this as palette for pseudocolor encoding </pre></p> </text>
361d6f1999-04-06Marcus Comstedt 
a44f221996-02-24Fredrik Hübinette (Hubbe) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) </module> <module name='JPEG'> <doc>
a44f221996-02-24Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p/> </text> <group><note/><text> <p>This module uses <tt>libjpeg</tt>, a software from Independent JPEG Group.</p>
a44f221996-02-24Fredrik Hübinette (Hubbe) </text></group>
a1c5881995-08-09Fredrik Hübinette (Hubbe) </doc>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='decode' homogen-type='method'> <method name='decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.JPEG.decode'/></type></argument>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><doc>
a1c5881995-08-09Fredrik Hübinette (Hubbe) <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Decodes a JPEG image.</p>
a1c5881995-08-09Fredrik Hübinette (Hubbe) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The <tt>options</tt> argument may be a mapping containing zero or more encoding options:</p> <p><pre> advanced options: "block_smoothing":0|1 Do interblock smoothing. Default is on (1). "fancy_upsampling":0|1 Do fancy upsampling of chroma components. Default is on (1). "method":JPEG.IFAST|JPEG.ISLOW|JPEG.FLOAT|JPEG.DEFAULT|JPEG.FASTEST DCT method to use. DEFAULT and FASTEST is from the jpeg library, probably ISLOW and IFAST respective. wizard options: "scale_num":1.. "scale_denom":1.. Rescale the image when read from JPEG data. My (Mirar) version (6a) of jpeglib can only handle 1/1, 1/2, 1/4 and 1/8. </pre>
a1c5881995-08-09Fredrik Hübinette (Hubbe) </p> </text>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>Please read some about JPEG files.</p>
a1c5881995-08-09Fredrik Hübinette (Hubbe) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='decode_header' homogen-type='method'> <method name='decode_header'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument>
3d992e1997-04-09Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='decode_header'>
3d992e1997-04-09Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.JPEG.decode_header'/></type></argument>
3d992e1997-04-09Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Decodes a JPEG image header.</p>
0f05e51997-11-07Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p><pre> "xsize":int "ysize":int size of image "xdpi":float "ydpi":float image dpi, if known "type":"image/jpeg" file type information as MIME type JPEG specific: "num_compontents":int number of channels in JPEG image "color_space":"GRAYSCALE"|"RGB"|"YUV"|"CMYK"|"YCCK"|"UNKNOWN" color space of JPEG image "density_unit":int "x_density":int "y_density":int density of image; unit is 1:dpi 2:dpcm 0:no units "adobe_marker":0|1 if the file has an adobe marker </pre> </p> </text> <group><note/><text> <p>Please read some about JPEG files.</p> </text></group>
0f05e51997-11-07Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) </doc> </docgroup> <docgroup homogen-name='encode' homogen-type='method'> <method name='encode'>
0f05e51997-11-07Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.JPEG.encode'/></type></argument>
0f05e51997-11-07Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='encode'>
0f05e51997-11-07Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.JPEG.encode'/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.JPEG.encode'/></type></argument>
0f05e51997-11-07Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Encodes a JPEG image.</p>
0f05e51997-11-07Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The <tt>options</tt> argument may be a mapping containing zero or more encoding options:</p>
0f05e51997-11-07Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p><pre> normal options: "quality":0..100 Set quality of result. Default is 75. "optimize":0|1 Optimize Huffman table. Default is on (1) for images smaller than 50kpixels. "progressive":0|1 Make a progressive JPEG. Default is off. advanced options: "smooth":1..100 Smooth input. Value is strength. "method":JPEG.IFAST|JPEG.ISLOW|JPEG.FLOAT|JPEG.DEFAULT|JPEG.FASTEST DCT method to use. DEFAULT and FASTEST is from the jpeg library, probably ISLOW and IFAST respective. "density_unit":int "x_density":int "y_density":int density of image; unit is 1:dpi 2:dpcm 0:no units wizard options: "baseline":0|1 Force baseline output. Useful for quality&lt;20. </pre>
0f05e51997-11-07Mirar (Pontus Hagland) </p> </text>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>Please read some about JPEG files. A quality setting of 100 does not mean the result is lossless.</p>
0f05e51997-11-07Mirar (Pontus Hagland) </text></group>
cc02261999-04-06Per Hedbor </doc> </docgroup> </module> <module name='PCX'> <docgroup homogen-name='_decode' homogen-type='method'> <method name='_decode'> <returntype>
b2a59a1999-04-11Per Hedbor  <object>mapping </object></returntype>
cc02261999-04-06Per Hedbor  <arguments><argument name='data'><type><string/></type></argument> </arguments> </method><doc> <text> <p>Decodes a PCX image to a mapping. </p> </text> <group><note/><text> <p>Throws upon error in data.</p> </text></group>
19c0971999-04-10Per Hedbor </doc> </docgroup> <docgroup homogen-type='method'> <method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PCX.encode'/></type></argument> </arguments> </method><method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PCX.encode'/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.PCX.encode'/></type></argument> </arguments> </method><method name='_encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PCX.encode'/></type></argument> </arguments> </method><method name='_encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PCX.encode'/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.PCX.encode'/></type></argument> </arguments> </method><doc> <text> <p>Encodes a PCX image. The _encode and the encode functions are identical</p> <p>The <tt>options</tt> argument may be a mapping containing zero or more encoding options:</p> <p><pre> normal options: "raw":1 Do not RLE encode the image "dpy":int "xdpy":int "ydpy":int Image resolution (in pixels/inch, integer numbers) "xoffset":int "yoffset":int Image offset (not used by most programs, but gimp uses it) </pre></p> </text>
cc02261999-04-06Per Hedbor </doc> </docgroup> <docgroup homogen-name='decode' homogen-type='method'> <method name='decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> </arguments> </method><doc> <text> <p>Decodes a PCX image. </p> </text> <group><note/><text> <p>Throws upon error in data.</p> </text></group>
0f05e51997-11-07Mirar (Pontus Hagland) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) </module> <module name='PNG'> <doc> <text> <p/> </text> <group><note/><text> <p>This module uses <tt>zlib</tt>.</p> </text></group>
9101991997-04-03Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) </doc> <docgroup homogen-name='__decode' homogen-type='method'> <method name='__decode'>
9101991997-04-03Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>array </object></returntype> <arguments><argument name='data'><type><string/></type></argument>
9101991997-04-03Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='__decode'>
9101991997-04-03Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>array </object></returntype> <arguments><argument name='data'><type><string/></type></argument> <argument name='intdontcheckcrc'><type> <object resolved='predef::Image.PNG.__decode'/></type></argument>
9101991997-04-03Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Splits a PNG file into chunks.</p> <p>Result is an array of arrays, <tt>({ ({ string chunk_type, string data, int crc_ok }), ({ string chunk_type, string data, int crc_ok }) ... })</tt></p> <p><tt>chunk_type</tt> is the type of the chunk, like <tt>"IHDR"</tt> or <tt>"IDAT"</tt>.</p> <p><tt>data</tt> is the actual chunk data.</p> <p><tt>crcok</tt> is set to 1 if the checksum is ok and <tt>dontcheckcrc</tt> parameter isn't set.</p> <p>Returns 0 if it isn't a PNG file.
69c7971997-05-01Mirar (Pontus Hagland) </p>
9101991997-04-03Mirar (Pontus Hagland) </text>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>Please read about the PNG file format.</p>
9101991997-04-03Mirar (Pontus Hagland) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='_chunk' homogen-type='method'> <method name='_chunk'>
9101991997-04-03Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='type'><type><string/></type></argument> <argument name='data'><type><string/></type></argument>
9101991997-04-03Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><doc> <text> <p>Encodes a PNG chunk. </p> </text> <group><note/><text> <p>Please read about the PNG file format.</p> </text></group> </doc> </docgroup> <docgroup homogen-name='_decode' homogen-type='method'> <method name='_decode'>
9101991997-04-03Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>array </object></returntype> <arguments><argument name='data'><type> <or><string/><array/></or></type></argument>
9101991997-04-03Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='_decode'>
9101991997-04-03Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>array </object></returntype> <arguments><argument name='data'><type> <or><string/><array/></or></type></argument> <argument name='options'><type><mapping/></type></argument>
9101991997-04-03Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Decode a PNG image file.</p> <p>Result is a mapping, <pre> ([ "image": object image, ... options ... ]) </pre></p> <p><tt>image</tt> is the stored image.</p> <p>Valid entries in <tt>options</tt> is a superset of the one given to <ref resolved='predef::Image.PNG.encode'>encode</ref>:</p> <p><pre> basic options: "alpha": object alpha, - alpha channel "palette": object colortable, - image palette (if non-truecolor) advanced options: "background": array(int) color, - suggested background color "background_index": int index, - what index in colortable "chroma": ({ float white_point_x, float white_point_y, float red_x, float red_y, - CIE x,y chromaticities float green_x, float green_y, float blue_x, float blue_y }) "gamma": float gamma, - gamma "spalette": object colortable, - suggested palette, for truecolor images "histogram": array(int) hist, - histogram for the image, corresponds to palette index "physical": ({ int unit, - physical pixel dimension int x,y }) unit 0 means pixels/meter "sbit": array(int) sbits - significant bits "text": array(array(string)) text - text information, ({ ({ keyword, data }), ... }) Standard keywords: Title Short (one line) title or caption for image Author Name of image's creator Description Description of image (possibly long) Copyright Copyright notice Creation Time Time of original image creation Software Software used to create the image Disclaimer Legal disclaimer Warning Warning of nature of content Source Device used to create the image Comment Miscellaneous comment "time": ({ int year, month, day, - time of last modification hour, minute, second }) wizard options: "compression": int method - compression method (0) </pre></p>
9101991997-04-03Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This method can also take options, as a mapping: <pre> advanced options: "palette": colortable object - replace the decoded palette with this when unpacking the image data, if applicable </pre>
9101991997-04-03Mirar (Pontus Hagland) </p> </text>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>Please read about the PNG file format. This function ignores any checksum errors in the file. A PNG of higher color resolution than the Image module supports (8 bit) will lose that information in the conversion. It throws an error if the image data is erroneous.</p>
9101991997-04-03Mirar (Pontus Hagland) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='decode' homogen-type='method'> <method name='decode'>
9101991997-04-03Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument>
9101991997-04-03Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='decode'>
9101991997-04-03Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.PNG.decode'/></type></argument>
9101991997-04-03Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Decodes a PNG image.</p> <p>The <tt>options</tt> argument may be a mapping containing zero or more encoding options:</p> <p><pre> </pre> </p>
9101991997-04-03Mirar (Pontus Hagland) </text>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>Throws upon error in data.</p>
9101991997-04-03Mirar (Pontus Hagland) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='encode' homogen-type='method'> <method name='encode'>
9101991997-04-03Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PNG.encode'/></type></argument>
9101991997-04-03Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='encode'>
9101991997-04-03Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PNG.encode'/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.PNG.encode'/></type></argument>
9101991997-04-03Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Encodes a PNG image.</p> <p>The <tt>options</tt> argument may be a mapping containing zero or more encoding options:</p> <p><pre> normal options: "alpha":image object Use this image as alpha channel (Note: PNG alpha channel is grey. The values are calculated by (r+2g+b)/4.) "palette":colortable object Use this as palette for pseudocolor encoding (Note: encoding with alpha channel and pseudocolor at the same time are not supported) </pre> </p>
9101991997-04-03Mirar (Pontus Hagland) </text>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>Please read some about PNG files.</p>
9101991997-04-03Mirar (Pontus Hagland) </text></group>
5e9ad71998-04-15Mirar (Pontus Hagland) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) </module> <module name='PNM'> <doc> <text> <p> This submodule keeps the PNM encode/decode capabilities of the <ref resolved='predef::Image'>Image</ref> module.</p>
5e9ad71998-04-15Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>PNM is a common image storage format on unix systems, and is a very simple format.</p>
5e9ad71998-04-15Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This format doesn't use any color palette.</p>
5e9ad71998-04-15Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The format is divided into seven subformats;</p>
5e9ad71998-04-15Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p><pre> P1(PBM) - ascii bitmap (only two colors) P2(PGM) - ascii greymap (only grey levels) P3(PPM) - ascii truecolor P4(PBM) - binary bitmap P5(PGM) - binary greymap P6(PPM) - binary truecolor </pre></p>
5e9ad71998-04-15Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Simple encoding:<br/> <ref resolved='predef::Image.PNM.encode'>encode</ref>,<br/> <ref resolved='predef::Image.PNM.encode_binary'>encode_binary</ref>,<br/> <ref resolved='predef::Image.PNM.encode_ascii'>encode_ascii</ref></p>
5e9ad71998-04-15Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Simple decoding:<br/> <ref resolved='predef::Image.PNM.decode'>decode</ref></p>
5e9ad71998-04-15Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Advanced encoding:<br/> <ref resolved='predef::Image.PNM.encode_P1'>encode_P1</ref>, <br/> <ref resolved='predef::Image.PNM.encode_P2'>encode_P2</ref>, <br/> <ref resolved='predef::Image.PNM.encode_P3'>encode_P3</ref>, <br/> <ref resolved='predef::Image.PNM.encode_P4'>encode_P4</ref>, <br/> <ref resolved='predef::Image.PNM.encode_P5'>encode_P5</ref>, <br/> <ref resolved='predef::Image.PNM.encode_P6'>encode_P6</ref> </p> </text> <group><seealso/><text> <p><ref resolved='predef::Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref resolved='predef::Image.GIF'>Image.GIF</ref></p></text></group>
5e9ad71998-04-15Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) </doc> <docgroup homogen-name='decode' homogen-type='method'> <method name='decode'>
5e9ad71998-04-15Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument>
5e9ad71998-04-15Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Decodes PNM (PBM/PGM/PPM) data and creates an image object.</p>
5e9ad71998-04-15Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p/>
5e9ad71998-04-15Mirar (Pontus Hagland) </text> <group><returns/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>the decoded image as an image object</p>
5e9ad71998-04-15Mirar (Pontus Hagland) </text></group> <group><note/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This function may throw errors upon illegal PNM data. </p>
5e9ad71998-04-15Mirar (Pontus Hagland) </text></group> <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::Image.PNM.encode'>encode</ref></p></text></group> </doc> </docgroup> <docgroup homogen-type='method'> <method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PNM.encode'/></type></argument> </arguments> </method><method name='encode_binary'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PNM.encode'/></type></argument> </arguments> </method><method name='encode_ascii'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PNM.encode'/></type></argument>
5e9ad71998-04-15Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='encode_P1'>
9101991997-04-03Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PNM.encode'/></type></argument>
9101991997-04-03Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='encode_P2'>
9101991997-04-03Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PNM.encode'/></type></argument>
9101991997-04-03Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='encode_P3'>
9101991997-04-03Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PNM.encode'/></type></argument>
9101991997-04-03Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='encode_P4'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PNM.encode'/></type></argument>
9101991997-04-03Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='encode_P5'>
26c8521997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PNM.encode'/></type></argument>
26c8521997-03-25Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='encode_P6'>
26c8521997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.PNM.encode'/></type></argument>
26c8521997-03-25Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Make a complete PNM file from an image.</p>
9101991997-04-03Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::Image.PNM.encode_binary'>encode_binary</ref>() and <ref resolved='predef::Image.PNM.encode_ascii'>encode_ascii</ref>() uses the most optimized encoding for this image (bitmap, grey or truecolor) - P4, P5 or P6 respective P1, P2 or P3.</p>
9101991997-04-03Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::Image.PNM.encode_P1'>encode_P1</ref>/<ref resolved='predef::Image.PNM.encode_P4'>encode_P4</ref> assumes the image is black and white. Use <ref resolved='predef::Image.image.threshold'>Image.image-&gt;threshold</ref>() or something like <tt><ref resolved='predef::Image.colortable'>Image.colortable</ref>( ({({0,0,0}),({255,255,255})}) )<br/>-&gt;floyd_steinberg()<br/>-&gt;map(my_image)</tt> to get a black and white image.</p>
9101991997-04-03Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::Image.PNM.encode_P2'>encode_P2</ref>/<ref resolved='predef::Image.PNM.encode_P5'>encode_P5</ref> assumes the image is greyscale. Use <ref resolved='predef::Image.image.grey'>Image.image-&gt;grey</ref>() to get a greyscale image.</p>
9101991997-04-03Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p/>
26c8521997-03-25Mirar (Pontus Hagland) </text> <group><returns/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>the encoded image as a string</p> </text></group> <group><note/><text> <p><ref resolved='predef::Image.PNM.encode'>encode</ref>() is equal to <ref resolved='predef::Image.PNM.encode_binary'>encode_binary</ref>(), but may change in a future release.</p>
26c8521997-03-25Mirar (Pontus Hagland) </text></group> <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref resolved='predef::Image.PNM.decode'>decode</ref></p></text></group>
26c8521997-03-25Mirar (Pontus Hagland) 
28e5681999-04-06Per Hedbor </doc> </docgroup> </module> <module name='TGA'> <docgroup homogen-name='_decode' homogen-type='method'> <method name='_decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> </arguments> </method><doc> <text>
94215d1999-04-06Per Hedbor <p>Decodes a Targa image to a mapping.
28e5681999-04-06Per Hedbor  The mapping follows this format: ([ "image":img_object, "alpha":alpha_channel ]) </p> </text> <group><note/><text> <p>Throws upon error in data.</p> </text></group> </doc> </docgroup> <docgroup homogen-name='decode' homogen-type='method'> <method name='decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> </arguments> </method><doc> <text>
94215d1999-04-06Per Hedbor <p>Decodes a Targa image.
28e5681999-04-06Per Hedbor </p> </text> <group><note/><text> <p>Throws upon error in data.</p> </text></group> </doc> </docgroup> <docgroup homogen-name='encode' homogen-type='method'> <method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.TGA.encode'/></type></argument> </arguments> </method><method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.TGA.encode'/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.TGA.encode'/></type></argument> </arguments> </method><doc> <text>
94215d1999-04-06Per Hedbor <p>Encodes a Targa image.</p>
28e5681999-04-06Per Hedbor  <p>The <tt>options</tt> argument may be a mapping containing zero or more encoding options:</p> <p><pre> normal options: "alpha":image object Use this image as alpha channel
94215d1999-04-06Per Hedbor  (Note: Targa alpha channel is grey.
28e5681999-04-06Per Hedbor  The values are calculated by (r+2g+b)/4.) "raw":1 Do not RLE encode the image </pre> </p> </text>
30debc1999-04-10Per Hedbor </doc> </docgroup> </module> <module name='TIFF'> <docgroup homogen-name='_decode' homogen-type='method'> <method name='_decode'> <returntype> <object>mapping </object></returntype> <arguments><argument name='data'><type><string/></type></argument> </arguments> </method><doc> <text> <p>Decodes a TIFF image to a mapping with at least the members image and alpha. </p> </text> <group><note/><text> <p>Throws upon error in data.</p> </text></group> </doc> </docgroup> <docgroup homogen-type='method'> <method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.TIFF.encode'/></type></argument> </arguments> </method><method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.TIFF.encode'/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.TIFF.encode'/></type></argument> </arguments> </method><method name='_encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.TIFF.encode'/></type></argument> </arguments> </method><method name='_encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.TIFF.encode'/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.TIFF.encode'/></type></argument> </arguments> </method><doc> <text> <p>encode and _encode are identical.</p> <p> The <tt>options</tt> argument may be a mapping containing zero or more encoding options:</p> <p><pre> normal options: "compression":Image.TIFF.COMPRESSION_*, "name":"an image name", "comment":"an image comment", "alpha":An alpha channel, "dpy":Dots per inch (as a float), "xdpy":Horizontal dots per inch (as a float), "ydpy":Vertical dots per inch (as a float), </pre></p> </text> </doc> </docgroup> <docgroup homogen-name='decode' homogen-type='method'> <method name='decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> </arguments> </method><doc> <text> <p>Decodes a TIFF image. </p> </text> <group><note/><text> <p>Throws upon error in data.</p> </text></group>
26c8521997-03-25Mirar (Pontus Hagland) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) </module> <module name='TTF'> <doc> <text> <p> This module adds TTF (Truetype font) capability to the Image module. </p> </text> <group><note/><text> <p>This module needs the <tt>libttf</tt> "Freetype" library </p> </text></group>
43d1bb1997-03-25Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) </doc> <docgroup homogen-name='`()' homogen-type='method'> <method name='`()'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>object </object></returntype> <arguments><argument name='filename'><type><string/></type></argument>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='`()'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>object </object></returntype> <arguments><argument name='filename'><type><string/></type></argument> <argument name='options'><type><mapping/></type></argument>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Makes a new TTF Face object. </p> </text>
9101991997-04-03Mirar (Pontus Hagland) <group>
431c431998-12-31Fredrik Hübinette (Hubbe)  <param name='filename'/> <text><p>The filename of the <tt>TTF</tt> font or the <tt>TTC</tt> font collection. </p></text></group> <group> <param name='options'/> <text><p><pre> advanced options: "face":int If opening a font collection, '&lt;tt&gt;.TTC&lt;/tt&gt;', this is used to get other fonts than the first. </pre> </p></text></group>
43d1bb1997-03-25Mirar (Pontus Hagland) <group><returns/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>0 if failed.</p>
43d1bb1997-03-25Mirar (Pontus Hagland) </text></group> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <class name='Face'> <doc> <text> <p> This represents instances of TTF Faces.</p> </text> </doc> <docgroup homogen-type='method'> <method name='names'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>mapping </object></returntype>
43d1bb1997-03-25Mirar (Pontus Hagland)  <arguments> </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='_names'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <array><valuetype><array/></valuetype></array></returntype> <arguments>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><doc> <text> <p>Gives back the names or the complete name-list of this face.</p>
43d1bb1997-03-25Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The result from <ref resolved='predef::Image.TTF.Face.names'>names</ref>() is a mapping, which has any or all of these indices: <pre> "copyright": ("Copyright the Foo Corporation...bla bla") "family": ("My Little Font") "style": ("Bold") "full": ("Foo: My Little Font: 1998") "expose": ("My Little Font Bold") "version": ("June 1, 1998; 1.00, ...") "postscript": ("MyLittleFont-Bold") "trademark": ("MyLittleFont is a registered...bla bla") </pre></p>
43d1bb1997-03-25Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This is extracted from the information from _names(), and fit into pike-strings using unicode or iso-8859-1, if possible.</p> <p>The result from <ref resolved='predef::Image.TTF.Face._names'>_names</ref>() is a matrix, on this form: <pre> ({ ({ int platform, encoding, language, id, string name }), ({ int platform, encoding, language, id, string name }), ... }) </pre> </p> </text> <group><returns/><text> <p>the name as a mapping to string or the names as a matrix</p> </text></group> <group><note/><text> <p>To use the values from <ref resolved='predef::Image.TTF.Face._names'>_names</ref>(), check the TrueType standard documentation.</p> </text></group>
43d1bb1997-03-25Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) </doc> </docgroup> <docgroup homogen-name='`()' homogen-type='method'> <method name='`()'> <returntype> <object>object </object></returntype> <arguments>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>This instantiates the face for normal usage - to convert font data to images.
43d1bb1997-03-25Mirar (Pontus Hagland) </p> </text> <group><returns/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>a <ref resolved='predef::Image.TTF.FaceInstance'>FaceInstance</ref> object.</p>
43d1bb1997-03-25Mirar (Pontus Hagland) </text></group>
5e9ad71998-04-15Mirar (Pontus Hagland) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='flush' homogen-type='method'> <method name='flush'>
5e9ad71998-04-15Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>object </object></returntype>
5e9ad71998-04-15Mirar (Pontus Hagland)  <arguments> </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><doc> <text> <p>This flushes all cached information. Might be used to save memory - the face information is read back from disk upon need. </p> </text> <group><returns/><text> <p>the called object</p> </text></group> </doc> </docgroup> <docgroup homogen-name='properties' homogen-type='method'> <method name='properties'>
5e9ad71998-04-15Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>mapping </object></returntype>
5e9ad71998-04-15Mirar (Pontus Hagland)  <arguments> </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><doc> <text> <p>This gives back a structure of the face's properties. Most of this stuff is information you can skip.</p> <p>The most interesting item to look at may be <tt>-&gt;num_Faces</tt>, which describes the number of faces in a <tt>.TTC</tt> font collection. </p> </text> <group><returns/><text> <p>a mapping of a lot of properties</p> </text></group> </doc> </docgroup> </class> <class name='FaceInstance'> <doc> <text> <p>This is the instance of a face, with geometrics, encodings and stuff. </p> </text> </doc> <docgroup homogen-name='create' homogen-type='method'> <method name='create'>
ec774b1999-04-09Mirar (Pontus Hagland)  <returntype> <object>void </object></returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <arguments><argument name='face'><type><object resolved='predef::Image.TTF.FaceInstance.create'/></type></argument> </arguments> </method><doc> <text> <p>creates a new Instance from a face.</p> </text> </doc> </docgroup> </class> </module> <module name='X'> <doc> <text> <p> This submodule handles encoding and decoding of the binary formats of X11.</p> <p> </p> </text> <group><seealso/><text> <p><ref resolved='predef::Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref resolved='predef::Image.colortable'>Image.colortable</ref></p></text></group> </doc> <docgroup homogen-name='decode_pseudocolor' homogen-type='method'> <method name='decode_pseudocolor'>
5e9ad71998-04-15Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> <argument name='width'><type><int/></type></argument> <argument name='height'><type><int/></type></argument> <argument name='bpp'><type><int/></type></argument> <argument name='alignbits'><type><int/></type></argument> <argument name='swapbytes'><type><int/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.X.decode_pseudocolor'/></type></argument>
5e9ad71998-04-15Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><doc> <text> <p>lazy support for pseudocolor ZPixmaps </p> </text> <group><note/><text> <p>currently, only byte-aligned pixmaps are supported</p> </text></group> </doc> </docgroup> <docgroup homogen-type='method'> <method name='decode_truecolor'>
5e9ad71998-04-15Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> <argument name='width'><type><int/></type></argument> <argument name='height'><type><int/></type></argument> <argument name='bpp'><type><int/></type></argument> <argument name='alignbits'><type><int/></type></argument> <argument name='swapbytes'><type><int/></type></argument> <argument name='rbits'><type><int/></type></argument> <argument name='rshift'><type><int/></type></argument> <argument name='gbits'><type><int/></type></argument> <argument name='gshift'><type><int/></type></argument> <argument name='bbits'><type><int/></type></argument> <argument name='bshift'><type><int/></type></argument>
5e9ad71998-04-15Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='decode_truecolor_masks'>
5e9ad71998-04-15Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> <argument name='width'><type><int/></type></argument> <argument name='height'><type><int/></type></argument> <argument name='bpp'><type><int/></type></argument> <argument name='alignbits'><type><int/></type></argument> <argument name='swapbytes'><type><int/></type></argument> <argument name='rmask'><type><int/></type></argument> <argument name='gmask'><type><int/></type></argument> <argument name='bmask'><type><int/></type></argument>
5e9ad71998-04-15Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>lazy support for truecolor ZPixmaps
5e9ad71998-04-15Mirar (Pontus Hagland) </p> </text> <group><note/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>currently, only byte-aligned masks are supported</p>
5e9ad71998-04-15Mirar (Pontus Hagland) </text></group>
43d1bb1997-03-25Mirar (Pontus Hagland) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='encode_pseudocolor' homogen-type='method'> <method name='encode_pseudocolor'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.X.encode_pseudocolor'/></type></argument> <argument name='bpp'><type><int/></type></argument> <argument name='alignbits'><type><int/></type></argument> <argument name='vbpp'><type><int/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.X.encode_pseudocolor'/></type></argument>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='encode_pseudocolor'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.X.encode_pseudocolor'/></type></argument> <argument name='bpp'><type><int/></type></argument> <argument name='alignbits'><type><int/></type></argument> <argument name='vbpp'><type><int/></type></argument> <argument name='colortable'><type><object resolved='predef::Image.X.encode_pseudocolor'/></type></argument> <argument name='translate'><type><string/></type></argument>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments> </method><doc> <group>
431c431998-12-31Fredrik Hübinette (Hubbe)  <param name='image'/> <text><p>the image object to encode</p></text></group>
43d1bb1997-03-25Mirar (Pontus Hagland) <group>
431c431998-12-31Fredrik Hübinette (Hubbe)  <param name='bpp'/> <text><p>bits per pixel, how many bits each pixel should take</p></text></group>
43d1bb1997-03-25Mirar (Pontus Hagland) <group>
431c431998-12-31Fredrik Hübinette (Hubbe)  <param name='vbpp'/> <text><p>value bits per pixel; how many bits per pixel that really contains information</p></text></group> <group> <param name='alignbits'/> <text><p>the number of even bits each line should be padded to</p></text></group> <group> <param name='colortable'/> <text><p>colortable to get indices for pseudocolor</p></text></group> <group> <param name='translate'/> <text><p>translate table for colors. Length of this string should be 1&lt;&lt;vbpp (or 2&lt;&lt;vbpp if vbpp are greater than 8). </p></text></group> <group><note/><text> <p>currently, only upto 16 bits pseudocolor are supported.</p>
43d1bb1997-03-25Mirar (Pontus Hagland) </text></group>
9101991997-04-03Mirar (Pontus Hagland) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-type='method'> <method name='encode_truecolor'>
9101991997-04-03Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.X.encode_truecolor'/></type></argument> <argument name='bpp'><type><int/></type></argument> <argument name='alignbits'><type><int/></type></argument> <argument name='swapbytes'><type><int/></type></argument> <argument name='rbits'><type><int/></type></argument> <argument name='rshift'><type><int/></type></argument> <argument name='gbits'><type><int/></type></argument> <argument name='gshift'><type><int/></type></argument> <argument name='bbits'><type><int/></type></argument> <argument name='bshift'><type><int/></type></argument>
9101991997-04-03Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='encode_truecolor_masks'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.X.encode_truecolor'/></type></argument> <argument name='bpp'><type><int/></type></argument> <argument name='alignbits'><type><int/></type></argument> <argument name='swapbytes'><type><int/></type></argument> <argument name='rmask'><type><int/></type></argument> <argument name='gmask'><type><int/></type></argument> <argument name='bmask'><type><int/></type></argument>
9101991997-04-03Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe)  </arguments> </method><method name='encode_truecolor'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.X.encode_truecolor'/></type></argument> <argument name='bpp'><type><int/></type></argument> <argument name='alignbits'><type><int/></type></argument> <argument name='swapbytes'><type><int/></type></argument> <argument name='rbits'><type><int/></type></argument> <argument name='rshift'><type><int/></type></argument> <argument name='gbits'><type><int/></type></argument> <argument name='gshift'><type><int/></type></argument> <argument name='bbits'><type><int/></type></argument> <argument name='bshift'><type><int/></type></argument> <argument name='ct'><type><object resolved='predef::Image.X.encode_truecolor'/></type></argument>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='encode_truecolor_masks'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.X.encode_truecolor'/></type></argument> <argument name='bpp'><type><int/></type></argument> <argument name='alignbits'><type><int/></type></argument> <argument name='swapbytes'><type><int/></type></argument> <argument name='rmask'><type><int/></type></argument> <argument name='gmask'><type><int/></type></argument> <argument name='bmask'><type><int/></type></argument> <argument name='ct'><type><object resolved='predef::Image.X.encode_truecolor'/></type></argument>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Pack an image into a truecolor string. You will get a string of packed red, green and blue bits; ie:</p> <p><tt>encode_truecolor(img, 12,32, 0, 3,5, 4,0, 3,8)</tt> will give (aligned to even 32 bits for each row):<br/> <tt>0bbbrrr0 gggg0bbb rrr0gggg 0bbb</tt>...<br/> <tt>&lt;--pixel 1--&gt;&lt;--pixel 2--&gt; &lt;--3--&gt;</tt><br/> <tt>10987654 32101098 76543210 1098</tt>... &lt;- bit position <tt> &lt;-&gt;&lt;-&gt; &lt;--&gt;</tt> <tt> | | +--- 4,0</tt>: 4 bits green shifted 0 bits <tt> | +-------- 3,5</tt>: 3 bits red shifted 5 bits <tt> +----------- 3,8</tt>: 3 bits blue shifted 8 bits</p> <p>The above call is equal to <br/><tt>encode_truecolor_masks(img, 12,32, 0, 224, 15, 768)</tt> and <br/><tt>encode_truecolor(img, 12,32, 0, 3,5,4,0,3,8, colortable(1&lt;&lt;3,1&lt;&lt;4,1&lt;&lt;3))</tt>. <br/>The latter gives possibility to use dither algorithms, but is slightly slower. </p>
43d1bb1997-03-25Mirar (Pontus Hagland) </text> <group>
431c431998-12-31Fredrik Hübinette (Hubbe)  <param name='image'/> <text><p>the image object to encode</p></text></group>
43d1bb1997-03-25Mirar (Pontus Hagland) <group>
431c431998-12-31Fredrik Hübinette (Hubbe)  <param name='bpp'/> <text><p>bits per pixel, how many bits each pixel should take</p></text></group> <group> <param name='alignbits'/> <text><p>the number of even bits each line should be padded to</p></text></group> <group> <param name='rbits'/> <param name='gbits'/> <param name='bbits'/> <text><p>bits for each basecolor</p></text></group> <group> <param name='rshift'/> <param name='gshift'/> <param name='bshift'/> <text><p>leftshifts for each basecolor</p></text></group> <group> <param name='rmask'/> <param name='gmask'/> <param name='bmask'/> <text><p>masks for each basecolor (xbits and gbits are calculated from this), needs to be massive (no zeroes among the ones in the mask).</p></text></group> <group> <param name='ct'/> <text><p>colortable object (for dithering, or whatever)</p></text></group> <group> <param name='swapbytes'/> <text><p>swap bytes for bpp==16,24,32, swaps bits in the bytes if bpp==1, for change of byte/bitorder between client and server. </p></text></group>
43d1bb1997-03-25Mirar (Pontus Hagland) 
1279721999-04-06Per Hedbor </doc> </docgroup> </module> <module name='XBM'> <docgroup homogen-name='_decode' homogen-type='method'> <method name='_decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> </arguments> </method><method name='_decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.XBM._decode'/></type></argument> </arguments> </method><doc> <text> <p>Decodes a XBM image to a mapping.</p> <p><pre> Supported options: ([ "fg":({fgcolor}), // Foreground color. Default black "bg":({bgcolor}), // Background color. Default white "invert":1, // Invert the mask ]) </pre></p> </text> <group><note/><text> <p>Throws upon error in data.</p> </text></group> </doc> </docgroup> <docgroup homogen-name='decode' homogen-type='method'> <method name='decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> </arguments> </method><doc> <text> <p>Decodes a XBM image. </p> </text> <group><note/><text> <p>Throws upon error in data.</p> </text></group> </doc> </docgroup> <docgroup homogen-name='encode' homogen-type='method'> <method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.XBM.encode'/></type></argument> </arguments> </method><method name='encode'> <returntype> <object>string </object></returntype> <arguments><argument name='image'><type><object resolved='predef::Image.XBM.encode'/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.XBM.encode'/></type></argument> </arguments> </method><doc> <text> <p>Encodes a XBM image.</p> <p>The <tt>options</tt> argument may be a mapping containing zero or more encoding options.</p> <p><pre> normal options: "name":"xbm_image_name" The name of the XBM. Defaults to 'image'</pre></p> </text>
43d1bb1997-03-25Mirar (Pontus Hagland) </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) </module>
30b3701999-04-11Per Hedbor <module name='XCF'> <docgroup homogen-name='__decode' homogen-type='method'> <method name='__decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type> <or><string/><mapping/></or></type></argument> </arguments> </method><doc> <text> <p>Decodes a XCF image to a Image.XCF.GimpImage object.</p> <p><pre>Structure reference </pre></p> </text> </doc> </docgroup> <docgroup homogen-name='_decode' homogen-type='method'> <method name='_decode'> <returntype> <object>mapping </object></returntype> <arguments><argument name='data'><type> <or><string/><object resolved='predef::Image.XCF._decode'/></or></type></argument> </arguments> </method><doc> <text> <p> Decodes a XCF image to a mapping, with at least an 'image' and an 'alpha' object. Data is either a XCF image, or a XCF.GimpImage object structure (as received from __decode) </p> </text> <group><note/><text> <p>Throws upon error in data. For more information, see Image.XCF.__decode</p> </text></group> </doc> </docgroup> <docgroup homogen-name='decode' homogen-type='method'> <method name='decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> </arguments> </method><doc> <text> <p>Decodes a XCF image to a single image object. </p> </text> <group><note/><text> <p>Throws upon error in data, you will loose quite a lot of information by doing this. See Image.XCF._decode and Image.XCF.__decode</p> </text></group> </doc> </docgroup> <class name='Channel'> <doc> <text> <p>{ string name; int width; int height; int opacity; int r, g, b; int tattoo; Hierarchy image_data; object parent; mapping flags = ([]); array (Parasite) parasites; } </p> </text> </doc> </class> <class name='GimpImage'> <doc> <text> <p>{ int width; int height; int compression; int type; int tattoo_state; float xres = 72.0; float yres = 72.0; int res_unit; Image.colortable colormap; Image.colortable meta_colormap; array(Layer) layers = ({}); array(Channel) channels = ({}); array(Guide) guides = ({}); array(Parasite) parasites = ({}); array(Path) paths = ({});</p> <p> Layer active_layer; Channel active_channel; Channel selection; } </p> </text> </doc> </class> <class name='Guide'> <doc> <text> <p>{ int pos; int vertical; } </p> </text> </doc> </class> <class name='Hierarchy'> <doc> <text> <p>{ Image.image img; Image.image alpha; int width; int height; int bpp; } </p> </text> </doc> </class> <class name='Layer'> <doc> <text> <p>{ string name; int opacity; int type; int mode; int tattoo; mapping flags = ([]); int width, height; int xoffset, yoffset; array (Parasite) parasites; LayerMask mask; Hierarchy image; } </p> </text> </doc> </class> <class name='Parasite'> <doc> <text> <p>{ string name; int flags; string data; }</p> <p/> </text> </doc> </class> <class name='Path'> <doc> <text> <p>{ string name; int ptype; int tattoo; int closed; int state; int locked; array (PathPoint) points = ({}); } </p> </text> </doc> </class> <class name='PathPoint'> <doc> <text> <p> { int type; float x; float y; }</p> <p/> </text> </doc> <docgroup homogen-name='___decode' homogen-type='method'> <method name='___decode'> <returntype> <object>object </object></returntype> <arguments><argument name='data'><type> <or><string/><mapping/></or></type></argument> </arguments> </method><doc> <text> <p> Decodes a XCF image to a mapping.</p> <p> <pre>Structure reference ([ "width":int, "height":int, "type":int, "properties":({ ([ "type":int, "data":string, ]), ... }), "layers":({ ([ "name":string, "width":int, "height":int, "type":type, "properties":({ ([ "type":int, "data":string, ]), ... }), "mask":0 || ([ "name":string, "width":int, "height":int, "properties":({ ([ "type":int, "data":string, ]), ... }), "image_data":([ "bpp":int, "width":int, "height":int, "tiles":({ string, ... }), ]), ]), "image_data":([ "bpp":int, "width":int, "height":int, "tiles":({ string, ... }), ]), ]), ... }), "channels":({ "name":string, "width":int, "height":int, "properties":({ ([ "type":int, "data":string, ]), ... }), "image_data":([ "bpp":int, "width":int, "height":int, "tiles":({ string, ... }), ]), }), ]) </pre></p> </text> </doc> </docgroup> </class> </module>
431c431998-12-31Fredrik Hübinette (Hubbe) <module name='XFace'> <doc> <text> <p/> </text> <group><note/><text> <p>This module uses <tt>libgmp</tt>.</p> </text></group>
43d1bb1997-03-25Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) </doc> <docgroup homogen-name='decode' homogen-type='method'> <method name='decode'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='decode'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.XFace.decode'/></type></argument>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Decodes an X-Face image.</p>
7a76291998-04-16Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The <tt>options</tt> argument may be a mapping containing zero options.
43d1bb1997-03-25Mirar (Pontus Hagland) </p> </text> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='decode_header' homogen-type='method'> <method name='decode_header'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='decode_header'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>object </object></returntype> <arguments><argument name='data'><type><string/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.XFace.decode_header'/></type></argument>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Decodes an X-Face image header.</p>
7a76291998-04-16Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p><pre> "xsize":int "ysize":int size of image "type":"image/x-xface" file type information </pre></p> <p>The <tt>options</tt> argument may be a mapping containing zero options.
7a76291998-04-16Mirar (Pontus Hagland) </p>
43d1bb1997-03-25Mirar (Pontus Hagland) </text>
431c431998-12-31Fredrik Hübinette (Hubbe) <group><note/><text> <p>There aint no such thing as a X-Face image header. This stuff tells the characteristics of an X-Face image. </p> </text></group>
43d1bb1997-03-25Mirar (Pontus Hagland)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) <docgroup homogen-name='encode' homogen-type='method'> <method name='encode'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.XFace.encode'/></type></argument>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments>
431c431998-12-31Fredrik Hübinette (Hubbe) </method><method name='encode'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>string </object></returntype> <arguments><argument name='img'><type><object resolved='predef::Image.XFace.encode'/></type></argument> <argument name='mappingoptions'><type> <object resolved='predef::Image.XFace.encode'/></type></argument>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Encodes an X-Face image.</p>
7a76291998-04-16Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>The <tt>img</tt> argument must be an image of the dimensions 48 by 48 pixels. All non-black pixels will be considered white.</p> <p>The <tt>options</tt> argument may be a mapping containing zero options.
7a76291998-04-16Mirar (Pontus Hagland) </p>
43d1bb1997-03-25Mirar (Pontus Hagland) </text> </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) </module> <module name='XWD'> <doc> <text> <p> This submodule keeps the XWD (X Windows Dump) decode capabilities of the <ref resolved='predef::Image'>Image</ref> module.</p>
43d1bb1997-03-25Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>XWD is the output format for the xwd program.</p> <p>Simple decoding:<br/> <ref>decode</ref></p> <p>Advanced decoding:<br/> <ref resolved='predef::Image.XWD._decode'>_decode</ref> </p> </text> <group><seealso/><text> <p><ref resolved='predef::Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref resolved='predef::Image.PNM'>Image.PNM</ref>, <ref resolved='predef::Image.X'>Image.X</ref></p></text></group> </doc> <docgroup homogen-name='_decode' homogen-type='method'> <method name='_decode'>
43d1bb1997-03-25Mirar (Pontus Hagland)  <returntype>
431c431998-12-31Fredrik Hübinette (Hubbe)  <object>mapping </object></returntype> <arguments><argument name='data'><type><string/></type></argument>
43d1bb1997-03-25Mirar (Pontus Hagland)  </arguments> </method><doc> <text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Decodes XWD data and returns the result.</p>
43d1bb1997-03-25Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>Supported XWD visual classes and encoding formats are TrueColor / ZPixmap DirectColor / ZPixmap¹ PseudoColor / ZPixmap</p>
43d1bb1997-03-25Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>¹supported, but wierd, since I didn't find any directcolor tables in the file - currently decoded as truecolor.</p>
43d1bb1997-03-25Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p>If someone sends me files of other formats, these formats may be implemented. <tt>:)</tt> /<tt>mirar@idonex.se</tt></p>
e9c4471997-05-30Mirar (Pontus Hagland) 
431c431998-12-31Fredrik Hübinette (Hubbe) <p/>
43d1bb1997-03-25Mirar (Pontus Hagland) </text> <group><returns/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p>the decoded image as an image object</p> </text></group> <group><note/><text> <p>This function may throw errors upon illegal or unknown XWD data. </p>
43d1bb1997-03-25Mirar (Pontus Hagland) </text></group> <group><seealso/><text>
431c431998-12-31Fredrik Hübinette (Hubbe) <p><ref>decode</ref></p></text></group>
43d1bb1997-03-25Mirar (Pontus Hagland)  </doc> </docgroup>
431c431998-12-31Fredrik Hübinette (Hubbe) </module>
2a605f1999-01-23Mirar (Pontus Hagland) <module name='color'> <doc> <text> <p> This module keeps names and easy handling for easy color support. It gives you an easy way to get colors from names.</p> <p>A color is here an object, containing color
11aad21999-01-24Mirar (Pontus Hagland) information and methods for conversion, see below.</p> <p><ref resolved='predef::Image.color'>Image.color</ref> can be called to make a color object. <ref resolved='predef::Image.color'>Image.color()</ref> takes the following arguments: <pre>
f499cd1999-01-24Mirar (Pontus Hagland) Image.color(string name) // "red" Image.color(string prefix_string) // "lightblue" Image.color(string hex_name) // "#ff00ff" Image.color(string cmyk_string) // "%17,42,0,19.4" Image.color(string hsv_string) // "%@327,90,32"
11aad21999-01-24Mirar (Pontus Hagland) Image.color(int red, int green, int blue) </pre></p> <p>The color names available can be listed by using indices on Image.color. The colors are available by name directly as <tt>Image.color.name</tt>, too: <pre> ...Image.color.red... ...Image.color.green... or, maybe import Image.color; ...red... ...green... ...lightgreen... </pre></p> <p>Giving red, green and blue values is equal to calling <ref resolved='predef::Image.color.rgb'>Image.color.rgb</ref>().</p> <p>The prefix_string method is a form for getting modified colors, it understands all modifiers
b1e0161999-01-24Mirar (Pontus Hagland) (<ref to='image.color.color.light'>light</ref>, <ref to='image.color.color.dark'>dark</ref>, <ref to='image.color.color.bright'>bright</ref>, <ref to='image.color.color.dull'>dull</ref> and <ref to='image.color.color.neon'>neon</ref>). Simply use "method"+"color"; (as in <tt>lightgreen</tt>,
11aad21999-01-24Mirar (Pontus Hagland) <tt>dullmagenta</tt>, <tt>lightdullorange</tt>).</p>
f499cd1999-01-24Mirar (Pontus Hagland) <p>The <tt>hex_name</tt> form is a simple <tt>#rrggbb</tt> form, as in HTML or X-program argument. A shorter form (<tt>#rgb</tt>) is also accepted. This is the inverse to the <ref resolved='predef::Image.color.color.hex'>Image.color.color-&gt;hex</ref>() method.</p> <p>The <tt>cmyk_string</tt> is a string form of giving <i>cmyk</i> (cyan, magenta, yellow, black) color. These values are floats representing percent.</p> <p>The <tt>hsv_string</tt> is another hue, saturation, value representation, but in floats; hue is in degree range (0..360), and