new functions "rename" and "tmpname".

new option 'q' for function "format".
new example, about vararg.
This commit is contained in:
Roberto Ierusalimschy 1996-03-14 14:45:01 -03:00
parent 58fd8aa851
commit f86c1367db
1 changed files with 46 additions and 8 deletions

View File

@ -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();