mirror of https://github.com/rusefi/lua.git
new functions "rename" and "tmpname".
new option 'q' for function "format". new example, about vararg.
This commit is contained in:
parent
58fd8aa851
commit
f86c1367db
54
manual.tex
54
manual.tex
|
@ -1,4 +1,4 @@
|
|||
% $Id: manual.tex,v 1.10 1996/02/12 18:32:09 roberto Exp roberto $
|
||||
% $Id: manual.tex,v 1.11 1996/02/16 13:12:12 roberto Exp roberto $
|
||||
|
||||
\documentstyle[A4,11pt,bnf]{article}
|
||||
|
||||
|
@ -34,7 +34,7 @@ Waldemar Celes Filho
|
|||
\tecgraf\ --- Departamento de Inform\'atica --- PUC-Rio
|
||||
}
|
||||
|
||||
\date{\small \verb$Date: 1996/02/12 18:32:09 $}
|
||||
\date{\small \verb$Date: 1996/02/16 13:12:12 $}
|
||||
|
||||
\maketitle
|
||||
|
||||
|
@ -1269,12 +1269,19 @@ following the description given in its first argument (which must be a string).
|
|||
The format string follows the same rules as the \verb'printf' family of
|
||||
standard C functions.
|
||||
The only differencies are that the options/modifiers
|
||||
\verb'*', \verb'l', \verb'L', \verb'n', \verb'p',
|
||||
and \verb'h' are not supported.
|
||||
The options \verb'c', \verb'd', \verb'i', \verb'o', \verb'u',
|
||||
\verb'x', \verb'X', \verb'e', \verb'E', \verb'f', and \verb'g' all
|
||||
\verb'*', \verb'l', \verb'L', \verb'n', \verb'p',
|
||||
and \verb'h' are not supported,
|
||||
and there is an extra option, \verb'q'.
|
||||
This option formats a string in a form suitable to be safely read
|
||||
back by the Lua interpreter.
|
||||
The string is written between double quotes,
|
||||
and all double quotes, returns and backslashes in the string
|
||||
are correctly escaped when written.
|
||||
|
||||
The options \verb'c', \verb'd', \verb'E', \verb'e', \verb'f',
|
||||
\verb'g' \verb'i', \verb'o', \verb'u', \verb'X', and \verb'x' all
|
||||
expect a number argument,
|
||||
while \verb's' expects a string.
|
||||
while \verb'q' and \verb's' expects a string.
|
||||
|
||||
|
||||
\subsection{Mathematical Functions} \label{mathlib}
|
||||
|
@ -1360,6 +1367,15 @@ This function returns 2 if the file already exists,
|
|||
|
||||
This function deletes the file with the given name.
|
||||
|
||||
\subsubsection*{{\tt rename (name1, name2)}}\Deffunc{rename}
|
||||
|
||||
This function renames file \verb'name1' to \verb'name2'.
|
||||
|
||||
\subsubsection*{{\tt tmpname ()}}\Deffunc{tmpname}
|
||||
|
||||
This function returns a string with a file name that can safely
|
||||
be used for a temporary file.
|
||||
|
||||
\subsubsection*{{\tt read ([format])}}\Deffunc{read}
|
||||
|
||||
This function returns a value read from the current input.
|
||||
|
@ -1698,6 +1714,28 @@ end
|
|||
\end{verbatim}
|
||||
|
||||
|
||||
\subsection{\Index{Variable number of arguments}}
|
||||
Lua does not provide any explicit mechanism to deal with
|
||||
variable number of arguments.
|
||||
However, one can use table constructors to simulate this mechanism.
|
||||
As an example, suppose a function to concatenate all its arguments.
|
||||
It could be written like
|
||||
\begin{verbatim}
|
||||
function concat (o)
|
||||
local i = 1
|
||||
local s = ''
|
||||
while o[i] do
|
||||
s = s .. o[i]
|
||||
i = i+1
|
||||
end
|
||||
return s
|
||||
end
|
||||
\end{verbatim}
|
||||
To call it, one uses a table constructor to join all arguments:
|
||||
\begin{verbatim}
|
||||
x = concat{"hello ", "john", " and ", "mary"}
|
||||
\end{verbatim}
|
||||
|
||||
\subsection{\Index{Persistence}}
|
||||
Because of its reflexive facilities,
|
||||
persistence in Lua can be achieved within the language.
|
||||
|
@ -1829,7 +1867,7 @@ void Index (void)
|
|||
\end{figure}
|
||||
This code must be registered with:
|
||||
\begin{verbatim}
|
||||
lua_pushliteral("parent");
|
||||
lua_pushstring("parent");
|
||||
lockedParentName = lua_lock();
|
||||
lua_pushobject(lua_setfallback("index", Index));
|
||||
lockedOldIndex = lua_lock();
|
||||
|
|
Loading…
Reference in New Issue