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}
|
\documentstyle[A4,11pt,bnf]{article}
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ Waldemar Celes Filho
|
||||||
\tecgraf\ --- Departamento de Inform\'atica --- PUC-Rio
|
\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
|
\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
|
The format string follows the same rules as the \verb'printf' family of
|
||||||
standard C functions.
|
standard C functions.
|
||||||
The only differencies are that the options/modifiers
|
The only differencies are that the options/modifiers
|
||||||
\verb'*', \verb'l', \verb'L', \verb'n', \verb'p',
|
\verb'*', \verb'l', \verb'L', \verb'n', \verb'p',
|
||||||
and \verb'h' are not supported.
|
and \verb'h' are not supported,
|
||||||
The options \verb'c', \verb'd', \verb'i', \verb'o', \verb'u',
|
and there is an extra option, \verb'q'.
|
||||||
\verb'x', \verb'X', \verb'e', \verb'E', \verb'f', and \verb'g' all
|
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,
|
expect a number argument,
|
||||||
while \verb's' expects a string.
|
while \verb'q' and \verb's' expects a string.
|
||||||
|
|
||||||
|
|
||||||
\subsection{Mathematical Functions} \label{mathlib}
|
\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.
|
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}
|
\subsubsection*{{\tt read ([format])}}\Deffunc{read}
|
||||||
|
|
||||||
This function returns a value read from the current input.
|
This function returns a value read from the current input.
|
||||||
|
@ -1698,6 +1714,28 @@ end
|
||||||
\end{verbatim}
|
\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}}
|
\subsection{\Index{Persistence}}
|
||||||
Because of its reflexive facilities,
|
Because of its reflexive facilities,
|
||||||
persistence in Lua can be achieved within the language.
|
persistence in Lua can be achieved within the language.
|
||||||
|
@ -1829,7 +1867,7 @@ void Index (void)
|
||||||
\end{figure}
|
\end{figure}
|
||||||
This code must be registered with:
|
This code must be registered with:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
lua_pushliteral("parent");
|
lua_pushstring("parent");
|
||||||
lockedParentName = lua_lock();
|
lockedParentName = lua_lock();
|
||||||
lua_pushobject(lua_setfallback("index", Index));
|
lua_pushobject(lua_setfallback("index", Index));
|
||||||
lockedOldIndex = lua_lock();
|
lockedOldIndex = lua_lock();
|
||||||
|
|
Loading…
Reference in New Issue